-
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'Database > MySQL' 카테고리의 다른 글
MySQL - 패턴 매칭(LIKE, REGEXP) (0) 2023.02.22 MySQL - 데이터 조회(SELECT) (0) 2023.02.22 MySQL - 데이터 추가(INSERT), 수정(UPDATE), 삭제(DELETE) (0) 2023.02.22 MySQL - 관계형 데이터베이스 (0) 2022.07.26 MySQL - 데이터베이스의 기본 개념 (0) 2022.07.26