CREATE TABLE문법:
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
....
);
NOT NULL => NULL 불가; ex) name NOT NULL, ...
DEFAULT => DEFAULT 값 정의; ex) age INT DEFAULT 0, ...
외래키가 DELETE, UPDATE 되면 어떻게 할지 정하기
- ON DELETE NO ACTION: 아무 액션도 없음.
- ON DELETE CASCADE: 관련 투플 함께 삭제
- ON DELETE SET NULL: 관련 투플 NULL로 변경
- ON DELETE SET DEFAULT: 관련 투플 DEFAULT 값으로 변경
UPDATE도 문법, 방법 동일; ex) ON UPDATE CASCADE
무결성 제약 조건 정의: CHECK & CONSTRAINT
CHECK (stock >= 0 AND stock <= 10000);CONSTRAINT CHK_CPY CHECK(company="HanBit");ALTER TABLEADD <AttributeName> <Type>ALTER TABLE Customer ADD RegisterDate DATE;DROP COLUMN <AttributeName>ALTER TABLE Customer DROP COLUMN RegisterDate;ADD CONSTAINTALTER TABLE Customer ADD CONSTATINT CHK_AGE CHECK(age >= 20);DROP CONSTRAINTALTER TABLE Customer DROP CONSTRAINT CHK_AGE;DROP TABLEDROP TABLE Customer;SELECTSELECT column1, column2, ...
FROM table_name;
SELECT column1, column2, ...
FROM table_name
WHERE name="Andrew";
SELECT column1, column2, ...
FROM table_name
WHERE age <= 20;
LIKE를 이용한 검색SELECT column1, column2, ...
FROM table_name
WHERE name LIKE "A_%"; // Start with A and is at least 2 characters in length
% = Anything_ = One letterIS NULL, IS NOT NULL을 이용한 검색SELECT column1, column2, ...
FROM table_name
WHERE column1 IS NOT NULL;
ORDER BY)SELECT column1, column2, ...
FROM table_name
ORDER BY column1;
SUM, AVERAGE, COUNT)SELECT column1, column2, AVERAGE(column3) as Col3Avg...
FROM table_name;
GROUP BY)SELECT column1, column2, ...
FROM table_name
GROUP BY column1;
JOIN을 활용한 검색SELECT column1, column2, ...
FROM table_name
JOIN table_name2 ON table_name.column1=table_name2.column2;
SELECT column1, column2, ...
FROM (SELECT column1, column2, ...
FROM table_name2);
INSERT INTOINSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
UPDATEUPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
DELETE FROMDELETE FROM table_name WHERE condition;
뷰 (View): 다른 기본 테이블을 기반으로 만들어진 가상 테이블. 기본 테이블의 내용을 쉽게 검색할 수 있고, 기본 테이블의 변경 및 삭제는 제한적으로만 가능하다.
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
GROUP BY, DISTINCT 키워드가 들어간 뷰JOIN된 뷰WHERE절 없이도 쉽게 검색 가능DROP VIEW view_name;