## 데이터 유형
문자열(byte)
- 고정길이문자열 char(x)
- 가변길이문자열 varchar, long varchar, clob
그래픽문자열(2byte)
- 고정길이 그래픽문자열 graphic(x)
- 가변길이그래픽문자열 vargraphic, long vargraphic, dbclob
2진 문자열(byte)
- 2진 대형 오브젝트 blob
숫자
- smallint(작은정수) 5자리의 정밀도를 가진 2byte정수
- integer(큰정수) 10자리의 정밀도를 가진 4byte정수
- bigint(큰정수) 19자리로 된 8byte 정수.
- real (단정밀도 부동 소수점) 실수 32비트 근사치.
- double (배정밀도 부동 소수점) 실수 64비트 근사치.
- decinal p,s (소수)
날짜시간값 (date, time, timestamp)
- 날짜 년, 월, 일 세 부분으로 구성.
- 시간 시, 분, 초 세부분으로 구성, 24시간 이용.
- 시간소인 날짜와 시간을 나타내는 년, 월, 일, 시, 분, 초, 마이크로초 일곱 부분으로 구성.
NULL
## sample 가지고 놀기.
E:\Program Files\IBM\SQLLIB\BIN>db2sampl
E:\Program Files\IBM\SQLLIB\BIN>
E:\Program Files\IBM\SQLLIB\BIN>db2
(c) Copyright IBM Corporation 1993,2002
DB2 SDK 8.2.4용 명령행 처리기(CLP)
명령 프롬프트에서 데이터베이스 관리 프로그램 명령과 SQL문을 발행할 수 있습니다.
예:
db2 => connect to sample
db2 => bind sample.bnd
일반적인 도움말을 보려면 ?를 입력하십시오.
명령 도움말을 보려면 ?를 입력하십시오.
여기서 명령은 데이터베이스 관리 프로그램 명령의 처음 몇 키워드가 될 수
있습니다. 예:
? CATALOG DATABASE: CATALOG DATABASE 명령에 대한 도움말
? CATALOG: 모든 CATALOG 명령에 대한 도움말
db2 대화식 모드에서 나가려면 명령 프롬프트에서 QUIT를 입력하십시오. 대화식
모드 외부에서는 모든 명령 앞에 'db2'를 붙여야 합니다.
현재 명령 옵션 설정값을 나열하려면 LIST COMMAND OPTIONS를 입력하십시오.
더 자세한 도움말을 보려면 온라인 참조서를 참조하십시오.
db2 => connect to sample
데이터베이스 연결 정보
데이터베이스 서버 = DB2/NT 8.2.4
SQL 권한 부여 ID = FINEWOOD
로컬 데이터베이스 별명 = SAMPLE
db2 => list tables
테이블/뷰
스키마
유형 작성 시간
------------------------------- --------------- ----- --------------------------
CL_SCHED FINEWOOD T 2006-04-21-14.56.27.421002
DEPARTMENT FINEWOOD T 2006-04-21-14.56.22.609001
EMP_ACT FINEWOOD T 2006-04-21-14.56.23.187001
EMP_PHOTO FINEWOOD T 2006-04-21-14.56.23.921002
EMP_RESUME FINEWOOD T 2006-04-21-14.56.26.546001
EMPLOYEE FINEWOOD T 2006-04-21-14.56.22.812000
IN_TRAY FINEWOOD T 2006-04-21-14.56.27.468001
ORG FINEWOOD T 2006-04-21-14.56.22.125004
PROJECT FINEWOOD T 2006-04-21-14.56.23.687005
SALES FINEWOOD T 2006-04-21-14.56.27.296001
STAFF FINEWOOD T 2006-04-21-14.56.22.203008
STAFFG FINEWOOD T 2006-04-21-14.56.22.531011
12 레코드가 선택됨.
db2 => select deptname, deptnumb from org
DEPTNAME DEPTNUMB
-------------- --------
Head Office 10
New England 15
Mid Atlantic 20
South Atlantic 38
Great Lakes 42
Plains 51
Pacific 66
Mountain 84
8 레코드가 선택됨.
db2 => select * from org
DEPTNUMB DEPTNAME MANAGER DIVISION LOCATION
-------- -------------- ------- ---------- -------------
10 Head Office 160 Corporate New York
15 New England 50 Eastern Boston
20 Mid Atlantic 10 Eastern Washington
38 South Atlantic 30 Eastern Atlanta
42 Great Lakes 100 Midwest Chicago
51 Plains 140 Midwest Dallas
66 Pacific 270 Western San Francisco
84 Mountain 290 Western Denver
8 레코드가 선택됨.
db2 => select dept, name, job from staff where dept = 20
DEPT NAME JOB
------ --------- -----
20 Sanders Mgr
20 Pernal Sales
20 James Clerk
20 Sneider Clerk
4 레코드가 선택됨.
db2 => select dept, name, job from staff where job = 'Clerk' and dept = 20
DEPT NAME JOB
------ --------- -----
20 James Clerk
20 Sneider Clerk
2 레코드가 선택됨.
db2 => select id, name from staff where comm is null
ID NAME
------ ---------
10 Sanders
30 Marenghi
50 Hanes
100 Plotz
140 Fraye
160 Molinare
210 Lu
240 Daniels
260 Jones
270 Lea
290 Quill
11 레코드가 선택됨.
db2 => select id, name from staff where comm = 0
ID NAME
------ ---------
0 레코드가 선택됨.
db2 => select * from staff
ID NAME DEPT JOB YEARS SALARY COMM
------ --------- ------ ----- ------ --------- ---------
10 Sanders 20 Mgr 7 18357.50 -
20 Pernal 20 Sales 8 18171.25 612.45
30 Marenghi 38 Mgr 5 17506.75 -
40 O'Brien 38 Sales 6 18006.00 846.55
50 Hanes 15 Mgr 10 20659.80 -
60 Quigley 38 Sales - 16808.30 650.25
70 Rothman 15 Sales 7 16502.83 1152.00
80 James 20 Clerk - 13504.60 128.20
90 Koonitz 42 Sales 6 18001.75 1386.70
100 Plotz 42 Mgr 7 18352.80 -
110 Ngan 15 Clerk 5 12508.20 206.60
120 Naughton 38 Clerk - 12954.75 180.00
130 Yamaguchi 42 Clerk 6 10505.90 75.60
140 Fraye 51 Mgr 6 21150.00 -
150 Williams 51 Sales 6 19456.50 637.65
160 Molinare 10 Mgr 7 22959.20 -
170 Kermisch 15 Clerk 4 12258.50 110.10
180 Abrahams 38 Clerk 3 12009.75 236.50
190 Sneider 20 Clerk 8 14252.75 126.50
200 Scoutten 42 Clerk - 11508.60 84.20
210 Lu 10 Mgr 10 20010.00 -
220 Smith 51 Sales 7 17654.50 992.80
230 Lundquist 51 Clerk 3 13369.80 189.65
240 Daniels 10 Mgr 5 19260.25 -
250 Wheeler 51 Clerk 6 14460.00 513.30
260 Jones 10 Mgr 12 21234.00 -
270 Lea 66 Mgr 9 18555.50 -
280 Wilson 66 Sales 9 18674.50 811.50
290 Quill 84 Mgr 10 19818.00 -
300 Davis 84 Sales 5 15454.50 806.10
310 Graham 66 Sales 13 21000.00 200.30
320 Gonzales 66 Sales 4 16858.20 844.00
330 Burke 66 Clerk 1 10988.00 55.50
340 Edwards 84 Sales 7 17844.00 1285.00
350 Gafney 84 Clerk 5 13030.50 188.00
35 레코드가 선택됨.
db2 => select * from staff where dept = 84 order by years desc
ID NAME DEPT JOB YEARS SALARY COMM
------ --------- ------ ----- ------ --------- ---------
290 Quill 84 Mgr 10 19818.00 -
340 Edwards 84 Sales 7 17844.00 1285.00
300 Davis 84 Sales 5 15454.50 806.10
350 Gafney 84 Clerk 5 13030.50 188.00
4 레코드가 선택됨.
db2 => select distinct dept, job from staff
DEPT JOB
------ -----
15 Clerk
20 Clerk
38 Clerk
42 Clerk
51 Clerk
66 Clerk
84 Clerk
10 Mgr
15 Mgr
20 Mgr
38 Mgr
42 Mgr
51 Mgr
66 Mgr
84 Mgr
15 Sales
20 Sales
38 Sales
42 Sales
51 Sales
66 Sales
84 Sales
22 레코드가 선택됨.
db2 => select distinct dept from staff
DEPT
------
10
15
20
38
42
51
66
84
8 레코드가 선택됨.
db2 =>
### 연산 순서
1. FROM 절
2. WHERE 절
3. GROUP BY 절
4. HAVING 절
5. SELECT 절
6. ORDER BY 절
### 표현식을 사용하여 값 계산.
db2 => SELECT DEPT, NAME, SALARY + 500 FROM STAFF WHERE DEPT = 38 ORDER BY 2
DEPT NAME 3
------ --------- ----------------
38 Abrahams 12509.75
38 Marenghi 18006.75
38 Naughton 13454.75
38 O'Brien 18506.00
38 Quigley 17308.30
5 레코드가 선택됨.
db2 => SELECT DEPT, NAME, SALARY +200 FROM STAFF WHERE DEPT = 38 ORDER BY 3
DEPT NAME 3
------ --------- ----------------
38 Abrahams 12209.75
38 Naughton 13154.75
38 Quigley 17008.30
38 Marenghi 17706.75
38 O'Brien 18206.00
5 레코드가 선택됨.
* 컬럼이름 (RATE * HOURS 형식)
* 상수 값 (RATE * 1.07 형식)
* 스칼라 함수 (LENGTH(NAME) + 1형식)
### 표현식 이름 지정.
PAY라는 이름을 WHERE절에선 사용 안됨, ORDER에선 사용됨.
연산 순서에 의해서 그렇습니다.
db2 => SELECT NAME, JOB, SALARY + COMM AS PAY FROM STAFF WHERE (SALARY + COMM) <
13000 ORDER BY PAY
NAME JOB PAY
--------- ----- ----------
Yamaguchi Clerk 10581.50
Burke Clerk 11043.50
Scoutten Clerk 11592.80
Abrahams Clerk 12246.25
Kermisch Clerk 12368.60
Ngan Clerk 12714.80
6 레코드가 선택됨.
[출처] sample 가지고 놀기. 1|작성자 너덜