oracle sql*plus
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 PresentationTRANSCRIPT
Oracle SQL*PLUSOracle SQL*PLUS
Database Systems Labs
TA: 이종욱 , 유개원
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/
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.)
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
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
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
SQL*PLUS: BasicSQL*PLUS: Basic
SQL buffer SQL 명령이 저장되는 메모리 공간
기본 용법 명령문을 입력하고 Enter 를 치면 현재 Line 이 표시되면서 buffer
입력 상태가 된다 .
Buffer 입력 상태를 끝내려면 마지막 명령문의 끝 , 또는 마지막의 빈 Line 에 ‘ ;’ 입력
Page 7
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
SQL*PLUS: SQL*PLUS: 기타 명령기타 명령
HELP INDEX Help Page 를 출력
Select table_name from user_tables; 현재 사용자의 모든 테이블을 출력
DESC tablename 해당 table 의 schema 를 보여준다 .
Page 9
Writing SQL StatementWriting SQL Statement
SQL 문은 대소문자를 구별하지 않는다 . SQL Keyword 는 대문자로 , 그 외의 것은 소문자로 하는 것이
일반적이다 .
SQL 문은 하나 이상의 라인이 될 수 있다 .
키워드 (keyword) 는 약어를 쓰거나 두 라인으로 나누어 쓸 수 없다 .
탭이나 들여쓰기를 이용하여 가독성 (readability) 을 높인다 .
Page 10
Naming RulesNaming Rules
Table name 과 Column name 은 반드시 Alphabet 으로 시작하며 30 자 까지 가능
이름은 A-Z, a-z, 0-9, _(under score), $, # 만을 포함
Page 11
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
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
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
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
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
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
SQL *PLUS SQL *PLUS 파일 명령어 파일 명령어 - SPOOL- SPOOL
SQL *PLUS 에서 수행되는 모든 내용을 저장 .
형식 : SPOOL 파일명
확장자 생략시 .lst 형식으로 저장 됨 .
작업을 끝낼 때는 SPOOL OFF 함 . ( 안하면 저장 안 됨 .)
Page 18
PracticePractice
1. 다음 Schema 를 갖는 ‘ Shopping’ Table 을 생성하세요 .
( 결과확인 : desc shopping)
product VARCHAR2(20)
amount NUMBER
price NUMBER
v_date DATE
Page 19
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
PracticePractice
3. 맥주의 수량을 10 으로 수정하세요 .
4. 품목명과 각 품목의 비용을 함께 출력하세요 .
5. 전체 비용을 출력하세요 .
6. 오늘 날짜를 기준으로 유통기한이 지난 항목을 삭제하세요 .
Page 21
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
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