
SELECT column_name FROM table_name;
SQL 키워드는 대소문자를 구분하지 않음
각 SQL Statements의 끝에는 세미콜론(;)이 필요
SQL을 구성하는 가장 기본적인 코드 블록
예시 코드는 SELECT문이라고 부르며, SELECT/FROM 2개의 keyword로 구성됨
Query : 데이터베이스로부터 정보를 요청하는 것으로 일반적으로 SQL로 작성하는 코드를 쿼리문이라고도 함
SQL은 미국 국립표준협회(ANSI)와 국제 표준화 기구(ISO)에 의해 표준이 채택됨
모든 RDBMS에서 SQL 표준을 지원
각 RDBMS마다 독자적인 기능에 따라 표준을 벗어나는 추가 문법이 존재
DML(Data Manipulation Language) : 데이터베이스 테이블에 새로운 행을 입력하고, 기존의 행을 변경하고 제거
DDL(Data De nition Language) : 테이블로부터 데이터 구조를 생성, 변경, 제거
DCL(Data Control Language) : 데이터베이스와 그 구조에 대한 접근 권한을 제공하거나 제거
| 문장 | 설명 |
|---|---|
| INSERT UPDATE DELETE SELECT | DML(Data Manipulation Language)이라 부르며, 개별적으로 Database 테이블에서 새로운 행을 입력하고, 기존의 행을 변경하고 제거한다. Database로부터 Data를 검색합니다. SELECT 역시 DML로 분류된다. |
| CREATE ALTER DROP RENAME | DDL(Data Definition Language)이라 부르며, 테이블로부터 데이터 구조를 생성, 변경, 제거한다. |
| COMMIT ROLLBACK | DCL 명령문으로 수행한 변경을 관리한다. |
| GRANT REVOKE | DCL(Data Control Language)이라 부르며, Database와 그 구조에 대한 접근권한을 제공하거나 제거한다. |
데이터베이스 객체(table, view, index,…)의 구조를 정의
테이블 생성, 컬럼추가, 타입변경, 제약조건 지정, 수정 등
데이터 조작기능
테이블의 레코드를 CRUD (Create, Retrieve, Update, Delete)
DB, Table의 접근권한이나 CRUD 권한을 정의
특정 사용자에게 테이블의 검색권한 부여/금지 등
새로운 데이터베이스 생성
하나의 서버에 여러개의 DB를 생성하여 사용 가능
CREATE SCHEMA db_name;
# USE 키워드
USE db_name;
# 테이블명의 DB명시
db_name.table_name
계획이나 도식을 나타내는 말로 요약정보, 개요
데이터베이스에서 스키마는 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조
CREATE TABLE table_name (column_1 data_type constraints,
column_2 data_type constraints,
..., );
테이블의 필드에 적용되는 규칙 또는 제한 사항
데이터의 무결성을 유지하고 데이터베이스의 일관성을 보장
주요 제약 조건
1. PRIMARY KEY : 해당 필드를 기본키로 지정
PRIMARY KEY (col_name);
2. FOREIGN KEY : 다른 테이블과의 외래관계를 정의, REFERENCES할 테이블과 컬럼명 명시 필요 (참고무결성) FOREIGN KEY (col_name) REFERENCES refer_table_name(refer_col_name);
3. NOT NULL : 해당 필드에 NULL값을 허용하지 않도록 지정
4. CHECK : 저장되는 값이 특정조건을 만족하는지 확인
CHECK (condition);
5. UNIQUE : 저장되는 값이 다른 값과 중복되지 않도록 지정
한줄에 길게 작성되는 경우 뒷부분에 제약조건 작성 가능
CONSTRAINT Keyword : 제약조건에 이름 부여
CONSTRAINT constraints_name UNIQUE (col_name) CONSTRAINT constraints_name CHECK (col_name IS NOT NULL)

CREATE TABLE group (group_id INT PRIMARY KEY AUTO_INCREMENT,
group_name ENUM('manager', 'full_time', 'part_time') NOT NULL);
CREATE TABLE store (store_id INT PRIMARY KEY AUTO_INCREMENT,
store_name VARCHAR(100) NOT NULL,
store_time DATETIME,
seat INT NOT NULL DEFAULT 0 );
CREATE TABLE employee (emp_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
time DATETIME,
pay INT NOT NULL CHECK (pay > 1000),
group_id INT NOT NULL,
store_id INT NOT NULL,
FOREIGN KEY (group_id) REFERENCES emp_group(group_id));
CREATE TABLE menu (food_id INT PRIMARY KEY AUTO_INCREMENT,
beverage VARCHAR(100) NOT NULL,
season ENUM('spring', 'summer', 'fall', 'winter') NOT NULL,
store_id INT NOT NULL,
FOREIGN KEY (store_id) REFERENCES store(store_id) );
CREATE TABLE sales (store_id INT PRIMARY KEY,
total INT NOT NULL,
profit INT NOT NULL,
price INT NOT NULL );