-
DBMS
(DataBaseManagementSystem)
- 관계형
- 망형
- 네트워크 형 등이 있는데
orcale은 그 중 관계형 데이터베이스임
DB랭킹 계정은 관리자계정/사용자계정 으로 나뉨
SID는 DB를 총칭하는 이름
포트는 Oracle과 통신하는 번호
11/26 SQL 수업
select ename, rpad(substr(ename, 1, floor(length(ename)/2)), length(ename), '*') cutName from emp;
-- replace : 문자열의 특정글자를 치환
select ename, replace(ename, 'A', '에이') from emp;
-- instr : 문자의 위치 구하기
select ename, instr(ename, 'A') from emp;
select ename, instr(ename, 'A', 3) from emp; -- A를 3번째 위치에서부터 찾아라
select ename, inst(ename, 'L', 2, 2) from emp; -- L을 두번째 위치부터 두번째만나는 위치를 찾아라
-- trim : 양 사이드에 있는 특정 문자 제거 (가운데꺼는 안지워짐)
select trim(0 from 00009001000) from dual;
select ename, trim('S' from ename) from emp;
--
select ltrim('xyxXxyLAST WORD', 'xy') "LTRIM example" from dual;
select rtrim('BROWNINGyxXxy', 'xy') "RTRIM example" from dual;
-- [문제1]
select empno, ename, job, hiredate, sal, nvl(comm, 0), sal+nvl(comm,0) from emp;
-- [문제2]
select ename, job, sal, nvl(comm, 0) comm from emp
where sal between 2500 and 4000 or job='SALESMAN'
order by sal desc;
-- deptno가 10이면 account로 20이면 research로 ... 출력
select ename, deptno, decode(deptno, 10, 'Account', 20, 'Research', 30, 'Sales') department from emp;
-- 날짜 함수
select sysdate from dual;
select to_char(sysdate, 'YYYY-MM-DD HH:MI:SS') from dual;
select ename, hiredate, to_char(hiredate, 'YYYY-MM-DD HH:MI') from emp;
-- last_day()
select last_day(sysdate) from dual;
select last_day(to_date('2022-02-10', 'YYYY/MM/DD')) from dual; -- 문자를 날짜형으로 바꿔줘야함
-- add_months() : 월계산
-- 오늘날짜에서 52개월 후의 날짜
select to_char(add_months(sysdate, 52), 'YYYY-MM-DD') from dual;
-- emp사원의 입사일 기준 98개월 후를 구하라
select eame, hiredate, add_months(hiredate, 98) "98개월 후" from emp;
< 테이블생성 >
-- 가변길이(varChar) : 50자리 지정하고 5자리 넣으면 45자리를 반환
-- 고정길이(Char) : 50자리를 지정하고 5자리만 넣어도 50자리 그대로 가지고있음
-- primary key : 중복데이터를 허용하지 않음
-- default sysdate : 따로 입력하지 않아도 현재날짜로 기본값 설정<DB모델링툴>
eXERD SAM