⁂ Oracle 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..

    [Oracle] #3-3 자료형과 제약 조건

    1. 쓰레기 데이터 걸러내기 DB 서버를 사용하는 것은 생각보다 많은 자원(돈)이 든다. 그런데 그 서버 안에 불필요한 데이터가 너무 많이 차지하고 있다면? 그래서 정작 저장해야하는 데이터를 저장하려하니 공간이 부족하다면? 우리는 데이터를 입력할 때 자료형과 제약 조건을 통해 데이터를 걸러내고 정리하는 것이 필요하다. 2. 자료형 1) 문자형 - 가변형 가변형은 내가 사용하고 싶은 만큼만 사용한다. 1바이트를 사용하면 나머지 9바이트는 재사용 가능. 용량을 많이 절약할 수 있다. 하지만 사용된 사이즈를 계산해야 함으로 속도가 느린 문자 타입. 주로 길이가 심하게 변하는 게시판의 제목등에 많이 사용된다. : varchar(5) 'SKY'; 예) 아이디, 비밀번호, 이름, 주소 ~~ - 고정형 고정형은 정해..