实验二SQL语言数据定义语言DDL精.docx

上传人:b****5 文档编号:3278943 上传时间:2022-11-21 格式:DOCX 页数:8 大小:110.36KB
下载 相关 举报
实验二SQL语言数据定义语言DDL精.docx_第1页
第1页 / 共8页
实验二SQL语言数据定义语言DDL精.docx_第2页
第2页 / 共8页
实验二SQL语言数据定义语言DDL精.docx_第3页
第3页 / 共8页
实验二SQL语言数据定义语言DDL精.docx_第4页
第4页 / 共8页
实验二SQL语言数据定义语言DDL精.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

实验二SQL语言数据定义语言DDL精.docx

《实验二SQL语言数据定义语言DDL精.docx》由会员分享,可在线阅读,更多相关《实验二SQL语言数据定义语言DDL精.docx(8页珍藏版)》请在冰豆网上搜索。

实验二SQL语言数据定义语言DDL精.docx

实验二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对表进行数据插入、更新和删除。

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

当前位置:首页 > 小学教育 > 英语

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

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