DB/오라클 SQL문

25. CONSTRAINT | check 제약조건 생성, 삭제 | L999,999,999 | UNIQUE

DEV-HJ 2022. 2. 23. 14:49
반응형

--새로운 테이블 만들기
create table sawon(num number(5) CONSTRAINT sawon_pk_num primary key, 
name varchar2(20), 
gender varchar2(10), 
buseo varchar2(20) CONSTRAINT sawon_ck_buseo check(buseo in('교육부', '홍보부', '관리부') ),
pay number(10) default 1200000);

--새로운 시퀀스
create SEQUENCE seq_sawon nocache;

--데이터 10개정도
insert into sawon values (seq_sawon.nextval, '김나리', '여자', '교육부', 3450000);
insert into sawon values (seq_sawon.nextval, '임현정', '여자', '홍보부', 9999999);
insert into sawon values (seq_sawon.nextval, '김동규', '남자', '관리부', 9999999);
insert into sawon values (seq_sawon.nextval, '하하', '남자', '관리부', 4845542);
insert into sawon values (seq_sawon.nextval, '강호동', '남자', '관리부', 2758541);
insert into sawon values (seq_sawon.nextval, '조정석', '남자', '교육부', 8542682);
insert into sawon values (seq_sawon.nextval, '박나래', '여자', '관리부', 1248565);
insert into sawon values (seq_sawon.nextval, '이정재', '남자', '홍보부', 4475125);
insert into sawon values (seq_sawon.nextval, '김혜수', '여자', '관리부', 5835441);
insert into sawon values (seq_sawon.nextval, '유민상', '남자', '홍보부', 2700000);
insert into sawon values (seq_sawon.nextval, '김민정', '여자', '교육부', 4875421);
insert into sawon values (seq_sawon.nextval, '전도연', '여자', '관리부', 5000000);

--부서별로 인원수, 최고급여, 최저급여 조회
select buseo 부서명, count(buseo) 인원수, max(pay) 최고급여, min(pay) 최저급여
from sawon
group by buseo;

--최고급여, 최적급여에 화폐단위 3자리 컴마 나오게
select buseo 부서명, count(buseo) 인원수,
To_char(max(pay), 'L999,999,999') 최고급여,
min(pay) 최저급여
from sawon
group by buseo;


--부서별 인원수와 평균급여 출력하시오
--인원수 뒤에 3명이 되도록...
select buseo 부서명, count(buseo) || '명' 인원수, round(avg(pay),2) 평균급여
from sawon
group by buseo;

--성별 인원수와 평균급여, 최고급여, 최저급여를 구하시오
select gender 성별, count(gender) 인원수,round(avg(pay),2) 평균급여, min(pay) 최저급여
from sawon
group by gender;

--부서별 인원이 4명 이상인 경우만 출력
select buseo 부서명, count(buseo) || '명' 인원수, round(avg(pay),2) 평균급여
from sawon
group by buseo
having count(buseo)>=4;

--sawon 테이블의 sawon_ck_buseo 를 제거하시오
--제약조건 삭제
alter table sawon drop CONSTRAINT sawon_ck_buseo;

INSERT into sawon values(seq_sawon.nextval,'김선호','남자','개발부',3490000);

commit;

--sawon에 name 컬럼에 unique 제약조건 추가하기 (sawon_uk_name);
alter table sawon add CONSTRAINT sawon_uk_name UNIQUE(name);








반응형