추씨의DBMS일기15편(ORACLE DB)

2023. 11. 10. 11:43DBMS

금일강의내용정리

==========================================================================

부서 : dept
코드, 이름
create table dept(
dept_code varchar2(3), 
dept_name varchar2(10), 
primary key(dept_code)
);
INSERT INTO dept VALUES('100', '인사과');
INSERT INTO dept VALUES('200', '자재과');
INSERT INTO dept VALUES('300', '비서실');
INSERT INTO dept VALUES('900', '임원실');

------------------------------------------------------------------------------------------------


시퀀스 : emp_seq
create sequence emp_seq 
start with 1 
increment by 1 
minvalue 1 
maxvalue 9999 
nocycle 
nocache;

select * from user_sequences; => 해당 시퀀스 확인

------------------------------------------------------------------------------------------------


사원등록 : emp
시퀀스 번호, 이름, 비번, 키, 성별, 날짜
create table emp(
emp_num number not null, 
emp_name varchar2(10), 
emp_passwd varchar2(20), 
emp_height number(5,2), 
emp_gender char(1), 
emp_regdate date, 
dept_code varchar2(3), 
primary key(emp_num), 
foreign key(dept_code) references dept(dept_code)
);
INSERT INTO emp VALUES(emp_seq.NEXTVAL, '홍길동', '1111', 190.12, 'M', sysdate, '100');
INSERT INTO emp VALUES(emp_seq.NEXTVAL, '이영희', '2222', 160.12, 'F', sysdate, '200');
INSERT INTO emp VALUES(emp_seq.NEXTVAL, '김철수', '3333', 180.12, 'M', sysdate, '300');

------------------------------------------------------------------------------------------------

select emp_num, emp_name, dept_code from emp;

select * from tab; => 전체 테이블 확인


drop sequence emp_seq;

select * from user_sequences;

1개만 출력
select * from emp where rownum <= 1;

select * from emp where rownum <= 2 order by emp_num desc;

내부쿼리
데이터를 정렬한 후  => rownum 개수를 맞춰서

SELECT * FROM (select * from emp order by emp_num DESC)
where rownum <= 2;

inner join ~ on


dept, emp => 현재 테이블
내부조인
SELECT D.dept_name, E.emp_name, E.emp_regdate 
FROM dept D INNER JOIN emp E ON 
D.dept_code = E.dept_code;
------------------------------------------------------------------------------------------------
조인 -> 그룹화
인사과(1), 자재과(1), 비서실(1)
사원 수가 10명 이상인 부서(사원수)를 표시하시오.


SELECT D.dept_code, D.dept_name, count(E.emp_num) 
FROM dept D INNER JOIN emp E ON 
D.dept_code = E.dept_code 
GROUP BY D.dept_code, D.dept_name 
HAVING count(E.emp_num) >= 1;

 

------------------------------------------------------------------------------------------------


강의 내용 최종정리
1. PK, FK 사용해서 테이블생성
2. 두 테이블 inner join 해서 데이터 출력
3. group by + having절을 이용해서 원하는 데이터 출력

 

여기까지 금일강의내용 정리

==========================================================================

느낀점 : 잘 버텨냈다 진짜

==========================================================================

오늘의 결론

.

.

.

.

.

.

.

물러나서 조용하게 구하면 배울 수 있는 스승은 많다. 사람은 가는 곳마다 보는 것마다 모두 스승으로서
배울 것이 많은 법이다. -맹자

'DBMS' 카테고리의 다른 글

추씨의DBMS일기16편(ORACLE DB) -fin-  (0) 2023.11.13
추씨의DBMS일기14편(SQLD)  (0) 2023.11.07
추씨의DBMS일기13편(SQLD)  (0) 2023.11.06
국비수업 DBMS 평가항목  (0) 2023.11.06
추씨의DBMS일기12편(SQLD)  (0) 2023.11.01