본문 바로가기

교육

SQL 명령문 살펴보자

반응형


 

< 테이블 내용 확인>

select * from 테이블 명

 

< 명령어 종류 >

DML(생성) : insert, update, delete, select

DCL(수정)  : grant, deny

DDL(제어) : create, alter, drop ...

 

<테이블 생성>

형식 : create table 테이블명(칼럼명)

자료형 : varchar2, char, number, date, timestamp, clob, blob....

 

< 테이블 생성 예시 #1 >

create table test(no number, name varchar2(10));

describe test;

 

<DB 내의 모든 테이블 이름 확인>

select * from tab;

 

create table test(no number primary key, -- 중복을 허용하지 않음, 동일한 자료를 입력할 수 없음

name varchar2(10) not null, tel varchar2(15),

inwon number(3), addr varchar2(30));

 

< 자료 추가 하기 >

-- insert into 테이블명\칼럼명\,...) values(입력자료)...

 

< 자료 추가 예시 >

insert into test(no,name,tel,inwon,addr) values(1,'인사과','111-1111',5,'강남구 역삼동');

 

< 자료 수정 >

< update 테이블명 set 칼럼명=수정값,... where 조건 >

 

< 자료 수정 예시 >

update test set inwon=12 where no=1;

update test set tel='777-7777', inwon=22 where no=3;

update test set inwon=null where no=3;

update test set inwon='' where no=3;

 

< 자료 삭제 >

delete from 테이블명 where 조건

 

< 자료 삭제 예시 >

delete from test where no=2; -- 만일 where 을 입력하지 않으면 구조를 제외한 모든 레코드 폭파

 

< 테이블의 모든 행을 삭제 >

 truncate table 테이블명 : 모든 행을 폭파(취소 불가)

 

< 커밋(커밋해줘야만 제대로 연동됨) >

commit;

 

< 무결성 제약 조건 >

무결성(constraint) 제약 조건 : 잘못된 자료의 입력을 막고자 제약조건 부여

 domain 제약조건 : 구조 작성시 칼럼의 이름, 성격, 크기, null 허용 여부

기본키(primary key)

사용자 정의 제약조건 : check, unique, foreign key

 

< 기본키(PK) 제약조건 >

 방법1) 칼럼 레벨

create table aa(bun number primary key, irun char(10));

select constraint_type, constraint_name from user_constraints where table_name ='AA';

 

방법2) 제약조건 이름 부여

create table aa(bun number constraint aa_bun primary key, irum char(10));

 

방법3) 테이블 레벨

create table aa2(bun number, irum char(10), constraint aa_bun primary key(bun));

 

< 제약조건 추가 및 제거 >

추가 : alter table 테이블명 add contraint 제약조건명 제약조건명

제거 : alter table 테이블명 drop contraint 제약조건명 제약조건명

 

<제약 조건 검사(입력되는 자료의 칼럼값 검사) >

create table aa(bun number, irum char(10), nai number(2) check(nai >=20));

insert into aa values(1,'tom',25);

insert into aa values(2,'tom2', 25);

 

< unique : 특정 칼럼에 대해 동일한 값 >

create table aa(bun number, irum char(10) unique);

insert into aa values(1,'tom');

insert into aa values(2,'tom');

drop table aa;

 

< 외부키(참조키,Foreign key, FK) // 엑셀 값 참조하는 느낌으로 생각하자 >

on delete cascade : 부모 테이블의 행이 삭제되면 자식도 함께 삭제

create table jikwon(bun number primary key, irum varchar2(10), buser char(10));

insert into jikwon values(1,'한송이','인사과');

insert into jikwon values(2,'박치기','영업과');

insert into jikwon values(3,'한가혜','총무과');

insert into jikwon values(4,'한송이','총무과');

 

create table gajok(code number primary key, name varchar2(10), birth date, jikwon_bun number references jikwon(bun));

insert into gajok values(100, '공기밥', '2000-01-12', 1);

insert into gajok values(101, '김밥', sysdate, 2);

 

delete from jikwon where bun = 1; -- 불가

delete from jikwon where bun = 4; -- 가능

 

< default : 특정 칼럼에 초기값 부여 >

 

create table aa(bun number, irum varchar2(10), juso varchar2(20) default '강남구 역삼동');

insert into aa values(1, '강남루', '강남구 신사동');

insert into aa(bun, irum) values(2, '박치기');