반응형

DB 71

SQL 문법(INDEX, 인덱스)

1. 정의 : 검색 속도 향상을 위해 특정 컬럼에 생성하는 객체로 책의 색인과 같은 기능 2. 인덱스 생성 가. 과 정: 테이블 lock 설정 -> full scan -> 정렬(sort) 나. 생성 대상 - Where 절이나 Join 조건 절에서 자주 사용되는 컬럼 - 전체 데이터 중에서 4~5% 이내의 데이터를 검색하는 경우 - 2개 이상의 컬럼이 where 절이나 join 조건에서 자주사용되는 경우 - 테이블에서 저장된 데이터의 변경이 드문경우 3. 인덱스 작동 원리 사용자의 검색요청 -> dictionary에서 검색 테이블 컬럼의 index 유무 검사 -> 인덱스가 존재할 경우 index에서 데이터 주소 바로검색, 존재하지 않을 경우 테이블 full scan -> 데이터 검색 완료 4. 인덱스 단점..

DB/Oracle Basic 2012.07.06

SQL 문법(데이터 무결성 제약조건)

1. 무결성 종류 가. Not Null : Null이 아닌 값만 허용 나. Unique Key : 해당 컬럼에서 중복되지 않고 유일한 값만 허용 다. Primary Key : Not null 와 Unique key의 결합된 형태, 1개의 테이블에 1번만 사용가능 라. Foreign Key : 참조되는 테이블의 컬럼 값과 일치하거나 Null만 허용 마. Check : 저장 가능한 데이터 값의 범위나 조건안에서 허용 참고 : 제약조건은 primary key는 테이블에, 그 외는 컬럼에 걸린다. 2. 무결성 제약조건의 특징 가. 테이블에 정의, 데이터 딕셔너리에 저장 나. 일시적으로 활성화/비활성화 가능 3. 참조 무결성 제약조건 가. 참조 당하는 쪽 : 부모 테이블, 참조키(Reference Key) 나. ..

DB/Oracle Basic 2012.07.06

SQL 문법(DML, DDL, DCL, TCL)

1. DML(조작어) : update, delete, merge 참고 : Merge : 구조가 같은 2개의 테이블을 비교하여 하나의 테이블로 합치기 위한 명령어 서버에 많은 부하를 주므로 index를 필히 생성 MERGE INTO [table] [alias] USING [table | view| subquery ] alias ON [ join condition] WHEN MATCHED THEN UPDATE SET ….. WHEN NOT MATCHED THEN INSERT …. VALUES …; 2. DDL(정의어) : create, alter, truncate, drop 3. DCL : grank, revoke 4. TCL : commit, rollback 참고 : 오라클에서의 변수 숫자 : number..

DB/Oracle Basic 2012.07.06

SQL 문법( Join - 2 )

1. 학번이 10101인 학생의 학번, 이름, 학과이름 과 학과 위치를 출력 1 2 3 4 5 6 7 SQL> select s.studno, s.name, d.dname, d.loc 2 from student s, department d 3 where s.studno=10101 and s.deptno=d.deptno; STUDNO NAME DNAME LOC ---------- ---------- ---------------- ---------- 10101 전인하 컴퓨터공학과 1호관 2. 몸무게가 80kg 이상인 학생의 학번, 이름,체중,학과이름,학과위치를 출력 1 2 3 4 5 6 7 8 9 SQL> select s.studno, s.name,s.weight, d.dname, d.loc 2 from st..

DB/Oracle Basic 2012.07.06

SQL 문법( Join - 1 )

1. join : 두 개 이상의 테이블을 결합하여 필요한 데이터를 조회하게 하는 기능 가. 조인의 종류 - 카티션 곱 : where 절에 조건을 기입하지 않을 경우, 테이블 row 수만큼(null 제외) * 연산하여 출력 - EQUI JOIN : where 절에 = 을 사용했을 경우 - NON-EQUI JOIN : where 절에 >=, select s.name, d.dname 2 from student s, department d 3 where s.deptno=d.deptno; NAME DNAME ---------- ---------------- 전인하 컴퓨터공학과 이동훈 전자공학과 박미경 컴퓨터공학과 김영균 컴퓨터공학과 박동진 전자공학과 김진영 멀티미디어학과 지은경 컴퓨터공학과 오유석 멀티미디어학과 ..

DB/Oracle Basic 2012.07.06

SQL 함수(그룹 함수)

1. count : 행의 개수 출력 가. count(*) : null의 개수도 포함, 중복된 값도 포함(중복된 값 제외시 distinct 사용) 나. count(col_name) : null 제외, 중복된 값도 포함(중복된 값 제외시 distinct 사용) 2. max : null 을 제외한 모든행에서 최대값 출력 3. min : null 을 제외한 모든행에서 최소값 출력 4. sum : null 을 제외한 모든 행의 합게 5. avg : null 을 제외한 행의 평균값 null을 포함한 row 값도 평균에 반영하고자 할 때에는 nvl(col_name, 0) 함수를 이용한다. 6. stddev : null 을 제외한 모든 행의 표준편차 7. variance : null 을 제외한 모든 행의 분산 8. g..

DB/Oracle Basic 2012.07.06

SQL 함수(일반 함수)

1. nvl(a,b) : a가 null이면 b 값으로 치환 2. nvl2(a,b,c) : a가 null이 아니면 b로, null이면 c로 치환 3. decode ( a, s1, r1, s2, r2, ... d ) : a가 s1이면 r1, s2 이면 r2 모두 아니면 d 4. case when exp1 then r1 when exp2 then r2 when exp3 then r3 ..... else d end : exp1 를 만족하면 r1, exp2 를 만족하면 r2, exp3를 만족하면 r3, 모두 아니면 d 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40..

DB/Oracle Basic 2012.07.06

SQL 함수(날짜 함수)

1. sysdate : 시스템의 현재 날짜 2. months_betweend : 날짜와 날짜 사이의 개월 계산 (1월 1일, 1월 31일 을 모두 1개월로 계산하므로 사용에 유의) 3. add_months :날짜에 개월을 더한 날짜 4. next_date : 날짜후의 첫 월요일 날짜 5. last_day : 월의 마지막 날짜 6. round : 날짜 반올림 7. trunc : 날짜 내림 참고 : 날짜 형식 YYYY(RRRR) : 네 자리 연도(숫자) YEAR : 연도 (문자) MM : 두자리 값으로 나타낸 달 MONTH : 달 전체 이름(영문) MON : 세 자 약어로 나타난 달(영문) DY : 세 자 약어로 나타낸 요일 DAY : 요일 전체 이름 DD : 숫자로 나타낸 달 AM / PM : 오전/오후 ..

DB/Oracle Basic 2012.07.06
반응형