기록과 정리의 공간

[MySQL] (20200718) TIL 본문

DATABASE/MySQL

[MySQL] (20200718) TIL

딸기맛도나쓰 2020. 7. 18. 20:25

TIL - 인프런 강의를 듣고 공부한 내용을 정리(강의 링크)

  • 공부한 내용
    1. DDL(Data Definition Language)?
    2. SQL로 데이터베이스 만들기
    3. SQL로 테이블 만들기

0. DDL(Data Definition Language)?

  • 데이터 정의어 (CREATE, DROP, ALTER, TRUNCATE 등)
  • 데이터베이스의 스키마를 정의하거나 조작하기 위해 사용한다.

1. SQL로 데이터베이스 만들기

  • 데이터베이스 생성

    CREATE DATABASE dabname;

    또는

    CREATE SCHEMA dbname;
  • 데이터베이스 목록 보기

    SHOW DATABASES;
  • 생성한 db사용 시

    USE dbname;
  • 데이터베이스 삭제 (IF EXISTS는 해당 db이름이 없더라도 오류를 발생시키지 않도록 주는 옵션)

    DROP DATABASE [IF EXISTS] dbname;

2. SQL로 테이블 만들기

  • 테이블 생성하기
    테이블을 생성하고자 하는 db를 먼저 사용하겠다고 명령해야함(USE)

    USE dbname;

    그 후, CREATE으로 테이블 생성

    CREATE TABLE tablename (
      컬렴명 데이터형,
      컬렴명 데이터형,
      .
      .
      .
      PRIMARY KEY(컬럼명1, 컬럼명2, ...)
      );

    예시:

    CREATE TABLE mytable (
    id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    modelnumber VARCHAR(15) NOT NULL,
    series VARCHAR(30) NOT NULL,
    PRIMARY KEY(id)
    );
  • 데이터 타입 정리

  • 숫자 타입의 컬럼 정의 문법 (위의 예시 참고)

    id INT [UNSIGNED] [NOT NULL] [AUTO_INCREMENT]
    • id : 컬럼명, 가능한한 영어 소문자 중심으로 명명
    • INT : 컬럼에 대한 데이터 타입 선언
    • [UNSIGNED] : 옵션. 예를 들어 TINYINT로 지정 시 -128 ~ +127이고, TINYINT UNSIGNED로 지정하면 0 ~ 255가 됨. 즉, 범위가 양수로 옮겨간다.
    • [NOT NULL] : 옵션. 이를 명시하면, 해당 컬럼 데이터에 값이 할당되지 않는 경우를 허락하지 않는다는 의미이다. (공백을 허용하지 않는다는 의미) 즉, 데이터가 반드시 들어가야하는 컬럼의 경우에 해당 옵션을 사용한다.
    • [AUTO_INCREMENT] : 테이블에 데이터 등록 시, 해당 컬럼은 자동으로 숫자가 1씩 증가하여 저장됨. 해당 컬럼은 양의 정수만 등록 가능해야하고, 테이블 안에서 해당 옵션은 단 하나의 컬럼에만 적용 가능하다.
  • PRIMARY KEY가 될 필드 지정 문법

    PRIMARY KEY(컬럼명1, 컬럼명2, ...)
    • 컬럼명1, 컬럼명2, ... : PRIMARY KEY로 지정할 컬럼명을 넣음. 한 개 이상 지정가능하나, 보통 한 개지정.
    • PRIMARY KEY로 지정할 컬럼은 NULL값 등록 불가해야하고, 컬럼안에서 중복값이 없도록 유일한 값이여야한다.
      따라서, 보통 [NOT NULL], [AUTO_INCREMENT] 선언이 되어있는 경우가 많다.
  • 현재 db안에 존재하는 테이블 목록 조회하기

    SHOW TABLES;
  • 테이블 구조 보기

    DESC tablename;
  • 테이블 삭제하기

    DROP TABLE [IF EXISTS] tablename;

'DATABASE > MySQL' 카테고리의 다른 글

[MySQL] (20200807) TIL - 1  (0) 2020.08.07
[MySQL] Workbench - Error Code : 1175 해결하기  (0) 2020.08.04
[MySQL] (20200804) TIL  (0) 2020.08.04
[MySQL] (20200803) TIL  (0) 2020.08.03
[MySQL] (20200729) TIL  (0) 2020.07.29
Comments