728x90
CREATE문을 사용해 테이블 만들기
아주 간단한 형태의 테이블을 먼저 만들어 보자.
컬럼명과 각 컬럼의 데이터 형식만 지정해도 하나의 테이블을 만들 수 있다.
CREATE TABLE '테이블 이름'
( '컬럼명1' '데이터 형식',
'컬럼명2' '데이터 형식',
...
);
위의 기본 형태에 추가 제약조건들을 넣어서 테이블을 만들 수 있다.
제약조건들은 '데이터 형식' 뒤에 이어서 명시하면 된다.
제약조건을 추가해 테이블 생성
--기본 형태
CREATE TABLE '테이블 이름'
( '컬럼명1' '데이터 형식' '제약조건1' '제약조건2',
'컬럼명2' '데이터 형식',
...
);
--예시 테이블
CREATE TABLE member -- 회원 테이블
( mem_id CHAR(8) NOT NULL PRIMARY KEY, --NULL을 허용 안하고 기본키이다
mem_name VARCHAR(10) NOT NULL,
mem_number TINYINT NOT NULL,
addr CHAR(2) NOT NULL,
phone1 CHAR(3) NULL,
phone2 CHAR(8) NULL,
height TINYINT UNSIGNED NULL, --양수 범위만 사용하고 NULL을 허용한다
debut_date DATE NULL
);
추가로 두 개의 테이블의 관계를 지정할 수 있다.
이 때, 외래키(FOREIGN KEY)를 사용해 두 테이블 간의 관계를 정의한다.
위의 member 테이블과 관계를 갖는 buy 테이블을 만들어보자.
member 테이블과 일대다 관계의 buy 테이블 만들기
CREATE TABLE buy
( num INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
mem_id CHAR(8) NOT NULL,
prod_name CHAR(6) NOT NULL,
group_name CHAR(4) NULL ,
price INT UNSIGNED NOT NULL,
amount SMALLINT UNSIGNED NOT NULL ,
FOREIGN KEY(mem_id) REFERENCES member(mem_id)
);
SQL마지막 부분의 'FOREIGN KEY(mem_id) REFERENCES member(mem_id)'의 의미를 해석해보자.
buy테이블의 mem_id가 외래키(FOREIGN KEY)이며, member테이블의 mem_id를 참조한다는 뜻이다.
위의 설정으로 buy 테이블의 mem_id와 member 테이블의 mem_id는 서로 연결되었다.
이렇게 외래키로 지정하게 되면 buy 테이블의 mem_id는 member 테이블의 mem_id로 등록된 데이터만 사용 가능하다.
즉 member로 등록되지 않은 회원은 구매를 할 수 없다.
728x90
'개발공부 > 혼자공부하는 SQL' 카테고리의 다른 글
| [SQL] 뷰의 생성, 수정, 삭제 (0) | 2023.03.13 |
|---|---|
| [SQL] 테이블 제약조건(기본키, 외래키, 고유키) (0) | 2023.03.11 |
| [SQL] SQL 프로그래밍(IF, CASE, WHILE, 동적 SQL) (0) | 2023.03.10 |
| [SQL] JOIN(INNER JOIN, OUTER JOIN, CROSS JOIN, SELF JOIN) (0) | 2023.03.09 |
| [SQL] MySQL의 데이터 형식 (0) | 2023.03.08 |