实验二SQL语言数据定义语言DDL精.docx
- 文档编号:3278943
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:8
- 大小:110.36KB
实验二SQL语言数据定义语言DDL精.docx
《实验二SQL语言数据定义语言DDL精.docx》由会员分享,可在线阅读,更多相关《实验二SQL语言数据定义语言DDL精.docx(8页珍藏版)》请在冰豆网上搜索。
实验二SQL语言数据定义语言DDL精
实验二SQL语言数据定义语言DDL
一、实验目的
SQL(StructuredQueryLanguage语言是关系数据库的标准语言。
是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
本次实验了解SQL语言中DDL语言的CREATE、DROP、ALTER对表、索引、视图的操作,掌握在NavicatforMySQL中用DDL语言进行对表、索引、视图的增加、删除和改动。
掌握使用SQL语句增加或删除约束,加深对完整性概念的理解,达到灵活应用的目的。
掌握使用SQL语句定义和删除同义词。
二、实验要求
1、实验前:
预习实验内容,学习相关知识。
2、实验中:
按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。
3、实验后:
分析实验结果,总结实验知识,得出结论,按格式写出实验报告。
4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。
5、要求按指定格式书写实验报告,且报告中应反映出本对次实验的总结,下次实验前交实验报告。
三、实验的重点与难点
1、重点:
(1)用SQL语句定义表结构(创建、修改和删除)。
(2)用SQL语句定义索引(创建、删除)。
(3)用SQL语句定义视图(创建、删除)。
(4)用SQL语句定义同义词(创建、删除)。
2、难点:
完整性约束的定义、增加及删除。
同义词的定义与删除。
四、仪器设备及用具
硬件:
投影仪、每位同学分配已连接校园网PC机一台。
软件:
本机已安装MySQL5.5数据库平台。
五、教学过程
(一)实验预习
(1)熟悉SQL中的CREATE、DROP、ALTER语句的格式及所用的关键字含义及用法。
(2)掌握完整性约束定义、增加和删除的一般用法。
(3)掌握同义词定义、删除的一般用法。
(二)实验原理
在NavicatforMySQL中使用CREATE命令完成对表、索引、视图、同义词的创建,使用DROP命令完成对表、索引、视图、同义词的删除,使用ALTER命令对表结构进行修改及完整性约束的增加、删除。
(三)实验内容
1.运行NavicatforMySQL,连接到test数据库,用如下语句进行表操作,详细的语法格式如下:
CREATETABLE表名字
(列名1数据类型[DEFAULTexpression],
列名2数据类型[DEFAULTexpression],
……)
|[CONSTRAINT[symbol]]PRIMARYKEY[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]]FOREIGNKEY
[index_name](index_col_name,...[reference_definition]
|CHECK(expr
建立表主要指定义下列信息:
列定义、主键定义、键定义、索引定义、完整性约束、外键定义、表达式检查
例如在新建查询中输入如下语句:
CREATETABLENEW_DEPT92150033
(DPTNODECIMAL(10,2,
DNAMECHAR(6,
LOCCHAR(13,
PRIMARYKEY(DPTNO;
点击运行,创建表NEW_DEPT92150033,如下图所示:
选中表,单击右键,执行刷新进行表刷新,这时你可以看到新建的表。
更改表详细的语法格式如下:
增加一个列:
altertable表名字ADD[COLUMN]column_definition[FIRST|AFTERcol_name],….;
修改一个列:
altertable表名字MODIFY[COLUMN]column_definition[FIRST|AFTERcol_name],….;
删除一个列:
altertable表名字DROP[COLUMN]col_name;
在查询编辑器中执行createtable语句首先建立一个test92150033表,然后分别使用altertableadd、altertablemodify、altertabledropcolumn在表test92150033上来增加两个列、修改一个列和删除一个列。
SQL语句如下所示:
createtabletest92150033(idvarchar(20notnull;
altertabletest92150033ADD(namevarchar(30default'无名氏'notnull;
altertabletest92150033ADD(ageintegernotnull;
altertabletest92150033MODIFYnamevarchar(16;
altertabletest92150033dropcolumnage;
删除表语法:
Droptable表名字;
例如在查询编辑器中执行如下语句删除表:
Droptabletest92150033;
2.用如下语句进行视图操作,详细的语法格式如下:
CREATEVIEW视图名ASSELECT…FROM…;
视图是一个逻辑表,它允许操作者从其它表或视图存取数据,视图本身不包含数据。
视图所基于的表称为基表。
引入视图有下列作用:
提供附加的表安全级,限制存取基表的行或/和列集合。
隐藏数据复杂性。
为数据提供另一种观点。
例如在查询编辑器中执行如下语句建立视图:
先建立基表:
CREATETABLEt(qtyINT,priceINT;
插入记录
INSERTINTOtVALUES(3,50;
INSERTINTOtVALUES(5,10;
在基表t的基础上,创建视图v。
CREATEVIEWvASSELECTqty,price,qty*priceASvalueFROMt;
从视图v检索数据
SELECT*FROMv;
结果如图所示。
点击视图可以看到新建立的视图v,如图所示。
删除视图语法:
DropView视图名;
例如在查询编辑器中执行如下语句删除视图:
dropviewv;
3.用如下语句对索引进行操作,详细的语法格式如下:
建立索引:
CREATE[UNIQUE|FULLTEXT|SPATIAL]INDEXindex_name
[USINGindex_type]
ONtbl_name(index_col_name,...
index_col_name:
col_name[(length][ASC|DESC]
索引是种数据库对象。
对于在表或聚集的索引列上的每一值将包含一项,为行提供直接的快速存取。
例如,在ADDRESS表的CUSTOMERID上建立索引IX_ADD_CUST:
CREATEINDEXIX_ADD_CUSTONADDRESS(CUSTOMERID;
删除索引语法:
DROPINDEXindex_nameONtbl_name;
例如在查询编辑器中执行如下语句删除索引:
DropIndexIX_ADD_CUSTonADDRESS;
(四)注意事项
1、建立视图v之前,必须创建表t和插入记录。
2、建立索引前,保证实验二生成的crebas.sql在test数据库上正确执行,生成address表。
否则索引执行会出错。
六、实验步骤:
执行以下内容:
1.启动NavicatforMySQL,在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.用CreateTable语句建表CourseAa,表结构如下所示:
属性名
类型
长度
Aa1
Varchar
20
Aa2
Integer
Aa3
DECIMAL
10
5.用CreateTable语句建表ChooseBb,表结构如下所示:
属性名
类型
长度
Bb1
Varchar
30
Bb2
Integer
Bb3
DECIMAL
6
6.用DropTable语句删除表CourseAa。
7.用AlterTable语句更新表ChooseBb,添加一个属性名Bb4,类型Varchar,长度20,完整性约束设为非空值,缺省值设为字符“系统测试值”。
8.用AlterTable语句更新表ChooseBb,添加一个属性名Bb5,类型Varchar,长度10,完整性约束设为主码。
完成后,表ChooseBb的设计如下所示。
9.用CreateView语句建立一个视图View_Choosebb,生成的视图属性名(View_bb1,View_bb2,view_bb3),其中View_bb1对应于基表ChooseBb的Bb1、View_bb2对应于基表ChooseBb的Bb4、view_bb3对应于基表ChooseBb的Bb5。
完成后,视图View_Choosebb的设计如下所示。
10.用DropView语句删除视图View_Choosebb。
11.用CreateIndex语句对表ChooseBb的Bb2属性建立一个升序索引,索引名Index_bb2。
用CreateIndex语句对表ChooseBb的Bb4属性建立一个降序索引,索引名Index_bb4。
12.用DropIndex语句删除索引Index_bb2。
以上SQL语句请保存,以备老师检查和写实验报告之用。
七、思考与练习
1、实体完整性通过什么机制保证?
2、唯一性约束与主键有何区别?
八、实验报告要求
参见数据库实验报告模版
参考文献
[1]《数据库原理与设计》,王国胤等,电子工业出版社,2011
[2]《数据库系统及应用》,崔巍,高等教育出版社,2005
下次实验内容
了解DML语言的INSERT、UPDATE、DELETE等数据维护语言,学会在NavicatforMySQL中用DML语言的INSERT、UPDATE、DELETE对表进行数据插入、更新和删除。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 SQL 语言 数据 定义 DDL