create table EMP(
empno int not null primary key,
emp_name varchar(30) not null,
age int not null,
sal int not null,
dept_code int not null
);
=> EMP 테이블 생성!
select*from emp;
=> 아직은 데이터를 넣지 않았기 때문에 아직 표에 데이터가 나오지 않아요!
create table DEPT(
dept_code int not null primary key,
dept_name varchar(30)
);
=> DEPT 테이블 생성!
SQL은 관계형 데이터베이스를 사용하는 절차형 언어로, 데이터 구조 정의/조작/제어 등을 할 수 있어요.
이걸 무엇으로 할 수 있느냐!!에 대해 알아볼게요~
1) DDL(Data Definition Language): 데이터베이스 구조 정의
ex) create, alter, drop, rename
2) DML(Data Manipulation Language): 데이터 입력/수정/삭제/조회
ex) insert, update, delete, select
3) DCL(Data Control Language): 데이터베이스 사용자에게 권한 부여/회수
ex) grant, revoke, truncate
4) TCL(Transaction Control Language): 트랜잭션 제어 (트랜잭션: 작업 처리 단위)
ex) commit, rollback, savepoint
*영어를 한국어로 번역한 의미 그대로의 작업을 수행한다고 보면 돼요!
**grant문: 회사 DB를 관리하는 사람이 회사에 들어온 직원에게 DB 사용자에게 권한을 부여하는 것인데, 이때 해당 부서에서 사용해야만 하는 DB의 권한만 줘야지 전체 권한을 다 줘버리면 회사에 어마무시한 일이 생기겠죠!
***revoke문: grant문으로 부여한 권한을 다시 가져오는 거에요. 권한을 받은 사람이 퇴사나 부서이동 등을 하게 되면 더 이상 해당 DB를 사용할 수 없도록!
****truncate문 VS delete문 VS drop문: truncate와 delete는 둘 다 데이터 지우는 거긴 한데, 다른 거예요. truncate는 대용양일 때 delete문에 비해 속도가 상대적으로 빠르고, 데이터의 뼈대를 유지해줘요.
drop은 truncate와 다르게 데이터의 뼈대까지 완전 다 날려요. 아예 없애버린답니다.
*****commit문: 자동으로 저장되는 부분을 만들어둔 게 아니라면, 이걸 물리적으로 저장을 해야 해요. 문제가 없을 때만 사용해야 한답니다.
******rollback문: 물리적으로 저장하기 전에 틀린 부분이 있다면 고칠 수 있도록 되돌리는 거예요.
*******savepoint문: 저장하는 지점을 설정하는 거예요. 게임에서 많이 보게 되는 그거 맞아요!
# 작업의 순서
DB 사용자에게 권한 부여 - DDL로 데이터 구조 정의 - DML로 데이터 입력 - 개발/사용자가 해당 데이터 조회
아까 생성한 테이블에 데이터를 입력해봐요!
insert into EMP values(1000, '김큐엘', 24, 38000, 001);
=> 테이블에 데이터가 들어갔어요.
select*from EMP;
=> 조회하면 아까와는 다르게 데이터가 보인답니다!
'SQL' 카테고리의 다른 글
SQLD 8 (0) | 2023.09.08 |
---|---|
SQLD 7 (0) | 2023.09.07 |
SQLD 5 (0) | 2023.09.07 |
SQLD 4 (1) | 2023.09.07 |
SQLD 3 (0) | 2023.08.31 |