도메인 타입, DDL, DML 정리
목차
- SQL의 도메인 타입
- DDL
- DML
SQL의 도메인 타입
숫자형
- int: 4byte integer
- small int: 2byte integer
- nemeric(p, d): 고정 소수점 숫자, p가 전체 자릿수, d는 소수점 이하 자리수를 의미한다.
EX) numeric(3,1) : 44.5 는 가능 하지만 444.5, 0.32불가 - real: 32bit 실수
- double precision: 64bit 실수
- float(n): 32bit n개의 숫자 가진 실수
문자형
- char(n): 고정길이 문자열
- varchar(n): 가변길이 문자열. 길이는 maximum n까지
DDL(Data Definition Language)
데이터 베이스를 정의하는 언어.
데이터 베이스의 틀이 되는 table의 구조(schema)에 관여한다
table 생성
- create
- 데이터 베이스, 테이블 등을 생성
create table instructor ( ID char(5), name varchar(10), dept_name varchar(5), salary numeric(8,2))
table 수정
- alter
- 속성 추가 가능
- 추가 되면 기존 튜플들의 해당 속성 값은 null이 됨
alter table [테이블 이름] add [속성 이름] [속성의 도메인]
- 속성 삭제 기능
- 많은 databases에서 안정성 문제로 금지되어 있음
alter table [테이블 이름] drop [속성 이름]
table 삭제
- drop
- table 전체 삭제
drop table [테이블 이름]
DML(Data Manipulation Language)
데이터 베이스 내용을 조작하는 언어
정의되어 있는 table안에 있는 실제 데이터 instance에 관여한다
생성
- insert
- 튜플(row, instance) 생성
- 비우고 싶은 값은 null을 적으면 된다
insert into [테이블 이름] values [튜플 형식의 instance값];
- select문을 이용해 선택된 것도 넣을 수 있다
insert into [테이블 이름] select [속성들] from [다른 테이블];
- 아래와 같이 적어도 중복해서 실행되지 않는다
insert into [테이블A] select * from [테이블A];
수정
- update
- 튜플(row, instance) 수정
- 수정하고 싶은 값만 set 뒤에 적어주면 된다
update [테이블 이름] set [변경될 속성] = [값, 식]; --뒤에 where를 사용할 시 해당 조건에 맞는 것들만 수정된다.
- 순서가 중요한 경우에는 case statement를 사용할 수 있다
- case statement는 마치 조건문과 같이 작동한다.
- when 내부 조건문이 맞다면 then 뒤의 값을 return, 아닐시 else뒤를 return 하므로 변경될 속성의 값을 둘 중 하나로 넣을 수 있다.
update [테이블 이름] set [변경될 속성] = case when [조건문] then [case문의 값으로 return될 값] else [조건문이 틀릴 시 case문의 값으로 return될 값] end;
삭제
- delete
- 해당 테이블의 전체 튜플(row, instance) 삭제
delete from [테이블 이름]; -- where절 추가하여 조건별로 삭제도 가능하다