1. DML : Data Manipulatiion Language
> DDL에서 정의한 대로 입력된 데이터를 수정, 삭제, 조회하는 명령어다.
0) SELECT
1) INSERT
INSERT INTO 테이블명(칼럼1, 칼럼2 ---) VALUES (데이터1, 데이터2)
-- 또는
INSERT INTO 테이블명 VALUES (모든 칼럼에 대한 데이터 리스트)
2) UPDATE
UPDATE 테이블명 SET 칼럼명1 = 새로운 데이터, 칼럼명2 = 새로운 데이터 (WHERE 수정할 데이터에 대한 조건);
3) DELETE
DELETE FROM 테이블명 (WHERE 수정할 데이터에 대한 조건)
+) 삭제 데이터에 대한 로그를 남기지 않고 삭제할 때는 아래 방법 사용
TRUNCATE TABLE 테이블명
4) MERGE
- 테이블에 새로운 데이터를 입력하거나 이미 저장되어 있는 데이터에 대한 변경 작업을 한 번에 할 수 있도록 해주는 명령어다.
MERGE
INTO 타겟 테이블명
USING 비교 테이블명
ON 조건
WHEN MATCHED THEN
UPDATE SET 칼럼명 = 새로운 데이터 [, 칼럼명 = 새로운 데이터 ...]
WHEN NOT MATCHED TEHN
INSERT [(칼럼명1, 칼럼명2 ...)]
VALUES (데이터1, 데이터2 ...);
2. TCL : Transaction Control Language
1) 특징 : 원자성(Atomicity)| 일관성(Consistency) | 고립성(Isolation) | 지속성(Durability)
2) COMMIT
- INSERT, UPDATE, DELETE 후 변경된 내용을 확정하고 반영하는 명령어다. 즉 COMMIT을 실행해야만 최종적으로 데이터 파일에 기록되는 것이다.
3) ROLLBACK
- 변경된 내용을 취소하는 명령어다.
4) SAVEPOINT
- ROLLBACK을 할 때 전체 작업을 되돌리지 않고 일부만 되돌릴 수 있게 하는 명령어다.
3. DDL : Data Definition Language
- 데이터를 정의하는 SQL문
1) CREATE
- 테이블 생성 명령어
CREATE TABLE 테이블명 (
칼럼명1 데이터타입 (DEFAULT/NULL여부),
칼럼명2 데이터타입,
칼럼명3 데이터타입,
CONSTRAINT 테이블명_PK PRIMARY KEY (칼럼명1)
CONSTRAINT 테이블명_FK FOREIGN KEY (칼럼명2) REFERENCES 테이블명2(칼럼명2)
CONSTRAINT 칼럼명3 CHECK(칼럼명3 IN ('Y','N'))
...
)
+) 테이블 생성시 규칙
- 테이블명은 고유해야 한다.
- 한 테이블 내에서 칼럼명은 고유해야 한다.
- 칼럼 명 뒤에 데이터 유형과 데이터 크기가 명시되어야 한다.
- 칼럼에 대한 정의는 괄호안에 기술한다.
- 각 칼럼들은 ,로 구분된다.
- 테이블명과 칼럼명은 숫자로 시작될 수 없다.
- 마지막은 ;으로 끝난다.
+) 기존 존재하는 테이블을 복사해서 생성하고 싶다면
CREATE 테이블명 AS SELECT * FROM 복사할 테이블명;
2) ALTER
- 테이블 구조를 변경할 때 사용
ALTER TABLE 테이블명 ADD | DROP COLUMN 칼럼명 | MODIFY | ERNAME COLUMN | ADD CONSTRAINT ...
- 테이블을 삭제할 때는
DROP TABLE 테이블명 [CASCADE CONSTRAINT]; -- 참조 제약조건도 함께 삭제할 때
-- 또는
TRUNCATE TABLE 테이블명
4. DCL : Data Control Language
- user를 생성하고 user에 대한 데이터 컨트롤 할 수 있는 권한을 부여하거나 회수하는 명령어
1) USER 관련 명령어
CREATE USER 사용자명 IDENTIFIED BY 패스워드 ;
ALTER USER 사용자명 IDENTIFIED BY 패스워드 ;
DROP USER 사용자명;
2) 권한 관련 명령어
GRANT 권한 TO 사용자명;
REVOKE 권한 TO 사용자명;
3) ROLE 관련 명령어
CREATE ROLE 롤명;
GRANT 권한 TO 롤명;
GRANT 롤명 TO 사용자명;
'[스파르타코딩클럽]데이터분석 과정 > LEARN' 카테고리의 다른 글
[토스] PO Session 정리 (0) | 2024.03.26 |
---|---|
SQLD 공부 (4) SQL 활용 (0) | 2024.02.23 |
SQLD 공부 (3) SQL 기본 (0) | 2024.02.22 |
[데이터 시각화] Tableau 기초 강의 공부 (1) (1) | 2024.02.21 |
SQLD 공부 (2) 데이터 모델과 SQL (0) | 2024.02.21 |