본문 바로가기

Back_end/Mysql

[ Mysql ] - query 문 연습 | Table 생성 |

query


주제: 게시판 만들기

연습을 위해 테이블을 3개를 생성합니다.

  1. 회원정보를 담을 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`)
    )

  2. 게시글의 종류를 담을 Tag

    칼럼종류

    • id = PK

    • title


    CREATE TABLE `tag` (
    `id` INT(10) UNSIGNED NOT NULL,
    `title` VARCHAR(20) NOT NULL DEFAULT 'Example title',
    PRIMARY KEY (`id`)
    )
  3. 게시글의 정보를 담을 Article

    칼럼종류

    • id = PK

    • writer_id = FK (Users.id)

    • title

    • content

    • tag = FK (Tag.id)

  1. 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`)
    )



  1. 설명: 테이블 생성


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 [참조할 테이블 이름] (참조할 테이블의 키값)

);




  1. 설명: 값 생성


INSERT INTO Users
(id, name, address, user_level)
VALUES(201511795, 'Kim-YH', 'Incheon', 2);

분석:

INSERT INTO [삽입할 테이블]

(삽입할 칼럼 종류)

VALUES(삽입할 값);




  1. 설명: 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