오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.)
SQL 기능에 따른 분류
- DDL (데이터 정의어) CREATE, ALTER, DROP
- 테이블이나 관계의 구조를 생성, 변경, 제거
- DML(데이터 조작어) SELECT, INSERT, DELETE, UPDATE
- 테이블에 데이터를 검색, 삽입, 삭제, 수정
- DCL(데이터 제어어) GRANT, REVOKE
- 데이터의 사용 권한을 관리
DDL
CREATE TABLE
테이블을 구성하고, 속성과 속성에 관한 제약을 정의하며, 기본키 및 외래키를 정의하는 명령 PRIMARY KEY는 기본키, FOREIGN KEY 는 외래키
기본 문법
CREATE TABLE 테이블 이름 (
컬러명1 데이터타입 조건1, 컬러명2 데이터타입 조건2, 컬러명3 데이터타입 조건3, ...
)
외래키 제약조건을 명시할 때는 반드시 참조되는 테이블(기본키)이 존재해야 한다
ON UPDATE, ON DELETE 는 외래키 속성의 수정과 투플 삭제 시 동작을 나타낸다
ALTER TABLE
생성된 테이브르이 속성과 속성에 관한 제약을 변경하며, 기본키 및 외래키를 변경한다.
ADD, DROP은 속성을 추가하거나 제거할 때 사용
MODIFY 는 속성의 기본값을 설정하거나 삭제할 때 사용
ADD <제약이름>, DROP<제약이름>은 제약사항을 추가하거나 삭제할 때 사용
기본 문법
ALTER TABLE 테이블 이름
[ADD 속성이름 데이터 타입]
[DROP COLUMN 속성이름] 컬럼 삭제
[ALTER COLUMN 속성이름 [NULL | NOT NULL]데이터타입]
[ALTER MODIFY] 테이블 컬럼 수정
[RENAME 전 TO 후] 테이블 컬럼 이름 변경
;
DROP TABLE
테이블을 삭제하는 명령(테이블의 구조와 데이터 모두 삭제하므로 주의)
기본 문법
DROP TABLE 테이블이름;
DML
SELECT
SELECT [ ALL | DISTINCT ] 속성이름(들)
FROM 테이블이름(들)
[ WHERE 검색조건 ]
[ GROUP BY 속성이름 ]
[ HAVING 검색조건 ]
[ ORDER BY 속성이름 [ASC(오름차순) | DESC(내림차순)] ]
[] : 선택적 사용, | : 문법들 중 한개 사용
WHERE
WHERE 절에 조건으로 사용되는 술어
술어 | 연산자 |
비교 | =,<,>,<>,<=,>= |
범위 | BETWEEN <조건> AND <조건> |
집합 | IN, NOT IN |
패턴 | LIKE '<패턴>' |
NULL | IS NULL, IS NOT NULL |
복합조건 | AND, OR, NOT |
와일드 | 문자의미 |
+ | '문자열'+'연결':'문자열 연결' |
% | '%문자' 문자를 0개 이상 포함하는 문자열 |
[ ] | '[0-10]%' : 0~10 사이 숫자로 시작하는 문자열 |
[^] | '[^0-10]%' : 0~10 사이 숫자로 시작하지 않는 문자열 |
_ | '-자%' :두 번째 위치에 '자'가 들어가는 문자열 |
위와 같은 와일드 문자의 종류(특정 문자나 문자열이 포함되어 있는지를 검색하고 싶은 경우)를 사용하여 부분검색(패턴 매칭)을 할 때 IN 대신 LIKE를 사용
SELECT * FROM BOOK WHERE bookname LIKE '%실습';
집계 함수
SUM : 결과 행들의 합
AVG : 결과 행들의 평균
COUNT : 결과 행들의 개수 (중복된 값도 COUNT)
MAX : 결과 행들 중 MAX값을 출력
MIN : 결과 행들 중 MIN값을 출력
GROUP BY, HAVING
- GROUP BY 절은 데이터들을 원하는 그룹으로 나눈 수 있다
- HAVING
- WHERE 절에서는 집계함수를 사용 할 수 없다.
- 집계함수를 가지고 조건비교를 할 때 사용한다.
- GROUP BY절과 함께 사용이 된다.
조인
- 내부조인
- SELECT <속성> FORM 데이블1,데이블2 [WHERE <조인조건> AND <검색조건>]
- SELECT <속성> FROM 테이블1 INNER JOIN 테이블2 ON <조인조건> [WHERE <검색조건>]
- 외부조인
- SELECT <속성> FORM 데이블1 {LEFT|RIGHT|FULL [OUTER]} JOIN 데이블2 ON <조인조건> [WHERE <검색조건>]
부속질의
SELECT * FROM 테이블 WHERE <검색조건>=(SELECT <검색조건> FROM 테이블 (같은 테이블도 가능))
집합연산
UNION 합집합, MINUS 차집합, INTERSECT 교집합 (DBMS 마다 차의가 있다)
EXISTS
원래 단어에서 의미하는 것과 같이 조건에 맞는 튜플이 존재하면 결과에 포함시킨다.
즉 부속질의문의 어떤 행이 조건에 만족하면 TRUE
DCL
INSERT
테이블에 새로운 투플을 삽입하는 명령어
기본 문법
INSERT INTO 테이블이름[(속성리스트)] VALUES (값리스트);
UPDATE
특정 속성 값을 수정하는 명령어
기본 문법
UPDATE 테이블이름 SET 속성이름 1=값1 [, 속성이름 2=값2, ... ] [WHERE <검색조건>];
DELETE
테이블에 있는 기존 투플을 삭제하는 명령
기본 문법
DELETE FROM 테이블이름
[WHERE 검색조건];
Reference - 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간
'CS > Database' 카테고리의 다른 글
데이터 모델링 (0) | 2021.12.17 |
---|---|
ORACLE SQL 정리 - 2 (0) | 2021.11.12 |
관계대수 (0) | 2021.10.29 |
무결성 제약조건 (0) | 2021.10.22 |
데이터베이스 시스템 구성 및 구조 (0) | 2021.10.15 |
댓글