728x90
반응형

SQL 기본
데이터 무결성
- 개체 무결성
- 기본키는 NULL 값이나 중복값을 가질 수 없음 - 참조 무결성
- 외래키는 NULL이거나 참조 테이블의 기본키와 동일 - 도메인 무결성
- 속성 값이 정의된 도메인에 속한 값 - NULL 무결성
- 특정 속성에 NULL을 허용하지 않는 것 - 고유 무결성
- 특정 속성에 값이 중복되지 않는 것 - 키 무결성
- 하나의 관계에는 적어도 하나의 키가 존재해야 함
SQL 종류
DDL (Data Definition Language) |
CREATE, ALTER, DROP, TRUNCATE |
DML (Data Mnipulation Language) |
INSERT, DELETE, UPDATE, MERGE |
DCL (Data Control Language) |
GRANT, REVOKE |
TCL (Transaction Control Language) |
COMMIT, ROLLBACK |
DQL (Data Query Language) |
SELECT |
SELECT 문
- FROM -> WHERE -> GROUP -> HAVING -> SELECT -> ORDER BY 순서로 실행
SELECT (칼럼명)
FROM (테이블명)
WHERE (조회 조건)
GROUP BY (그룹핑 컬럼명)
HAVING (그룹핑 필터 조건)
ORDER BY (정렬 컬럼명) (정렬방법)
SELECT 절
- 테이블을 불러오는 구문
- Alias 지정 가능
Alias (별칭)
- SELECT 절에서 정의 가능
SELECT EMPNO AS 회원번호
- SELECT 뒤 실행되는 ORDER BY 에서만 사용 가능
- 예약어 사용 불가, 공백, 특수문자 포함하면 쌍따옴표
FROM 절
- 불러올 테이블 명 or 뷰 명
- 여러개 가능하지만, 조인 조건 없으면 카타시안 곱
WHERE 절
- 조회하고 싶은 조건 사용
- NULL 조회는 IS NULL / IS NOT NULL 사용
LIKE 연산자
- LIKE S% : S로 시작하는 모든 속성
- LIKE %S% : S를 포함하는 모든 속성
- LIKE %S : S로 끝나는 모든 속성
- LIKE _S% : 2번째 글자가 S인 모든 속성
GROUP BY 절
- 각 행을 조건에 따라 그룹으로 분리하여 계산하는 구문
HAVING 절
- 그룹 함수 결과를 조건으로 사용할 때 사용
ORDER BY 절
- 행의 순서를 변경할 때 사용
복합 정렬
- 정렬한 값에 동일 값이 있을 경우, 2차 정렬
SELECT NAME, SALARY, H_DATE
FROM EMPLOYEE
WHERE SALARY > 5000
ORDER BY SALARY DESC, H_DATE ASC;
- SALARY 기준 내림차순으로 1차 정렬, 만약 동일값이 있다면 H_DATE 기준 오름차순 정렬
조인(JOIN)
- 여러 테이블을 동시 출력 혹은 참조 할때 사용, FROM 절에 사용
- 테이블 명이 동일 할 경우 Alias 사용
조인 종류
1. 조건에 따라
- EQUI JOIN : JOIN 조건이 동등인 경우
- NON EQUI JOIN : JOIN 조건이 동등이 아닌 경우
-------<EQUI JOIN>-------
SELECT TABLE1.COL, TABLE2.COL
FROM TABLE1, TABLE2
WHERE TABLE1.COL = TABEL2.COL;
-------<NON-EQUI JOIN>-------
SELECT TABLE1.COL, TABLE2.COL
FROM TABLE1, TABLE2
WHERE TABLE1.COL > TABEL2.COL;
2. 조인 결과에 따라
- INNER JOIN : 조인 조건에 성립하는 데이터만 출력
- OUTER JOIN : 조건에 성립하지 않는 데이터도 출력(LEFT, RIGHT, OUTER)
3. 그외
- NATURAL JOIN : 조건 생략 시 두 테이블에 같은 이름으로 연결되는 조인
- CROSS JOIN : 조건 생략 시 두 테이블 사이 발생 가능한 모든 행을 출력
- SELF JOIN : 한개의 테이블을 두 번 이상 참조하여 연결하는 조인
-------<SELF JOIN>-------
SELECT T1.EMP_ID, T1.FIR_NAME, T1.LAST_NAME, T1.MAN_ID,
T2.EMP_ID, T2.FIR_ID, T2.LAST_NAME
FROM H_TABLE T1, H_TABLE T2
WHERE T1.MAN_ID = T2.EMP_ID
ORDER BY 1, 4;
표준 조인
INNER 조인
- 조인 조건이 일치하는 행만 출력
- ANSI 표준, USING or ON 조건절 필수
-------<ON절 사용시>--------
SELECT TABLE1.COL, TABLE2.COL
FROM TABLE1 INNER JOIN TABLE2
ON TABLE1.J_COL = TABLE2.J_COL;
-------<USING절 사용시>-------
SELECT TABLE1.COL, TABLE2.COL
FROM TABLE1 INNER JOIN TABLE2
USING DEPTNO;
- USING에는 Alias 불가
CROSS 조인
- 생성 가능한 모든 데이터를 출력(카타시안 곱, m*n)
SELECT TABLE1.COL, TABLE2.COL
FROM TABLE1 CROSS JOIN TABLE2;
OUTER 조인
- 동일한 값이 없는 행도 출력
LEFT OUTER JOIN
- 왼쪽 테이블 기준, 오른쪽 데이터 채우기
- 우측 값에서 같은 값이 없으면 NULL
RIGHT OUTER JOIN
- 오른쪽 테이블 기준, 왼쪽 데이터 채우기
- 좌측 값에서 같은 값이 없으면 NULL
FULL OUTER JOIN
- LEFT OUTER JOIN과 RIGHT OUTER JOIN의 합집합(UNION)
참고
728x90
반응형
728x90
반응형

SQL 기본
데이터 무결성
- 개체 무결성
- 기본키는 NULL 값이나 중복값을 가질 수 없음 - 참조 무결성
- 외래키는 NULL이거나 참조 테이블의 기본키와 동일 - 도메인 무결성
- 속성 값이 정의된 도메인에 속한 값 - NULL 무결성
- 특정 속성에 NULL을 허용하지 않는 것 - 고유 무결성
- 특정 속성에 값이 중복되지 않는 것 - 키 무결성
- 하나의 관계에는 적어도 하나의 키가 존재해야 함
SQL 종류
DDL (Data Definition Language) |
CREATE, ALTER, DROP, TRUNCATE |
DML (Data Mnipulation Language) |
INSERT, DELETE, UPDATE, MERGE |
DCL (Data Control Language) |
GRANT, REVOKE |
TCL (Transaction Control Language) |
COMMIT, ROLLBACK |
DQL (Data Query Language) |
SELECT |
SELECT 문
- FROM -> WHERE -> GROUP -> HAVING -> SELECT -> ORDER BY 순서로 실행
SELECT (칼럼명)
FROM (테이블명)
WHERE (조회 조건)
GROUP BY (그룹핑 컬럼명)
HAVING (그룹핑 필터 조건)
ORDER BY (정렬 컬럼명) (정렬방법)
SELECT 절
- 테이블을 불러오는 구문
- Alias 지정 가능
Alias (별칭)
- SELECT 절에서 정의 가능
SELECT EMPNO AS 회원번호
- SELECT 뒤 실행되는 ORDER BY 에서만 사용 가능
- 예약어 사용 불가, 공백, 특수문자 포함하면 쌍따옴표
FROM 절
- 불러올 테이블 명 or 뷰 명
- 여러개 가능하지만, 조인 조건 없으면 카타시안 곱
WHERE 절
- 조회하고 싶은 조건 사용
- NULL 조회는 IS NULL / IS NOT NULL 사용
LIKE 연산자
- LIKE S% : S로 시작하는 모든 속성
- LIKE %S% : S를 포함하는 모든 속성
- LIKE %S : S로 끝나는 모든 속성
- LIKE _S% : 2번째 글자가 S인 모든 속성
GROUP BY 절
- 각 행을 조건에 따라 그룹으로 분리하여 계산하는 구문
HAVING 절
- 그룹 함수 결과를 조건으로 사용할 때 사용
ORDER BY 절
- 행의 순서를 변경할 때 사용
복합 정렬
- 정렬한 값에 동일 값이 있을 경우, 2차 정렬
SELECT NAME, SALARY, H_DATE
FROM EMPLOYEE
WHERE SALARY > 5000
ORDER BY SALARY DESC, H_DATE ASC;
- SALARY 기준 내림차순으로 1차 정렬, 만약 동일값이 있다면 H_DATE 기준 오름차순 정렬
조인(JOIN)
- 여러 테이블을 동시 출력 혹은 참조 할때 사용, FROM 절에 사용
- 테이블 명이 동일 할 경우 Alias 사용
조인 종류
1. 조건에 따라
- EQUI JOIN : JOIN 조건이 동등인 경우
- NON EQUI JOIN : JOIN 조건이 동등이 아닌 경우
-------<EQUI JOIN>-------
SELECT TABLE1.COL, TABLE2.COL
FROM TABLE1, TABLE2
WHERE TABLE1.COL = TABEL2.COL;
-------<NON-EQUI JOIN>-------
SELECT TABLE1.COL, TABLE2.COL
FROM TABLE1, TABLE2
WHERE TABLE1.COL > TABEL2.COL;
2. 조인 결과에 따라
- INNER JOIN : 조인 조건에 성립하는 데이터만 출력
- OUTER JOIN : 조건에 성립하지 않는 데이터도 출력(LEFT, RIGHT, OUTER)
3. 그외
- NATURAL JOIN : 조건 생략 시 두 테이블에 같은 이름으로 연결되는 조인
- CROSS JOIN : 조건 생략 시 두 테이블 사이 발생 가능한 모든 행을 출력
- SELF JOIN : 한개의 테이블을 두 번 이상 참조하여 연결하는 조인
-------<SELF JOIN>-------
SELECT T1.EMP_ID, T1.FIR_NAME, T1.LAST_NAME, T1.MAN_ID,
T2.EMP_ID, T2.FIR_ID, T2.LAST_NAME
FROM H_TABLE T1, H_TABLE T2
WHERE T1.MAN_ID = T2.EMP_ID
ORDER BY 1, 4;
표준 조인
INNER 조인
- 조인 조건이 일치하는 행만 출력
- ANSI 표준, USING or ON 조건절 필수
-------<ON절 사용시>--------
SELECT TABLE1.COL, TABLE2.COL
FROM TABLE1 INNER JOIN TABLE2
ON TABLE1.J_COL = TABLE2.J_COL;
-------<USING절 사용시>-------
SELECT TABLE1.COL, TABLE2.COL
FROM TABLE1 INNER JOIN TABLE2
USING DEPTNO;
- USING에는 Alias 불가
CROSS 조인
- 생성 가능한 모든 데이터를 출력(카타시안 곱, m*n)
SELECT TABLE1.COL, TABLE2.COL
FROM TABLE1 CROSS JOIN TABLE2;
OUTER 조인
- 동일한 값이 없는 행도 출력
LEFT OUTER JOIN
- 왼쪽 테이블 기준, 오른쪽 데이터 채우기
- 우측 값에서 같은 값이 없으면 NULL
RIGHT OUTER JOIN
- 오른쪽 테이블 기준, 왼쪽 데이터 채우기
- 좌측 값에서 같은 값이 없으면 NULL
FULL OUTER JOIN
- LEFT OUTER JOIN과 RIGHT OUTER JOIN의 합집합(UNION)
참고
728x90
반응형