1. 기본 형태
CREATE TABLE R(
A1 D1,
A2 D2 ....
(INTEGRITY CONSTRAINTS)
)
R: Table의 이름을 정의
A: Table의 attribute(속성)을 정의
D: attribute 값의 타입(int, varchar...)를 정의
📜 예시)
CREATE TABLE instructor(
ID char(5),
name varchar(20) not null,
dept_name varchar(20),
salary numeric(8, 2)
)
INSERT INTO instructor('10211', 'SMITH' 'BIOLOGY', 66000) //Valid
INSERT INTO instructor('10211', null, 'BIOLOGY', 66000) //Invalid
2. Integrity Constraints - Not null, primary key, foreign key references
📜 예시)
CREATE TABLE instructor(
ID char(5), // ID char(5) primary key => 이렇게 attribute 선언에 붙여 쓸 수도 있음
name varchar(20) not null,
dept_name varchar(20),
salary numeric(8, 2),
primary key(ID),
foreign key(dept_name) references department
)
- not null: name에는 null 값이 들어 갈 수 없음
- primary key: ID를 instructor table의 primary key로 조정, 해당 속성은 null이 되거나 중복될 수 없음 ,
- foreign key(K) references R : 해당 table의 key K를 R의 primary key로 선언
DROP TABLE student
DELETE FROM student
ALTER TABLE student ADD gender(male, female) // student에 새로운 attribute gender를 추가
ALTER TABLE student DROP gender //student의 gender attribute 삭제
- Drop table : 테이블 안의 내용과 relation schema 전부 삭제
- Delete from : 테이블 안의 내용을 삭제, relation schema는 유지
참고) Delete from은 테이블 안의 contents에 관여하므로, DDL(data-definition language)보단 DML(data-manipulation language)에 가깝다 볼 수 있다.- Alter table R add A(domain) : 테이블에 새로운 attribute A를 추가, 기존에 있던 tuple들의 속성 A값은 null
- Alter table R drop A : 테이블의 속성 A를 삭제, 대부분의 SQL은 이 기능 지원하지 않음
1. 구문 기본 형태
SELECT A // A: attribute
FROM R // R: relation
WHERE condition // 조건문
SELECT DISTINCT A
FROM R
WHERE condition
SELECT ALL A
FROM R
WHERE condition
2. 응용
SELECT * from instructor // instructor table 그 자체를 출력
SELECT ID, name, salary/12 from instructor // 각 튜플의 salary를 12로 나누어 출력
SELECT name FROM instructor WHERE dept_name = 'Comp.Sci' and salary > 80000
// dept_name이 comp_sci고 salary가 80000이상인 튜플을 모두 가져옴
SELECT name, course_id FROM instructor, teaches WHERE instructor.ID = teaches.ID
// 이는 곧 natural join과 동일한 효과를 가진다.
(ID는 공통 attribute, ID 값이 같은 서로 match)
SELECT name, course_id FROM instructor NATURAL JOIN teaches
// (마찬가지로 ID는 공통 attribute, ID 값이 같은 서로 match)