RDBMS (Relational DataBase Management System)
관계형 데이터베이스 관리 시스템
- 테이블을 사전에 정의를 한 뒤에 그에 알맞은 형태의 데이터만 넣을 수 있다.
- 행(row)과 열(column)로 구성된 테이블에 데이터를 저장한다.
- 각각의 행(row)은 하나의 속성에 대한 정보
- 열(column)에는 각각의 데이터 형식에 맞는 데이터가 저장
- 스키마가 뚜렷이 보인다.
- 테이블 간에 관계들이 어떻게 되는지 알 수 있다.
- 기본적으로 표의 형태로 정리(구조화)되어 있다.
- CRUD 할 때 SQL을 사용한다.
- ex) Mysql, Oracle, PostgreSQL, MariaDB, SQLite
데이터베이스, 테이블 생성하기
데이터베이스 생성하기
CREATE DATABASE 데이터베이스_이름;
데이터베이스 사용
USE 데이터베이스_이름;
데이터베이스 확인
SHOW DATABASES;
데이터베이스 제거
DROP DATABASE 데이터베이스_이름;
테이블 생성하기
CREATE TABLE user (
id int PRIMARY KEY AUTO_INCREMENT,
name varchar(255),
email varchar(255)
);
테이블 제거
DROP TABLE 테이블_이름;
테이블 조회
SHOW tables;
테이블 정보 확인
DESCRIBE user; or DESC user;
컬럼 추가
alter table [테이블명] add [컬럼명] [타입] [옵션];
alter table user add name varchar(255) not NULL default '0'
컬럼 삭제
alter table [테이블명] drop [컬럼명];
컬럼 옵션들
id INT NOT NULL AUTO_INCREMENT
컬럼명 옆의 것들은 컬럼에 대한 옵션들
- INT: 정수 자료형(FLOAT, DOUBLE은 실수)
- VARCHAR: 문자열 자료형, 가변 길이(CHAR은 고정 길이)
- TEXT: 긴 문자열은 TEXT로 별도 저장
- DATETIME: 날짜 자료형 저장
- TINYINT: -128에서 127까지 저장하지만 여기서는 1 또는 0만 저장해 불 값 표현
- NOT NULL: 빈 값은 받지 않는다는 뜻 (NULL은 빈 값 허용)
- AUTO_INCREMENT: 숫자 자료형인 경우 다음 로우가 저장될 때 자동으로 1 증가
- UNSIGNED: 0과 양수만 허용
- DEFAULT now(): 날짜 컬럼의 기본값을 현재 시간으로