오라클 강의 정리(1강~7강)
1강
데이터베이스 : 유용한 데이터의 집합(통합(똑같은 데이터가 중복되어있지 않음), 저장(컴퓨터가 접근할 수 있는 기억장
치에 저장된 데이터), 운영(조직의 존재 목적이나 기능을 수행하는데 없어서는 안되는 데이터), 공용(여러 사용자들이 서
로 다른 목적으로 사용하는 공유 가능한 데이터) 데이터의 집합)
검색에 용이하게 데이터를 저장하도록 한 것
검색, 수정, 삭제까지 용이
특징:수시적이고 비정형적인 질의 실시간 처리 -> 실시간 접근성
새로운 데이터 삽입, 삭제, 갱신으로 내용이 변하고 현재의 정확한 데이터를 유지->계속적인 변화
같은 내용의 데이터를 여러 사람이 서로 다른 방법으로 동시에 공유 ->동시공유
데이터 레코드들은 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터의 내용에 따라 참조해야 함-> 내용에 의한
참조
파일시스템
중복성(한 시스템내의 데이터가 중복 저장, 관리되어 데이터 불일치->일관성, 보안성, 경제성, 무결성등의 문제 발생),
종속성(응용프로그램과 데이터간의 상호의존 관계)
시퀀스 자동으로 증가되는 값을 만들 수 있는 기능 -> 보통 기본키로 사용함
start with
increment by
maxvalue or nomaxvalue
minvalue or nominvalue
cycle or nocycle
cache or nocache
select sequence_name, min_value, max_value, increment_by, cycle_flag from user_sequences;
시퀀스값을 알아보기
nextval(시퀀스의 다음값을 알아내기 위해서 사용) -> currval(시퀀스의 현재 값을 알아내기 위해서 사용)
nextval, currval을 사용할 수 있는 경우
-서브쿼리가 아닌 select문
-insert문의 select절
-insert문의 value절
-update문의 set절
nextval, currval을 사용할수없는 경우
-view의 select절
-distinct 키워드가 있는 select문
-group by, having, order by 절이 있는 select문
-select, delete, update의 서브쿼리
-create table, alter table명령의 defalut 값
동의어(synonym) 테이블의 소유자와테이블을 줄여서 쓰는 있는 기능
->비공개 동의어(개별사용자대상), 공개동의어(dual같은경우)
create synonym
drop synonym
파일시스템의 문제점
1. 중복성(한 시스템내의 데이터가 중복 저장, 관리되어 데이터 불일치->일관성, 보안성, 경제성, 무결성등의 문제
발생)
2. 종속성(응용프로그램과 데이터간의 상호의존 관계)
데이터 베이스의 특징
1. 수시적이고 비정형적인 질의 실시간 처리 -> 실시간 접근성
2. 새로운 데이터 삽입, 삭제, 갱신으로 내용이 변하고 현재의 정확한 데이터를 유지->계속적인 변화
3. 같은 내용의 데이터를 여러 사람이 서로 다른 방법으로 동시에 공유 ->동시공유
4. 데이터 레코드들은 주소나 위치에 의해서가 아니라 사용자가 요구하는 데이터의 내용에 따라 참조해야 함-> 내용
에 의한 참조
sql*plus 명령어 정리
-편집실행 : list(버퍼의 내용을 나타내기 위한 명령), run(버퍼내용보여주고 실행), @(파일의 쿼리실행), /(버퍼저장된
쿼리 실행)
-파일:edit, save, get, spool 갈무리(내용 모두 저장)
-데이터베이스:connect. host(도스프롬프트로), exit
-시스템조작 : column format(컬럼에 저장된 데이터의 출력 형식을 변경을 위한 명령어)
데이터 딕셔너리 : 데이터베이스와 관련된 모든 정보 제공
ex) select * from TAB(table의 약자);
데이블구조 확인 명령어 : DESC
날짜형은 where HIREDATE >=1982/08/01을 쓴다
조건 논리 연산자
and,or, not(조건을 만족하지 못하는 것만 검색)
ex)where not deptno = 10
where deptno != 10
between and 연산자
where sal >= 2000 and sal <= 3000;
where sal between 2000 and 3000
where sal not between 2000 and 3000;
in 연산자
where comm not in (300,500,600);
like 검색
%:문자가 없거나, 하나 이상의 문자에 어떤 값이 와도 상관없음
_:하나의 문자가 어떤 값이 와도 상관없음
not like도 가능하다
escape
like연산자에게 사용하는 와일드문자(%,_) 자체를 포함한 문자열을 검색할 때, 와일드 문자를 일반문자처럼 취급하기 위
한 옵션
ex)where ename like ‘%\%%’ ESCAPE ‘\’;
null값 체크
where comm IS NULL;
where comm IS NOT NULL;
order by(정렬)
order by comm ASC | DESC(생략시 ASC기본)
DISTINCT 중복값들이 출력되지 않도록 사용
ex) select distict comm ~~~
연결연산자
ex) select ename || ‘is a’ || job
함수
-단일행함수(여러건의 데이터를 한번에 한번씩만 처리), 그룹함수(여러건의 데이터를 동시에 입력받아서 결과값 한건을
만들어 주는 함수)
단일행함수
-숫자함수
-문자처리 함수
-날짜
-형변환
-일반
DUAL 테이블
-한행으로 결과를 출력하기 위한테이블
-산술 연산이나 가상 컬럼 등의 값을 한번만 출력하고 싶을때 많이 사용
ex)select 24*60 form dual;
숫자함수
-ABS(절대값), FLOOR(소수점아래를 버림), ROUND(반올림), TRUNC(특정 자리숫에 잘라내는 함수), MOD(나머지 숫 구하는
함수)
문자처리함수
-UPPER(대문자로변환), LOWER(소문자로변환), INITCAP(이니셜만대문자로), LENGTH(문자길이), LENGTHB(BYTE의길이),
INSTR(특정문자의 위치 구함), SUBSTR(일부 문자열을 추출), LPAD(특정기호로 채우는 함수), RPAD, LTRIM(공백문자
삭제), RTRIM, TRI<(첫번째와 마지막의 문자열 잘라내기)
입사년도 출력할때
select ename, 19||substr(hiredate,1,2) 년도, substr(hiredate, 4, 2) 달 from emp;
날짜함수
날짜 + 숫자 : 그 날짜로부터 기간만큼 지난 날짜를 계산
날짜 - 숫자 : 그 날짜로부터 기간만큼 이전 날짜를 계산
날짜 - 날짜 : 두 날짜 사이의 기간을 계산
ex) sysdate-1, sysdate+1
-Date형에 사용되는 함수
111111sysdate : 시스템의 날짜를 반환하는 함수
ex)select system from dual;
22222months_between
두 날짜사이의 개월수를 구하는 함수
ex)months_between(sysdate, hiredate)
소수점이하 자리 나올때 round함수와 trunc함수 이용
333333add_months
개월수를 더하는 함수
ex)add_months(hiredate,4) : 4개월 추가
next_day
해당날짜부터 시작하여 명시된 요일을 만나면, 해당하는 날짜를 반환하는 함수
ex) next_day(Date, 요일)
-한글요일 : 일, 월, 화,
-영문요일 : SUN, MON, TUE
-문자대신 숫자로 요일을 표현가능 7=일요일, 1=월요일, 2=화요일 등등
‘금’이라고 요일 입력시 오류사항 발생시
alter session set nls_language=korean;
last_day
해당 달의 마지막 날짜를 반환하는 함수
-형변환 함수
숫자, 문자, 날짜 데이터형을 다른 데이터형으로 변환하는 함수
number-> to_char() -> character -> to_date() -> date
date -> to_char() -> character -> to_number() -> number
ex) 입사일과 요일까지 함께 출력하는 경우
to_char(hiredate, ‘YYYY/MM/DD DAY’) -> 1980/12/12 수요일
to_char(hiredate, ‘YY/MON/DD DY’) -> 80/12월/12 수
to_char(hiredate, ‘YYYY/MM/DD, HH24:MI:SS’) -> 2013/12/12, 23:24:55
ex) 지역별 통화 기호를 붙이고, 천단위마다 콤마 붙여서 출력
to_char(sal, ‘L999,999’) -> 자릿수 채우지 않음
to_char(sal, ‘L000,000;) -> 자릿수 채움(0으로)
날짜 기본 형식-> YY/MM/DD 형식
ex) 올해 몇일이 지났나 계산
trunc(sysdate-to_date(‘2016/01/01’, ‘YYYY/MM/DD’))
to_number(‘20,000’,’99,999’) - to_number(‘10,000’,’99,999’)
nvl 함수 :null을 0또는 다른 값으로 변환함수
select sal*12+comm nvl(comm, 0), sal*12+nvl(comm, 0) from emp
decode함수 : 여러가지 경우에 대해서 선택할 수 있도록 하는 기능을 제공
형식 decode(표현식, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3 ….)
특징:조건이 일치하는 경우에만 적용
select ename, deptno, decode(deptno, 10, ‘accounting’, 20, ‘research’, 30, ‘sales’) AS DNAME from emp;
case함수 : 여러가지 경우에 하나를 선택하는 함수
case 표현식 when 조건1 then 결과1
when 조건2 then 결과2
….
else 결과
end
특징 :다양한 비교연산자를 이용하여 조건 제시, 범위 지정
'백엔드개발 > 데이터베이스' 카테고리의 다른 글
오라클 강의(11강~13강) (0) | 2018.06.03 |
---|---|
오라클 강의(8강~10강) (0) | 2018.06.03 |
앱)아는만큼 보이는 데이터베이스 설계와 구축 요약2 (0) | 2018.02.21 |
앱)아는만큼 보이는 데이터베이스 설계와 구축 요약 (0) | 2018.02.21 |
앱)쿼리 튜닝 팁 (0) | 2017.10.17 |