欢迎来到天天文库
浏览记录
ID:40246653
大小:709.50 KB
页数:41页
时间:2019-07-29
《数据库原理及应用(Access 2003)(第二版) 陈光军 第6章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库原理及应用(Access2003)(第二版)陈光军张秀芝主编中国水利水电出版社第6章使用高级查询——SQL语言本章学习目标本章主要讲解标准SQL语言。通过本章的学习,读者应掌握以下内容:SQL数据定义CREATE、DROP、ALTERSQL数据查询SELECTSQL数据操纵INSERT、UPDATE、DELETESQL数据控制GRANT、REVOKE6.1SQL的数据定义关系数据库由模式、外模式和内模式组成。SQL语言支持关系数据库的三级模式结构,如图所示。基本表1基本表2基本表3基本表4视图1SQL存储文件1存储文件2视图2用户模式存储模式外模式
2、6.1SQL的数据定义外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件。基本表是本身独立存在的表,在SQL中一个关系对应一个表。一些基本表对应一个存储文件,一个表可以带若干个索引,索引存放在存储文件中。存储文件的逻辑结构组成了关系数据库的内模式,存储文件的物理文件结构是任意的。视图是从基本表或其他视图中导出的表,它本身不独立存储在数据库中,也就是说数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。SQL的数据定义功能是指定义数据库的结构,包括定义基本表、定义视图和定义索引三个部分,
3、如表6-1所示。表6-1SQL的数据定义语句操作对象操作方式创建删除修改表CREATETABLEDROPTABLEALTERTABLE视图CREATEVIEWDROPVIEW索引CREATEINDEXDROPINDEX6.1SQL的数据定义6.1.1基本表1.定义基本表定义基本表的命令为CREATETABLE,其格式如下:CREATETABLE<表名>(<列名1><数据类型>[列级完整性约束条件][,<列名2><数据类型>[列级完整性约束条件]……][,<表级完整性约束条件>]);其中<表名>是所要定义的基本表的名字,它可以由一个或多个属性(列)组成。完
4、整性约束条件被存入系统的数据字典中,用户操作表中的数据时DBMS自动检查该操作是否违背这些完整性约束条件。不同系统支持的数据类型稍有不同,但一般都支持如下数据类型:CHAR(n)字符串,长度为n个西文字符。INTEGER或INT全字长二进制整数。SMALLINT字长二进制整数。DECIMAL(p[,q])十进制数,共p位,小数点后有q位,0≤q≤p≤15。FLOAT(x,y)双字长浮点数。DATE日期型,格式为YYYY-MM-DD。6.1SQL的数据定义6.1.1基本表例1建立一个“借出信息”表,它由“资产编号”、“借用人”、“出借人”、“批复人”、“出
5、借日期”和“借用理由”6个属性组成,其中“资产编号”属性不能为空,并且其值是惟一的。CREATETABLE借出信息(资产编号CHAR(5)NOTNULLUNIQUE,借用人CHAR(8),出借人CHAR(2),批复人INT,出借日期DATE,借用理由CHAR(15));其中NOTNULL表示该列不能为空值,UNIQUE表示该属性值惟一。6.1SQL的数据定义6.1.1基本表2.修改基本表修改基本表的命令为ALTERTABLE,其格式为:ALTERTABLE<表名>[ADD<新列名><数据类型>[完整性约束]][DROP<完整性约束>][MODIFY<列名
6、><数据类型>];例2向“借出信息”表中增加“拟还日期”列,其数据类型为日期型。ALTERTABLE借出信息ADD拟还日期DATE;例3将“借出信息”表中的“资产编号”数据类型改为半字长整数。ALTERTABLE借出信息MODIFY资产编号SMALLINT;例4删除“借出信息”表中“资产编号”必须取值惟一的约束。ALTERTABLE借出信息DROPUNIQUE(资产编号);SQL没有提供删除属性列的语句,用户只能间接实现这一功能,即先把表中要保留的列及其内容复制到一个新表中,然后删除原表,并将新表重命名为原表名。6.1SQL的数据定义6.1.1基本表3.
7、删除基本表当某个基本表不再使用时,可用DROPTABLE命令进行删除,其格式为:DROPTABEL<表名>;例5删除“借出信息”表。DROPTABLE借出信息;基本表一旦删除,表中的数据和在此表上建立的索引都将自动被删除掉,而建立在此表上的视图虽然仍然保留,但也无法引用。因此执行删除操作一定要格外小心。6.1SQL的数据定义6.1.2索引在基本表上可以建立一个或多个索引。1.建立索引建立索引使用CREATEINDEX命令,其格式为:CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名1>[<次序>][,<列名2>[<次序
8、>]]……)其中<表名>是指定要建索引的基本表的名字。索引可以建立在该表的一列或
此文档下载收益归作者所有