[DDL]
- CREATE : DB, Table, View, Index 등 생성
- ALTER : Table의 속성(Attribute), 도메인(Domain), 제약조건(Constraint) 등 변경
- DROP : DB, Table, View, Index 등 삭제
- TRUNCATE : Table의 모든 행 삭제
# CREATE 문법
CREATE TABLE 테이블명 (
컬럼명1 자료형 [DEFAULT 기본값][제약조건]
...
컬럼명N 자료형 [DEFAULT 기본값][제약조건]
);
# ALTER 문법, FK = FOREIGN KEY(외래키)
# 컬럼 추가 SQL 문법
ALTER TABLE 테이블명 ADD CONSTRAINT [제약조건명] FK ([컬럼명])
REFERENCES [참조 대상 테이블명]([참조 대상 컬럼명])
[외래키 옵션];
# 외래키(FK, FOREIGN KEY) 추가 문법
1) ON UPDATE/DELETE CASCADE : 부모 데이터 삭제 시 자식 데이터도 삭제
2) ON UPDATE/DELETE SET NULL : 부모 데이터 삭제 시 자식 데이터는 NULL로 수정
3) ON UPDATE/DELETE SET DEFAULT : 부모 데이터 삭제 시 자식 데이터는 DEFAULT값 수정
4) ON UPDATE/DELETE RESTRICT : 자식 테이블이 참조하고 있는 경우 데이터 삭제 불가
5) ON UPDATE/DELETE NO ACTION : RESTRICT와 동일하며 옵션 미지정 시 자동 선택됨
# DROP(DB / TABLE) + IF EXISTS
DROP DB DB명;
DROP DB 테이블명;
DROP DB IF EXISTS DB명;
DROP TABLE IF EXISTS 테이블명;
# TRUNCATE 문법
TRUNCATE TABLE 테이블명;
[DML]
- SELECT : Table, View의 특정 조건 데이터 조회
- INSERT : Table에 특정 조건의 데이터 입력
- UPDATE : Table의 특정 조건 데이터 수정
- MERGE : Table에 특정 조건에 따라 데이터를 입력(INSERT)하거나 수정(UPDATE)
- DELETE : Table의 특정 조건의 데이터 삭제
# SELECT 문법
SELECT (필드명 | *) FROM 테이블명 [WHERE 조건문];
중복값 제거(DISTINCT)
SELECT DISTINCT 필드명 FROM 테이블명;
오름차순 정렬 (ORDER BY) :
SELECT (필드명 | *) FROM 테이블명 ORDER BY 필드명;
내림차순 정렬 (ORDER BY ... DESC) :
SELECT (필드명 | *) FROM 테이블명 ORDER BY 필드명 DESC;
혼합 정렬 (오름, 내림) :
SELECT (필드명 | *) FROM 테이블명 ORDER BY 필드명1 DESC, 필드명2 ASC;
별칭 이용 처리
SELECT 필드명 AS 별칭 FROM 테이블명; -- 해당 필드에 새로운 별칭 부여
SELECT 필드면 FROM 테이블명 AS 별칭; -- 해당 테이블에 새로운 별칭 부여
# INSERT 문법 컬럼명과 값의 위치는 동일하게 입력하도록한다.
INSERT INTO 테이블명 [(컬럼명1, ... , 컬럼명N)] VALUES (값1, ... , 값N);
EX)
INSERT INTO GreatMen(ID, Name, Date, RoomNum)
VALUES (1, '홍길동', '2022-02-09', 1601);
생략할 수 있는 필드
1. NULL을 저장할 수 있도록 설정된 필드
2. DEFAULT 제약 조건이 설정된 필드
3. AUTO_INCREMENT 키워드가 서정된 필드
# UPDATE 문법
UPDATE 테이블명 SET 수정컬럼명1 = 값1, ... 수정컬러명N = 값N [WHERE 조건문];
쉽게 보기
UPDATE 테이블명
SET 필드명1 = 값1, ... 필드명N = 값N
WHERE 필드명 = 값
# DELETE 문법
DELETE FROM 테이블명 [WHERE 조건식];
테이블 레코드 삭제
DELETE FROM 테이블명 WHERE 필드명 = 값;
테이블의 모든 데이터 삭제
DELETE FROM 테이블명;
# Merge 문법
MERGE INTO 메인테이블명 USING 서브테이블명 ON (조건)
WHEN MATCHED THEN
UPDATE SET 컬럼1 = 값1, ... 컬럼N = 값N
WHEN NOT MATCHED THEN
INSERT (컬럼1, ... 컬럼N) VALUES (값1, ... , 값N)
[DCL]
- GRANT : 특정 사용자에게 특정 객체에 대한 특정 작업 수행 권한 부여
- REVOKE : 특정 사용자에게 부여된 권한 회수
# GRANT 문법
GRANT 권한 ON 객체명 TO 사용자 (사용자명 | PUBLIC)
권한 : SELECT, INSERT, DELETE, UPDATE, REFERENCES 중 한 개 이상
EX)
-- STUDENT에게 SCORE 테이블에 대해 SELECT 연산 수행할 수 있는 권한 부여.
GRANT SELECT ON SCORE TO STUDENT
-- 모두에게 권한 부여 (PUBLIC)
GRANT SELECT ON SCORE TO PUBLIC
-- A에게 모든 권한 부여 (ALL PRIVILEGES)
GRANT ALL PRVILEGES ON SCORE TO A
-- 권한 전달 가능 옵션
GRANT SELECT ON SCORE TO A WITH GRANT OPTION
# REVOKE 문법
-- A에게 부여된 SCORE 테이블에 대한 SELECT 권한 회수
REVOKE SELECT ON SCORE FROM A
'SQL' 카테고리의 다른 글
DCL (0) |
2022.03.10 |
DML (0) |
2022.03.07 |
DDL (0) |
2022.02.25 |