1. Execution Plan
2. Queue Optimizer
└ 쿼리 튜닝
=================
DML
insert
update
delete
DDL
데이터베이스
└ create database
└ drop database
└ create table
└ alter table
└ drop table
테이블
테이블은 컬럼이름 데이터타입 옵션이름등으로 구성되어있다.
문자형
└ char 고정 데이터, 데이터의 총량이 저장공간보다 크면 데이터가 버려짐
└ varchar 가변 데이터, 공간이 신축성이 있지만 검색속도가 char보다 느림
└ tinytext/text/mediumtext/longtext...
숫자형
└ 정수 int
└ 실수 decimal / double
날자형
└ datetime/date
이진데이터
└ X
테이블 생성
CREATE TABLE dept2 (
name1 int(2)
,name2 varchar(14)
,name3 varchar(13)
);
테이블 삭제
DROP TABLE tablename;
테이블 복사
CREATE TABLE tablename as SELECT COPYTABLETARGET where 조건
테이블 조건 복사
CREATE TABLE emp_dept as
SELECT e.empno, e.ename, d.deptno, d.dname, loc
FROM emp e inner join dept d on(e.deptno = d.deptno)
껍데기만 복사하고싶을땐 where != 1 을 주면
데이터는 가져오지 않는다.
alter
컬럼
컬럼수정
컬럼삭제
데이터 입력
insert into 테이블명 (컬럼명, 컬럼명) values (값1, 값2, 값3 ...)
1. 값의 순서는 컬럼의 순서와 동일
2. 자료형의 크기에 주의
3. 문자열 데이터는 반드시 ' ' 로 표시
컬럼명에 not null 입력시 그 값은 null 을 추가할 수 없다.
insert table value (40, null null)
=
insert table value (40)
빈 데이터는 자동으로 null로 채워짐
update 테이블명 set 컬럼명 = 값; - 컬럼내용 전체 변경
update 테이블명 set 컬럼명 = 값 where 조건 - 컬럼내용 조건 변경
데이터 삭제
DELETE FROM [TABLE]; -테이블 전체의 내용 삭제
DELETE FROM [TABLE]; WHERE 조건 -특정행 삭제
행을 지우는건 딜리트
열을 지우는건 업데이트
제약조건 - 테이블에 입력된 데이터 제한
constraint
1. 필수입력 - not null
2. 중복방지 - unique
3. 필수+중복 - primary key (고유번호)
4. 참조 - foreign key
* 값에 대한 검사 - check (mariadb엔 없음)
*
기술 방식
테이블 단위 제약조건
테이블 선언
제약조건
컬럼 단위 제약조건
컬럼선언 제약조건
not null
create table dept_n1 (
deptno int(2) not null,
dname varchar(14),
loc varchar(13) );
unique
unsigned primary key auto_increment
primary 키 값 0입력시 1부터 출력
10입력하면 10출력
다시 0입력시 11출력