2022. 6. 23. 12:24ㆍSQL
테이블은 표 형태로 구성된 2차원 구조로,
행 = 로우(row) = 레고드(record)
열 = 컬럼(column) = 필드(field)
라고 부른다.
테이블을 만들 때엔 2가지 방법이 있는데
마우스로 클릭해서 편리하게 만드는 방법,
- 이전에 앞장에서 테이블 만들 때 했던 방식 -
이걸 GUI방식이라고 한다. 그리고 그 외엔
직접 SQL문을 입력하는 방식이 있다.
GUI 환경에서 테이블 만들기
https://my-own-record-210621.tistory.com/26
방법은 이전과 동일한데 조금 추가 사항이 있다.
Workbench 에서
CREATE DATABASE naver_db;
입력하여 새로운 데이터베이스를 생성해준다.
네비게이터에 새로 생성된 걸 확인하고
naver_db 더블클릭. (혹은 USE naver_db)
테이블 위에서 마우스 오른쪽 버튼,
Create Table 선택하면 된다.
01) '자동증가'를 설정해 줄 때는
AI(Auto Increasing)에 체크 박스 해줄 것.
그리고 UNSIGNED는 UN이다.
02) 외래키 지정은 직접 SQL로 손코딩 해줄 것.
사실 최신 버전에서는 GUI 환경에서도 외래키를
설정해줄 수 있다곤 하지만 오류가 나는 경우가 많아
손코딩을 추천한다고 한다. GUI 환경에서 얼추 완성하고
Apply 클릭하면 SQL문 화면 팝업창이 뜰 것이다.
이런 식으로. 구매 테이블에 외래키가
있으므로 우선 여기까지는 동일하게
GUI환경에서 만들어주고 Apply 단계까지
오면 아래와 같은 팝업창이 나온다.
왼쪽에서 오른쪽 화면과 같이 손코딩으로
직접 외래키를 지정해주는 것이다.
마지막 괄호 사이에 Enter를 치고 콤마를
붙인 뒤 한 줄만 더 적어주면 된다.
외래키 지정 - FOREIGN KEY(mem_id)
이게 memeber 테이블의 mem_id와
연결되어 있으므로 REFERENCES
member(mem_id)라고 추가해주면 된다.
SQL로 데이터베이스+테이블 만들기
DROP DATABASE IF EXISTS naver_db;
CREATE DATABASE naver_db;
만들고자 하는 DB가 기존에 있으면
오류를 발생하므로 우선 DROP DB부터
해주고 새로 데이터베이스를 생성한다.
USE naver_db;
DROP TABLE IF EXISTS member; -- 기존에 테이블이 있으면 삭제(이전에 DB를 삭제했기 때문에 없겠지만 그래도 불안하면 실행)
CREATE TABLE member; -- 회원 테이블 생성
TABLE 생성까지 마쳤으면 아래와 같이
다음 줄에 (괄호)열고 내가 만들고 싶은 만큼
열을 조건을 같이 붙여 만들어주면 된다.
# 회원 테이블
USE naver_db;
DROP TABLE IF EXISTS member;
CREATE TABLE member;
( mem_id CHAR(8) NOT NULL PRIMARY KEY,
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,
debut_date DATE NULL
);
# 구매 테이블
DROP TABLE IF EXISTS 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)
);
The End.
'SQL' 카테고리의 다른 글
[SQL 독학] 가상의 테이블 : 뷰(생성, 수정, 삭제) (0) | 2022.07.19 |
---|---|
[SQL 독학] SQL 테이블 제약조건(기본키, 외래키, 고유키) (0) | 2022.06.23 |
[SQL 독학] SQL 프로그래밍(IF문, CASE문, WHILE문, 동적SQL) (0) | 2022.06.11 |
[SQL 독학] JOIN (0) | 2022.06.09 |
[SQL 독학] MySQL의 데이터 형식 (0) | 2022.06.07 |