오라클 명령어 와 SQL 정리

Similar documents
강의 개요

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

5장 SQL 언어 Part II

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

빅데이터분산컴퓨팅-5-수정

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

강의 개요

OCW_C언어 기초

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

CH04) 쿼리 (Query) 데이터베이스일반 1- 쿼리 (Query) 1) 쿼리의개념 테이블의데이터에서사용자가원하는조건에의해필드를추출하거나레코드를추출할수있는개체로즉, 여러가지방법으로데이터를보고, 변경하고, 분석할수있음 쿼리를폼, 보고서, 데이터액세스페이지등의레코드원본

PowerPoint 프레젠테이션

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

금오공대 컴퓨터공학전공 강의자료

ALTIBASE 사용자가이드 Templete

Microsoft PowerPoint - ch07_데이터베이스 언어 SQL.pptx

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT

PowerPoint 프레젠테이션

MySQL-.. 1

ORACLE-SQL

윈도우즈프로그래밍(1)

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

PHP & ASP

TITLE

슬라이드 1

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

chap 5: Trees

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

문서 템플릿

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

DBMS & SQL Server Installation Database Laboratory

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

컴파일러

<4D F736F F F696E74202D20C4C4C8B031B1DEC7CAB1E22DC0FCC3BCB1B3C0E72D D3133B3E232C8B8B1EEC1F6202D20BAB9BBE7BABB2E707074>

Microsoft Word - SQL튜닝_실습교재_.doc

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

Tcl의 문법

PowerPoint Presentation

< 고급 C 프로그래밍및실습 > 11 장구조체실습문제 문제에대한안내 - 특별한언급이없으면문제의조건에맞지않는입력은입력되지않는다고가정하라. - 특별한언급이없으면, 각줄의맨앞과맨뒤에는공백을출력하지않는다. - 출력예시에서 는각줄의맨앞과맨뒤에출력되는공백을의미한다. - 입출력예시

Microsoft PowerPoint - ch07 - 포인터 pm0415

슬라이드 제목 없음

SQL

PowerPoint Presentation

중간고사

EEAP - Proposal Template

Visual Basic 반복문

PowerPoint 프레젠테이션

1. 내장함수 2. 부속질의 3. 뷰 4. 인덱스

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - Java7.pptx

PowerPoint 프레젠테이션

statistics

설계란 무엇인가?

´ÙÁß Row °á°ú¸¦ ´ÜÀÏÇàÀ¸·Î Äĸ¶·Î ºÐ¸®ÇØ Ãâ·ÂÇÏ´Â ¹æ¹ý

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

chap x: G입력

PowerPoint Presentation

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

2) 논리적데이터모델링 - 데이터베이스설계프로세스의 Input으로써비즈니스정보의논리적인구조와규칙을명확하게표현하는기법또는과정이라할수있다. - 논리데이터모델링의결과로얻어지는논리데이터모델은데이터모델링이최종적으로완료된상태라고정의할수있다. - 논리데이터모델의상세화는식별자확정,

PowerPoint 프레젠테이션

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

adfasdfasfdasfasfadf

[ASP: 그림 2-2] date.asp 실행결과 DateAdd 지정된날짜에시간을추가하거나뺀새로운날짜를반환한다. 구문 : DateAdd(interval, number, date) interval : 필수적인인수로 interval 을추가한날짜를나타내는문자식이다. 그값에대

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint 웹 연동 기술.pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - 10Àå.ppt

빅데이터 분산 컴퓨팅 -6

Microsoft PowerPoint - chap05-제어문.pptx

Java ...

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드]

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

Microsoft PowerPoint - chap-11.pptx

Microsoft PowerPoint - Chapter_04.pptx

FileMaker SQL Reference

1 데이터베이스 2 MySQL 설치 3 기초 SQL 4 고급 SQL 유용한함수들 JOIN inseog Kim Dep. of Applied Statistics, Dongguk통계데이터베이스 University jinseog.kim gma

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

ALTIBASE HDB Patch Notes

쉽게 풀어쓴 C 프로그래밍

PowerPoint Template

쉽게 풀어쓴 C 프로그래밍

Chapter 4. LISTS

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 한

Transcription:

1. 현재접속된계정의모든테이블를보기위한 SQL문 select * from tab; 2. 테이블구조확인하기 desc tablename ------------------------! SQL PLUS 명령어! ------------------------ 3. SQL PLUS 사용환경설정명령어 SET system_variable value system_variable : SQL 명령문의실행결과를제어하기위한시스템변수 value : 시스템변수별로지정하는옵션 Explanation : SET 명령어는현재작업중인세션에대한환경을제어하기위해시스템변수를설정하기위한명령어 SYSTEM VARIAVLE (1) AUTOCOMMIT : 사용법 :SET AUTO[COMMIT] {off on imm[ediate] n} Explanation : DML 명령문의처리결과를디스크에저장하기위해서는반드시 COMMIT 명령을사용해야한다. AUTOCOMMIT 변수는트랜젝션의처리결과를제어하기위한시스템변수이다! on : DML 명령문성공적으로실행되면자동적으로 COMMIT 명령문실행 off : DML 명령문실행후사용자가직접 COMMIT 명령문실행 immediate : on명령과동일 n : DML 명령문을 n번성공적으로수행했을때자동적으로 COMMIT 명령문실행 (2) FEEDBACK : 사용법 : SET FEED[BACK] {6 n off on} default value 6 Explanation : select 명령문의실행결과를표시하기위하여출력행의수를지정하기위한시스템변수이다. (3) HEADING : 사용법 : SET HEADING {on off} Explanation : select 명령의실행결과를출력할때컬럼명의출력여부를제어하기위한시스템 변수 on : 컬럼명출력 off : 컬럼명을출력하지않음 (4) LINESIZE : 사용법 : SET LIN[ESIZE] {80 n} Explanation : SQL 명령문의출력결과에대한행의크기를설정하기위한시스템변수 Default value : 80 최대값은시스템에따라차이가남. (5) PAGESIZE : 사용법 : SET PAGES[IZE] {14 n} Explanation : SQL 명령문의실행결과에대한페이지의크기를설정하기위한시스템변수 - 1 -

Default value : 14 (6) PAUSE : 사용법 : SET PAUSE {on off} Explanation : SQL 명령문의결과를한화면에보기힘든경우에한페이지씩나누어출력하기위한시스템변수 (7) TERMOUT : 사용법 : SET TERM[OUT] {off on} Explanation : SQL 명령문실행결과를화면에출력할지여부를지정하기위한시스템변수 (8) TIME : 사용법 : SET TI[ME] {off on} Explanation : SQL 프롬프트앞에현재시간을함께표시하도록설정 (9) TIMING : 사용법 : SET TIMING {off on} Explanation : SQL 명령문을실행하는데소요된시간을출력하기위한시스템변수 (10) UNDERLINE : 사용법 : SET UND[ERLINE] {- c on off} Explanation : 컬럼제목과데이터간의구분기호를설정하기위한시스템변수 c : 모든문자 ex)*,, <, >, 등등. on : 구분기호를사용 off : 구분기ㅗ를사용하지않음 (11) SHOW : 사용법 : SHOW system_variable 혹은 SHOW ALL Explanation : 현재세션에설정된시스템변수를확인하기위한명령어 (ALL 을사용할경우모든 환경변수의값을확인할수있다. - 2 -

4. SQL PLUS 형식명령어 4.1 COLUME 명령어 - SQL명령문의실행결과로출력되는칼럼제목이나칼럼데이터에 대한출력형식을다양하게지정하기위한명령어이다. 사용법 : COLUMN {column alias} [option] [format] < 표 > COLUMN 명령어 option 종 류 의 미 CLE[AR] 칼럼형식해제 FOR[MAT] format 칼럼데이터의출력형식설정 HEA[DING] text 칼럼제목설정, text내의수직 ( ) 바는칼럼제목을여러줄로출력할경우엔터키의역할 JUS[TIFY] {align} 칼럼제목을왼쪽, 가운데또는오른쪽정렬지정 NOPRI[NT] 칼럼숨기기 PRI[NT] 칼럼출력하기 NUL[L] text NULL 값에대한출력문자지정 < 표 > 칼럼데이터에대한출력형식종류 (format) 종류 의 미 사용예 An 문자형식칼럼의출력크기를 n폭으로설정 아래사용예참고 9 단일 zero-suppression(0 억제 ) 숫자 999999 -> 1234 0 지정된길이만큼숫자앞에 0을추가 009999 -> 001234 $ 숫자앞에달러기호삽입 $9999 -> $1234 L 숫자앞에지역화폐단위삽입 L9999 -> $1234. 소수점위치지정 9999.99 ->1234.00, 1000자리마다, 구분자삽입 9,999 -> 1,234 < 표 > 칼럼에대한설정내용확인및해제하기위한옵션 종 류 의 미 COL[UMN] column 특정칼럼에대한현재설정값출력 COL[UMN] 모든칼럼에대한현재설정값출력 COL[UMN] column CLE[AR] 특정칼럼에대한현재설정값해제 COL[UMN] COL[UMN] 모든칼럼에대한현재설정값해제 - 3 -

5. SQL PLUS 편집명령어 명령문 축약어 기 능 APPEND text A text SQL 버퍼의현재라인끝에 text 추가 CHANGE/old/new C/old/new 현재라인의 old text를 new text로변경 CHANGE/text/ C/text/ 현재라인에서 text 삭제 CLEAR BUFFER CL BUFF 모든라인삭제 DEL ( 없음 ) 현재라인삭제 DEL n ( 없음 ) n번째라인의 text 삭제 DEL m n ( 없음 ) m번째라인부터 n번째라인까지의 text 삭제 INPUT I 현재라인다음에 text 추가 INPUT text I text 현재라인다음에 text 추가 LIST L 모든라인출력 LIST n L n n번째라인의 text 출력 LIST m n L m n m번째라인부터 n번째라인까지의 text 출력 n ( 없음 ) n번째라인으로이동 n text ( 없음 ) n번째라인의내용을 text로변경 0 text ( 없음 ) 1번째라인앞에 text 추가 (1) LIST : 사용법 : L[IST] [n m n] Explanation : 버퍼에저장된 SQL 명령문을출력하기위해사용하는명령어 (2) INPUT : 사용법 : I[NPUT] [text] 또는 0 text Explanation : SQL 버퍼에저장된 SQL 명령문의처음이나마지막에새로운라인을추가하는경 우에사용하는명령어 (3) DEL : 사용법 : DEL [n m n] Explanation : SQL 버퍼에저장된 SQL 명령문중에서일부내용을삭제하기위한명령어 (4) CHANGE : 사용법 : C[HANGE] /old/new Explanation : 현재활성화된라인에서특정텍스트를다른텍스트로변경하기위해사용하는명령어 old : 변경하기전텍스트 new : 변경할텍스트 - 4 -

6. SQL PLUS 파일조작명령어 명령어의미 SAV[E] filename GET filename STA[RT] filename @filename ED[IT] filename SPO[OL] [filename off OUT] 현재 SQL 버퍼의내용을파일에저장 SAVE 명령어로저장한파일을 SQL버퍼에읽어옴파일을읽고즉시실행파일을읽고즉시실행저장된파일내용을편집파일에출력결과를저장 OFF는 SPOOL 파일을닫음 OUT는 SPOOL 파일을닫고프린터로파일전송 ------------------------! SQL PLUS 명령어! ------------------------ - 5 -

------------------------! 오라클데이터타입! ------------------------ 1. 오라클에서지원하는데이터타입의종류 DATA TYPE 의미 size크기의고정길이문자데이터타입 CHAR(size) 최대크기 : 2000 byte 최소크기 : 1 byte size 크기의가변길이문자데이터타입 VARCHAR2(size) 최대크기 : 4000 byte 최소크기 : 1 byte 국가별문자집합에따른 size 크기의문자또는바이트의가변길이문자 NVARCHAR2(size) 데이터타입 최대크기 : 4000 byte 최소크기 : 1 byte 정밀도 (p) 와스케일 (s) 로표현되는숫자데이터타입 NUMBER(p,s) p : 1 ~ 38 s : -84 ~ 127 DATE ROWID BLOB CLOB BFILE TIMESTAMP(n) INTERVAL YEAR TO MONTH INTERVAL DAY TO SECOND 날짜형식을저장하기위한데이터타입테이블내행의고유주소를가지는 64진수문자타입행당 6 byte( 제한된 ROWID) 또는 10 byte( 확장된 ROWID) 대용량이바이너리데이터를저장하기위한데이터타입최대크기 : 4G 대용량의텍스트데이터를저장하기위한데이터타입최대크기 : 4G 대용량의바이너리데이터를파일형태로저장하기위한데이터타입최대크기 : 4G DATE 데이터타입의확장된형태 N은 milli second 자리수로최대 9자리까지표현년과월을이용하여기간을저장일, 시, 분, 초를이용하여기간을저장두날짜값의정확한차이를표현하는데유용 ------------------------! 오라클데이터타입! ------------------------ - 6 -

------------------------! SQL 문중 SELECT! ------------------------ 1. SQL 명령문의표준형식 SELECT [DISTINCT] {* column[alias].. } FROM table_name [WHERE condition] [GROUP BY group_by_expression] [HAVING group_condition] [ORDER BY column] (1) DISTINCT : 중복행을제거하여출력하는기능 (2) 칼럼에대한별칭부여 2가지방법 1) 칼럼이름과별명사이에공백을추가하는방법 Ex) select deptno d from student; 2) 칼럼이름과별명사이에 as 키워드를추가하는방법 Ex) select deptno as d from student; (3) 합성연산자 - 합성연산자는 는하나의칼럼과다른칼럼, 산술표현식또는상수값을연결하여하나의칼럼처럼출력할경우에사용하는연산자이다. 2. WHERE 절을이용한조건검색 1 비교연산자연산자의미 = 같다!=, <> 같지않다 > 크다 < 작다 >= 크거나같다 <= 작거나같다 2 논리연산자 연산자 AND OR NOT 의미 - 7 -

3 SQL 연산자 - SQL 언어에서만제공되는편리한기능 연산자 BETWEEN a AND b IN(a, b, c,, n) LIKE IS NULL 의미 a 와 b 사이의값, a, b도포함 a, b, c,, n 중의하나와일치하면참문자패턴과부분적으로일치 (%, _) 하면참 NULL 이면참 4 ESCAPE 옵션 LIKE 연산자에서사용하는와일드문자 (%, _) 자체를포함하는문자열을검색할때, 와일드문자를일반문자처럼취급하기위한옵션이다. 5 NULL연산자 (IS NULL, IS NOT NULL) 3. 집합연산자집합연산자의미 UNION 두집합에대해중복되는행을제외한합집합 UNION ALL 두집합에대해중복되는행을포함한합집합 MINUS 두집합간의차집합 INTERSECT 두집합간의교집합사용방법 : SELECT 명령문1 [UNION UNION ALL INTERSECT MINUS] SERECT 명령문2 4. 정렬방법 (ORDER BY절 ) 오름차순일때 (ASC) - 문자값은알파벳순으로출력되고, 한글은가나다순으로출력된다. - 숫자값은가장작은값부터출력된다. - 날짜값은과거의날짜순으로출력된다. 내림차순일때 (DESC) 오름차순반대로.. 사용법 SELECT [DISTINCT] {* column[alias]..} FROM table [WHERE condition] [ORDER BY {column, expression} [ASC DESC]] ORDER BY : 칼럼이나표현식을기준으로출력결과를정렬할때사용 ASC : 오름차순정렬시에사용 (default) DESC : 내림차순정렬시에사용, 생략불가능 ------------------------! SQL 문중 SELECT! ------------------------ - 8 -

------------------------! SQL 문함수! ------------------------ 1. SQL함수 칼럼의값이나데이터타입의변경, 숫자또는날짜데이터의출력형식변경, 하나이상의행에대한집계를할때주로사용된다. 2. 단일행함수 사용법 : function_name (column expression, [arg1, arg2,...]) function_name : 단일행함수이름 column : 칼럼이름 expression : 문자열또는표현식 arg1, arg2 : 함수의인수 ( 상수, 변수, 칼럼이름, 표현식 ) 1) 문자함수 문자데이터를입력하여문자나숫자를결과로반환하는함수 대소문자변환함수 종류 의미 사용예 INITCAP 문자열의첫번째문자만대문자로변환 INITCAP( apple ) -> Apple LOWER 문자열전체를소문자로변환 LOWER( APPLE ) -> apple UPPER 문자열전체를대문자로변환 UPPER( apple ) -> APPLE 문자열길이반환함수 종류 의미 사용예 LENGTH 문자열의길이를반환 LENGTH( 홍길동 ) -> 3 LENGTHB 문자열의바이트수를반환 LENGTHB( 홍길동 ) -> 6 문자조작함수 종류 의미 사용예 CONCAT 두문자열결합, 와동일 CONCAT( sql, plus ) -> sqlplus SUBSTR 특정문자또는문자열일부를추출 SUBSTR( SQL*Plus,5,4)->Plus INSTR 특정문자가출현하는첫번째위치를반환 INSTR( SQL*Plus, * )->4 LPAD 오른쪽정렬후왼쪽에지정문자삽입 LPAD( sql,5, * )->**sql RPAD 왼쪽정렬후오른쪽에지정문자삽입 RPAD( sql,5, * )->sql** LTRIM 왼쪽의지정문자를삭제 LTRIM( *sql, * )->sql RTRIM 오른쪽의지정문자를삭제 RTRIM( sql*, * )->sql - 9 -

2) 숫자함수 숫자데이터를처리하기위한함수 숫자함수의종류 종류 의미 사용예 ROUND 지정한자리이하에서반올림 ROUND(123.17,1)->123.2 TRUNC 지정한자리이하에서절삭 TRUNC(123.17,1)->123.1 MOD M을 n으로나눈나머지 MOD(12,10)->2 CEIL 지정한값보다큰수중에서가장작은정수 CEIL(123.17->124 FLOOR 지정한값보다작은수중에서가장큰정수 FLOOR(123.17)->123 3) 날짜함수 날짜데이터를입력하여날짜또는기간을결과값으로반환하는함수 종류 의미 결과 SYSDATE 시스템의현재날짜 날짜 MONTHS_BETWEEN 날짜와날짜사이의개월을계산 숫자 ADD_MONTHS 날짜에개월을더한날짜계산 날짜 NEXT_DAY 날짜후의첫요일의날짜를계산 날짜 LAST_DAY 월의마지막날짜를계산 날짜 ROUND 날짜를반올림 날짜 TRUNC 날짜를절삭 날짜 4) 데이터타입의변환 숫자나날짜타입을문자와함께결합하거나보고서양식에 맞추기위해주로사용한다. 묵시적인데이터타입변환 < 표 > 묵시적데이터타입변환 : WHERE A=B 일때 (A는칼럼, B는상수 ) A의데이터타입 B의데이터타입 변환결과 NUMBER VARCHAR2 또는 CHAR B가 NUMBER 타입으로변환 VARCHAR2 또는 CHAR NUMBER A가 NUMBER 타입으로변환 문자타입의숫자타입으로변환은문자열이숫자로구성된경우에만가능 명시적인데이터타입변환 < 표 > 명시적데이터타입변환함수 종류 의미 사용예 결과 TO_CHAR 숫자 / 날짜타입을문자로변환 TO_CHAR ( 05/03, YYYY-MM) 2005-03 TO_NUMBER 문자열을숫자타입으로변환 TO_NUMBER (1000, 9,999 ) 1,000 TO_DATE 문자열을날짜타입으로변환 TO_DATA ( 05/03, YYYY-MM) 2005-03 - 10 -

5) 일반함수 NULL 변환함수 : NVL NULL을 0 또는다른값으로변환하기위한함수사용법 : NVL(expression1, expression2) expression1 : NULL을포함하는칼럼또는표현식 expression2 : NULL을대체하는값주의 : expression1과 expression2는반드시동일한데이터타입이어야한다. NVL 확장함수 : NVL2, NULLIF, COALESCE 사용법 : NVL2(expression1, expression2, expression3) expression1 : NULL을포함하는칼럼또는표현식 expression2 : expression1이 NULL이아닐때반환되는식 expression3 : expression1이 NULL 일때대체되는값 사용법 : NULLIF(expression1, expression2) expression1 : expression2 와비교하는값 사용법 : COALESCE(expression-1, expression-2,..., expression-n) expression-1 : expression-1이 NULL이아니면 expression-1을반환 expression-2 : expression-1이 NULL이고 expression-2가 NULL이아니면 expression-2를반환 expression-n : expression-1부터 expression-n-1까지의값이 NULL이고 expression-n이 NULL이아니면 expression-n을반환 DECODE 함수 기존의프로그래밍언어에서 IF문이나 CASE문으로표현되는복잡한알고리즘을하나의 SQL명령문으로간단하게표현할수있는유용한기능이다. DECODE 함수에서는비교연산은 = 만가능하다. 사용법 : DECODE(expression column, SEARCH1, RESULT1 [, SEARCH2, RESULT2,..., ] [, DEFAULT] @ 표현식또는칼럼의값이 SEARCH1 값과일치하면 RESULT1 값을반환, SEARCH2 값과일치하면 RESULT2값반환 @ 일치하는값이없거나 NULL인경우에는기본값반환 @ 기본값이없는경우에는 NULL반환 - 11 -

CASE DECODE 함수의기능을확장한함수이다. 사용법 : CASE expression WHEN comparison_exp1 THEN return_exp1 [WHEN comparison_exp2 THEN return_exp2 WHEN comparison_exp3 THEN return_exp3 ELSE else_expression] END ------------------------! SQL 문함수! ------------------------ ------------------------! 그룹함수! ------------------------ 1. 그룹함수 테이블의전체행을하나이상의칼럼을기준으로칼럼값에따라그룹화하여그룹별로결과를출력하는함수이다. 사용법 : SELECT column, group_function(column) FROM table [WHERE condition] [GROUP BY group_by_expresssion] [HAVING group_condition] GROUP BY : 전체행을 group_by_expression을기준으로그룹화 HAVING : GROUP BY절에의해생성된그룹별로조건부여 2. 그룹함수의종류 < 표 > 그룹함수의종류종류의미 COUNT 행의개수출력 MAX NULL을제외한모든행에서최대값 MIN NULL을제외한모든행에서최소값 SUM NULL을제외한모든행에서합계 AVG NULL을제외한모든행에서평균값 STDDEV NULL을제외한모든행에서표준편차 VARIANCE NULL을제외한모든행에서분산값 GROUPING 해당칼럼이그룹에사용되었는지여부를 1또는 0으로반환 GROUPING SETS 한번의질의로여러개의그룹화가능 1) COUNT 함수사용법 : COUNT({* [DISTINCT ALL] expt}) * 은 NULL을포함한모든행의개수 DISTNCT는중복되는값을제외한행의개수 ALL은중복되는값을포함한행의개수, 기본값은 ALL Expr 인수에서사용가능한데이터타입은 CHAR, VARCHAR2, NUMBER, DATE타입 - 12 -

2) AVG, SUM, MIN, MAX 함수사용법 : AVG({[DISTINCT ALL]} expr) 사용법 : SUM ({[DISTINCT ALL]} expr) 사용법 : MIN ({[DISTINCT ALL]} expr) 사용법 : MAX ({[DISTINCT ALL]} expr) 3) STDDEV, VARIANCE 함수사용법 : STDDEV ({[DISTINCT ALL]} expr) 사용법 : VARIANCE ({[DISTINCT ALL]} expr) 3. 데이터그룹생성 1) GROUP BY절 특정칼럼값을기준으로테이블의전체행을그룹별로나누기위한절 GROUP BY절의규칙 그룹핑전에 WHERE 절을사용하여그룹대상집합을먼저선택할수있다. GROUP BY절에는반드시칼럼이름을포함해야하며칼럼별명은사용할수없다. 그룹별로출력순서는오름차순으로정렬된다. SELECT 절에서나열된칼럼이름이나표현식은 GROUP BY절에서반드시명시해야한다. 하지만 GROUP BY절에서명시한칼럼이름은 SELECT 절에서명시하지않아도된다. 2) 다중칼럼을이용한그룹별검색 3) ROLLUP, CUBE 연산자사용법 : SELECT column, group_function(column) FROM table [WHERE condition] [GROUP BY [ROLLUP CUBE] group_by_expressin] [HEVING group_condition] 4) GROUPING 함수 - ROLLUP이나 CUBE 연산자와함께사용하는함수이다. 사용법 : SELECT column, group_function(column), GROUPING(column) FROM table [WHERE condition] [GROUP BY [ROLLUP CUBE] group_by_expressin] [HEVING group_condition] - 13 -

5) GROUPING SETS 함수 GROUP BY 절에서그룹조건을여러개지정할수있는함수 < 표 > GROUPING SETS 절과 GROUP BY절의비교 GROUPING SETS 절 GROUP BY 절 GROUP BY GROUP BY a UNION ALL GROUPING SETS(a, b, c) GROUP BY b UNION ALL GROUP BY c GROUP BY GROUP BY a UNION ALL GROUPING SETS(a, b, (b, c)) GROUP BY b UNION ALL GROUP BY b, c GROUP BY GROUP BY a UNION ALL GROUPING SETS(a, ROLLUP(b, c)) GROUP BY ROLLUP(b, c) GROUP BY GROUP BY a UNION ALL GROUPING SETS(a, CUBE(b, c)) GROUP BY CUBE(b, c) 사용법 : SELECT column, group_function(column), GROUPING(column) FROM table [WHERE condition] [GROUP BY [ROLLUP CUBE] group_by_expressin] [GROUPING SETS(column, column ), ] [HEVING group_condition] 4. HAVING SELECT 명령문에서조건검색을위해사용되는 WHERE 절의기능과비슷, HAVAING 절은 GROUP BY절에서생성된그룹을대상으로조건을적용 HAVAING 절의실행과정 1. 테이블에서 WHERE절에의해조건을만족하는행집합을선택한다. 2. 행집합을 GROUP BY절에의해그룹핑을한다. 3. HAVING 절에의해조건을만족하는그룹을선택한다. 사용법 SELECT column, group_function(column) FROM table [WHERE condition] [GROUP BY [ROLLUP CUBE] group_by_expressin] [HEVING group_condition] [ORDER BY column] ------------------------! 그룹함수! ------------------------ - 14 -

------------------------! 조인 (JOIN)! ------------------------ 1. 조인 - 여러개의테이블을결합하여검색하는것 2. 컬럼이름의애메모호성, 테이블별명, 조인조건식 1) 칼럼이름의애매모호성해결방법조인조건절에서서로다른테이블에있는동일한칼럼이름을연결할경우, 칼럼이름이중복되어구별이어려운애매모호한경우가발생할수있다예를들어학생테이블의학과번호와부서테이블의부서번호의칼럼이름이동일할시에구별하기어렵다. 이러한경우 student.deptno와 department.deptno처럼컬럼이름앞에테이블이름을접두사로사용한다면애매모호성을해결할수있다. 2) 조인에서테이블이름의별명사용테이블이름이너무긴경우에는조인조건절을작성하기가번거럽다. 이러한경우에는테이블이름을대신하는별명을지정할수있다. 테이블의별명을지정하는방법은 FROM 절에서테이블이름다음에공백을두고별명을정의하면된다. 테이블별명작성규칙 1. 테이블별명은 30자까지가능하지만너무길지않게지정한다. 2. FROM 절에서테이블이름을명시하고공백을둔다음테이블별명을지정한다. 3. 하나의 SQL 명령문내에서테이블이름과별명을혼용할수없다. 4. 테이블의별명은해당 SQL 명령문내에서만유효하다. 3) AND 연산자를사용한검색조건추가 3. 조인의종류 1) 카티션곱 enro 이상의테이블에대해연결가능한행을모두결합하는조인방법 CROSS JOIN 사용법 SELECT table1.column, table2.column FROM [table1, table2 table1 CROSS JOIN table2] 2) EQUI JOIN SQL 명령문에서가장많이사용하는조인방법. EQUI JOIN은조인대상테이블에서공통칼럼을 = (equal) 비교를통해같은값을가지는행을연결하여결과를생성하는조인방법. EQUI JOIN에서연결고리가되는공통칼럼을조인애튜리뷰트라한다. * WHERE 절을이용한 EQUI JOIN 사용법 : SELECT table1.column, table2.column FROM table1, table2 --조인대상테이블을기술테이블, 구분 WHERE table1.column1 = table2.column2 * 자연조인을이용한 EQUI JOIN 사용법 : SELECT table1.column, table2.column FROM table1 NATURAL JOIN table2-15 -

* JOIN ~ USING 절을이용한 EQUI JOIN 사용법 : SELECT table1.column, table2.column FROM table1 JOIN table2 USING (column); 3) NON-EQUI JOIN 조인조건에서 <, BETWEEN a AND b 와같이 = 조건이아닌다른종류의연산자를사용하는조인방식 4) OUTER JOIN NULL에대해서는어떠한연산을적용하더라도연산결과가 NULL이된다. OUTER JOIN은조인조건의양측칼럼값중에서하나가 NULL인경우에도조인결과로출력할수있는조인방법이다. 데이터베이스실무에서 OUTER JOIN은 EQUI JOIN보다사용빈도는적지만, EQUI JOIN에서해결할수없는결과를출력할수있다. * (+) 기호를사용한 OUTER JOIN - (+) 기호를양쪽에사용할수없으므로주의사용법 : SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column(+) = table2.column 또는 table1. column = table2.column(+) * OUTER JOIN의제약사항 1. OUTER JOIN 연산자 (+) 는 NULL이존재하는칼럼쪾에표시된다. 2. OUTER JOIN에서는 IN 연산자를사용할수없다. 3. 다른조건과 OR연산자로결합할수없다. * OUTER JOIN ~ ON 절을사용한 OUTER JOIN 1. LEFT OUTER JOIN 왼쪽에위치한테이블이 NULL을가질경우에사용사용법 : SELECT t1.column, t2.column FROM t1 LEFT OUTER JOIN t2 ON t1.column = t2.column 2. RIGHT OUTER JOIN - 오른쪽에위치한테이블이 NULL을가질경우에사용사용법 : SELECT t1.column, t2.column FROM t1 RIGHT OUTER JOIN t2 ON t1.column = t2.column 3. FULL OUTER JOIN - LEFT OUTER JOIN, RIGHT OUTER JOIN을동시에실행한결과로출력사용법 : SELECT t1.column, t2.column FROM t1 FULL OUTER JOIN t2 ON t1.column = t2.column - 16 -

6) SELF JOIN 하나의테이블내에있는칼럼끼리연결하는조인이필요할때사용 WHERE 절을사용한 SELF JOIN 한테이블에두개의칼럼을연결하여 EQUI JOIN 하는조인방식 JOIN ~ ON절을사용한 SELF JOIN 사용법 : SELECT table1.column, table2.column FROM table1 JOIN table2 ON table1.column = table2.column - 17 -