您好,欢迎来到华佗养生网。
搜索
您的当前位置:首页实验二SQL语言数据定义语言DDL(精)

实验二SQL语言数据定义语言DDL(精)

来源:华佗养生网


实验二 SQL语言数据定义语言DDL

一、实验目的

SQL(Structured Query Language语言是关系数据库的标准语言。是一种介

于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语

言是一个通用的、功能极强的关系数据库语言。

本次实验了解SQL语言中DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,掌握在Navicat for MySQL中用DDL语言进行对表、索引、视图的增加、删除和改动。掌握使用SQL语句增加或删除约束,加深对完整性概念的理

解,达到灵活应用的目的。掌握使用SQL语句定义和删除同义词。

二、实验要求

1、实验前:预习实验内容,学习相关知识。

2、实验中:按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令

及各个关键字的含义,做好实验记录。

3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。 4、在整个实验过程中,要思考、按时完成实验任务,不懂的要虚心向教

师或同学请教。

5、要求按指定格式书写实验报告,且报告中应反映出本对次实验的总结,下次实

验前交实验报告。 三、实验的重点与难点

1、重点:

(1)用SQL语句定义表结构(创建、修改和删除)。

(2)用SQL语句定义索引(创建、删除)。 (3)用SQL语句定义视图(创建、删除)。 (4)用SQL语句定义同义词(创建、删除)。

2、难点:

完整性约束的定义、增加及删除。 同义词的定义与删除。

四、仪器设备及用具

硬件:投影仪、每位同学分配已连接校园网PC机一台。

软件:本机已安装MySQL 5.5数据库平台。

五、教学过程 (一)实验预习

(1)熟悉SQL中的CREATE、DROP、ALTER语句的格式及所用的关键字含义及

用法。

(2)掌握完整性约束定义、增加和删除的一般用法。

(3)掌握同义词定义、删除的一般用法。

(二)实验原理

在Navicat for MySQL中使用CREATE命令完成对表、索引、视图、同义词的创建,使用DROP命令完成对表、索引、视图、同义词的删除,使用ALTER命令

对表结构进行修改及完整性约束的增加、删除。

(三)实验内容

1.运行Navicat for MySQL,连接到test数据库,用如下语句进行表操作,详细

的语法格式如下: CREATE TABLE 表名字

(列名1 数据类型 [DEFAULT expression], 列名2 数据类型 [DEFAULT expression],

……)

|[CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...

| KEY [index_name] [index_type] (index_col_name,... | INDEX [index_name] [index_type] (index_col_name,...

| [CONSTRAINT [symbol]] UNIQUE [INDEX] [index_name] [index_type] (index_col_name,...

| [FULLTEXT|SPATIAL] [INDEX] [index_name] (index_col_name,...

| [CONSTRAINT [symbol]] FOREIGN KEY

[index_name] (index_col_name,... [reference_definition]

| CHECK (expr 建立表主要指定义下列信息:

列定义、主键定义、键定义、索引定义 、完整性约束、外键定义、表达式检查

例如在新建查询中输入如下语句: CREATE TABLE NEW_DEPT92150033

(DPTNO DECIMAL(10,2,

DNAME CHAR(6, LOC CHAR(13, PRIMARY KEY (DPTNO;

点击运行,创建表NEW_DEPT92150033,如下图所示:

选中表,单击右键,执行刷新进行表刷新,这时你可以看到新建的表。

更改表详细的语法格式如下:

增加一个列:

alter table 表名字 ADD [COLUMN] column_definition [FIRST |

AFTER col_name ],….;

修改一个列:

alter table 表名字 MODIFY [COLUMN] column_definition [FIRST |

AFTER col_name],….;

删除一个列:

alter table 表名字DROP [COLUMN] col_name;

在查询编辑器中执行create table语句首先建立一个test92150033表,然后分别使用alter table add、alter table modify、alter table drop column在表test92150033上来增加两个列、修改一个列

和删除一个列。SQL语句如下所示:

create table test92150033 (id varchar(20 not null;

alter table test92150033 ADD (name varchar (30 default '无名

氏' not null;

alter table test92150033 ADD (age integer not null; alter table test92150033 MODIFY name varchar(16;

alter table test92150033 drop column age;

删除表语法: Drop table 表名字;

例如在查询编辑器中执行如下语句删除表:

Drop table test92150033;

2. 用如下语句进行视图操作,详细的语法格式如下:CREATE VIEW 视图名 AS SELECT … FROM …;

视图是一个逻辑表,它允许操作者从其它表或视图存取数据,视图本

身不包含数据。视图所基于的表称为基表。

引入视图有下列作用:

提供附加的表安全级,存取基表的行或/和列集合。 隐藏数据复杂性。 为数据提供另一种观点。 例如在查询编辑器中执行如下语句建立视图: 先建立基表:

CREATE TABLE t (qty INT, price INT;

插入记录

INSERT INTO t VALUES(3, 50; INSERT INTO t VALUES(5, 10; 在基表t的基础上,创建视图v。

CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t; 从视图v检索数据 SELECT * FROM v; 结果如图所示。

点击视图可以看到新建立的视图v,如图所示。

删除视图语法: Drop View 视图名;

例如在查询编辑器中执行如下语句删除视图: drop view v;

3.用如下语句对索引进行操作,详细的语法格式如下:

建立索引:CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type]

ON tbl_name (index_col_name,... index_col_name:

col_name [(length] [ASC | DESC]

索引是种数据库对象。对于在表或聚集的索引列上的每一值将包含一项,为行提供直接的快速存取。

例如,在ADDRESS表的CUSTOMERID上建立索引IX_ADD_CUST: CREATE INDEX IX_ADD_CUST ON ADDRESS(CUSTOMERID; 删除索引语法:

DROP INDEX index_name ON tbl_name;

例如在查询编辑器中执行如下语句删除索引: Drop Index IX_ADD_CUST on ADDRESS; (四)注意事项

1、建立视图v之前,必须创建表t和插入记录。

2、建立索引前,保证实验二生成的crebas.sql在test数据库上正确执行,生成address表。否则索引执行会出错。

六、实验步骤:

执行以下内容:

1.启动Navicat for MySQL,在 MySQL – 新建连接中完成连接参数配置。 2.登录到本地数据库服务器后,连接到test数据库上。 3.用SQL语句,建立如下所示的表student:

属性名 类型 长度

studentid Varchar 10

name Varchar 20

sex Varchar 2

age Integer

Fee DECIMAL 10,2

address Varchar 50

memo

Varchar

300

4. 用Create Table语句建表CourseAa,表结构如下所示:

属性名 类型 长度

Aa1 Varchar 20

Aa2 Integer

Aa3

DECIMAL

10

5. 用Create Table语句建表ChooseBb,表结构如下所示:

属性名 类型 长度

Bb1 Varchar 30

Bb2 Integer

Bb3

DECIMAL

6

6. 用Drop Table语句删除表CourseAa。

7. 用Alter Table语句更新表ChooseBb,添加一个属性名Bb4,类型Varchar,长度20,完整性约束设为非空值,缺省值设为字符“系统测试值”。

8. 用Alter Table语句更新表ChooseBb,添加一个属性名Bb5,类型Varchar,长度10,完整性约束设为主码。完成后,表ChooseBb的设计如下所示。

9. 用Create View语句建立一个视图View_Choosebb,生成的视图属性名(View_bb1,View_bb2,view_bb3), 其中View_bb1对应于基表ChooseBb的Bb1、View_bb2对应于基表ChooseBb的Bb4、view_bb3对应于基表ChooseBb的Bb5。完成后,视图View_Choosebb的设计如下所示。

10.用Drop View语句删除视图View_Choosebb。

11. 用Create Index语句对表ChooseBb的Bb2属性建立一个升序索引,索引名Index_bb2。 用Create Index语句对表ChooseBb的Bb4属性建立一个降序索引,索引名Index_bb4。

12. 用Drop Index语句删除索引Index_bb2。

以上SQL语句请保存,以备老师检查和写实验报告之用。 七、思考与练习

1、实体完整性通过什么机制保证? 2、唯一性约束与主键有何区别?

八、实验报告要求

参见数据库实验报告模版

参考文献

[1]《数据库原理与设计》,王国胤等,电子工业出版社,2011 [2]《数据库系统及应用》,崔巍,高等教育出版社,2005

下次实验内容

了解DML语言的INSERT、UPDATE、DELETE等数据维护语言,学会在Navicat for MySQL中用DML语言的INSERT、UPDATE、DELETE对表进行数据插入、更新和删除。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo7.cn 版权所有 湘ICP备2022005869号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务