计算机技术基础(精品).ppt
《计算机技术基础(精品).ppt》由会员分享,可在线阅读,更多相关《计算机技术基础(精品).ppt(100页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 结构化查询语言3.1 SQL语言概述语言概述 3.2 SELECT命令基本用法命令基本用法 3.3 查询结果处理查询结果处理 3.4 查询设计器查询设计器 3.5 本章小结本章小结 习题习题1结构化查询语言结构化查询语言(structured query language,SQL)既可以用于大型数据库系统,既可以用于大型数据库系统,也可以用于微型机数据库系统,是关系数据也可以用于微型机数据库系统,是关系数据库的标准语言。库的标准语言。VFP数据库管理系统,除了数据库管理系统,除了具有具有VFP命令,也支持结构查询语言命令。命令,也支持结构查询语言命令。SQL命令利用命令利用Rushmo
2、re技术实现优化处理,技术实现优化处理,一条一条SQL命令可以代替多条命令可以代替多条VFP命令。命令。23.1SQL语言概述*4/53.1.1SQL语言的特点SQL语言具有以下特点:1.综合统一综合统一SQL语言集数据库定义语言语言集数据库定义语言(database define language,DDL)、数据操纵语言数据操纵语言(data|base manufacture language,DML)、数据控制语言数据控制语言(database control language,DCL)的功能于一体,的功能于一体,可以独立完成数据库生命周期中的全部活动,包括可以独立完成数据库生命周期中的全
3、部活动,包括定义数据库和表结构,录入数据及建立数据库查询、定义数据库和表结构,录入数据及建立数据库查询、更新、维护和重构以及数据库安全性控制等一系列更新、维护和重构以及数据库安全性控制等一系列操作,这就为数据库应用系统的开发提供了良好的操作,这就为数据库应用系统的开发提供了良好的环境。环境。32.高度非过程化高度非过程化用用SQL语言进行数据操作时,用户只需提出做什么,语言进行数据操作时,用户只需提出做什么,而不必指明怎么做。这不但大大减轻了用户的负担,而不必指明怎么做。这不但大大减轻了用户的负担,而且还有利于提高数据独立性。而且还有利于提高数据独立性。3.面向集合的操作方式面向集合的操作方式
4、SQL语言采用集合操作方式,不仅查找结果可以是语言采用集合操作方式,不仅查找结果可以是记录的集合,而且操作对象的一次插入、删除、更记录的集合,而且操作对象的一次插入、删除、更新也可以是记录的集合。新也可以是记录的集合。4.以同一种语法结构提供两种使用方式以同一种语法结构提供两种使用方式SQL语言既是自含式语言,又是嵌入式语言。作为语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方自含式语言,它能够独立地用于联机交互的使用方式,用户可以在键盘上直接输入式,用户可以在键盘上直接输入SQL命令对数据库命令对数据库进行操作。进行操作。4作为嵌入式语言,作为嵌入式语言,
5、SQL语句能够嵌入到高级语言语句能够嵌入到高级语言(例如例如C,FORTRAN,PL/I)程序中,供程序员设计程序中,供程序员设计程序时使用。而在两种不同的使用方式下,程序时使用。而在两种不同的使用方式下,SQL语语言的语法结构基本上是一致的。这种以统一的语法言的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的使用方法的做法,为用户设计结构提供两种不同的使用方法的做法,为用户设计程序提供了极大的灵活性与方便性。程序提供了极大的灵活性与方便性。5.语言简洁,易学易用语言简洁,易学易用SQL语言功能极强,但由于设计巧妙,语言十分简语言功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、
6、数据操纵、数据控制和数据查洁,完成数据定义、数据操纵、数据控制和数据查询等核心功能只用了询等核心功能只用了9个动词:个动词:CREATE,DROP,ALTER,SELECT,INSERT,UPDATE,DELETE,GRANT,REVOKE。易学易用是易学易用是SQL的最大特点。的最大特点。53.1.2 数据定义语言数据定义语言数据定义语言由数据定义语言由CREATE、DROP和和ALTER命令组命令组成。这成。这3个命令关键字针对不同的数据库对象个命令关键字针对不同的数据库对象(如数如数据库、查询、视图等据库、查询、视图等)分别有分别有3个命令。例如针对表个命令。例如针对表对象的对象的3个命
7、令是建表结构命令个命令是建表结构命令CREATE TABLE、修改表结构命令修改表结构命令ALTER TABLE和删除表命令和删除表命令DROP TABLE。下面就以表结构的这下面就以表结构的这3个命令为例个命令为例进行数据定义语言的讲解。进行数据定义语言的讲解。1 建立表结构命令建立表结构命令CREATE TABLE命令的语法与功能见命令的语法与功能见4.2.3节。节。【例【例3.1】使用命令建立使用命令建立“研究生研究生”自由表,其表结自由表,其表结构及要求由表构及要求由表3.1给出给出6【例【例3.2】使用命令建立数据库使用命令建立数据库XSK,然后在该库中然后在该库中建立建立stude
8、nt表,其表结构及要求由表表,其表结构及要求由表3.2给出。给出。【例【例3.3】在在XSK库中建立库中建立score表,其表结构及要求表,其表结构及要求由表由表3.3给出。给出。【例【例3.4】为为score表添加两个字段:表添加两个字段:“平时平时”字段字段N(5,1)和和“期中期中”字段字段 N(5,1)。ALTER TABLE score ADD 平时平时 N(5,1)ALTER TABLE score ADD 期中期中 N(5,1)【例例3.5】在在score表中,修改表中,修改“期末期末”字段为字段为 N(5,1),并设置并设置“平时平时”、“期中期中”和和“期末期末”字段的字段的
9、值小于等于值小于等于100。ALTER TABLE score ALTER 期期末末 N(5,1)CHECK 期末期末=100 ERROR 分数不能大分数不能大于于100!ALTER TABLE score ALTER 期中期中 N(5,1)CHECK 期中期中=100 ERROR 分数不能大于分数不能大于100!7ALTER TABLE score ALTER 平时平时 N(5,1)CHECK 平时平时=100 ERROR 分数不能大于分数不能大于100!(2)语法格语法格式式2语法语法2:ALTER TABLE ALTER COLUMN NULL|NOT NULLSET DEFAULT S
10、ET CHECK ERROR DROP DEFAULT DROP CHECK 功能:修改指定的表中指定字段的功能:修改指定的表中指定字段的DEFAULT、CHECK规则,但不影响原有表的数据。规则,但不影响原有表的数据。【例【例3.6】在在score表中,删除对表中,删除对“期末期末”字段的合法字段的合法值约束,并设置值约束,并设置“平时平时”字段的缺省值为字段的缺省值为80。ALTER TABLE score ALTER 期末期末 DROP CHECK 8ALTER TABLE score ALTER 平时平时 SET DEFAULT 80(3)语法格式语法格式3语法语法3:ALTER TA
11、BLE DROP COLUMN&从指定表删从指定表删除指定的字段除指定的字段SET CHECK l ERROR&设置该字段的合法值检查设置该字段的合法值检查DROP CHECK&删除该字段的合法值设置删除该字段的合法值设置ADD PRIMARY KEY TAG FOR l DROP PRIMARY KEY&删除该表的主索引删除该表的主索引ADD UNIQUE TAG FOR l9DROP UNIQUE TAG&删除该表的删除该表的候选索引候选索引ADD FOREIGN KEY TAG FOR lREFERENCES TAG&设置该表的外部关键字设置该表的外部关键字DROP FOREIGN KE
12、Y TAG SAVE&删除该表的外部关键字删除该表的外部关键字RENAME COLUMN TO NOVALIDATE&修改表结构时,允许违反该修改表结构时,允许违反该表的数据完整性规则。表的数据完整性规则。10功能:功能:删除指定的表中指定字段、修改字段名、修删除指定的表中指定字段、修改字段名、修改指定表的完整性规则,包括主索引、外关键字、改指定表的完整性规则,包括主索引、外关键字、候选索引及表的合法值限定的添加与删除。候选索引及表的合法值限定的添加与删除。注意:注意:修改自由表,不能使用修改自由表,不能使用DEFAULT、FOREIGH KEY、PRIMARY KEY、REFERENCES
13、或或SET子句。子句。【例【例3.7】在在“student”表中,删除表中,删除“是否党员是否党员”字段,修改字段,修改“备注备注”字段名为字段名为“其它情况其它情况”。ALTER TABLE student DROP 是否党员是否党员 RENAME COLUMN 备注备注 TO其它情况如果在删除其它情况如果在删除字段上建立了索引,要先将索引删除再删除该字段。字段上建立了索引,要先将索引删除再删除该字段。【例【例3.8】在在student表的表的“年龄年龄”字段上建立惟一字段上建立惟一索引。索引。ALTER TABLE student ADD UNIQUE 年年龄龄 TAG 年龄年龄11例例3
14、.9】在在student表中添加一个表中添加一个“出生日期出生日期”字段,删字段,删除除“年龄年龄”字段。字段。ALTER TABLE student ADD 出生出生日期日期 DALTER TABLE student DROP UNIQUE TAG 年龄年龄 DROP年龄年龄3 删除表命令删除表命令DROP TABLE语法:语法:DROP TABLE【例【例3.10】删除已建立的删除已建立的score表。表。DROP TABLE score3.1.3数据操纵语言数据操纵语言数据操纵语言是完成数据操作的命令,它由数据操纵语言是完成数据操作的命令,它由INSERT(插插入入)、DELETE(删除
15、删除)、UPDATE(更新更新)和和SELECT(查查询询)等命令组成。查询也划归为数据操纵范畴,但由于等命令组成。查询也划归为数据操纵范畴,但由于它比较特殊,所以又以查询语言单独出现。它比较特殊,所以又以查询语言单独出现。121.插入记录命令插入记录命令(1)语法格式语法格式1语法语法1:INSERT INTO(,.)VALUES(,.)功能:在指定的表尾添加一条新记录,其值为功能:在指定的表尾添加一条新记录,其值为VALUES后面表达式的值。后面表达式的值。当需要插入表中所有字段的数据时,表名后面的字当需要插入表中所有字段的数据时,表名后面的字段名可以缺省,但插入数据的格式必须与表的结构段
16、名可以缺省,但插入数据的格式必须与表的结构完全吻合;若只需要插入表中某些字段的数据,就完全吻合;若只需要插入表中某些字段的数据,就需要列出插入数据的字段名,当然相应表达式的数需要列出插入数据的字段名,当然相应表达式的数据位置应与之对应。据位置应与之对应。13【例【例3.11】向向student表中添加记录。表中添加记录。INSERT INTO student VALUES(9902101,李明李明,男男,1999/09/01,三好生三好生,CTOD(03/24/1981)INSERT INTO student(学号学号,姓名姓名)VALUES(9902103,李成功李成功)(2)语法格式语法格
17、式2语法语法2:INSERT INTO FROM|FROM MEMVAR 功能:在指定的表尾添加一条新记录,其值来自于功能:在指定的表尾添加一条新记录,其值来自于数组或对应的同名内存变量。数组或对应的同名内存变量。14【例【例3.12】先定义了数组先定义了数组AA(5),AA中各元素的值分中各元素的值分别是:别是:AA(1)=9902001,AA(2)=张洋张洋,AA(3)=女女,AA(4)=09/01/1999,AA(5)=特长是长跑特长是长跑。利用该数组向。利用该数组向student表中添加记表中添加记录。录。INSERT INTO student FROM AA完成以上操完成以上操作后,
18、在作后,在student表中添加一条新记录,新记录的表中添加一条新记录,新记录的值是指定的数组值是指定的数组AA中各元素的数据。新记录的中各元素的数据。新记录的“入入学年月学年月”字段为空。因为字段为空。因为VFP要求,数组中各元素要求,数组中各元素与表中各字段顺序对应。如果数组中元素的数据类与表中各字段顺序对应。如果数组中元素的数据类型与其对应的字段类型不一致,则新记录对应的字型与其对应的字段类型不一致,则新记录对应的字段为空值;如果表中字段个数大于数组元素的个数,段为空值;如果表中字段个数大于数组元素的个数,则多出的字段为空值。则多出的字段为空值。15【例【例3.13】已经定义了内存变量学
19、号已经定义了内存变量学号=9902002,姓名姓名=汪洋汪洋,性别性别=男男,利用内存变量向,利用内存变量向student表中添加记录。表中添加记录。INSERT INTO student FROM MEMVAR完成以上操作后,在完成以上操作后,在student表中表中添加一条新记录,新记录的值除了添加一条新记录,新记录的值除了“学号学号”、“姓姓名名”和和“性别性别”字段外,其它字段均为空。因为字段外,其它字段均为空。因为VFP默认,添加的新记录的值与指定表中各字段名默认,添加的新记录的值与指定表中各字段名同名的内存变量的值。如果同名的内存变量不存在,同名的内存变量的值。如果同名的内存变量不
20、存在,则相应的字段为空。则相应的字段为空。注意:注意:在插入数据时,若指定的表没有在任何工作在插入数据时,若指定的表没有在任何工作区中打开,在当前工作区中没有表被打开时,该命区中打开,在当前工作区中没有表被打开时,该命令执行后将在当前工作区打开该命令指定的表;令执行后将在当前工作区打开该命令指定的表;16若当前工作区打开的是其它表,则该命令执行后将若当前工作区打开的是其它表,则该命令执行后将在一个新的工作区中打开,添加记录后,仍保持原在一个新的工作区中打开,添加记录后,仍保持原当前工作区。若指定的表在非当前工作区中打开,当前工作区。若指定的表在非当前工作区中打开,添加记录后,指定的表仍在原工作
21、区中打开,且仍添加记录后,指定的表仍在原工作区中打开,且仍保持原当前工作区。保持原当前工作区。2.删除记录命令删除记录命令在在VFP中,中,DELETE可以为指定的数据表中的记录可以为指定的数据表中的记录加删除标记。加删除标记。语法:语法:DELETE FROM!WHEREAND|OR 功能:从指定表中,根据指定的条件逻辑删除记录。功能:从指定表中,根据指定的条件逻辑删除记录。17【例【例3.14】将将“student”表所有男生的记录逻辑删表所有男生的记录逻辑删除。除。DELETE FROM student WHERE 性别性别=男男完成以上操作后,在完成以上操作后,在student表将所有
22、男生的记录表将所有男生的记录逻辑删除了,但没有从物理上删除。只有执行了逻辑删除了,但没有从物理上删除。只有执行了PACK命令,逻辑删除的记录才真正地从物理上删命令,逻辑删除的记录才真正地从物理上删除。逻辑删除的记录还可以用除。逻辑删除的记录还可以用RECALL命令取消删命令取消删除。除。注意:在逻辑删除记录时,若指定的表没有在任何注意:在逻辑删除记录时,若指定的表没有在任何工作区中打开,在当前工作区中没有表被打开时,工作区中打开,在当前工作区中没有表被打开时,该命令执行后将在当前工作区打开该命令指定的表;该命令执行后将在当前工作区打开该命令指定的表;若当前工作区打开的是其它表,则该命令执行后将
23、若当前工作区打开的是其它表,则该命令执行后将在一个新的工作区中打开,逻辑删除完成后,仍保在一个新的工作区中打开,逻辑删除完成后,仍保持原当前工作区。持原当前工作区。18若指定的表在非当前工作区中打开,逻辑删除完成若指定的表在非当前工作区中打开,逻辑删除完成后,指定的表仍在原工作区中打开,且仍保持原当后,指定的表仍在原工作区中打开,且仍保持原当前工作区。前工作区。3.更新记录命令更新记录命令更新记录就是对存储在表中的记录进行修改,命令更新记录就是对存储在表中的记录进行修改,命令是是UPDATE,也可以对用也可以对用SELECT语句选择出的记语句选择出的记录进行数据更新。录进行数据更新。语法:语法
24、:UPDATE!SET=,=.WHERE AND|OR.功能:用指定的新值更新记录。功能:用指定的新值更新记录。19【例【例3.15】将将“student”表所有表所有99级学生级学生“入学入学年月年月”置为置为1999/09/10。UPDATE student SET 入学年月入学年月=1999/09/10 WHERE LEFT(学号学号,2)=99【例【例3.16】将所有男生的各科平时、期中和期末成将所有男生的各科平时、期中和期末成绩初始化为绩初始化为0。UPDATE score SET 平时平时=0,期期中中=0,期末期末=0;WHERE 学号学号 IN(SELECT 学号学号 FROM
25、 student WHERE 性别性别=男男)以上命令中,用到了以上命令中,用到了WHERE条件关键字条件关键字“IN”和对用和对用SELECT语句选语句选择出的记录进行数据更新。有关择出的记录进行数据更新。有关WHERE条件关键条件关键字和字和SELECT语句的使用,详见语句的使用,详见3.2节。节。注意:注意:UPDATE一次只能在单一的表中更新记录。一次只能在单一的表中更新记录。204.查询记录命令查询记录命令语法:语法:SELECT ALL|DISTINCT TOP PERCENT.AS,.AS.FROM FORCE 数据库名数据库名?!AS INNER|LEFT OUTER|RIGH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机技术 基础 精品
限制150内