1. Create (생성)
1.1 Database
1
2
3
CREATE DATABASE <database_name>;
CREATE DATABASE test;
- 데이터 베이스 생성은 CREATE DATABASE 명령어를 사용
1.1.1 Database 선택
1
2
3
USE <database_name>;
USE test
- 데이터 베이스의 선택은 USE 명령어를 사용
1
SELECT DATABASE()
- 현재 데이터 베이스 확인은 SELECT DATABASE() 명령어를 사용
1.2 Table
CREATE TABLE <table_nanme> (
column_name_1 column_data_type_1 column_constraint_1,
column_name_2 column_data_type_2 column_constraint_2,
...
)
- CREATE TABLE
(컬럼 이름, 데이터 타입, 제약조건)으로 테이블을 생성함
1.2.1 제약 조건이 없는 테이블 생성의 예시
CREATE TABLE user1(
user_id INT,
name Varchar(20),
email Varchar(30),
age INT(3),
rdate DATE
)
- 제약 조건은 생략이 가능하다
- 괄호안의 숫자는 글자수로 해당 글자수 까지 저장이 가능하다는 의미
- varchar는 가변 가능한 데이터 타입으로 n이 30이여도 30글자까지는 저장 가능하다
- char도 있는데, 이는 고정길이이다.
1.2.2 제약 조건이 있는 테이블 생성의 예시
CREATE TABLE user2(
user_id INT PRIMARY KEY AUTO_INCREMENT,
name Varchar(20) NOT NULL,
email Varchar(30) UNIQUE NOT NULL,
age INT(3) DEFAULT '30',
rdate TIMESTAMP
)
- PRIMARY KEY : 기본키이며 데이터를 고유하게 정의하는 것, 유니크하며 Null값을 가질수 없다
- AUTO_INCREMENT : 자동으로 증가하는 옵션 간단하게 인덱스라고 생각해도 될듯 하다
- NOT NULL : Null값을 가질수 없다
- UNIQUE : 중복값이 없이 유니크 해야함
- DEFAULT : 뒤에 있는 값을 기본값으로 설정
- TIMESTAMP : 1970-01-01 00:00:00 부터 지금까지 지난 시간을 초단위로 기록하는 방식
2. Alter (수정)
2.1 Database
1
show variables like "character_set_database";
- 현재 문자열 인코딩을 확인
1
2
ALTER DATABASE test CHARACTER SET = utf8;
ALTER DATABASE test CHARACTER SET = ascii;
- ALTER 명령어를 사용하여 데이터 베이스의 Encoding을 변경 가능
- 위는 test 데이터 베이스를 utf8과 ascii로 변경하는 코드
2.2 Table
2.2.1 Add (추가)
1
ALTER TABLE user2 ADD tmp TEXT;
- ALTER를 사용하여 user2 테이블에 TEXT 데이터 타입을 갖는 tmp 컬럼을 추가함
2.2.2 Modify (수정)
1
ALTER TABLE user2 MODIFY COLUMN tmp INT(3);
- ALTER를 사용하여 user2 테이블에 INT(3) 데이터 타입을 갖ㄴ느 tmp 컬럼으로 수정
2.2.3 Drop
1
ALTER TABLE user2 DROP tmp;
- ALTER를 사용하여 user2 테이블의 tmp 컬럼을 삭제함
3. Drop
3.1 Database
1
2
CREATE DATABASE tmp;
SHOW DATABASES;
- Create를 사용하여 tmp 데이터 베이스 생성
1
2
DROP DATABASE tmp;
SHOW DATABASES;
- Drop을 사용하여 tmp 데이터 베이스 삭제
3.2 Table
1
CREATE DATABASE tmp;
- Create를 사용하여 tmp 데이터 베이스 생성
1
USE tmp;
- USE를 사용하여 tmp 데이터 베이스 선택
1
CREATE TABLE tmp(id INT);
- CREATE를 사용하여 tmp 테이블 생성
1
DROP TABLE tmp;
- Drop을 사용하여 tmp 테이블 삭제
4. Insert
4.1 Syntax
1
2
INSERT INTO <table_name>(<column_name_1>, <column_name_2>, ...)
VALUES(<value_1>, <value_2>, ...)
- 테이블 이름 뒤에 오는 컬럼 이름은 생략이 가능하며 대신에 Values 뒤에 value값은 순서대로 와야 함
1
2
3
4
5
INSERT INTO <table_name>(<column_name_1>, <column_name_2>, ...)
VALUES (<value_1>, <value_2>, ...),
(<value_1>, <value_2>, ...),
...
(<value_1>, <value_2>, ...);
- 여러개의 Row를 한꺼번에 Insert함
- VALUES가 여러개임
4.2 실습
1
USE test;
- test 데이터 베이스 선택
1
2
3
4
5
6
7
INSERT INTO user1(user_id, name, email, age, rdate)
VALUES (1, "jin", "pdj@gmail.com", 30, now()),
(2, "peter", "peter@daum.net", 33, '2017-02-20'),
(3, "alice", "alice@naver.com", 23, '2018-01-05'),
(4, "po", "po@gmail.com", 43, '2002-09-16'),
(5, "andy", "andy@gmail.com", 17, '2016-04-28'),
(6, "jin", "jin1224@gmail.com", 33, '2013-09-02');
- user1 테이블에 user_id, name, email, age, rdate를 입력