荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: zzt (少年仲永), 信区: Java
标  题: JDBC编程技术(2) (fwd)
发信站: BBS 荔园晨风站 (Sun Apr 11 10:10:22 1999), 转信

技术服务



       第四部分 JDBC编程技术

                   丁锂 孙元 王克宏



     (接上期)

     例2.1 创建供应商关系SUPPLIER。

     CREATE TABLE SUPPLIER ( SNO CHAR (5) NOT
NULL,SNAME CHAR (20),SADDR CHAR (15),SNUM INTEGER));


执行以上语句就在数据库中建立一个新的供应关系表SUPPLIER,关于表SUPPLIER的描述存储
在系统的数据字典中。其中供应商号SNO为主码。CHAR(n)代表长度为n的定长字符串,INTEG
ER代表1字长(精度为32
bits)的二进制整数。

     2.删除基本表格式如下:

     DROP TABLE 表名;

     如删除上例中的表SUPPLIER:

     DROP TABLE SUPPLIER;

     这样,基本表的定义连同表上的记录等全部删除,并释放相应的存储空间。

     3.修改基本表格式如下:

     ALTER TABLE 表名;

     ADD(DROP) 列名 类型;

     例如为例1中的关系SUPPLIER增加一个属性DE-SCRIPRION如下示:

     ALTER TABLE SUPPLIER

     ADD DESCRIPTION CHAR(100);

     二、索引的定义


通常,我们可以对一个基本表建立若干索引,以提供多种存取路径和某些条件下的快速存
取。如果查询取得的行数大大少于表中所有的行所需的I/O次数时,建立索引将有很大用处?
?
一般索引的建立和删除由DBA(Data Base Administrator
)负责,存取路径的选择由系统自动 进行。

     1.建立索引的格式如下:

     CREATE [UNIQUE] INDEX 索引名

     ON 基本表名(列名[次序] [, 列名[次序]]...)

     [其它参数];


索引可以建立在一列或几列上,圆括号内是索引列的顺序说明表。其中次序指定了索引值排
序的次序,可取ASC(升序)或
DESC(降序),缺省为升序。U-NIQUE表示每一索引值只对应唯一的数据记录。例如为例2.1中
的关系SUPPLIER的属性SNO建立索引:

     CREATE UNIQUE INDEX XS ON SUPPLIER (
SNO).其中XS是索引名。

     2.和基本表一样,可以用DROP语句删除索引,格式为:

     DROP INDEX 索引名;

     删除索引的同时把有关索引的描述也从数据字典中删去。

     没有修改索引的语句,因为修改索引没有意义。

     三、视图的定义


视图是RDBMS中重要的概念之一。它是从一个或几个基本表导出的表,本身不独立存储在
数据库中,即数据库中只存储视图的定义,不存储对应的数据,因此是一个虚表。当查询视图
时,将对视图的查询改写为对基本表的查询。视图与基本表的区别在于视图的更新操作是受
限制的。


视图有很多用途:首先,数据有逻辑独立性,使应用程序不受数据库影响,它将应用与数据
库分离开来,便于数据库的重构;其次,使用视图可增强安全性;第三,使用户观点中的数据库
形式简单而方便。

     1.SQL建立视图的格式为:

    CREATE  VIEW 视图名[  (字段名 [,字段名]…) ]
                 AS    子查询
                 [WITH  CHECK  OPTION ];


     2.删除视图的格式为:

     DROP VIEW 视图名;


通过上面的语句就从数据字典中删除了视图,如果导出视图的基本表被删除,则视图也将
被删除。

                  2.2.4 SQL数据操纵功能

     SQL的数据操纵语言(DML)包括SELECT, IN-SERT,
DELETE和UPDATE
四个语句,即检索和更新两部分功能。下面我们来分别介绍。

     一、SELECT语句

     SQL语句的核心是数据库查询语句,它的一般格式是:

     SELECT [DISTINCT]目标列

     FROM 基本表(或视图)

     [WHERE 条件表达式]

     [GROUP BY 列名1 [HAVING 内部函数表达式]]

     [ORDER BY 列名2 (ASC OR DESC)];

     SELECT语句就是根据WHERE
子句中的条件表达式,从基本表(或视图)中查找满足条件的行,按SE-LECT子句中的目标列,?
〕鲂兄械姆至啃纬山峁怼?

     DISTINCT表示去掉结果集中的重复行。


若有ORDER子句,则结果表要根据指定的列名2按升序或降序来对结果集中的行进行排列。


GROUP子句将结果按列名1分组,每个组产生结果表中的一个行,通常在每组中作用库函数
,分组的附加条件用HAVING短语给出,只有满足内部函数表达式的组才输出。

     WHERE 后的条件表达式连接词有AND ,OR,
NOT,算术运算符等,还可以使用方式:限定范围,LIKE和
IN谓词 等。


由于SELECT语句的成分有许多可选形式,尤其是目标列和条件表达式,因此操作十分灵活
方便。下面来看一些例子。

     1.简单查询

     例2.2 找出例2.1中定义的关系SUPPLIER中所有的信息。

     SELECT *

     FROM SUPPLIER;

     这个例子查询表中的所有行和列,也可以对表中的某些列进行查询,如:

     例2.3 找出SUPPLIER中所有的供应者名。

     SELECT SNAME

     FROM SUPPLIER;

     例2.4 找出供应号在14到17之间的供应商的所有信息。
SELECT SNO , SNAME, SADDR,SNUM

     FROM SUPPLIER

     WHERE SNO BETWEEN 14 AND 17;

     这里使用了限定范围谓词BETWEEN和连接词AND,同时WHERE子句中还可使用OR,>
,< ,= ,>=,<= 等连接词和否定谓词NOT。 (未完待续)








--



日出东方,唯我不败;
    天上地下,唯我独尊。

※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.72]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店