<목차>
1. 데이터베이스와 DBMS
2. SQL이란?
3. DDL
4. DML
5. DCL
1. 데이터베이스와 DBMS
데이터베이스란?
데이터베이스는 구조화된 정보 또는 데이터의 조직화된 모음이며, 일반적으로 컴퓨터 시스템에 전자적으로 저장된다.
데이터베이스를 한 마디로 정의하면 데이터의 집합이라고 할 수 있다.
DBMS란?
데이터베이스를 데이터의 집합이라고 정의한다면, 이런 데이터베이스를 관리하고 운영하는 소프트웨어를 DBMS(Database Management System)라고 한다.
즉, DBMS는 특정 기능을 넣어서 데이터를 저장하고 조회하는 소프트웨어이다.
2. SQL이란?
Structured Query Language의 약어로, 데이터 베이스에서 데이터를 조회하고 조작하는 데이터 처리언어이다.
- DBMS에서 구현된 기능을 실행시키기 위해, 특정 언어로 실행해 데이터를 조작한다.
- SQL을 사용하는 것을 SQL이라 하고, 사용하지 않는 것을 NO SQL이라 한다.
3. DDL
Data Definition Language의 약어로, 데이터의 구조를 정의하는 언어이다.
구조 정의하기
create [구조] [사용할 이름]
데이터베이스나 테이블 같은 구조에 해당하는 종류는 다음과 같다
database | 데이터 베이스 |
table | 특정 데이터가 있는 테이블 |
user | 데이터 베이스에 접근할 수 있는 유저 |
role | 데이터 베이스에 접근할 수 있는 유저 그룹 |
index | 데이터를 조회할 때 속도를 빠르게 할 index |
구조 변경하기
alter [구조] [이름]
[변경타입] [변경할 속성] [값|속성]
# ex)
alert table user
add column passoword varchar(20) not null
alter는 데이터의 구조를 변경하는 명령어로 이름을 변경하거나 테이블의 컬럼 추가, 삭제, 속성 변경 등 여러 용도로 사용한다.
변경 타입에 해당하는 것은 다음과 같다.
rename | 이름을 변경 |
add column | 컬럼을 추가할 때 사용하며 새로 추가될 이름과 속성, 옵션을 같이 명시한다. |
drop column | 컬럼을 삭제 |
modify | 기존 속성을 변경할 때 사용하며 이름을 |
구조 삭제하기
drop [구조] [이름]
# ex)
drop table user
4. DML
Data Manipulation Language의 약어로, 데이터를 생성, 변경, 삭제 등 조작하는 언어이다.
데이터 추가하기
insert into [테이블명](필드명1,필드명2..)
values(데이터1,데이터2..)
# ex)
insert into user(id,name)
values(0,'홍길동');
데이터 조회하기
select [컬럼명]
from [테이블명]
# ex)
select *
from user
데이터 변경하기
update [테이블명]
set [새로운 데이터가 들어갈 컬럼명] = [새로운데이터]
where [변경할 컬럼명] = [검색데이터];
# ex)
update user
set name = '임꺽정'
where id = 0
데이터 삭제하기
delete
from [테이블명]
where [삭제할 컬럼명] = [검색 데이터]
# ex)
delete
from user
where id = 0;
5. DCL
Data Control Language의 약어로, 데이터에 접근할 수 있는 권한을 다루는 언어이다.
권한 주기
grant [권한] on [테이블명] to [유저|role] [옵션]
# ex)
grant select on user to root
all | 전체 권한 부여 |
select | 조회권한 |
update | 변경 권한 |
insert | 데이터 추가권한 |
delete | 삭제 권한 |
권한 회수
revoke [권한] on [테이블명] from [유저|role] [옵션]
# ex)
revoke select on user from root
참고자료