资源描述:
《sql数据定义和数据操纵》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章查询与视图SQL结构化查询语言使用查询向导或设计器创建查询文件标准函数视图的创建与使用授课教师:刘洋联系电话:15948090018第5章查询与视图一体化语言:它可以完成数据库活动中的全部工作高度非过程化:用户不必告诉计算机怎么去做,只需告诉计算机做什么简洁实用:只有为数不多的几条命令,核心功能只需要使用9个命令动词。语法结构接近英语自然语言两种使用方法:一种是与用户交互的方式联机使用,另一种是作为子语言嵌入到其他程序设计语言中使用.5.1SQL结构化查询语言5.1.1SQL语言概述SQL包括数据定义、数据操纵、数据查询和数据控制4个部分,是一种功能齐全的数据库语言。特点是:建立
2、数据库的目的之一就是要方便数据查询。在VisualFoxPro中可以通过执行SQL语句、运行查询文件、运行视图文件三种方式对数据进行查询。创建表结构5.1.2数据定义语言数据定义的功能是定义数据库的结构,简称DDL功能:创建表的结构CREATETABLE
3、DBF<表名>[FREE](<字段名1><类型>[(<宽度>[,小数位])][NULL
4、NOTNULL][CHECK<条件表达式1>[ERROR<提示信息1>]][DEFAULT<表达式1>][PRIMARYKEY
5、UNIQUE][REFERENCES表名2[TAG索引名1]][,<字段名2>…][,PRIMARYKEY表达式2TAG
6、索引名2
7、,UNIQUE表达式3TAG索引名3][,FOREIGNKEY表达式4TAG索引名4REFERENCES表名3[TAG索引名5]][,CHECK<条件表达式2>[ERROR<提示信息2>]]TABLE和DBF是等价的,前者是标准的SQL语言的关键词,后者是VisualFoxPro的关键词。可选项FREE用于设定创建自由表。可选项NULL或NOTNULL用于设定该字段是否允许保存为空值。可选项CHECK用于设定字段的有效性规则,ERROR设定当违反有效性规则时,显示错误信息的内容。可选项DEFAULT用于设定字段的默认值。可选项PRIMARYKEY或UNIQUE用于设定该字段是
8、否是主关键字或唯一关键字,即建立主索引或候选索引。可选项FOREIGNKEY和REFERENCES用于建立表的普通索引,并通过该索引建立与REFERENCES后面表(作为主表)的关系。CREATETABLE
9、DBF<表名>[FREE](<字段名1><类型>[(<宽度>[,小数位])][NULL
10、NOTNULL][CHECK<条件表达式1>[ERROR<提示信息1>]][DEFAULT<表达式1>][PRIMARYKEY
11、UNIQUE][REFERENCES表名2[TAG索引名1]][,<字段名2>…][,PRIMARYKEY表达式2TAG索引名2
12、,UNIQUE表达式3TAG索引名3]
13、[,FOREIGNKEY表达式4TAG索引名4REFERENCES表名3[TAG索引名5]][,CHECK<条件表达式2>[ERROR<提示信息2>]]【例8.2】使用SQL命令在“学生数据库.DBC”中创建一个名为“学生成绩数据库表”的数据库表。SQL命令如下:CREATETABLE学生成绩数据库表;(学号C(10)NOTNULL,课程编号C(5)NOTNULL,;平时成绩N(5,1),考试成绩N(5,1),总分N(5,1),学分N(1))【例8.3】创建一个名为“学生档案数据库表”的数据库表。SQL命令如下:CREATETABLE学生档案数据库表(学号C(10)PRIMARYKEY
14、,;姓名C(8)NOTNULL,性别C(2)CHECK性别="男"OR性别="女";ERROR"性别为男或者女",出生日期D,团员否L,班级C(10),;入学成绩N(5,1),照片G,备注M)【例5-1】建立一个名为“学生数据库1”的数据库,在其中创建一个“学生档案表1”,表结构和学生档案表类似。CREATEDATABASE学生数据库1CREATETABLE学生档案表1(学号C(6)PRIMARYKEY,姓名C(6)UNIQUE,;性别C(2)CHECK性别="男"OR性别="女"ERROR"性别是男或女",;入学成绩N(5,1)CHECK入学成绩>400DEFAULT550,所在系C
15、(10),出生日期D,团员否L)【例5-2】打开“学生数据库1”,创建“学生成绩表1”,并通过“学号”字段与“学生档案表1”建立关系。OPENDATABASE学生数据库1CREATETABLE学生成绩表1(学号C(6),课程编号C(6),平时成绩N(5,1),;期末成绩N(5,1),FOREIGNKEY学号TAG学号REFERENCES学生档案表1)修改表的结构【格式1】ALTERTABLE<表名1>ADD
16、ALTER[COLUMN]<字段名>