IBM DB2 学习笔记整理(一):概述

【 IBM DB2 学习笔记一】

【彭建军】

【 20050425 】

注意:在 IBM DB2 中,与 MS SQL Server 2000 中相同的语法或者概念,这里就不一一列出了。

一、【 DB2 SQL 概述】

1 、 【模式】

1.1 、模式是已命名的对象(如表和视图)的集合。模式提供了数据库中对象的逻辑分类。

1.2 、当在数据库中创建对象的时候,系统就隐性的创建了模式。当然,也可以使用 CREATE SCHEMA 显式的创建模式。

1.3 、当命名对象的时候,需要注意对象的名称有两个部分,即,模式 . 对象名称 , 形如: pjj.TempTable1 。如果不显示指定模式,则系统使用默认模式(默认用户的 ID )。

2 、 【数据类型】

定长字符串 CHAR(x) x 值域( 1 ~ 254 ) 一个字节序列

变长字符串 VARCHAR(X)

LONG VARCHAR(X)

LOB( 大对象 )

定长图形字符串 GRAPHCI(X) x 值域( 1 ~ 127 ) 两个字节序列

变长图形字符串 VARGRAPHCI(X)

LONG GRAPHCI(X)

DBCLOB( 大对象 )

二进制字符串 暂缺 一个字节序列

BLOB( 大对象 )

数字 ( 所有数字都有精度,精度是指除符号位以外的位数或者数字数 )

SMALLINT 精度为 5 2 字节整数

INTEGER 精度为 10 4 字节整数

BIGINT 精度为 19 8 字节整数

REAL 实数的 32 位近似值

DOUBLE 实数的 64 位近似值

DECIMAL(P,S) P, 精度, S, 小数位数,十进制数, P 必须 <= 32 , S 必须 <=P ,缺省 :P=5,S=0

日期时间型 14 位字符串,即非数字类型也非字符串类型

日期 DATE 年月日

时间 TIME 24 小时制,分为 小时分钟秒

时间戳记 TIMESTAMP 1 日期和时间的值,分为 年月日小时分钟秒微秒

空值 不同于任何非空值

3 、 其他

DB2 不区分大小写(单引号或者双引号内的内容除外)

二、【创建表和视图】

1 、【创建表】

CREATE TABLE PERS

(

ID SMALLINT NOT NULL,

NAME VARCHAR(9),

DEPT SMALLINT WITH DEFAULT 10,

JOB CHAR(5),

YEARS SMALLINT,

SALARY DECIMAL(7,2),

COMM DECIMAL(7,2),

BIRTH_DATE DATE

)

2 、【在表中插入值】 ( 三种方式 )

INSERT INTO PERS

VALUES (12,'Harris',20,'Sales',5,18000,1000,' 1950-1-1 ')

INSERT INTO PERS (NAME,JOB,ID)

VALUES ('Swagerman','Pramr',500),

(' Limoges ','Prgmr',510),

('Li','Prgmr',520)

INSERT INTO PERS (ID,NAME,DEPT,JOB,YEARS,SALARY,COMM,BIRTH_DATE)

SELECT ID,NAME,DEPT,JOB,YEARS,SALARY,COMM,BIRTH_DATE

FROM STAFF

WHERE ID = 58

3 、【更新数据】

UPDATE PERS

SET JOB = 'Prgmr',SALARY = SALARY + 300

WHERE ID = 410

UPDATE PERS

SET SALARY = SALARY * 1.15

WHERE JOB = 'Sales'

4 、【删除数据】

DELETE FROM PERS

WHERE ID = 120

5 、【删除表】

DROP TABLE PERS

6 、【创建视图】

( 可以选用 WITH CHECK OPTION 选项,该选项针对 WHERE 的条件进行限定 )

CREATE VIEW STAFF_ONLY

AS SELECT ID,NAME,DEPT,JOB,YEARS

FROM STAFF

WHERE JOB <> 'Mgr' AND DEPT = 20 WITH CHECK OPTION

三、【使用 SQL 语句存取数据】

(? CREATE 显示一般帮助提示信息 )

1 、【连接数据库】

CONNECT TO MYDB2 USER USERID USING PASSWORD

2 、【谓词】

x=y x<>y x

 1<y x="">y x&gt;=y x&lt;=y 
 2
 3IS NULL 
 4
 5IS NOT NULL 
 6
 7##  3  、【其他的一些去  SQL SERVER  类似的东西就省略】 
 8
 9##  4  、【运算次序】 
10
11FROM 
12
13WHERE 
14
15GROUP BY 
16
17HAVING 
18
19SELECT 
20
21ORDER BY 
22
23##  5  、【函数】 
24
25###  5.1  、【列函数】 
26
27(  列函数对列中的一组值进行运算以得到单一的结果值!  ) 
28
29AVG 
30
31COUNT 
32
33MAX 
34
35MIN 
36
37###  5.2  、【标量函数】 
38
39###  (  标量函数对一个单一值进行运算以返回另一个单一的结果值!  ) 
40
41ABS  绝对值 
42
43HEX  十六进制 
44
45LENGTH  返回字节数(对于图形字符串则返回双字节字符串) 
46
47YEAR 
48
49###  5.3  、【表函数】 
50
51(  表函数仅可用于  FROM  子句,返回表的列!  ) 
52
53#  四、【表达式和子查询】 
54
55##  1  、【标量全查询】 
56
57##  (  返回一行,该行只包括一个值,用于从数据库中检索值  ) 
58
59SELECT LASTNAME,FIRSTNAME 
60
61FROM EMPLOYEE 
62
63WHERE SALARY &gt; (SELECT AVG(SALARY) FROM EMPLOYEE) 
64
65SELECT AVG(SALARY) AS "Average_Employee", 
66
67(SELECT AVG(SALARY) AS "Average_Staff" FROM STAFF) 
68
69FROM EMPLOYEE 
70
71注意  : 
72
73SQL SERVER  中  ,  字符串用单引号  ,  而  DB2  中则使用双引号  ! 
74
75&lt;p class="MsoNormal" style</y>
Published At
Categories with 数据库类
comments powered by Disqus