문제 1 : SQL 데이터 명령어
SQL 문장들의 종류
명령어의 종류에는 네 가지가 있다. 데이터 조작어, 데이터 정의어, 데이터 제어어, 트랜잭션 제어어
하나씩 살펴보고 모두 기억해두자
명령어의 종류
데이터 조작어(DML : Data Manipulation Language)
- SELECT
- 데이터베이스에 들어있는 데이터를 조회하거나 검색하기 위한 명령어를 말한다.
- RETRIEVE라고도 한다
- INSERT, UPDATE, DELETE
- 데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류의 명령어들을 말한다.
- 데이터 추가, 수정, 삭제와 같은 조작 명령어는 DML이다
데이터 정의어(DDL : Data Definition Language)
- CREATE, ALTER, DROP, RENAME
- 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들
- 구조를 생성, 변경, 삭제 또는 이름 변경 과 같이 데이터 구조와 관련된 명령어는 DDL이다
데이터 제어어(DCL : Data Control Language)
- GRANT, REVOKE
- 데이터베이스에 접근해 객체들을 사용하도록 권한을 주고 회수하는 명령어는 DCL이다
트랜젝션 제어어(TCL : Transaction Control Language)
- COMMIT, ROLLBACK
- 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어를 의미한다
각 명령어의 형식
DML
명령어 | 형식 |
---|
SELECT | SELECT [조회할 열 이름], [열 이름], ... FROM [조회할 테이블 이름] |
INSERT | INSERT INTO 테이블이름 [(열 이름)] VALUES (열값 리스트) |
UPDATE | UPDATE 테이블이름 SET [열] = '변경할 값' WHERE [조건] |
DELETE | DELETE FROM 테이블명 WHERE 조건식 |
DDL
명령어 | 형식 |
---|
CREATE | CREATE TABLE 테이블명 (컬럼명 데이터타입, ...) |
ALTER | ALTER TABLE 테이블명 RENAME [변경할 테이블명] ENGINE = [형식] ADD [컬럼명][타입] MODIFY [컬럼명][타입] DROP 컬럼명 CHANGE [변경 전 컬럼명][변경 후 컬럼명] [컬럼 타입] |
DROP | DROP TABLE 테이블명 |
RENAME | RENAME TABLE 변경 전 테이블명 TO 변경 할 테이블 명 |
DCL
명령어 | 형식 |
---|
GRANT | GRANT 권한내용 ON 테이블명 TO 사용자 [WITH GRANT OPTION]
관리자가 사용자에게 테이블에 대한 권한 부여 WITH GRANT OPTION : 사용자가 관리자로 부여받은 권한을 다른 사용자에게 부여할 수 있는 부여권까지 부여하고자 할 때 사용하는 옵션 |
REVOKE | REVOKE 권한내용 ON 테이블명 FROM 사용자 [CASCADE] 관리자가 사용자에게 부여했던 테이블에 대한 권한 취소 CASCADE : 사용자가 다른 사용자에게 권한을 부여했을 경우 CASCADE 옵션을 이용해 사용자의 권한을 취소하면 사용자가 부여했던 다른 사용자들의 권한도 연쇄적으로 취소됨 |
TCL
트랜잭션 제어어는 그대로 사용한다.
COMMIT, ROLLBACK
문제 9 : 외래키(FOREIGN KEY) 설정
외래키란?
외래키는 한 테이블을 다른 테이블과 연결해주는 역할을 한다.
외래키가 설정된 테이블에 레코드를 입력하면, 기준이 되는 테이블의 내용을 참조해서 레코드가 입력된다.
외래키 설정
REFERENCES 설명