当前位置:文档之家› 第4章 视图查询-SQL语句

第4章 视图查询-SQL语句

第四章
查询与视图
本章要点
熟练掌握SQL语句 明确查询与视图文件的作用 熟练掌握利用向导和设计器建立查询文件和视图文
件的方法 了解利用代码建立查询文件和视图文件的方法 会使用查询文件和视图文件
4.1 SQL结构化查询语言
Structured Query Language(结构化查询语言)的缩 写。
ALTER TABLE TableName1 [DROP[COLUMN]FieldName3] [SET CHECK lExp3[ERROR cMessageText3]] [DROP CHECK] [ADD PRIMARY KEY eExp3 TAG TagName2 [FOR lExpression4]] [DROP PRIMARY KEY] [ADD UNIQUE eExp4 [TAG TagName3[FOR lExp5]]] [DROP UNIQUE TAG TagName4] [ADD FOREIGN KEY[eExp5]TAG TagName4 [FOR lExp6]
创建表结构
【例4-3】 用 SQL CREATE 命令建立课程名称表。
CREATE TABLE 课程名称 (; 课程 C(10) PRIMARY KEY,任课教师 C(8),学分 N(1))
*用 SQL CREATE命令建立学习课程表。
CREATE TABLE 学习课程(学号 C(7),; 课程 C(10) PRIMARY KEY,分数 N(5,1),开课学期 C(10),; FOREIGN KEY 学号 TAG 学号 REFERENCES 学生档案,; FOREIGN KEY 课程 TAG 课程 REFERENCES 课程名称)
4.1 SQL结构化查询语言
功能 数据定义(DDL)
Create、Drop、Alter
数据操纵(DML)
数据修改:Insert、Update、Delete 数据查询:Select
数据控制(DCL)
Grant、Revoke
4.1.1 数据定义(DDL)
数据定义语言(DDL) Create、Drop、Alter
在使用CREATE TABLE命令定义表时,字段类型用相应的 字母(C、N、F,I,Y、D、T、M、G)表示,有些类型
需要用户给定字段宽度和小数位。
创建表结构
用 CREATE TABLE命令建立表时可同时创建: 满足实体完整性的主关键字(主索引)PAIMARY
KEY、候选索引 UNIQUE; 定义域完整性的CHECK约束及出错提示信息ERROR; 定义默认值的 DEFAULT等; 此外还有描述表之间联系的 FOREIGN KEY和
REFERENCES TableName2[TAG TagName5]] DROP FOREIGN KEY TAG TagName6[SAVE]] [RENAME COLUMN FieldName4 TO FieldNames]
格式一、二都不能删除字段,也不能更改字段名,所有修改是在字段一级。 第三种格式正是在这些方面对前两种格式的补充。
插入数据
【例4-13】向数据表Rsgl中插入一条记录,各字段值分别 是:
(“030004”,“计算机系”,“王东方”,“男”, 1972/05/25,“硕士”,“教师”,.T.)
可用如下命令: INSERT INTO Rsgl ; VALUES("030004", "计算机系", "王东方", "男",; {^1972-05-25}, "硕士", "教师", .T.)
表的删除
DROP TABLE table_name DROP TABLE 直接从磁盘上删除 table_name 所对
应的dbf文件。 如果 table_Name 是数据库中的表并且相应的数据库
是当前数据库,则从数据库中删除了表;否则虽然从磁 盘上删除了Dbf文件,但是记录在数据库Dbc文件中的 信息却没有删除,此后会出现错误提示。所以要删除数 据库中的表时,最好应使数据库是当前打开的数据库, 在数据库中进行操作。 【例4-12】删除数据表student.dbf DROP TABLE student.dbf
REFERENCES等。
创建表结构
【例4-1】用命令建立一个名为“学籍管理”的数据库,然后使 用CREATE TABLE或CREATE DBF新建一个名为“专业名称”的 数据表,该表有三个字段,各字段要求分别是:“专业”, 字符型,10位宽度,主索引;“所属系”,字符型,12位宽 度;“学生数”,整型,该字段值须大于0,当输入的值违 反该规则时,提示出错信息“学生数应该大于0!”。
通过该格式中的ADD短语可以增加新的字段,通过ALTER短语可以修改己有 的字段。
该格式可以修改字段的类型(Field_Type)、宽度(nField_width)、 有效性规则(CHECK)、错误信息(ERROR)、默认值(DEFAULT), 以及定义主关键字(PRIMARY KEY)和联系(REFERENCES)等;
表结构的修改
【例4-8】将“专业名称”表的“学生数”字段名改为“学生人数”。 ALTER TABLE 专业名称 alter 学生数 drop check ALTER TABLE 专业名称 RENAME COLUMN 学生数 TO 学生人数
【例4-9】删除“学生档案”表中的“姓名”字段。 ALTER TABLE 学生档案 DROP COLUMN 姓名
但是该格式不能修改字段名,不能删除字段,也不能删除已经定义的规则等。
表结构的修改
【例4-4】为“学习课程”数据表增加一个“学分”字 段,数值型,2位宽度,并且要求学分字段为大于零 的数,当输入的值为小于等于0时,提示信息“学分 字段应该大于零!”。
ALTER TABLE 学习课程 ADD 学分 N(2); CHECK 学分>0 ERROR "学分字段应该大于零!"
4.1.2 数据操作
数据操作包括 插入数据、更新数据、删除数据。 insert update delete
插入数据
第一种格式是标准格式; 第二种格式是 Visual FoxPro 的特殊格式
【1】 INSERT INTO 表名[(字段名1[,字段名2,…])] VALUES(表达式1[,表达式2,…])
表结构的修改
【例4-5】将“学生档案”数据表的“学号”字段的宽 度由原来的7位改为12位。
ALTER TABLE 学生档案 ALTER 学号 C(12)
表结构的修改- 【格式二】
ALTER TABLE Table_Name1 ALTER[COLUMN]Field_Name2[NULL | NOT NULL] [SET DEFAULT eExpression2] [SET CHECK lExpression2 [ERROR cMessage_Text2]] [DROP DEFAULT][DROP CHECK]
【2】 INSERT INTO 表名 FROM ARRAY 数组名 | FROM MEMVAR
① FROM ARRAY 数组名 指定一个数组,数组中的数据将被插入到新记
录中。从第一个数组元素开始,数组中的每个元素的内容依次插入到 记录的对应字段中。第一个数组元素的内容插入到新记录的第一个字 段,第二个元素的内容插入到第二个字段,… ,依次类推; ② FROM MEMVAR把内存变量的内容插入到与它同名的字段中。如果某 一字段不存在同名的内存变量,则该字段为空。
插入数据
对以上的情况,假设部门名和职务尚未确定,那么只能先插入 其他字段的值,这时可用如下命令:
INSERT INTO Rsgl (编号,姓名,性别,出生年月,文化程度,婚否); VALUES ("030004","王东方","男",{^1972-05-25},;
输入学分值进行规则验证,当输入学分的值为大于1的时候, 输入成功,当输入的值为不大于1的值时,提示“学分应该大于 1!”信息。
表结构的修改
【例4-7】删除上例中“学生档案”数据表的中“学分”字 段的有效性规则。
ALTER TABLE 学生档案 ALTER 学分 DROP CHECK
表结构的修改- 【格式三】
数据对象的类型 基本表 视图 属性的值域(数据类型) 完整性约束 索引
创建表结构
CREATE TABLE | DBF 表名 (字段名1 字段类型 [(字段宽度[,nPrecisio])][NULL | NOT NULL]
[CHECK lExpression1[ERROR cMessageText1]] [DEFAULT eExpression1] [PRIMARY KEY | UNIQUE] [REFERENCES TableName2[TAG TagName1]] [NOCPTRANS] [,FieldName2 … ] [,PRIMARY KEY eExpression2 TAG TagName2 [,UNIQUE eEpression3 TAG TagName3] [,FOREIGN KEY eEpression4 TagName4 [NODUP] [REFERENCES TabNAme3[TAG TagName5]] [,CHECK lExpression2[ERROR cMessageText2]]) | FROM ARRAY Arrayname )
【例4-10】 将“课程名称”表的“任课教师”定义为候选索引(候选关键字), 索引名是emp_sup。
ALTER TABLE 课程名称 ADD UNIQUE 任课教师 TAG emp_sup
【例4-11】删除“课程名称”表的候选索引emp_sup。 ALTER TABLE 课程名称 DROP UNIQUE TAG emp_sup
OPEN DATABASE 学籍管理 CREATE TABLE 学生档案( 专业 C(10),学号 C(7) prim key,;
相关主题