Backend/MYSQL

생활코딩( Database2 MySQL ) (4) - SQL과 테이블 구조 & 테이블 생성

코르시카 2021. 5. 30. 22:08

■ SQL

데이터베이스와 interaction 하기 위한 컴퓨터 언어

관계형 database 제어하기 위한 언어 ( 표준화까지 되어있는 언어 )

 

 

■ table의 형태

Column & Row

 

■ table 생성 SQL

- 생성하고자 하는 table

1) sql 스크립트 사용

CREATE TABLE topic(
    id INT(11) NOT NULL AUTO_INCREMENT,
    title VARCHAR(100) NOT NULL,
    description TEXT NULL,
    created DATETIME NOT NULL,
    author VARCHAR(15) NULL,
    profile VARCHAR(200) NULL,
    PRIMARY KEY(id)
);

mysql> source <path to .sql file>

※Mysql 8.0 이상에서 일어나는 현상인지는 모르겠으나

mysql> source <path to .sql file> 로 실행시, path의 dir의 sub는 \문자 아닌, /를 사용해야 함

mysql> source c:/Users/82102/Desktop/CODE_LINK/MAIN_LEARNING/MySQL/Life_coding/Learning-MySQL/table_creation/script.sql;

 

2) mysql cmd line에서 명령어 입력

한줄씩 엔터로 입력하는 방법

 

 

■ MySQL table 변수

각 column에 들어갈 수 있는 데이터 타입을 제한하여

이용자들이 입력하는 데이터의 형식을 제한할 수 있도록 하는 것

> 데이터 타입 정리 참조 : https://blog.martinwork.co.kr/mysql/2020/01/17/mysql-data-type.html

 

1) id : 주민번호 같은, CRUD의 기본이 되는 조회를 담당
              └-> 유일식별자가 있어야 삭제 / 삽입 전에 조회를 하여 table에서 작업이 가능하므로..!
         11은 11길이의 record까지만 저장하겠다는 의미
         NOT NULL - empty field가 되면 안되는 것을 의미, NULL은 반대
         AUTO_INCREMENT - 자동 field값 증가하여 table에 저장, 중복되지 않는 식별자
2) title : 제목
         VARCHAR(size) - size까지만 잘라서 저장, 이 예시는 100글자
         255까지의 문자까지만 허용
3) description : 본문 역할
         TEXT - 6만 5천 길이까지 수용
         LONGTEXT - 4Gb 까지 수용
4) created : 생성된 시간
         DATETIME - 생성 날짜 + 시간
         DATE - 생성 날짜까지만 저장
5) author : 생성자
         VARCHAR(30) - 255글자, 30까지 제한
6) profile ...
7) primary key : 중요컬럼 중복 방지 + 성능 향상(indexing) 인듯

 

 


참조 :

https://opentutorials.org/course/3161/19536

 

SQL과 테이블 구조 - 생활코딩

SQL과 테이블 구조 2018-02-12 01:08:33

opentutorials.org

https://opentutorials.org/course/3161/19537

 

MySQL 테이블의 생성 - 생활코딩

MySQL 테이블의 생성 2018-02-12 01:09:40

opentutorials.org

 

반응형