1、实验二SQL语言数据定义语言DDL精实验二 SQL语言数据定义语言DDL一、实验目的SQL(Structured Query Language语言是关系数据库的标准语言。是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。本次实验了解SQL语言中DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,掌握在Navicat for MySQL中用DDL语言进行对表、索引、视图的增加、删除和改动。掌握使用SQL语句增加或删除约束,加深对完整性概念的理解,达到灵活应用的目的。掌握使用SQL语句定义和删除同义词。二、实
2、验要求1、实验前:预习实验内容,学习相关知识。2、实验中:按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。5、要求按指定格式书写实验报告,且报告中应反映出本对次实验的总结,下次实验前交实验报告。三、实验的重点与难点1、重点:(1)用SQL语句定义表结构(创建、修改和删除)。(2)用SQL语句定义索引(创建、删除)。(3)用SQL语句定义视图(创建、删除)。(4)用SQL语句定义同义词(创建、删除
3、)。2、难点:完整性约束的定义、增加及删除。同义词的定义与删除。四、仪器设备及用具硬件:投影仪、每位同学分配已连接校园网PC机一台。软件:本机已安装MySQL 5.5数据库平台。五、教学过程(一)实验预习(1)熟悉SQL中的CREATE、DROP、ALTER语句的格式及所用的关键字含义及用法。(2)掌握完整性约束定义、增加和删除的一般用法。(3)掌握同义词定义、删除的一般用法。(二)实验原理在Navicat for MySQL中使用CREATE命令完成对表、索引、视图、同义词的创建,使用DROP命令完成对表、索引、视图、同义词的删除,使用ALTER命令对表结构进行修改及完整性约束的增加、删除。
4、(三)实验内容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,.| CONSTRAI
5、NT symbol UNIQUE INDEXindex_name index_type (index_col_name,.| FULLTEXT|SPATIAL INDEX index_name (index_col_name,.| CONSTRAINT symbol FOREIGN KEYindex_name (index_col_name,. reference_definition| CHECK (expr 建立表主要指定义下列信息: 列定义、主键定义、键定义、索引定义 、完整性约束、外键定义、表达式检查 例如在新建查询中输入如下语句: CREATE TABLE NEW_DEPT92150
6、033(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,.;
7、删除一个列: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 无名
8、氏 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 ;视图是一个逻辑表,它允许操作者从其它表或视图存取数据,视
9、图本身不包含数据。视图所基于的表称为基表。 引入视图有下列作用: 提供附加的表安全级,限制存取基表的行或/和列集合。 隐藏数据复杂性。 为数据提供另一种观点。 例如在查询编辑器中执行如下语句建立视图:先建立基表: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;
10、结果如图所示。点击视图可以看到新建立的视图v,如图所示。删除视图语法:Drop View 视图名;例如在查询编辑器中执行如下语句删除视图:drop view v;3.用如下语句对索引进行操作,详细的语法格式如下:建立索引:CREATE UNIQUE|FULLTEXT|SPATIAL INDEX index_nameUSING index_typeON tbl_name (index_col_name,.index_col_name:col_name (length ASC | DESC索引是种数据库对象。对于在表或聚集的索引列上的每一值将包含一项,为行提供直接的快速存取。例如,在ADDRESS
11、表的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,在 M
12、ySQL 新建连接中完成连接参数配置。2.登录到本地数据库服务器后,连接到test数据库上。3.用SQL语句,建立如下所示的表student:属性名类型长度studentidVarchar10nameVarchar20sexVarchar2ageIntegerFeeDECIMAL10,2addressVarchar50memoVarchar3004. 用Create Table语句建表CourseAa,表结构如下所示:属性名类型长度Aa1Varchar20Aa2IntegerAa3DECIMAL105. 用Create Table语句建表ChooseBb,表结构如下所示:属性名类型长度Bb1V
13、archar30Bb2IntegerBb3DECIMAL66. 用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), 其
14、中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数据库原理与设计,王国胤等,电子工业出版社,20112数据库系统及应用,崔巍,高等教育出版社,2005 下次实验内容了解DML语言的INSERT、UPDATE、DELETE等数据维护语言,学会在Navicat for MySQL中用DML语言的INSERT、UPDATE、DELETE对表进行数据插入、更新和删除。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1