전체 글
[Oracle] #4-4 오라클과 마리아DB의 자료형
1. 표준형 자료형 Oracle 게시글에 지금까지 사용하는 sungjuk 테이블의 값들은 제각기 자료형을 지정해주었다. 예를 들어 sno은 int형으로, uname은 varchar(50)으로. 그런데 오라클 내부 sungjuk 테이블을 확인하면 내가 지정한 자료형으로 되어있지 않다. sno은 int가 아니라 number로, uname은 varchar가 아니라 varchar2로 되어있다. 이처럼 표준화된 자료형을 넣어주면 각각의 프로그램이 자료형을 알아서 변환해서 가져간다. 그래서 오라클 DB에서 사용하는 자료형을 마리아 DB에 가져가면 인식하지 못한다. 표준화된 자료형을 사용하면 각기 다른 프로그램에서도 각기 사용할 수 있다. 이제 오라클과 마리아DB에서 사용하는 각기 다른 자료형에 대해 한번 알아보자...
[Oracle] #4-3 Oracle 함수 : nvl, 모조칼럼(rownum, rowid)
1. nvl() 함수 이 함수는 마리아DB에서 ifnull() 함수와 같다. nvl()을 사용하면 null값을 지정해줄 수 있다. 형식) nvl(칼럼명, 값) nvl(kor, 0) -- kor 값이 null이면 0의 값을 대입한다 문제) 주소가 'Incheon'인 행의 국어점수 최대값, 인원수를 조회하시오 select nvl(max(kor),0), count(*) from sungjuk where addr='Incheon' and kor=(select max(kor) from sungjuk where addr='Incheon'); select count(*)+1 -- 0+1 from sungjuk where addr='Incheon'; select max(kor)+1 -- null, null은 연산이 되..
[Oracle] #4-2 Oracle에서 자주 쓰이는 함수 모음
1. 집계 함수 max(column) 최대값을 구하는 함수 min(column) 최소값을 구하는 함수 avg(column) 평균값을 구하는 함수 sum(column) 합계를 구하는 함수 mod(a, b) a를 b로 나눈 나머지값을 구하는 함수 count(*) 총 레코드 수를 세는 함수, null값도 포함 count(컬럼명) 컬럼명을 기준으로 총 레코드 수를 세는 함수, null값은 제외 2. 문자열 함수 lower('Hello World') hello world, 해당 컬럼의 값을 소문자로 변환하는 함수 upper('Hello World') HELLO WORLD, 해당 컬럼의 값을 대문자로 변환하는 함수 inicap('go go go!') Go Go Go!, 첫글자와 공백이후 첫글자는 대문자로 변환하는 ..
[Oracle] #4-1 서브쿼리
서브쿼리? 서브쿼리란 SQL문 속에서 또 다른 SQL문을 사용하는 것을 말한다. 테이블 내에서 다시 한 번 쿼리문에 의해 레코드가 조회되고 검색된다. 입력된 성적 데이터들 중 국어 점수의 평균을 조회해보았다. select kor from sungjuk; select avg(kor) from sungjuk; select round(avg(kor),0) from sungjuk; -- 66 select round(avg(kor),0) as avg_kor from sungjuk; 66점이 나왔다. 이제 데이터들의 국어점수 중 평균 이상의 점수인 국어 점수를 구해보려한다. 그럴땐 쉽게는 아래와 같은 코드를 사용해도 되지만, select uname, kor from sungjuk where kor>=66; 이것은 ..
[Oracle] #3-5 having 조건절, CASE WHEN ~ THEN END 구문
1. having 조건절 having 조건절은 DB를 다루는 사람들에겐 가장 기본적인 조건절이다. 지금까지 배웠던 where 조건절처럼 having도 하나의 조건절이다. 이 having 조건절은 group by와 같이 사용하는 조건절이다. 즉, 그룹화를 하고 난 후에 조건절을 추가하는 것이다. 형식은 where 조건절과 마찬가지로 having + 조건절이다. -- 주소별 인원수를 조회하시오 select addr, count(*) from sungjuk group by addr; -- 주소별 인원수가 3인 행을 조회하시오 select addr, count(*) from sungjuk group by addr having count(*)=3; -- 주소별 인원수가 3 이상인 행을 조회하시오 select ad..
[Oracle] #3-4 데이터 가공하기 : distinct, group by, 집계함수
1. 데이터 다시 가공하기 축적된 데이터들을 다시 재가공하는 것도 가능하다. 이어질 내용들은 아래의 데이터 안에서 가공되어가고 있다. -- sungjuk 테이블 생성 create table sungjuk( sno int not null --일련번호 ,uname varchar(50) not null ,kor int not null ,eng int not null ,mat int not null ,tot int ,aver int ,addr varchar(50) --주소 ,wdate date --등록일(년월일시분초) ); ● [sungjuk 테이블 입력 데이터] insert into sungjuk(sno, uname, kor, eng, mat, addr, wdate) values(sungjuk_seq.next..