주제: 게시판 만들기
연습을 위해 테이블을 3개를 생성합니다.
회원정보를 담을
Users
칼럼종류
id = PK
name
address
user_level
CREATE TABLE `users` (
`id` INT(10) UNSIGNED NOT NULL DEFAULT '0',
`name` VARCHAR(20) NOT NULL DEFAULT 'User',
`address` VARCHAR(80) NOT NULL DEFAULT 'Incheon',
`user_level` INT(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`)
)
게시글의 종류를 담을
Tag
칼럼종류
id = PK
title
CREATE TABLE `tag` (
`id` INT(10) UNSIGNED NOT NULL,
`title` VARCHAR(20) NOT NULL DEFAULT 'Example title',
PRIMARY KEY (`id`)
)id = PK
writer_id = FK (Users.id)
title
content
tag = FK (Tag.id)
게시글의 정보를 담을 Article
칼럼종류
CREATE TABLE `article` (
`id` INT(10) UNSIGNED NOT NULL,
`writer_id` INT(10) UNSIGNED NOT NULL,
`title` VARCHAR(20) NOT NULL DEFAULT 'Example title',
`content` VARCHAR(100) NOT NULL DEFAULT 'This is example content',
`tag` INT(10) UNSIGNED NOT NULL,
PRIMARY KEY (`id`),
INDEX `tag` (`tag`),
INDEX `writer_id` (`writer_id`),
FOREIGN KEY (`tag`) REFERENCES `tag` (`id`),
FOREIGN KEY (`writer_id`) REFERENCES `users` (`id`)
)
설명: 테이블 생성
CREATE TABLE users (
id INT(10) UNSIGNED NOT NULL DEFAULT '0',
name VARCHAR(20) NOT NULL DEFAULT 'User',
address VARCHAR(80) NOT NULL DEFAULT 'Incheon',
user_level INT(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`)
)
분석:
CREATE TABLE [테이블이름
] (
[컬럼이름
] 데이터형(길이)
//널값을 주고싶지 않을때 = NOT NULL, 기본값(default)값을 주고싶을때 DEFAULT [넣을 값
]
PRIMARY KEY [기본값으로 설정할 컬럼
],
FOREIGN KEY ([외래키로 설정할 현 태이블의 칼럼
]) REFERENCES [참조할 테이블 이름
] (참조할 테이블의 키값
)
);
설명: 값 생성
INSERT INTO Users
(id, name, address, user_level)
VALUES(201511795, 'Kim-YH', 'Incheon', 2);
분석:
INSERT INTO [삽입할 테이블
]
(삽입할 칼럼 종류)
VALUES(삽입할 값);
설명: Article 이라는 Table로 부터 Tag의 title colum과 Users의 name colum을 가져오는 쿼리 문
SELECT Tag.title as tagName, Users.name FROM Article
INNER JOIN Tag ON Article.tag=Tag.id
INNER JOIN Users ON Article.writer_id=Users.id;
분석:
SELECT [참조 테이블
].찾고자하는값, [참조 테이블
].찾고자하는값
// [참조 테이블
].찾고자하는값 AS [찾고자하는값 대신에 표시할 값
]
FROM [현제테이블]
INNER JOIN [참조 테이블
] ON [현제테이블
].외래키 = [참조 테이블
].기본키
'Back_end > Mysql' 카테고리의 다른 글
[ Mysql ] - query 문 연습 | UPDATE | (수정중) (0) | 2018.08.02 |
---|---|
[ Mysql ] - SQL이란? (0) | 2018.07.28 |
[ Mysql ] - query 문 연습 | SELECT | (0) | 2018.07.28 |