关系数据库标准语言SQl

上传人:壹****1 文档编号:571592612 上传时间:2024-08-11 格式:PPT 页数:21 大小:87.50KB
返回 下载 相关 举报
关系数据库标准语言SQl_第1页
第1页 / 共21页
关系数据库标准语言SQl_第2页
第2页 / 共21页
关系数据库标准语言SQl_第3页
第3页 / 共21页
关系数据库标准语言SQl_第4页
第4页 / 共21页
关系数据库标准语言SQl_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《关系数据库标准语言SQl》由会员分享,可在线阅读,更多相关《关系数据库标准语言SQl(21页珍藏版)》请在金锄头文库上搜索。

1、8/11/20241 1关系数据库标准语言关系数据库标准语言SQl 8/11/20242 2SQL语言主要特点:语言主要特点: 包括了数据定义、数据查询、数据操纵和数据控制等功能包括了数据定义、数据查询、数据操纵和数据控制等功能可以直接以命令方式交互使用,也可以嵌入到程序设计语可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用言中以程序方式使用(一一) 定义功能定义功能 一一)表的定义表的定义 CREATE TABLE命令建立表命令建立表 (97页)页)数据类型:数据类型:C,N,D,T,L,M,G,IEG:CREA TABLE AA (XH C(2),CJ N(4,1),X

2、F L)8/11/20243 3二二)表结构的修改表结构的修改 ALTER TABLE 可以用于修改还没有添加到数据库中的表的结构。然而在修可以用于修改还没有添加到数据库中的表的结构。然而在修改自由表时,如果加入改自由表时,如果加入 DEFAULT、FOREIGN KEY、PRIMARY REFERENCES 或或 SET 子句,子句,Visual FoxPro 将出将出现错误现错误1、修改、修改aa4表表xh字段,宽度为字段,宽度为3alter table aa4;alter column xh c(3)2、添加、添加XB字段,设默认值为字段,设默认值为“男男”和和XM字字段段alter t

3、able aa4 add xb c(2); default男男 add xm c(6)出错,提示只能在出错,提示只能在.DBC使用使用CREA DATA SAAADD TABLE AA4MODI DATA SAA先执行先执行8/11/20244 43、给、给cj字段设置有效性规则:字段设置有效性规则:cj0 and cj0.AND.cj70的记录的记录sele * from sc where 成绩成绩707、查询查询sc表中成绩表中成绩70和课程号和课程号=“c1”记录记录 sele * from sc where 成绩成绩70 and 课程号课程号=“c1”8/11/20247 78、查询、

4、查询sc表中成绩表中成绩=70和和=70 and 成绩成绩808/11/20241010思考:如要计算思考:如要计算sc表中每个课程的总分呢?表中每个课程的总分呢?二二)简单的连接查询简单的连接查询 连接是关系的基本操作之一,连接查询是一种基于多个关连接是关系的基本操作之一,连接查询是一种基于多个关系的查询。系的查询。 1、显示每个学生每科成绩,字段为姓名,课程名,成绩显示每个学生每科成绩,字段为姓名,课程名,成绩sele student.姓名姓名,course.课程名课程名,sc.成绩成绩;from student,course,sc;where student.学号学号=sc.学号学号 a

5、nd sc.课程号课程号=course.课程号课程号2、显示每科的平均成绩,字段为课程名,平均成绩、显示每科的平均成绩,字段为课程名,平均成绩sele 课程名课程名,avg(成绩成绩) 平均成绩平均成绩 from course,sc;where sc.课程号课程号=course.课程号课程号;group by sc.课程号课程号8/11/202411113、查询每个学生的选课数以及平均成绩,按成绩降序排列,、查询每个学生的选课数以及平均成绩,按成绩降序排列,字段为:学号,课程数,平均成绩字段为:学号,课程数,平均成绩Sele 学号学号,count(*) 课程数课程数,avg(成绩成绩) 平均成

6、绩平均成绩; from sc;group by 学号学号;order by 平均成绩平均成绩 desc如果上例改为只显示第一名的记录,怎样改写如果上例改为只显示第一名的记录,怎样改写?如果上例改为:查询选课数大于如果上例改为:查询选课数大于3门的学生的平均成绩?门的学生的平均成绩?Group by 学号学号 having count(*) 38/11/202412124、查询选课数大于、查询选课数大于3门的学生平均成绩,按成绩降序排列,门的学生平均成绩,按成绩降序排列,字段为:学号,姓名,课程数,平均成绩字段为:学号,姓名,课程数,平均成绩Sele sc.学号学号,姓名姓名,count(*)

7、课程数课程数,avg(成绩成绩) 平均成绩平均成绩; from sc,student; where sc.学号学号=student.学号学号;group by sc.学号学号 having count(*)3;order by 平均成绩平均成绩 descSET FILTER 设置的筛选条件对设置的筛选条件对 SELECT 命令不起作用命令不起作用每一个每一个 SELECT 语句可以使用的连接数的限制是语句可以使用的连接数的限制是 9 个个8/11/20241313外外连接(左连接、右连接)连接(左连接、右连接)例:显示学号,课程号,课程名例:显示学号,课程号,课程名sele 学号学号,sc.课

8、程号课程号,课程名课程名 from sc,course where sc.课课程号程号=course.课程号课程号sele 学号学号,sc.课程号课程号,课程名课程名 from sc inner join course on sc.课程号课程号=course.课程号课程号左连接:左连接:sele 学号学号,sc.课程号课程号,课程名课程名 from sc left join course on sc.课程号课程号=course.课程号课程号右连接:右连接:sele 学号学号,sc.课程号课程号,课程名课程名 from sc right join course on sc.课程号课程号=cour

9、se.课程号课程号8/11/20241414三三)嵌套查询嵌套查询 使用量词和谓词的查询:使用量词和谓词的查询: IN和和NOT IN运算符运算符 ANYALLSOME(子查询子查询) NOTEXISTS(子查询子查询) ANY、ALL和和SOME是量词,其中是量词,其中ANY和和SOME是同义是同义词,在进行比较运算时只要子查询中有一行能使结果为词,在进行比较运算时只要子查询中有一行能使结果为真,则结果就为真;而真,则结果就为真;而AlL则要求子查询中的所有行都则要求子查询中的所有行都使结果为真时,结果才为真。使结果为真时,结果才为真。 EXISTS是谓词,是谓词,EXISTS或或NOT E

10、XISTS是用来检查在是用来检查在子查询中是否有结果返回,即存在记录或不存在记录。子查询中是否有结果返回,即存在记录或不存在记录。 8/11/20241515例例1:查询:查询course表学分为表学分为2,3的记录的记录 sele * from course where 学分学分 in(2,3)例例2:查询:查询course表中与数据库相同学分的记录表中与数据库相同学分的记录例例3:查询:查询sc表中表中学分为学分为2的记录的记录sele * from sc;where 课程号课程号 in;(sele 课程号课程号 from course where 学分学分=2)sele * from c

11、ourse;where 学分学分=;(sele 学分学分 from course where 课程名课程名=数据库数据库)sele 学号学号,sc.课程号课程号,成绩成绩 from sc,course;where sc.课程号课程号=course.课程号课程号 and 学分学分=28/11/20241616例例4:查询:查询SC表中大于所有女生成绩的男生记录表中大于所有女生成绩的男生记录sele * from sc;where 成绩成绩all;(sele 成绩成绩 from sc,student as b where sc.学号学号=b.学号学号 and b.性别性别=女女)8/11/2024

12、1717四)查询输出四)查询输出 1. 将查询结果存放到数组中将查询结果存放到数组中 2将查询结果存放在临时文件中将查询结果存放在临时文件中 3将查询结果存放到永久表中将查询结果存放到永久表中 4将查询结果存放到文本文件中将查询结果存放到文本文件中 5将查询结果直接输出到打印机将查询结果直接输出到打印机 INTO Destination ARRAY ArrayName ,将查询结果保存到变量数组将查询结果保存到变量数组中。中。CURSOR CursorName 将查询结果保存到临时表中。将查询结果保存到临时表中。DBF | TABLE TableName 保存查询结果到一个表中保存查询结果到一

13、个表中TO FILE FileName ADDITIVE | TO PRINTER | TO SCREEN 8/11/20241818(三三) 操作功能操作功能 (一一)数据的插入数据的插入 第一种格式:第一种格式: INSERT INTO db_name(fnamel,fname2,) VALUES(eExpression 1,eExpression 2,) 第二种格式:第二种格式: INSERT INTO dbf_name FROM ARRAY ArrayName|FROM MEMVAR FROM MEMVAR 把内存变量的内容插入到与它同名的字段把内存变量的内容插入到与它同名的字段中中8

14、/11/20241919例:例:sele * from sc; where 成绩成绩all; (sele 成绩成绩 from sc,student as b where sc.学号学号=b.学学号号 and b.性别性别=女女); into dbf zgfn Use zgfn*Scatter*Scatter当前记录到内存变量当前记录到内存变量 Scatter memvar Insert into sc2 from memvar8/11/20242020(二二)更新更新 SQL的数据更新命令格式如下:的数据更新命令格式如下: UPDATE tablenameSET Column-Namel=eE

15、xpression 1,column-Name 2=eExpression 2 WHERE Condition 一般使用一般使用WHERE子句指定条件,以更新满足条件子句指定条件,以更新满足条件的一些记录的字段值,并且一次可以更新多个字段;的一些记录的字段值,并且一次可以更新多个字段;如果不使用如果不使用WHERE子句,则更新全部记录。子句,则更新全部记录。 UPDATE-SQL 命令只能用来更新单个表中的记录命令只能用来更新单个表中的记录8/11/20242121(三三)删除删除 SQL从表中删除数据的命令格式如下:从表中删除数据的命令格式如下: DELETE FROM TableNameWHERECondition 这里这里FROM指定从哪个表中删除数据,指定从哪个表中删除数据,WHERE指定被删除的记录所满足的条件,如指定被删除的记录所满足的条件,如果不使用果不使用WHERE子句,则删除该表中的全部子句,则删除该表中的全部记录。记录。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号