ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MySQL - DB 구조 정의
    Database/MySQL 2022. 7. 27. 18:15

    DB 정의

    데이터베이스 목록 조회
    show databases;

     - 존재하는 데이터베이스 목록을 조회한다.

     

     

     - 현재 존재하는 데이터베이스 목록은 위와 같다.

     

    데이터베이스 생성
    create database company;

     - company라는 이름의 데이터베이스를 생성한다.

     

    사용 데이터베이스 조회
    select database();

     - 현재 사용 중인 데이터베이스 이름을 조회한다.

     

     

     - 현재 사용 중인 데이터베이스는 존재하지 않는다.

     

    데이터베이스 사용
    use company;

     - company 데이터베이스를 사용한다.

     

    데이터베이스 삭제
    drop database company;

     - company라는 이름의 데이터베이스를 삭제한다.


    테이블 생성

    테이블 생성 쿼리문
    create table EMPLOYEE (
    	id INT PRIMARY KEY,
    	name VARCHAR(30) NOT NULL,
    	birth_date DATE,
    	sex CHAR(1) CHECK(sex in ('M', 'F')),
    	position VARCHAR(10),
    	salary INT DEFAULT 50000000,
    	dept_id INT,
    	FOREIGN KEY (dept_id) references DEPARTMENT(id) on delete SET NULL on update CASCADE,
    	CHECK (salary >= 50000000)
    );

     - 위 쿼리문은 EMPLOYEE 테이블을 생성하기 위한 쿼리문이다.

     - 해당 테이블은 'id', 'name', 'birth_date', 'sex', 'position', 'salary', 'dept_id' 속성을 가진다.

     

    Attribute Data Type

    1. 숫자

     

     

    2. 문자열

     

     

    3. 날짜와 시간

     

     

    4. 그 외

     

     

    Key Constraints 

    1. PRIMARY KEY

     - 테이블의 튜플을 식별하기 위해 사용하며, 하나 이상의 속성들로 구성된다.

     - Primary Key는 중복된 값을 가질 수 없으며, NULL도 값으로 가질 수 없다.

     

     - Primary Key를 선언하는 방법은 위와 같다.

     

    2. UNIQUE

     - UNIQUE로 지정된 속성은 중복된 값을 가질 수 없다.

     - 단, NULL은 중복을 허용할 수도 있다.(RDBMS 마다 다름)

     

     - UNIQUE를 선언하는 방법은 위와 같다.

     

    3. NOT NULL

     - NOT NULL로 지정된 속성은 NULL을 값으로 가질 수 없다.

     

    create table STUDENT (
    	phone_nulber INT NOT NULL UNIQUE,
    	...
    );

     - NOT NULL을 선언하는 방법은 위와 같다.

     

    4. DEFAULT

     - 속성의 기본값을 정의할 때 사용

     - 새로운 튜플을 저장할 때 해당 속성에 대한 값이 없다면 기본값으로 저장된다.

     

    create table ORDERS (
    	menu VARCHAR(15) DEFAULT '짜장면',
    	...
    );

     - DEFAULT을 선언하는 방법은 위와 같다.

     

    5. CHECK

     - 속성의 값을 제한하고 싶을 때 사용한다.

     

     - CHECK를 선언하는 방법은 위와 같다.

     

    6. FOREIGN KEY

     - 특정 속성이 다른 테이블의 Primary Key를 참조할 때 사용한다.

     

     - FOREIGN KEY를 선언하는 방법은 위와 같다.

     

    7. constraint 이름 명시

     - 이름을 붙이면 어떤 constraint을 위반했는지 쉽게 파악할 수 있다.

     - constraint를 삭제하고 싶을 때 해당 이름으로 삭제가 가능하다.

     

    create table TEST (
    	age INT CONSTRAINT age_over_20 CHECK (age > 20)
    );

     - constraint의 이름을 명시하는 법은 위와 같다.


    테이블 변경

    ALTER TABLE

     

     - 테이블의 스키마를 변경하고 싶을 때 사용


    테이블 삭제

    DROP TABLE
    DROP TABLE table_name;

     - 테이블을 삭제할 때 사용


    출처

    https://www.youtube.com/watch?v=c8WNbcxkRhY&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&index=3 

     

    728x90

    댓글

Designed by Tistory.