SQL 기본문법정리1(DDL/DML/DCL/TCL)
데이터 정의어(DDL) | 테이블의 구조를 정의함 | CREATE, ALTER, DRTOP,TRUNCATE |
데이터 조작어(DML) | 데이터 조회/삽입/삭제/변경 | SELECT, INSERT, UPDATE ,DELETE |
데이터 제어어(DCL) | 데이터베이스에 접근권한 | GRANT, REVOKE |
트랜잭션 제어어(TCL) | 트랜잭션 제어명령어 | COMMIT, ROLLBACK, SAVEPOINT |
1. DDL 데이터정의어
1) 테이블 생성 : CREATE문
create table tr_test(
id int not null auto_increment,
name varchar(10) not null not null,
primary key(id)
)
2) 테이블 삭제 : DROP문
DRTOP table tr_test;
3) 테이블 삭제 : TRUNCATE문
TRUNCATE table tr_trest
3) 테이블 수정 : ALTER문 -컬럼삽입
altert table tr_test add ('222','lll');
2. DML 데이터 조작어
1) 데이터 삽입 : INSERT문
insert into tr_test (id, name) values ('111','kkk');
2) 데이터 수정 : UPDATE문
update tr_test set name = 'kqk' where name = 'kkk';
3) 데이터 삭제 : DELETE문
delete from tr_test : 모든 행 삭제 (delete는 * 가 없음!)
모든 데이터 행 삭제시 delete이용하는 것보다 truncate로 지우면 처리속도가 더 빠르다.
detele from tr_test where where name = 'kkk'; 특정한 행만 삭제
4) 데이터 조회 : SELECT문
select * from tr_test : 모든 행 조회
-오름차순정렬 : order by 기준컬럼 asc
-내림차순정렬 : order by 기준컬럼 desc
select count(*) from tr_test : NULL을 포함한 모든 레코드 수 반환
select count(변수) from tr_test : NULL을 제외한 모든 레코드 수 반환
-where조건
s로 시작 : like 's%'
t가 포함 : like '%T%'
두번째가 t : like '_t';
*DELETE VS DROP VS TRUNCATE 차이
공통점 : 삭제하는 명령어
DELETE : 테이블이 유지된 상태로 데이터만 삭제,(테이블 용량 지워지지 않음) 잘못 삭제한 경우 되돌릴 수 있음
DROP : 테이블도 삭제하고, 그 안에 데이터도 삭제함, 삭제 후 절대로 되돌릴 수 없음
TRUNCATE : 테이블이 유지된 상태로 데이터만 삭제,(테이블 용량,인덱스도 다 지워짐) 삭제후 되돌릴 수 없음
DELETE | DROP | TRUNCATE | |
테이블 | 유지 | 삭제 | 유지 |
테이블 용량 | 유지 | 삭제 | 삭제 |
데이터 |
삭제 |
삭제 (테이블 삭제되서 다 지워짐) |
삭제 (특정한 행만 삭제 불가능) |
롤백 | 가능 | 불가능 | 불가능 |
3. DCL 데이터 조작어
1) GRANT
특정 데이터베이스 사용자에게 특정작업에 대한 수행 권한 부여
2) REVOKE
특정 작업수행 권한을 박탈/회수
어떤 권한들을 줄 수 있는가?
CONNECT - 데이터베이스 or 스키마에 연결하는 권한.
SELECT - 데이터베이스에서 데이터를 검색할 수 있는 권한
INSERT - 데이터베이스에서 데이터를 등록(삽입)할 수 있는 권한
UPDATE - 데이터베이스의 데이터를 업데이트 할 수 있는 권한
DELETE - 데이터베이스의 데이터를 삭제할 수 있는 권한.
USAGE - 스키마 또는 함수와 같은 데이터베이스 개체를 사용할 수 있는 권한