추씨의DBMS일기16편(ORACLE DB) -fin-

2023. 11. 13. 11:46DBMS

금일강의내용정리

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

* 임시로 잠깐 하는 보충수업 느낌이라 스샷제외

 

시퀀스 조회
select * from user_sequences;

시퀀스 삭제
drop sequence emp_seq;

부서 테이블 -> 시퀀스
create table buseo(
buseo_code varchar2(3) not null, 
buseo_name varchar2(30) not null, 
primary key(buseo_code)
);

select * from tab;

INSERT INTO buseo VALUES('100', '인사과');
INSERT INTO buseo VALUES('200', '자재과');
INSERT INTO buseo VALUES('300', '비서실');

select * from buseo;

사원 테이블 -> 시퀀스
create table emp(
emp_num number not null, 
emp_kor_name varchar2(10), 
emp_eng_name varchar2(20), 
emp_jumin char(14), 
emp_gender char(1), 
emp_point number(3, 2), 
emp_regdate date, 
primary key(emp_num)
);

create sequence emp_seq 
start with 1 
increment by 1 
minvalue 1 
maxvalue 9999 

select * from user_sequences;

INSERT INTO emp VALUES
(emp_seq.NEXTVAL, '홍길동', 'Hong gil-dong', '001234-5678901', 'F', 1.24, sysdate);

INSERT INTO emp VALUES
(emp_seq.NEXTVAL, '김부산', 'Kim busan', '231234-1111111', 'M', 2.24, sysdate);

INSERT INTO emp VALUES
(emp_seq.NEXTVAL, '나서울', 'Na seoul', '112233-222222', 'F', 3.124, sysdate);

select * from emp;

------------------------------------------------------------------------------------------------
조건 이름이 김부산, 나서울 출력
SELECT * FROM emp 
WHERE emp_kor_name = '김부산' OR emp_kor_name = '나서울';

SELECT * FROM emp 
WHERE emp_kor_name IN('김부산', '나서울');

조건 이름이 김부산, 나서울이 아닌 나머지 출력

SELECT * FROM emp 
WHERE emp_kor_name != '김부산' AND emp_kor_name != '나서울';

SELECT * FROM emp 
WHERE emp_kor_name NOT IN('김부산', '나서울');

영문자 대/소문자 변환, 첫글자만 대문자
SELECT UPPER(emp_eng_name) FROM emp;

SELECT lower(emp_eng_name) FROM emp;

SELECT unitcap(emp_eng_name) FROM emp;

좌우공백제거trim()
(조건: trim(), upper(), 왼쪽 1글자만 = substr(값, 시작번호, 개수))
SELECT SUBSTR(upper(trim(emp_eng_name)), 0, 1) FROM emp;

SELECT upper(trim(emp_eng_name)) FROM emp;

------------------------------------------------------------------------------------------------
문자열 길이(byte) 체크 : 데이터베이스에서 처리하는 방식에 따라 값이 달라짐
SELECT emp_eng_name, length(emp_eng_name) FROM emp; 

SELECT emp_kor_name, length(emp_kor_name) FROM emp;

SELECT emp_kor_name, lengthb(emp_kor_name) FROM emp;

------------------------------------------------------------------------------------------------
개수 출력
MySQL
정렬 limit 개수, 
정령 limit 시작, 개수

Ocacle
정렬 fetch first 개수 rows only;
정렬 offset 시작번호 row fetch first 개수 rows only;

SELECT * FROM emp ORDER BY emp_num DESC;

SELECT * FROM emp ORDER BY emp_num DESC 
fetch first 1 rows  only;

SELECT * FROM emp ORDER BY emp_num DESC 
offset 1 row  fetch first 1 rows only;

M을 '남'으로 바꾸시오. replace(값, 바꿀값)
SELECT replace(emp_gender, 'M', '남') FROM emp;

ceil -> +면 반올림한 값, -면 내림값 ex) ceil(0.1) => 1
floor -> +면 내림값, -면 올림값

SELECT emp_point, ceil(emp_point) FROM emp;

SELECT emp_point, floor(emp_point) FROM emp;

SELECT emp_point, ceil(emp_point), floor(emp_point) FROM emp;

날짜를 yyyy.mm.dd로 표시하시오. TO_CHAR(값, 포맷) 시간포함

SELECT emp_regdate FROM emp;

SELECT TO_CHAR(emp_regdate, 'yyyy.mm.dd') FROM emp;

SELECT TO_CHAR(emp_regdate, 'yyyy.mm.dd hh:mi:ss') FROM emp;

SELECT TO_CHAR(emp_regdate, 'yyyy.mm.dd hh24:mi:ss') FROM emp;

 

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

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

느낀점 : 같은 DBMS 수업인데 Oracle버전임.

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

오늘의 결론

.

.

.

.

.

.

.

간단하게 설명할 수 없으면 제대로 이해하지 못하는 것이다. – 알버트 아인슈타인

'DBMS' 카테고리의 다른 글

추씨의DBMS일기15편(ORACLE DB)  (0) 2023.11.10
추씨의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