1. 데이터베이스 생성
데이터베이스는 create database 구문을 통해 생성할 수 있다.
- create database 데이터베이스명 character set = 'utf8' collate = 'utf8_general_ci';
create database test_db
character set = 'utf8'
collate = 'utf8_general_ci';
2. 테이블 생성
테이블 생성은 create table 구문을 통해 생성할 수 있다.
- create table 테이블명 (컬럼명 자료형 제약조건, 컬럼명 자료형 제약조건 .... );
자료형 | 의미 | 비고 |
char(n) | 고정길이 문자열 | 속도가 빠르다. 그러나 최대길이 지정 후 최대 공간을 무조건 할당 하기 때문에, 불필요한 공간을 차지할 수 있음. |
varchar(n) | 가변길이 문자열 | 속도가 느리다. 하지만 최대길이 지정 후 불필요한 공간을 절약하기 때문에 불필요한 공간이 낭비되지 않는다. |
int | 정수형 타입 | |
bigint | 정수형 타입 | |
float | 부동소수점 타입 | |
double | 부동소수점 타입 | |
date | 날짜 | |
datetime | 날짜 및 시간 |
create table test_table1(
data1 int,
data2 varchar(10),
data3 float
);
desc test_table1;
select * from test_table1;
서브쿼리문이 테이블 생성에 사용될 수 있다.
select문을 통해 가져온 결과에 기반하여 테이블을 생성할 때 사용된다.
- create table 테이블명 as select문;
-- select문을 통해 가져온 데이터까지 생성 테이블에 적용.
use employees;
create table dept1
as
select * from departments;
desc dept1;
select * from dept1;
-- select문을 통해 가져온 테이블 구조만 생성 테이블에 적용.
create table dept2
as
select * from departments
where 1=0;
desc dept2;
select * from dept2;
3. 데이터 저장
insert문을 통해 데이터를 저장할 수있다.
이때 데이터는 로우 단위로 저장된다.
특정 컬럼에 저정될 값을 지정하지 않으면 null 값이 저장된다.
- insert into 테이블명 (컬럼명) values (값);
- insert into 테이블명 values (값);
insert into test_table1 (data1, data2, data3) values (100, '문자열', 11.11);
select * from test_table1;
-- 컬럼명을 지정해줄때는 컬럼의 기존 순서를 지키지 않아도 됌.
insert into test_table1 (data2, data3, data1) values ('문자열2', 22.22, 200);
select * from test_table1;
-- 컬럼명을 제외한다는 것은 모든 컬럼에 대해 데이터를 추가한다는 말임. 원래 컬럼 순서대로 데이터를 삽입해야함.
insert into test_table1 values (300, '문자열3', 33.33);
select * from test_table1;
-- 숫자를 문자열 타입으로 삽입해도 정상적으로 저장됨. 숫자 문자열이 자동적으로 int와 float으로 변환되어 삽입됨.
insert into test_table1 values ('500', '문자열4', '44.44');
select * from test_table1;
서브쿼리문을 사용하여 데이터를 저장할 수 있다.
-- 서브쿼리문을 통해 데이터 삽입.
create table test_table2
as
select * from test_table1
where 1=0;
insert into test_table2
select data1, data2, data3
from test_table1;
select * from test_table2;
4. 데이터 수정하기
update문을 통해 데이터를 새롭게 갱신할 수 있다.
- update 테이블명 set 컬럼명=값, 컬럼명=값 where 조건식;
-- 모든 로우의 값을 갱신
update test_table1 set data2='새로운문자열', data3=77.77;
select * from test_table1;
-- 조건에 맞는 로우의 값을 갱신
update test_table2
set data2='새로운문자열', data3=77.77
where data1 = 100;
select * from test_table2;
5. 데이터 삭제하기
delete문을 통해 데이터를 삭제할 수 있다.
- delete from 테이블명 where 조건식;
-- 모든 데이터 삭제
delete from test_table1;
select * from test_table1;
-- 조건에 맞는 데이터를 삭제
delete from test_table2
where data1 = 100;
select * from test_table2;
'DataBase > MySQL' 카테고리의 다른 글
constraint (0) | 2021.08.09 |
---|---|
transaction (0) | 2021.08.07 |
set (0) | 2021.08.04 |
서브 쿼리문 (0) | 2021.08.03 |
join문 (0) | 2021.08.02 |