DDL(Data Definition Language) ➡️ create, alter, rename, drop, truncate
- 데이터베이스 생성 : create database prac_db;
- 데이터베이스 사용 : use prac_db;
- 테이블 생성
create table user(
id int primary key auto_increment,
name varchar(255),
email varchar(255)
);
- 테이블 정보 확인 : describe user;
- 테이블 내용 수정
- alter table user add column tel varchar(255);
- alter table use drop column email;
- 테이블 삭제 : drop table user;
- 테이블 이름 변경 : rename table user to member;
- 데이터가 존재하던 공간까지 모두 제거 : truncate table user;
- 현재 데이터베이스에 존재하는 모든 테이블 정보 : show tables;
DML(Data Manipulation Language) ➡️ select, insert, update, delete
- 데이터 조회
- select id,name from user;
- select * from user;
- 데이터 삽입
- insert into user values(1, 'james', 'james@gmail.com');
- insert into user(id, name) values(1, 'james');
- 데이터 갱신
- update user set name = 'tom' where email='tom@gmail.com';
- 데이터 삭제
- delete from user where email='james@gmail.com';
✅ delete, truncate, drop의 차이
- delete (DML) 👉 행의 일부 또는 전체 데이터 삭제. 테이블의 구조와 인덱스는 그대로 유지된다.
- truncate (DDL) 👉 테이블에서 모든 행을 삭제. 테이블의 구조는 유지되나, 행이 저장되어 있던 공간과 인덱스는 삭제됨
- drop (DDL) 👉 인덱스, 행 데이터 뿐만 아니라 테이블 전체를 삭제. 테이블의 구조, 인덱스, 제약 조건 등이 모두 삭제된다.
cf.
where 문 👉 필터 역할을 하는 쿼리
- select id, name from user where id=1; 👉 특정 값과 동일한 데이터
- select id, name from user where name <> 'tom'; 👉 특정 값을 제외한 데이터
- select id, name from user where id<=4; 👉 특정값 보다 작거나 같은 데이터
- select id, name from user where name like '%a%'; 👉 문자열에서 특정값과 비슷한 값을 필터링 할 경우, like, %, * 사용
- select id, name from user where name in ('james', 'tom'); 👉 리스트의 값들과 일치하는 데이터를 필터링 할 경우
- select * from user where tel is null; 👉 값이 없는 경우 null을 찾을 때
- select * from user where tel is not null; 👉 값이 없는 경우를 제외할 때
order by 문 👉 데이터를 어떤 기준으로 정렬하여 출력할지 결정
- select * from user order by name; 👉 오름차순
- select * form user order by name desc; 👉 내림차순
limit 문 👉 결과로 출력할 데이터의 갯수를 정한다. (쿼리문의 가장 마지막에 추가)
- select * from user limit 20; 👉 데이터를 20개만 출력
distinct 문 👉 유니크한 값을 받고 싶을 때
- select distinct name from user; 👉 name을 기준으로 유니크한 값들만 선택
- select distinct name, address from user; 👉 name, address의 유니크한 '조합' 값들 선택
inner join문 👉 공통된 부분을 기준으로 연결
- select * from table1 join table2 on table1.속성=table2.속성;
outer join문 👉 다양한 선택지가 있음
- select * from table1 left outer join table2 on table1.속성 = table2.속성; 👉 table1의 데이터를 모두 선택
- select * from table1 right outer join table2 on table1.속성 = table2.속성; 👉 table2의 데이터를 모두 선택
- select * from table1 left outer join table2 on table2.속성 = table2. 속성 union select * from table2 right outer join table2 on table1. 속성 = table2.속성; 👉 table1, table2 테이블의 합집합 결과
DCL(Data Control Languages) ➡️ grant, revoke
- 사용자에게 접속권한, 오브젝트 생성권한, DBA 권한 등을 부여할 수 있는 명령어 : grant
- 사용자아게 부여한 권한을 다시 회수하는 명령어 : revoke
TCL(Transaction Control Languages) ➡️ commit, rollback, savepoint
- 트랜잭션을 완료함 : commit
- 데이터 변경 사항을 취소하여 데이터를 이전 상태로 복구하며, 관련 행에 대한 잠금이 풀리고 다른 사용자들이 데이터를 변경 가능해진다. : rollback
- 저장점을 정의하여 롤백할 때 트랜잭션에 포함된 전체 작업을 롤백하는 것이 아니라 현 시점에서 savepoint까지 트랜잭션 일부만 롤백할 수 있다. : savepoint
'데이터베이스📑' 카테고리의 다른 글
GROUP BY 사용시 주의점 (0) | 2023.12.19 |
---|---|
Inner Join, Outer Join (0) | 2023.12.14 |