2019. 4. 24. 15:43ㆍDataBase
SQL - Structured Query Language
관계형 데이터베이스에 접근(생성, 변경, 수정, 삭제)하기 위한 비절차적 표준 언어이다.
DML - Date Manipulation Language
데이터 조작어,
데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는데 사용하는 언어
SELECT, INSERT, UPDATE, DELETE
**
SELECT [DISTINCT] 칼럼(들)
FROM 테이블(들)
[ WHERE 조건 [ 중첩질의 ] ]
[ GROUP BY 칼럼(들) ]
[ HAVING 조건]
[ ORDER BY 칼럼(들) ] [ ASC | DESC ]
SELECT - 추출할 데이터 항목을 기술
FROM - 어떤 데이터 오브젝트에서 무슨 테이블의 데이터를 조회할 것인지 기술
WHERE - 대상이 도는 테이블에서 가져올 데이터에 대해 조건을 부여하여 데이터를 조회하는 경우에 기술
GROUP BY - 가져온 데이터를 그룹으로 조합하여 그룹에 대해서 데이터를 생성. HAVING을 이용하여 그룹으로 구성한 내용들 중에 조건을 부여하여 조건에 해당되는 그룹의 데이터를 생성할 수 있다.
HAVING - GROUP BY 절에서 그룹으로 구성한 내용들 중 조건을 부여하여 조건에 해당되는 그룹의 데이터를 생성
ORDER BY - 가져온 데이터를 주어진 칼럼값에 의해 오름차순이나 내림차순으로 정렬
SELECT 문장의 처리 순서
1. SELECT
2. FROM
3. WHERE
4. GROUP BY
5. HAVING
6. ORDER BY
한번에 데이터를 삽입하는 방법
INSERT ALL
INTO TABLE_NAME VALUES( ... )
INTO TABLE_NAME VALUES( ... )
...
...
SELECT *FROM DUAL;
-> 테이블에 데이터가 한번에 삽입된다.
테이블에서 PK/FK 선언
PK -> CONSTRAINT 제약조건 이름 PRIMARY KEY (COLUMN)
FK -> CONSTRAINT 제약조건 이름 FOREIGN KEY (COLUMN) REFERENCES 참조_테이블(참조_COLUMN)
테이블 밖에서 PK/FK 선언
PK -> ALTER TABLE TABLE_NAME ADD CONSTRAINT 제약조건 이름 PRIMARY KEY (COLUMN)
FK -> ALTER TABLE TABLE_NAME ADD CONSTRAINT 제약조건 이름 REFERENCES 참조_테이블(참조_COLUMN)
JOIN
카르테시안 조인 - 조인된 테이블 사이에 조건이 걸리지 않을 경우에 발생하며, 테이블간의 모든 경우의 수에 대해서 로우가 생성되는 조인 방식
내부 조인 - 조인되는 테이블간에 서로 연결되는 칼럼이 존재하여 이것에 의해 연결된 로우의 데이터가 출력
외부 조인 - 내부 조인을 사용할 경우 항상 양쪽에 데이터가 연결되는 데이터값이 존재해야 테이블에 데이터를 가져올 수 있다. 외부 조인은 조인되는 테이블에서 B 테이블에 연결되는 칼럼값이 존재하지 않아도 A 테이블의 데이터를 가져올 수 있다.
LEFT OUTER JOIN - 조인문의 왼쪽에 있는 테이블의 모든 결과를 가져 온 후 오른쪽 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL로 표시
SELECT *
FROM EMP LEFT OUTER JOIN DEPT
ON EMP.DEPTNO = DEPT.DEPTNO
RIGHT OUTER JOIN - 조인문의 오른쪽에 있는 테이블의 모든 결과를 가져온 후 왼쪽의 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL로 표시
SELECT *
FROM EMP RIGHT OUTER JOIN DEPT
ON EMP.DEPTNO = DEPT.DEPTNO
FULL OUTER JOIN - 양쪽 모두 조건이 일치하지 않는 것까지 모두 결합해 출력
SELECT *
FROM EMP FULL OUTER JOIN DEPT
ON EMP.DEPTNO = DEPT.DEPTNO
GROUP SELECT
COUNT | 테이블의 로우 수를 출력 |
SUM | 칼럼값을 더하여 출력 |
AVG | 칼럼값의 평균을 구하여 출력 |
MAX | 대상이 되는 로우에서 제일 큰 칼럼값에 대한 로우 출력 |
MIN | 대상이 되는 로우에서 제일 작은 칼럼값에 대한 로우 출력 |
** SELECT 절에 단일 칼럼과 그룹 함수가 있는 경우에는 반드시 GROUP BY 절에 단일 칼럼에 대한 그룹핑으로 명시해야 한다.
UNION | 두 개의 테이블을 조회하여 중복을 제외한 모든 로우 출력 |
UNION ALL | 두 개의 테이블을 조회하여 중복을 포함한 모든 로우 출력 |
INTERSECT | 두 개의 테이블에 모두 존재하는 데이터만 로우로 출력 |
MINUS | 첫 번째 테이블에만 존재하는 데이터만 로우로 출력 |
UPDATE
UPDATE - 데이터를 수정해야 할 테이블이나 뷰를 지정
SET - 수정해야 할 칼럼을 기술하고 수정해야 할 값을 지정
WHERE - 대상이 되는 테이블에서 가져올 데이터에 대해 조건을 부여하여 데이터를 조회하는 경우에 기술
예제 ) 제품 코드가 1001인 제품의 수량을 100개로 변경하라
UPDATE ITEM
SET QTY = 100
WHERE ITEMCD = 1001;
[출처 : 데이터베이스 설계와 구축 - 성능까지 고려한 데이터 모델링, 한빛미디어, 저자 이춘식]
'DataBase' 카테고리의 다른 글
DDL (0) | 2019.04.25 |
---|---|
물리 설계 - 데이터베이스 구축 (0) | 2019.04.17 |
모델링 검토 - 2 (0) | 2019.04.16 |
모델링 검토 - 1 (0) | 2019.04.16 |
프로세스 모델링 (0) | 2019.04.15 |