第8章结构化查询语言SQLWord下载.docx

上传人:b****5 文档编号:15951246 上传时间:2022-11-17 格式:DOCX 页数:18 大小:79.50KB
下载 相关 举报
第8章结构化查询语言SQLWord下载.docx_第1页
第1页 / 共18页
第8章结构化查询语言SQLWord下载.docx_第2页
第2页 / 共18页
第8章结构化查询语言SQLWord下载.docx_第3页
第3页 / 共18页
第8章结构化查询语言SQLWord下载.docx_第4页
第4页 / 共18页
第8章结构化查询语言SQLWord下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

第8章结构化查询语言SQLWord下载.docx

《第8章结构化查询语言SQLWord下载.docx》由会员分享,可在线阅读,更多相关《第8章结构化查询语言SQLWord下载.docx(18页珍藏版)》请在冰豆网上搜索。

第8章结构化查询语言SQLWord下载.docx

SQL数据库的体系结构基本上也是三级模式结构如图8.1所示。

SQL术语与传统的关系模型术语不同。

在SQL中,外模式对应于视图,模式对应于基本表,元组称为“行”,属性称为“列”。

内模式对应于存储文件。

SQL数据库的体系结构具有如下特征:

1.一个SQL模式(Schema)是表和约束的集合。

2.一个表(Table)是行(Row)的集合。

每行是列(Column)的序列,每列对应一个数据项。

3.—个表可以是一个基本表,也可以是一个视图,基本表是实际存储在数据库中的表。

视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是说数据库中只存放视图的定义而不存放视图的数据,这些数据仍存放在导出视图的基本表中。

因此视图是一个虚表。

4.一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表,一个表可以带若干索引,索引也存放在存储文件中。

每个存储文件与外部存储器上一个物理文件对应。

存储文件的逻辑结构组成了关系数据库的内模式。

SQL用户

View

BaseTable

StoredFile

图8.1SQL数据库的体系结构

5.用户可以用SQL语句对视图和基本表进行查询等操作。

在用户看来,视图和基本表是一样的,都是关系(即表格)。

6.SQL用户可以是应用程序,也可以是终端用户。

SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN、COBOL、PASCAL、PL/I、C和Ada等语言;

SQL语言也能作为独立的用户接口,供交互环境下的终端用户使用。

8.1.3SQL的组成

SQL主要分成四个部分:

1.数据定义:

这一部分也称为“SQLDDL”,用于定义SQL模式、基本表、视图和索引。

2.数据操纵:

这一部分也称为“SQLDML”。

数据操纵分成数据查询和数据更新两类。

其中数据更新又分成插入、删除和修改三种操作。

3.数据控制:

这一部分也称为“SQLDCL”。

数据控制包括对基本表和视图的授权,完整性规则的描述,事务控制语句等。

4.嵌入式SQL使用:

这一部分内容涉及到SQL语句嵌入在宿主语言程序中的使用规则。

8.2SQL的数据定义(DDL)

SQL的数据定义部分包括对SQL模式(Schema)、基本表(关系,Table)、视图(View)、索引(Index)的创建和撤消操作。

8.2.1SQL模式的创建和撤消

1.SQL模式的创建

在SQL2中,一个SQL模式(即数据库模式)被定义为基本表的集合。

一个SQL模式由模式名和模式拥有者的用户名或帐号来确定,并包含模式中每一个元素(基本表、视图、索引等)的定义。

创建了一个SQL模式,就是定义了一个存储空间,其语法如下:

CREATESCHEMA<

模式名>

AUTHORIZATION<

用户名>

例如,下面语句定义了教学数据库的SQL模式:

CREATESCHEMAST_COURSEAUTHORIZATION李斌

该模式名为ST_COURSE,拥有者为李斌。

由于“SQL模式”这个名称学术味太重,因此大多数DBMS中不愿采用这个名词,而是采用“数据库”(DATABASE)这个名词。

也就是大多数系统中创建SQL模式不是用“CREATESCHEMA…”字样,而是用“CREATEDATABASE…”字样。

2.SQL模式的撤消

当一个SQL模式及其所属的基本表、视图等元素都不需要时。

可以用DROP语句撤消这个SQL模式。

DROP语句的语法如下:

DROPSCHEMA<

[CASCADE|RESTRICT]

撤消方式有两种:

CASCADE(连锁式)方式,执行DROP语句时,把SQL模式及其下属的基本表、视图、索引等所有元素全部撤消;

RESTRICT(约束式)方式,执行DRPO语句时,只有当SQL模式中没有任何下属元素时,才能撤消SQL模式,否则拒绝执行DROP语句。

例如,要撤消SQL模式ST_COURSE及其下属所有的元素,可用下列语句实现:

DROPSCHEMAST_COURSECASCADE

8.2.2SQL提供的基本数据类型

1.数值型

INTEGER长整数(也可写成INT)

SMALLINT短整数

REAL取决于机器精度的浮点数

DOUBLEPRECISION取决于机器精度的双精度浮点数FLOAT(n)浮点数,精度至少为n位数字

NUMERIC(p,d)定点数,由p位数字(不包括符号、小数点)组成,小数点后面有d位数字(也可写成DECIMAL(P,d)或DEC(P,d))

2.字符串型

CHAR(n)长度为n的定长字符串

VARCHAR(n)具有最大长度为n的变长字符串

3.位串型

BIT(n)长度为n的二进制位串

BITVARYING(n)最大长度为n的变长二进制位串

4.时间型

DATE日期,包含年、月、日,形式为YYYY-MM-DD

TIME时间,包含一日的时、分、秒,形式为HH:

MM:

SS

8.2.3基本表的创建、修改和撤消

如果在系统中创建了一个SQL模式,那么就可以在该模式中创建基本表。

对基本表结构的操作有创建、修改和撤消三种操作。

1.基本表的创建

句法:

CREATETABLESQL模式名.基本表名(列名类型,…完整性约束…)

创建基本表,就是定义基本表的结构,需指出它放在哪个模式中,后面为简单起见,模式名省略不写。

每个属性的类型可以是基本类型,也可以是用户事先定义的类型。

完整性规则主要有三种子句:

主键子句(PRIMARYKEY)、检查子句(CHECK)和外键子句(FOREIGNKEY)。

例8.l在有关零件、供应商、工程项目的数据库中,有四个关系,其结构如下

 

供应商关系S,可用下列语句创建:

CREATETABLES(SNOCHAR(4)NOTNULL,

SNAMECHAR(20)NOTNULL,

STATUSCHAR(10),

ADDRCHAR(20),

PRIMARYKEY(SNO));

这里定义的关系S有四个属性,分别是供应商号(SNO)、供应商名(SNAME)、状态(STATUS)和地址(ADDR),属性的类型都是字符型,长度分别是4、20、10和20个字符。

主键是供应商编号SNO。

在SQL中允许属性值为空值,当规定某一属性值不能为空值时,就要在定义该属性时写上保留字“NOTNUIL”。

本例中,规定供应商号和供应商名不能取空值。

由于已规定供应商号为主码,所以对属性SNO的定义中的“NOTNULL”可以省略不写。

对于基本表P,J,SPJ可以用下列语句创建:

CREATETABLEP(PNOCHAR(4)NOTNULL,

PNAMECHAR(20)NOTNULL,

COLORCHAR(8),

WEIGHTSMALLINT,

PRIMARYKEY(PNO));

CREATETABLEJ(JNOCHAR(4)NOTNULL,

JNAMECHAR(20),

CITYCHAR(20),

BALANCENUMERIC(7,2),

PRIMARYKEY(JNO));

CREATETABLESPJ(SNOCHAR(4)NOTNULL,

PNOCHAR(4)NOTNULL,

JNOCHAR(4)NOTNULL,

PRICENUMERIC(7,2),

QTYSMALLINT,

PRIMARYKEY(SN0,PNO,JNO),

FOREIGNKEY(SNO)REFERENCESS(SNO),

FOREIGNKEY(PNO)REFERENCESP(PNO),

FOREIGNKEY(JNO)REFERENCESJ(JNO),

CHECK(QTYBETWEEN0AND10000));

上述各属性的含义是:

零件号(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)、单价(PRICE)、工程项目号(JNO)、工程项目名称(JNAME)、城市(CITY)、余额(BALANCE)、供应数量(QTY)。

基本表SPJ的定义中说明了有五个属性,主键是(SNO,PNO,JNO)。

还定义了三个外键,并指出外键SNO和基本表S中SNO属性相对应,外键PNO和基本表P中PNO属性相对应,外键JNO和基本表J中JNO属性相对应,此处对应的属性名恰好同名,实际上也可以不同名,只要指出其对应性即可。

外键体现了关系数据库的参照完整性。

定义中还使用了一个检查子句,指出供应数量QTY在0—10000之间。

2.基本表结构的修改

基本表建立后,可根据需要对基本表结构进行修改,即增加新的属性或删除原有的属性。

(1)增加新的属性

ALTERTABLE基本表名ADD新属性名新属性类型

例8.2在基本表S中增加一个电话号码(TELE)属性,可用下列语句:

ALTERTABLESADDTELECHAR(12);

应注意,新增加的属性不能定义为“NOTNULL”。

基本表在增加一个属性后,原有元组在新增加的属性列上的值都被定义为空值(NULL)。

(2)删除原有的属性

ALTERTABLE基本表名DROP属性名[CASCADE|RESTRICT]

此处CASCADE方式表示:

在基本表中删除某属性时,所有引用到该属性的视图和约束也要一起自动地被删除。

而RESTRICT方式表示在没有视图或约束引用该属性时,才能在基本表中删除该属性,否则拒绝删除操作。

例8.3在基本表S中删除状态(STATUS)属性,并且将引用该属性的所有视图和约束也一起删除,可用下列语句:

ALTERTABLESDROPSTATUSCASCADE;

3.基本表的撤消

可用“DROPTABLE”语句撤消基本表,其所有数据也丢失了。

DROP语句的句法如下:

DROPTABLE基本表名(CASCADE|RESTRICT)

此处的CASCADE和RESTRICT的语义同前面

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1