ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 04 - 1 DDL (데이터 타입, 제약 조건)
    코린이 유치원/SQL반 2022. 6. 2. 23:24

    DDL은 Data Definition Language의 약자

    DDL과 DML을 집중적으로 배워볼 것인데 오늘은 DDL에 대해서 정리하는 시간 

     

    DDL은 Data Definition Language 직역한 것 처럼 데이터 정의 언어이다.

    테이블을 생성하고 삭제하고 바꾸는 기능을 실행하고 CREATE, DROP, ALTER이 있다. 

     

    순서가 이걸 앞에 배워야 할 것 같은데, 정리 순서가 엉망인 것 같지만 우린 필요한 정보만 찾아보는 검색 고수니깐 노상관(?)

     

    절거운 SQL MEME로 시작하는 코린이 유치원


    01 Database 만들기, 사용

    create database db이름 -- db 생성
    
    use db이름 -- db 사용하기

    미친 직.관.성 create로 데이터베이스 생성하고 use 데이터베이스 이름 생성하면 우리는 앞으로 이 db를 사용하는 것이다.

     

     

    02 Table 생성

    데이터 베이스 만들었으면 그 다음은 뭐다?

    데이터 베이스에 들어갈 테이블을 만들어 줘야지 

     

    👉 Table 생성 기본 구문

    create table 테이블 이름 (
          컬럼 설정
    );

    👉 테이블명, 컬럼명 규칭

    • 영문, 숫자, _만 사용 가능
    • 첫글자는 반드시 영문자여야 한다.(SQL은 파이썬과 다르게 대,소문자 구별 ❌

     

    기본 구문은 so 씸플. Mi친 직관성의 연속이다.

    중요한 건 컬럼을 어떻게 설정할지이고, 다음과 같은 내용이 들어가야 한다.

    • 컬럼명
    • 데이터타입
    • default 값 : 값을 입력하지 않을 때 넣어줄 기본 값 (생략 가능)
    • 제약조건 : 컬럼이 가질 수 있는 값에 대한 제약 조건을 지정
    create table 테이블이름(
      컬럼명  데이터타입  default값  제약조건
    );
    
    show tables; -- 데이터 베이스에 생성된 테이블들 조회

     

    03 데이터 타입

    create 구문 만들기 전 우린 SQL의 데이터타입과 제약조건을 배워야한다.데이터 타입과 제약조건 모른상태에서 테이블부터 만들 순 없잖아유? 🤷🏻

     

    데이터 타입은 문자열, 정수, 실수, 날짜 타입 그리고 결측지가 있다. (파이썬보다 심플해서 조와)

     

     

    👉 문자열

    종류 Data Type  최대크기
    (byte)
    설명 비고
    문자열
    타입
    CHAR(n) 0 ~ 255 고정 길이 문자열 CHAR(크기)
    VARCHAR(n) 0 ~ 65,535 가변길이 문자열 VARCHAR는
    최대길이 지정
    TINYTEXT 0 ~ 255 TEXT 타입은 최대길이 지정하지 않는다.
    TEXT 0 ~ 65,535
    MEDIUMTEXT(n) 0~ 16,777,215
    LONGTEXT(n) 0 ~ 4,294,967,295
    • 길이 생략하면 1글자로 자동 설정
    • 고정길이: 데이터 글자 수가 모자라면 공백으로 채우기 때문에 주로 VARCHAR 사용. CHAR는 주민번호 같은 데이터에 주로 사용
    • 가변길이: n으로 지정된 크기는 최대 크기이며, 입력된 글자수에 따라 저장 크기가 변경

     

    👉 정수

    종류 Data Type 크기 설명 비고
    정수 TINYINT 1 byte -128 ~ 127 (0~255)  
    BOOLEAN 1 byte TRUE:1 / FALSE: 0 TRUE, FALSE 키워드로 입력하나 조회시에는 1,0이 조회
    SMALLINT 2 byte -32768 ~ 32767
    (0 ~ 655535)
     
    INT 4 byte -2,147,483,648 ~ 2,147,483,647
    (0 ~ 4,294,967,295)
     
    BIGINT 8 byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
    (0 ~ 18,449,744,073,709,551,615)
     

     

    👉 실수

    종류 Data Type 크기 설명 비고
    실수 DECIMAL 8 byte 고정 소수 DECIMAL(M,N)
    - M: 총 자릿수
    - N: 소수 자릿수
    정확도가 요구되는 실수 데이터에 사용
    FLOAT 4 byte 부동소수  
    DOUBLE 8 byte 부동소수 FLOAT 보다 고수점 자리 더 많이 표현 가능

     

    👉 날짜타입

    종류 Data Type 크기 설명 비고
    날짜타입 DATE 3 byte 년, 월, 일 YYYY-MM-DD
    TIME 3 byte 시, 분, 초 hh:mm:ss
    DATETIME 8 byte 년, 월, 일, 시, 분, 초 YYYY-MM-DD
    hh:mm:ss
    time 존에 상관없이 고정
    TIMESTAMP 4 byte 년, 월, 일, 시 , 분, 초  YYYY-MM-DD
    hh:mm:ss
    time zone을 변경하면
    입력된 일시가 변경
    YEAR 1 byte YYYY 년도만 저장

     

     

    👉 결측치

    NULL 없는 값, 모르는 값 의미

     

     

    04 제약조건

    컬럼이 가질 수 있는 값에 대해서 말 그대로 제약을 지정하는 것

    제약조건 설명
    PRIMARY KEY(PK) 하나의 행을 대표하는 열, 행 식별 컬럼.
    NOT NULL과 UNIQUE 조건 모두 만족
    FOREIGN KEY(FK) 다른 테이블의 PRIMARY KEY 컬럼의 값만 가질 수 있는 컬럼 
    다른 테이블을 참조할 때 사용하는 컬럼.
    UNIQUE KEY(UK) 테이블 모든 행 중복값 불가 (NULL 제외)
    NOT NULL(NN) NULL 값 가질수 없는 컬럼. 반드시 값 가져야 하는 열
    CHECK(CK) 컬럼에 들어갈 값의 조건 지정
    DEFAULT 컬럼의 기본값 설정. NULL 값일 경우 지정한 기본값 추가
    AUOT_INCREMENT 자동 증가 정수 컬럼(MY SQL에서 사용) 정수 컬럼으로 값이 입력 되면 1씩 증가하는 값 가짐

     


    데이터 타입과 제약 조건을 배웠으니깐

    이제 다음부턴 본격 DDL을 사용해서 테이블을 만들고 지우고 바꾸고 해보자GO!

유사명문 코린이 유치원