1 / 22

主讲人 于洪奎

第五章结构化查询语言 SQL. 主讲人 于洪奎. 第五章 学习内容. 知识点. 知识点 1 : 几个特殊选项. 显示部分结果 ( 与 ORDER BY 短语同时使用 ) : TOP nExpr [PERCENT] 将查询结果存放在数组中: INTO ARRAY ArrayName 将查询结果存放在临时文件中 :INTO CURSOR CursorName 将查询结果存放到永久表中: INTO DBF|TABLE TableName 将查询结果存放到文本文件中: TO FILE FileName [ADDITIVE]

toya
Download Presentation

主讲人 于洪奎

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五章结构化查询语言SQL 主讲人 于洪奎

  2. 第五章 学习内容

  3. 知识点

  4. 知识点1:几个特殊选项 • 显示部分结果(与ORDER BY短语同时使用):TOP nExpr [PERCENT] • 将查询结果存放在数组中:INTO ARRAY ArrayName • 将查询结果存放在临时文件中:INTO CURSOR CursorName • 将查询结果存放到永久表中:INTO DBF|TABLE TableName • 将查询结果存放到文本文件中:TO FILE FileName [ADDITIVE] • 将查询结果直接输出到打印机:TO PRINTER [PROMPT]

  5. 例如: • select * top 5 from 职工档案 into table new order by 职工编号

  6. 知识点2:插入 • 格式1:INSERT INTO dbf_name[(fname1[,fname2,...])] VALUES(eExpression1[,eExpression2,...]) • INSERT INTO dbf_name说明向由dbf_name指定的表中插入记录,当插入的不是完整的记录时,可以用fname1,fname2,...指定字段;VALUES(eExpression1[,eExpression2,...])给出具体的记录值。 • 例如: • insert into 部门(部门编号, 部门名称) values("301","生物系")

  7. 格式2:INSERT INTO dbf_name FROM ARRAY ArrayName|FROM MEMVAR • FROM ARRAY ArrayName说明从指定的数组中插入记录值;FROM MEMVAR说明根据同名的内存变量来插入记录值,如果同名的变量不存在,那么相应的字段为默认值或空值。

  8. 例1: • dimension dd(10)dd(1)={^2003-1-1}dd(2)="10033"dd(3)=500……insert into 职工工资 from array dd

  9. 例2: • m.年月={^2003-1-1}m.职工编号="10055"m.基本工资=600insert into 职工工资 from memv • 注意:若某一个表定义了主索引或候选索引后,只能使用此法插入记录

  10. 知识点3:更新 • UPDATE TableName • SET Column_Name1=eExpression1[,Column_Name2=eExpression2...] • WHERE Condition • 使用where子句以更新满足条件的一些记录的字段值,并且一次可更新多个字段;若不是用WHERE子句,则更新全部记录。 • 例如: • update 部门 set 部门负责人="李花" where 部门编号="301"

  11. 删除 • DELETE FROM TableName[WHERE Condition] • 例如: • delete from 部门 • delete from 部门 where 部门编号="10_"

  12. 知识点4:表的定义 • CREATE TABLE|DBF TableName1 • (FieldName1 FileldType[(nFieldWidth)] [NULL|NOT NULL] • [CHECK lExpression1 [ERROR cMessageText1]] • [DEFAULT eExpression1] • [PRIMARY KEY |UNIQE] • [REFERENCES TableName2[TAG TagName1]] • [,FIeldName2…] • [,PRIMARY KEY eExpression2 TAG TagName2 • |,UNIQE eExpression3 TagTagName3] • [,FOREIGN KEY eExpression4 TAG TagName4[NODUP] • REFERENCES TablesName3[TAG TagName5]] • [,CHECK lExpression2[ERROR cMessage2]]) • |FROM ARRAY ArrayName

  13. 例如建立数据库:create database student • 例如建立数据表: • create table score(sno c(10) primary key, name c(8), English n(5,1))

  14. 知识点5:表的删除 • DROP TABLE table_name • 注意:删除数据库中的表时,最好该数据库处于打开状态。

  15. 知识点6:表结构的修改 • 1、添加新字段或修改已有字段 • ALTER TABLE TableName1 ADD|ALTER[column] FieldName1 • FieldType [(nFieldWidth[,nPrecision])] [NULL|NOT NULL] • [CHECK lExpression1 [ERROR cMessageText]][DEFAULT eExpression1] • [PRIMARY KEY|UNIQE] • [REFERENCES TableName2 [TAG TagName1]]

  16. 2、定义、修改和删除有效性规则和默认值定义2、定义、修改和删除有效性规则和默认值定义 • ALTER TABLE TableName1 ALTER [COLUMN] FieldName2 [NULL|NOT NULL] • [SET DEFAULT eExpression2] • [SET CHECK lExpression2 [ERROR cMassageText2]] • [DROP DEFAULT] [DROP CHECK]

  17. 3、删除字段、修改字段名,定义、修改和删除表一级的有效性规则3、删除字段、修改字段名,定义、修改和删除表一级的有效性规则 • ALTER TABLE TableName1 [DROP|COLUMN]FieldName3] • [SET CHECK lExpression3 [ERROR cMassageText3] • [DROP CHECK] • [ADD PRIMARY KEY eExpression3 TAG TagName2 [FOR lExpression4]] • [DROP PRIMARY KEY] • [ADD UNIQUE eExpression4 [TAG TagName3 [FOR lExpression5]]] • [DROP UNIQUE TAG TagName4] • [ADD FOREIGN KEY [eExpression5] TAG TagName4 [FOR lExpression6] • REFERENCES TableName2 [TAG TagName5]] • [DROP FOREIGN KEY TAG TagName6 [SAVE]] • [RENAME COLUMN FieldName4 TO FieldName5]

  18. 知识点7:视图的定义 • 在Visual FoxPro中视图是一个定制的虚拟表。在关系数据库中,视图也称作窗口,可以把它看作是从表中派生的虚表。 • 1)可以是本地的、远程的或带参数的。 • 2)视图不独立存在,依赖于表,可引用一个或多个表,或者引用其他视图。 • 3)视图是可更新的。 • 4)限定和简化对数据的访问 • 命令格式:CREATE VIEW view_name AS select_statement

  19. 1.从单个表派生出的视图 • create view v_zg1 as select * from 职工档案 where 性别="女" • 注意:当视图从单个表导出时,可进行插入和更新操作,但不能进行删除操作。

  20. 2.从多个表派生出的视图 • create view v_zg2 as select 部门.部门名称,职工档案.姓名, 职工档案.性别, 职工档案.出生日期 from 部门, 职工档案 where 部门.部门编号=职工档案.部门编号 • 注意:当视图从多个表导出时,插入、更新和删除操作都不允许进行。

  21. 3.视图中的虚字段 • 虚字段是计算得来的一些算术表达式或函数,并不存储在表内。 • 4.视图的删除 • DROP VIEW <视图名>

  22. 选择题12 • 如果学生表STUDENT是使用下面的SQL语句创建的。 • CREATE TABLE STUDENT(SNO C(4) PRIMARY KEY NOT NULL,SN C(8),SEX C(2),AGE N(2) CHECK(AGE>15 AND AGE<30)) • 下面的SQL语句中,可以正确执行的是——。 • A) • B) • C) • D)

More Related