2023. 11. 13. 11:46ㆍDBMS
금일강의내용정리
==========================================================================
* 임시로 잠깐 하는 보충수업 느낌이라 스샷제외
시퀀스 조회
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 |