oracle sql*plus

23
Oracle SQL*PLUS Oracle SQL*PLUS Database Systems Labs TA: 이이이 , 이이이

Upload: morag

Post on 14-Jan-2016

59 views

Category:

Documents


0 download

DESCRIPTION

Oracle SQL*PLUS. Database Systems Labs. TA: 이종욱 , 유개원. Welcome to DB World. Lab Class Library 501, Fri 9:00 – 10:40 Teacher Assistants 이종욱 , 유개원 {julee, gwyou}@postech.ac.kr IDS Lab. (279-5878) Database Systems Lab Homepage http://ids.postech.ac.kr/dblab2010/. Lab Schedule. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Oracle SQL*PLUS

Oracle SQL*PLUSOracle SQL*PLUS

Database Systems Labs

TA: 이종욱 , 유개원

Page 2: Oracle SQL*PLUS

Welcome to DB WorldWelcome to DB World

• Lab Class– Library 501, Fri 9:00 – 10:40

• Teacher Assistants– 이종욱 , 유개원

{julee, gwyou}@postech.ac.kr– IDS Lab. (279-5878)

• Database Systems Lab Homepage– http://ids.postech.ac.kr/dblab2010/

Page 3: Oracle SQL*PLUS

Lab ScheduleLab Schedule

1. Introduction2. Basic DML3. Constraints4. Group Functions5. Join6. Nested Queries7. Views8. Triggers9. Sequences10. Indexes11. User-defined Functions

+ Introduction of Minibase or other term projects

(This schedule is tentative, and may be sufficiently changeable.)

Page 4: Oracle SQL*PLUS

IntroductionIntroduction

SQL Structured Query Language

관계형 DB 를 처리하기 위해 고안된 표준 언어 (ISO)

기 능 Data Definition Language (DDL) Statements

CREATE, ALTER, DROP, RENAME, TRUNCATE

Data Manipulation Language (DML) Statements

INSERT, UPDATE, DELETE

Data Control Language (DCL) Statements

GRANT, REVOKE

Transaction Control (TC) Statements

COMMIT, ROLLBACK, SAVEPOINT

Page 4

Page 5: Oracle SQL*PLUS

IntroductionIntroduction

실습 환경 Oracle Database 10g Express Edition Release 2 http://www.oracle.com/technology/software/products/database/xe/index.html

SQL*PLUS? Text 기반의 Oracle RDBMS Interface

Page 5

Page 6: Oracle SQL*PLUS

SQL*PLUS: LoginSQL*PLUS: Login

ssh lightpurple.postech.ac.kr (port 22)

Username: stu2010

Password: stu2010

Type ‘sqlplus’ ID/PW: Your Hemos ID.

Page 6

Page 7: Oracle SQL*PLUS

SQL*PLUS: BasicSQL*PLUS: Basic

SQL buffer SQL 명령이 저장되는 메모리 공간

기본 용법 명령문을 입력하고 Enter 를 치면 현재 Line 이 표시되면서 buffer

입력 상태가 된다 .

Buffer 입력 상태를 끝내려면 마지막 명령문의 끝 , 또는 마지막의 빈 Line 에 ‘ ;’ 입력

Page 7

Page 8: Oracle SQL*PLUS

SQL*PLUS: SQL*PLUS: 편집 명령편집 명령

R[UN] Buffer 의 내용 실행

L[IST] Buffer 의 내용 출력 (‘*’ 로 표시된 Line 이 현재 Line)

A[PPEND] text 현재 Line 의 마지막에 text 를 추가한다 .

C[HANGE] /old/new/ 현재 Line 의 old 를 new 로 바꾼다 .

C[HANGE] /text/ 현재 Line 의 text 를 지운다 .

CL[EAR] BUFFER SQL Buffer 의 내용을 지운다 .

Page 8

Page 9: Oracle SQL*PLUS

SQL*PLUS: SQL*PLUS: 기타 명령기타 명령

HELP INDEX Help Page 를 출력

Select table_name from user_tables; 현재 사용자의 모든 테이블을 출력

DESC tablename 해당 table 의 schema 를 보여준다 .

Page 9

Page 10: Oracle SQL*PLUS

Writing SQL StatementWriting SQL Statement

SQL 문은 대소문자를 구별하지 않는다 . SQL Keyword 는 대문자로 , 그 외의 것은 소문자로 하는 것이

일반적이다 .

SQL 문은 하나 이상의 라인이 될 수 있다 .

키워드 (keyword) 는 약어를 쓰거나 두 라인으로 나누어 쓸 수 없다 .

탭이나 들여쓰기를 이용하여 가독성 (readability) 을 높인다 .

Page 10

Page 11: Oracle SQL*PLUS

Naming RulesNaming Rules

Table name 과 Column name 은 반드시 Alphabet 으로 시작하며 30 자 까지 가능

이름은 A-Z, a-z, 0-9, _(under score), $, # 만을 포함

Page 11

Page 12: Oracle SQL*PLUS

Oracle Data TypeOracle Data Type

CHAR(L) 고정길이 문자열 . 최대 4000 Byte

VARCHAR2(L) 가변길이 문자열 . 최대 4000 Byte

NUMBER 숫자 (38 자리 표현 )

BLOB / CLOB 각각 Binary/Text 자료를 4GB 까지 저장

DATE / TIMESTAMP 날짜 / ms 단위까지의 시각

Page 12

Page 13: Oracle SQL*PLUS

SQL: DDLSQL: DDL

Relation 을 생성 /수정 /제거하는 명령어 CREATE TABLE, ALTER TABLE, DROP TABLE, RENAME TO

CREATE TABLE

Page 13

CREATE TABLE table_name (column_name data_type [constraint],…,column_name data_type [constraint])

e.g., NOT NULL

Page 14: Oracle SQL*PLUS

SQL: DDLSQL: DDL

DROP TABLE DROP TABLE table_name

RENAME TO RENAME table_name TO new_table_name

ALTER ALTER TABLE table_name ADD column_name data_type

ALTER TABLE table_name DROP COLUMN column_name

ALTER TABLE table_name MODIFY column_name data_type

Page 14

Page 15: Oracle SQL*PLUS

SQL: DMLSQL: DML

INSERT INSERT INTO table_name [(column[, …])]

VALUES (value[,…])

Column 을 생략하거나 Values 에 NULL Keyword 를 줌으로써 NULL의 입력이 가능하다 .

DELETE DELETE FROM table_name [WHERE condition]

Page 15

Page 16: Oracle SQL*PLUS

SQL: DMLSQL: DML

UPDATE UPDATE table_name SET column=value[,…]

[WHERE condition]

SELECT SELECT column[,…] FROM table_name [WHERE condition]

SELECT * FROM table_name [WHERE condition]

Page 16

Page 17: Oracle SQL*PLUS

SQL: SQL FunctionSQL: SQL Function

COUNT Tuple 의 개수를 구한다 .

(eg) SELECT COUNT(*) AS cnt FROM table_name

Q: NULL 은 어떻게 될까 ?

SUM Column 값의 합계를 구한다 .

(eg) SELECT SUM(column_name) FROM table_name

응용 SELECT SUM(c_name)/COUNT(c_name) FROM table_name

SELECT SUM(c_name)/COUNT(*) FROM table_name

Page 17

Page 18: Oracle SQL*PLUS

SQL *PLUS SQL *PLUS 파일 명령어 파일 명령어 - SPOOL- SPOOL

SQL *PLUS 에서 수행되는 모든 내용을 저장 .

형식 : SPOOL 파일명

확장자 생략시 .lst 형식으로 저장 됨 .

작업을 끝낼 때는 SPOOL OFF 함 . ( 안하면 저장 안 됨 .)

Page 18

Page 19: Oracle SQL*PLUS

PracticePractice

1. 다음 Schema 를 갖는 ‘ Shopping’ Table 을 생성하세요 .

( 결과확인 : desc shopping)

product VARCHAR2(20)

amount NUMBER

price NUMBER

v_date DATE

Page 19

Page 20: Oracle SQL*PLUS

PracticePractice

2. 다음의 데이터를 입력하세요 .

Page 20

품목product

수량amount

가격price

유통기한v_date

Beer 3 500011-MAY-

2010

Sausage 4 100002-MAR-

2010

Banana 1 600027-MAR-

2010

Squid 2 200001-APR-

2009

Page 21: Oracle SQL*PLUS

PracticePractice

3. 맥주의 수량을 10 으로 수정하세요 .

4. 품목명과 각 품목의 비용을 함께 출력하세요 .

5. 전체 비용을 출력하세요 .

6. 오늘 날짜를 기준으로 유통기한이 지난 항목을 삭제하세요 .

Page 21

Page 22: Oracle SQL*PLUS

Appendix - SQL*PLUS: Appendix - SQL*PLUS: 편집 명령편집 명령

I[NPUT] 다음 Line 으로 Buffer 입력 상태가 된다 .

I[NPUT] text 다음 Line 에 text 를 입력한다 .

L[IST] n n 번 Line 의 내용을 출력한다 .

현재 Line 이 n 으로 바뀐다 .\

L[IST] m n m 부터 n 번 Line 의 내용을 출력한다 .

현재 Line 이 n 으로 바뀐다 .

Page 22

Page 23: Oracle SQL*PLUS

Appendix - Oracle Data TypeAppendix - Oracle Data Type

varchar2(n) : 가변길이 문자 데이터 (1~4000byte)

char(n) : 고정 길이 문자 데이터 (1~2000byte)

number(p, s) : 전체 p 자리 중 소수점 이하 s 자리 (p:1~38, s:-84~127)

date : 7byte(bc4712 년 1 월 1 일부터 ad9999 년 12 월 31 일 )

long : 가변길이 문자 데이터 (1~2Gbyte)

clob : 단일 바이트 가변 길이 문자 데이터 (1~4Gbyte)

raw(n) : n byte 의 원시 이진 데이터 (1~2000)

long raw : 가변 길이 원시 이진 데이터 (1~2Gbyte)

blob : 가변 길이 이진 데이터 (1~4Gbyte)

bfile : 가변 길이 외부 파일에 저장된 이진 데이터 (1~4Gbyte)

Page 23