教学课件第6章SQL语言的应用

上传人:m**** 文档编号:569313489 上传时间:2024-07-28 格式:PPT 页数:52 大小:430.50KB
返回 下载 相关 举报
教学课件第6章SQL语言的应用_第1页
第1页 / 共52页
教学课件第6章SQL语言的应用_第2页
第2页 / 共52页
教学课件第6章SQL语言的应用_第3页
第3页 / 共52页
教学课件第6章SQL语言的应用_第4页
第4页 / 共52页
教学课件第6章SQL语言的应用_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《教学课件第6章SQL语言的应用》由会员分享,可在线阅读,更多相关《教学课件第6章SQL语言的应用(52页珍藏版)》请在金锄头文库上搜索。

1、第6章 SQL语言的应用 任课教师:任课教师:乔奎贤E-mail:本章内容本章内容 6.1 SQL语言概述言概述 6.2 数据定数据定义 6.3 数据数据查询 6.4 数据操数据操纵6.1 SQL语言概述言概述类型型结构化查询语言结构化查询语言SQL:Structured Query LanguageSQL标准:标准:20世纪世纪80年代初由美国国家标准协会(年代初由美国国家标准协会(ANSI)制定)制定SQL语言的特点:语言的特点:SQL是一种一体化的语言是一种一体化的语言SQL语言是一种高度非过程化的语言语言是一种高度非过程化的语言SQL语言非常简洁语言非常简洁SQL语语言言可可直直接接以

2、以命命令令方方式式交交互互使使用用,也也可可嵌嵌入入到到程程序序设设计语言中以程序方式使用计语言中以程序方式使用6.2 数据定数据定义6.2.1 建立表结构建立表结构6.2.2 删除表删除表6.2.3 修改表结构修改表结构6.2.1 建立表建立表结构构格式:格式:Create Table | Dbf Name Free ( ( , ) Null | Not Null Check Error Default Primary Key | Unique References Tag , )功能:功能:创建表,以指定的字段属性定义表的结构创建表,以指定的字段属性定义表的结构例如:例如:Create T

3、able aa Free ( Fd1 C(8), Fd2 L, Fd3 N(4), Fd4 N(7,2), Fd5 D Null )6.2.1 建立表建立表结构构说明:说明:l Free :创建自由表:创建自由表l Check Error :完整性检:完整性检查,检测字段值是否有效查,检测字段值是否有效lDefault :指定字段默认值:指定字段默认值lPrimary Key:指定字段为关键字段,仅用于数据库表:指定字段为关键字段,仅用于数据库表lUnique:指定字段为候选关键字段:指定字段为候选关键字段lReferences :为新建表指定永久性父表:为新建表指定永久性父表l Tag :父

4、表中的关联字段:父表中的关联字段6.2.1 建立表建立表结构构例例6.1:创建表创建表创建表创建表“ “学生学生学生学生” ”表,它由学号、姓名、性别、年龄、系表,它由学号、姓名、性别、年龄、系表,它由学号、姓名、性别、年龄、系表,它由学号、姓名、性别、年龄、系别五个属性组成。其中学号不能为空,值是唯一的,并且姓别五个属性组成。其中学号不能为空,值是唯一的,并且姓别五个属性组成。其中学号不能为空,值是唯一的,并且姓别五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一名取值也唯一名取值也唯一名取值也唯一Create Table 学生学生学生学生 ;( 学号学号 char (6) no

5、t null unique , char (6) not null unique , ;姓名姓名 char (10) unique , char (10) unique , ;性别性别 char (2) , char (2) , ;年龄年龄 int , int , ;系别系别 char (20)char (20) ;) 6.2.1 建立表建立表结构构例例6.2:创建创建创建创建“学生管理学生管理”数据库,其中包含数据库,其中包含3个表:学生表、个表:学生表、选课表、课程表选课表、课程表Create Database 学生管理学生管理Create Table 学生学生 ( 学号学号 C(6) P

6、rimary Key , 姓名姓名 C(10) , ;入学成绩入学成绩 N(5,1) Check (入学成绩入学成绩 0) Error 成绩应大于成绩应大于0!)Create Table 课程课程 ( 课程号课程号 C(5) Primary Key , ;课程名课程名 C(20) , 学分学分 N(1) )Create Table 选课选课选课选课( ( 学号学号 C(6) , 课程号课程号 C(5) , ;成绩成绩 I Check ( 成绩成绩=0 And 成绩成绩=100 ) ;Error 成绩范围成绩范围0100 Default 60 , ;Foreign Key 学号学号 Tag 学号

7、学号 Reference 学生学生 , ;Foreign Key 课程号课程号 Tag 课程号课程号 Reference 课程课程 ) )6.2.1 建立表建立表结构构使用说明:使用说明:lSQL Create命令不仅可以创建表,还可创建表之间的联系命令不仅可以创建表,还可创建表之间的联系lSQL Create命令创建的表自动在最小可用工作区中打开,命令创建的表自动在最小可用工作区中打开,并可通过别名引用,新表以独占方式打开并可通过别名引用,新表以独占方式打开l若建立自由表,则某些选项不可用,如若建立自由表,则某些选项不可用,如Name、Check、Default、Foreign Key、Pr

8、imary Key、References等等6.2.2 删除表除表格式:格式:Drop Table 功能:功能:直接从磁盘上删除所指定的表文件直接从磁盘上删除所指定的表文件 如果指定的表文件是数据库表且相应的数据库是当前数据如果指定的表文件是数据库表且相应的数据库是当前数据库,则从数据库中删除了表;否则虽然从磁盘上删除了表文件,库,则从数据库中删除了表;否则虽然从磁盘上删除了表文件,但是记录在数据库文件中的信息却没有删除,此后会出现错误但是记录在数据库文件中的信息却没有删除,此后会出现错误提示提示6.2.3 修改表修改表结构构格式格式1:Alter Table Add | Alter Colu

9、mn ( ,)功能:功能:可以添加可以添加(Add)新的字段或修改新的字段或修改(Alter)已有的字段,其已有的字段,其句法基本可与句法基本可与Create Table的句法相对应的句法相对应例例6.3:为课程表增加一个整数类型的为课程表增加一个整数类型的“学时学时”字段字段Open Database 学生管理学生管理Alter Table 课程课程 Add 学时学时 I Check ( 学时学时16 ) ;Error 学时应大于学时应大于16!6.2.3 修改表修改表结构构格式格式2:Alter Table Alter Column Null | Not Null Set Default

10、Set Check Error Drop Default Drop Check功能:功能:定义、修改和删除有效性规则以及默认值定义定义、修改和删除有效性规则以及默认值定义例例6.4:删除课程表中的删除课程表中的“学时学时”字段的有效性规则字段的有效性规则Open Database 学生管理学生管理Alter Table 课程课程 Alter 学时学时 Drop Check6.2.3 修改表修改表结构构格式格式3:Alter Table Drop Column Set Check Error Drop CheckAdd Primary Key Tag For Drop Primary Key R

11、ename Column To 功能:功能:删除指定字段、修改字段名、修改指定表的完整性规则,删除指定字段、修改字段名、修改指定表的完整性规则,包括主索引、外关键字、候选索引及表的合法值限定的添加与包括主索引、外关键字、候选索引及表的合法值限定的添加与删除删除例例6.5:删除课程表中的删除课程表中的“学时学时”字段字段Open Database 学生管理学生管理Alter Table 课程课程 Drop Column 学时学时6.3 数据数据查询6.3.1 基本查询基本查询6.3.2 条件条件查询查询6.3.3 嵌套查询嵌套查询6.3.4 多表查询多表查询6.3.5 联接查询联接查询6.3.6

12、 查询结果处理查询结果处理6.3 数据数据查询数据查询:数据查询:数据库的核心操作数据库的核心操作格式:格式:Select All | Distinct 字段选择字段选择 From子句子句Join子句子句 Where子句子句 Group子句子句 Order子句子句功能:功能: 从指定表或视图中,创建一个由指定范围内、满足条件、从指定表或视图中,创建一个由指定范围内、满足条件、按某字段分组、按某字段排序的指定字段组成的新记录集按某字段分组、按某字段排序的指定字段组成的新记录集说明:说明:l命令基本形式:命令基本形式:Select From Wherel命令可从数据库中查询出各种数据命令可从数据库

13、中查询出各种数据l All :查询结果是表的全部记录:查询结果是表的全部记录l Distinct :查询结果是不包含重复记录的记录集:查询结果是不包含重复记录的记录集6.3.1 基本基本查询基本查询:基本查询:Select All | Distinct 字段选择字段选择 From子句子句字段选择:字段选择: As , As From子句:子句:From , 例例6.6 :写出对写出对stu表进行如下操作的命令表进行如下操作的命令(1) 列出全部学生信息列出全部学生信息Select * From 学生学生(2)列出全部学生的学号、姓名和入学成绩列出全部学生的学号、姓名和入学成绩Select 学号

14、学号, 姓名姓名, 入学成绩入学成绩 From 学生学生(3) 列出全部学生的姓名和年龄,去掉重名列出全部学生的姓名和年龄,去掉重名Select Distinct 姓名姓名 As 学生名单学生名单, Year(Date( ) -Year(出出生日期生日期) As 年龄年龄 From 学生学生6.3.1 基本基本查询基本查询:基本查询:Select All | Distinct 字段选择字段选择 From子句子句:可以是字段、表达式、函数可以是字段、表达式、函数查询计算函数的格式及功能:查询计算函数的格式及功能:函数格式函数格式函数格式函数格式函数功能函数功能函数功能函数功能COUNT(*)CO

15、UNT(*)计算记录个数计算记录个数计算记录个数计算记录个数SUM(SUM(字段名字段名字段名字段名) )求字段名所指定字段值的总和求字段名所指定字段值的总和求字段名所指定字段值的总和求字段名所指定字段值的总和AVG(AVG(字段名字段名字段名字段名) )求字段名所指定字段的平均值求字段名所指定字段的平均值求字段名所指定字段的平均值求字段名所指定字段的平均值MAX(MAX(字段名字段名字段名字段名) )求字段名所指定字段的最大值求字段名所指定字段的最大值求字段名所指定字段的最大值求字段名所指定字段的最大值MIN(MIN(字段名字段名字段名字段名) )求字段名所指定字段的最小值求字段名所指定字段

16、的最小值求字段名所指定字段的最小值求字段名所指定字段的最小值6.3.1 基本基本查询基本查询:基本查询:Select All | Distinct 字段选择字段选择 From子句子句例例6.7 :写出对写出对stu表进行如下操作的命令表进行如下操作的命令(1) 将所有学生入学成绩四舍五入,仅学号、姓名和入学成绩将所有学生入学成绩四舍五入,仅学号、姓名和入学成绩Select 学号学号,姓名姓名,Round(入学成绩入学成绩) As 入学成绩入学成绩 From 学生学生(2) 求全部学生入学成绩的平均分求全部学生入学成绩的平均分Select Avg(入学成绩入学成绩) As 入学成绩平均分入学成绩

17、平均分 From 学生学生(3) 求入学成绩的最高分和最低分求入学成绩的最高分和最低分Select Max(入学成绩入学成绩) As 最高成绩最高成绩 , ;Min(入学成绩入学成绩) As 最低最低成绩成绩 From 学生学生6.3.2 条件条件查询Where 子句:子句:用于指定查询条件,其格式是:用于指定查询条件,其格式是:Where 说明:说明:条件表达式可以是单表的条件表达式,也可以是多表之条件表达式可以是单表的条件表达式,也可以是多表之间的条件表达式,表达式用的运算符为:间的条件表达式,表达式用的运算符为:l比较运算符:比较运算符:=、!=、=、=、480Select * From

18、 学生学生 Where Not 入学成绩入学成绩=420 And 入学成绩入学成绩=520Select * From 学生学生 ;Where Not ( 入学成绩入学成绩520 )Select * From 学生学生 Where 入学成绩入学成绩 Between 420 And 5206.3.2 条件条件查询例例6.8 :写出对写出对stu表进行如下操作的命令表进行如下操作的命令3.查询女学生入学平均分查询女学生入学平均分Select Avg(入学成绩入学成绩) As 入学平均分入学平均分 From 学生学生 ;Where 性别性别 = 女女性别性别 != 男男 性别性别 男男 Not 性别性

19、别 = 男男 查询陕西籍学生记录查询陕西籍学生记录3.Select * From 学生学生 Where 籍贯籍贯 = 陕西陕西4.Select * From 学生学生 Where 籍贯籍贯 Like 陕西陕西% 5.通配符:通配符:%表示表示0个或多个字符个或多个字符表示表示1个字符个字符6.3.2 条件条件查询例例6.8 :写出对写出对stu表进行如下操作的命令表进行如下操作的命令5.查询陕西、四川和辽宁籍学生记录查询陕西、四川和辽宁籍学生记录Select * From 学生学生 Where 籍贯籍贯 = 陕西陕西 Or ;籍贯籍贯 = 四川四川 Or 籍贯籍贯 = 辽宁辽宁Select *

20、 From 学生学生 Where 籍贯籍贯 In (陕西陕西 , 四川四川 , 辽宁辽宁)6.查询所有宿舍电话为空值的学生查询所有宿舍电话为空值的学生Select * From 学生学生 Where 宿舍电话宿舍电话 Is Null5.注意:注意:成绩成绩 Is Null 不能写成不能写成成绩成绩 = Null6.3.3 嵌套嵌套查询嵌套查询:嵌套查询:在在Select命令的命令的Where子句中包含另一个子句中包含另一个Select命令命令分类:分类:单层嵌套查询、多层嵌套查询单层嵌套查询、多层嵌套查询VFP只支持单层嵌套查询只支持单层嵌套查询l返回单值的子查询:返回单值的子查询:例例6.9

21、:查询选修查询选修“数据库原理数据库原理”的所有学生的学号的所有学生的学号Select 学号学号 From 选课选课 Where 课程号课程号 = ;(Select 课程号课程号 From 课程课程 Where 课程名课程名 = 高等数学高等数学 )6.3.3 嵌套嵌套查询返回一组值的子查询:通常使用运算符返回一组值的子查询:通常使用运算符Any、All、INlAny 运算符运算符例例6.10:查询选修查询选修“10021”课的学生中成绩比选修课的学生中成绩比选修“10011”课课的最低成绩高的学号的学号和成绩的最低成绩高的学号的学号和成绩Select 学号学号, 成绩成绩 From 选课选课

22、 Where 课程号课程号=10021Select 学号学号, 成绩成绩 From 选课选课 Where 课程号课程号=10011Select 学号学号, 成绩成绩 From 选课选课 Where 课程号课程号=10021 And ;成绩成绩 Any (Select 成绩成绩 From 选课选课 Where 课程号课程号=10011)6.3.3 嵌套嵌套查询返回一组值的子查询:通常使用运算符返回一组值的子查询:通常使用运算符Any、All、INlAll 运算符运算符例例6.11:查询选修查询选修“10021”课的学生中成绩比选修课的学生中成绩比选修“10011”课课的最高成绩高的学号的学号和成

23、绩的最高成绩高的学号的学号和成绩Select 学号学号, 成绩成绩 From 选课选课 Where 课程号课程号=10021Select 学号学号, 成绩成绩 From 选课选课 Where 课程号课程号=10011Select 学号学号, 成绩成绩 From 选课选课 Where 课程号课程号=10021 And ;成绩成绩 All (Select 成绩成绩 From 选课选课 Where 课程号课程号=10011)6.3.3 嵌套嵌套查询返回一组值的子查询:通常使用运算符返回一组值的子查询:通常使用运算符Any、All、INlIN 运算符:运算符:= Any例例6.12:查询选修查询选修“

24、数据库原理数据库原理”或或“软件工程软件工程”课的所有学生课的所有学生学号学号Select 学号学号 From 选课选课 Where 课程号课程号 IN ;( Select 课程号课程号 From 课程课程 Where 课程名课程名=大学英语大学英语 ;Or 课程名课程名=高等数学高等数学 )6.3.4 多表多表查询等值联接:等值联接:按对应字段的共同值将两个表中的记录相联接按对应字段的共同值将两个表中的记录相联接例例6.13:写出如下操作的命令写出如下操作的命令1.列出所有教师姓名及所教课程列出所有教师姓名及所教课程Select a.教师编号教师编号, a.姓名姓名 As 教师姓名教师姓名,

25、 b.课程名课程名 ;From 教师教师 a , 课程课程 b Where a.课程编号课程编号=b.课程号课程号2.列出教列出教“高等数学高等数学”课程的所有教师姓名课程的所有教师姓名Select a.教师编号教师编号, a.姓名姓名 As 教师姓名教师姓名, b.课程名课程名 ;From 教师教师 a , 课程课程 b ;Where a.课程编号课程编号=b.课程号课程号 And b.课程名课程名=高等数学高等数学6.3.4 多表多表查询等值联接:等值联接:按对应字段的共同值将两个表中的记录相联接按对应字段的共同值将两个表中的记录相联接例例6.13:写出如下操作的命令写出如下操作的命令3.

26、列出所有学生的成绩单列出所有学生的成绩单Select a.学号学号, 姓名姓名 , b.课程号课程号, 课程名课程名, 成绩成绩 ;From 学生学生 a , 课程课程 b , 选课选课 c ;Where a.学号学号= c.学号学号 And b.课程号课程号= c.课程号课程号4.列出至少选修列出至少选修“10011”和和“10021”课的学生学号课的学生学号Select a.学号学号 From 选课选课 a , 选课选课 b Where a.学号学号= b.学号学号 ;And b.课程课程号号=10011 And a.课程号课程号=100216.3.4 多表多表查询非等值联接:非等值联接:

27、例例6.14:列出选修列出选修“10021”课的学生中,成绩大于学号为课的学生中,成绩大于学号为“075102”的学生该课程的学生的学号及其成绩的学生该课程的学生的学号及其成绩Select a.学号学号 , b.课程号课程号, a.成绩成绩 From 选课选课 a , 选课选课 b ;Where a.成绩成绩 b.成绩成绩 And a.课程号课程号= b.课程号课程号 And ;b.课程号课程号 = 10021 And b.学号学号 = 0751036.3.5 联接接查询内部联接内部联接(Inner Join):指包括符合条件的每个表中的记录。指包括符合条件的每个表中的记录。也就是说是所有满足

28、联接条件的记录都包含在查询结果中也就是说是所有满足联接条件的记录都包含在查询结果中 例例6.15:列出少数民族学生的学号、课程号和成绩列出少数民族学生的学号、课程号和成绩方法方法1:Select a.学号学号 , b.课程号课程号, 成绩成绩 From 学生学生 a , 选课选课 b ;Where a.学号学号= b.学号学号 And 少数民族否少数民族否方法方法2:采用内联接方式:采用内联接方式Select a.学号学号 , b.课程号课程号, 成绩成绩 From 学生学生 a ;Inner Join 选课选课 b On a.学号学号= b.学号学号 Where 少数民族否少数民族否6.3.

29、5 联接接查询外部联接外部联接(Outer Join):u左外联接(左外联接(Left Outer Join):):左表的的各条记录与右表的所左表的的各条记录与右表的所有记录依次比较,若有满足联接条件,则产生一个记录;若有记录依次比较,若有满足联接条件,则产生一个记录;若都不满足,则产生一个含有都不满足,则产生一个含有NULL值的记录。值的记录。u右外联接(右外联接(Right Outer Join):):右表的的各条记录与左表的右表的的各条记录与左表的所有记录依次比较,若有满足联接条件,则产生一个记录;所有记录依次比较,若有满足联接条件,则产生一个记录;若都不满足,则产生一个含有若都不满足,

30、则产生一个含有NULL值的记录。值的记录。u完全联接(完全联接(Full Join),),先按右联接比较字段值,然后按左联先按右联接比较字段值,然后按左联接比较字段值,重复记录不记入查询结果。接比较字段值,重复记录不记入查询结果。6.3.6 查询结果果处理理查询结果排序:查询结果排序:Order By子句子句Order By Asc | Desc ,Asc | Desc例例6.16:查询学生基本信息,按性别查询学生基本信息,按性别(升升)、入学成绩、入学成绩(降降)排序排序Select * From 学生学生 Order By 性别性别 Asc , 入学成绩入学成绩 Desc例例6.17:查询

31、学生的学号、姓名、性别、课程名和成绩,按课程查询学生的学号、姓名、性别、课程名和成绩,按课程名名(升升)、入学成绩、入学成绩(降降)排序排序Select 学生学生.学号学号 , 姓名姓名 , 课程名课程名 , 成绩成绩 ;From 学生学生 a , 选课选课 b , 课程课程 c ;Where a.学号学号 = b.学号学号 And b.课程号课程号 = c.课程号课程号 ;Order By 课程名课程名 Asc , 成绩成绩 Desc6.3.6 查询结果果处理理查询结果重定向:查询结果重定向:Into / To子句子句格式:格式: Into | To File Additive | To P

32、rinter 说明:说明:Array (数组数组)、Cursor (临时表临时表)、Dbf | Table (表表)临时表:一旦被关闭就被删除临时表:一旦被关闭就被删除To File :将结果输出到指定的文本文件将结果输出到指定的文本文件Additive:将结果追加到指定的文本文件尾将结果追加到指定的文本文件尾To Printer:将结果输出到打印机将结果输出到打印机6.3.6 查询结果果处理理例例6.18:查询查询”大学英语大学英语”课所有学生成绩(按成绩降序排序),课所有学生成绩(按成绩降序排序),输出重定向输出重定向Select 姓名姓名 , 课程名课程名 , 成绩成绩 From 学生学

33、生 a , 选课选课 b , 课程课程 c ;Where a.学号学号 = b.学号学号 And b.课程号课程号 = c.课程号课程号 And ;b.课程名课程名=大学英语大学英语 Order By 成绩成绩 Desc To t1.txtSelect 姓名姓名 , 课程名课程名 , 成绩成绩 From 学生学生 a , 选课选课 b , 课程课程 c ;Where a.学号学号 = b.学号学号 And b.课程号课程号 = c.课程号课程号 And ;b.课程名课程名=大学英语大学英语 Order By 成绩成绩 Desc Into Cursor t2Select 姓名姓名 , 课程名课程

34、名 , 成绩成绩 From 学生学生 a , 选课选课 b , 课程课程 c ;Where a.学号学号 = b.学号学号 And b.课程号课程号 = c.课程号课程号 And ;b.课程名课程名=大学英语大学英语 Order By 成绩成绩 Desc Into Table t36.3.6 查询结果果处理理查询结果合并:查询结果合并:Union子句子句格式:格式: Union All 说明:说明:All: 结果全部合并,无此项则重复记录自动取掉结果全部合并,无此项则重复记录自动取掉合并规则:合并规则:l不能合并子查询的结果不能合并子查询的结果l两个查询必须有同样的列数两个查询必须有同样的列数

35、l两个查询各对应字段的数据类型必须相同两个查询各对应字段的数据类型必须相同l仅最后一个查询可用排序,且排序选项必须用数字说明仅最后一个查询可用排序,且排序选项必须用数字说明例例6.19:查询选修查询选修”10011”和和”10021”课程的学生的学号课程的学生的学号Select 学号学号 From 选课选课 Where 课程号课程号=10011 Union ;Select 学号学号 From 选课选课 Where 课程号课程号=100216.3.6 查询结果果处理理分组统计与筛选:分组统计与筛选:Group By 子句和子句和 Having 子句子句 Group By子句格式:子句格式:Gro

36、up By , 功能:功能:将查询结果按指定列进行分组,每组在列上具有相同的值,将查询结果按指定列进行分组,每组在列上具有相同的值,在分组后还可按一定条件筛选,即在分组后还可按一定条件筛选,即Having子句。子句。Having子句格式:子句格式:Having 功能:功能:与与Group By子句连用,用来指定每一分组内应满足的条件子句连用,用来指定每一分组内应满足的条件说明:说明:在查询中先用在查询中先用Where子句选择记录,在进行分组,最后用子句选择记录,在进行分组,最后用Having子句选择记录子句选择记录6.3.6 查询结果果处理理分组统计与筛选:分组统计与筛选:Group By 子

37、句和子句和 Having 子句子句 例例6.20:写出操作命令写出操作命令1.分别统计男女生人数分别统计男女生人数Select 性别性别 , Count(性别性别) From 学生学生 Group By 性别性别2.分别统计男女生中少数民族学生人数分别统计男女生中少数民族学生人数Select 性别性别 , Count(性别性别) From 学生学生 Group By 性别性别 ;1.Where 少数民族否少数民族否l查询成绩平均分大于查询成绩平均分大于75分的课程号分的课程号Select 课程号课程号 , Avg(成绩成绩) From 选课选课 ;1.Group By 课程号课程号 Havin

38、g Avg(成绩成绩) = 75复复习题:1.查询全体学生的详细信息查询全体学生的详细信息Select * From 学生学生2.查询全体学生的学号与姓名查询全体学生的学号与姓名Select 学号学号 , 姓名姓名 From 学生学生3.查询全体学生的学号、年龄查询全体学生的学号、年龄Select 姓名姓名, Year(date( )-Year(出生日期出生日期) As 年龄年龄 From 学生学生4.查询选修了课程的学生学号查询选修了课程的学生学号Select Distinct 学号学号 From 选课选课5.查询学生的总人数查询学生的总人数Select Count(*) As 学生总人数学

39、生总人数 From 学生学生复复习题:6.查询选修查询选修10021号课程的学生最高分号课程的学生最高分Select Max (成绩成绩) As 最高分最高分 From 选课选课 ;Where 课程号课程号 = 10021 7.计算计算10021号课程的学生平均成绩号课程的学生平均成绩Select Avg (成绩成绩) As 平均分平均分 From 选课选课 ;Where 课程号课程号 = 10021 6.查询所有少数民族学生姓名查询所有少数民族学生姓名Select 姓名姓名 From 学生学生 Where 少数民族否少数民族否 = .t.查询考试成绩查询考试成绩=80的学生的学号,课程名及成

40、绩的学生的学号,课程名及成绩Select 学号学号, 课程号课程号, 成绩成绩 From 选课选课 Where 成绩成绩=80复复习题:10.查询所有年龄为查询所有年龄为18岁的学生姓名、性别和年龄岁的学生姓名、性别和年龄Select 姓名姓名, 性别性别, Year(date( )-Year(出生日期出生日期) As 年龄年龄 ;From 学生学生 Where Year(date( )-Year(出生日期出生日期) = 1811.查询所有年龄为查询所有年龄为18岁的男学生姓名、性别和年龄岁的男学生姓名、性别和年龄Select 姓名姓名, 性别性别, Year(date( )-Year(出生日

41、期出生日期) As 年龄年龄 ;From 学生学生 Where Year(date( )-Year(出生日期出生日期) = 18 ;And 性别性别 =男男12.查询查询”10021”课成绩不在课成绩不在7089分之间的学生分之间的学生Select * From 选课选课 Where 课程号课程号= 10021 ;And 成绩成绩 Not Between 70 And 89复复习题:13.查询赵姓学生的详细情况查询赵姓学生的详细情况Select * From 学生学生 Where 姓名姓名 Like 赵赵%14.查询非陕西籍学生的详细情况查询非陕西籍学生的详细情况Select * From 学

42、生学生 Where 籍贯籍贯 Not Like 陕西陕西%15.查询名字中第二字为查询名字中第二字为”二二”的学生的学号、姓名的学生的学号、姓名Select 学号学号, 姓名姓名 From 学生学生 Where 姓名姓名 Like _二二%16.查询缺少成绩的学生的学号、成绩和相应的课程号查询缺少成绩的学生的学号、成绩和相应的课程号Select 学号学号, 课程号课程号, 成绩成绩 From 选课选课 Where 成绩成绩 Is Null复复习题:17.查询查询“高等数学高等数学”和和“大学英语大学英语”课的课程号课的课程号Select 课程号课程号, 课程名课程名 From 课程课程 ;Wh

43、ere 课程名课程名 = 高等数学高等数学 Or 课程名课程名 = 大学英语大学英语Select 课程号课程号, 课程名课程名 From 课程课程 ;Where 课程名课程名 IN (高等数学高等数学, 大学英语大学英语 )18.查询所有有成绩的学生的学号、成绩和相应的课程号查询所有有成绩的学生的学号、成绩和相应的课程号Select 学号学号, 课程号课程号, 成绩成绩 From 选课选课 ;Where 成绩成绩 Is Not Null19.查询即非陕西籍又非辽宁籍的学生查询即非陕西籍又非辽宁籍的学生Select 学号学号 , 姓名姓名 , 性别性别 , 籍贯籍贯 From 学生学生 ;Whe

44、re 籍贯籍贯 Not In ( 陕西陕西 , 辽宁辽宁 )复复习题:20.查询与查询与赵二牛赵二牛在同一个系学习的学生在同一个系学习的学生 确定确定 赵二牛赵二牛所在系所在系Select 所在系所在系 From 学生学生 Where 姓名姓名 = 赵二牛赵二牛 查找所有在电子系的学生查找所有在电子系的学生Select 学号学号 , 姓名姓名 , 性别性别 , 所在系所在系 From 学生学生 ;Where 所在系所在系 = 计算机计算机嵌套查询来完成嵌套查询来完成Select 学号学号, 姓名姓名, 性别性别, 所在系所在系 From 学生学生 Where 所在系所在系= ;( Select

45、 所在系所在系 From 学生学生 Where 姓名姓名 = 赵二牛赵二牛 )复复习题:21.查询选修了查询选修了10021号课程的学生的姓名、所在系号课程的学生的姓名、所在系Select 学号学号, 姓名姓名, 所在系所在系 From 学生学生 Where 学号学号 In ;( Select 学号学号 From 选课选课 Where 课程号课程号 = 10021 )22.查询比学号查询比学号“075106”选修的选修的10021号课程成绩低的学生号课程成绩低的学生Select * From 选课选课 Where 成绩成绩 ;( Select 成绩成绩 From 选课选课 ;Where 学号学

46、号 = 075106 and 课程号课程号= 10021 )复复习题:23.查询其他系中比计算机系某一学生入学成绩低的学生查询其他系中比计算机系某一学生入学成绩低的学生Select 姓名姓名, 入学成绩入学成绩, 所在系所在系 From 学生学生 Where ;入学成绩入学成绩 Any ( Select 入学成绩入学成绩 From 学生学生 ;Where 所在系所在系 = 计算机计算机 ) And 所在系所在系 计算机计算机24.查询其他系中比经济管理系所有学生入学成绩低的学生查询其他系中比经济管理系所有学生入学成绩低的学生Select 姓名姓名, 入学成绩入学成绩, 所在系所在系 From

47、学生学生 Where ;入学成绩入学成绩 All ( Select 入学成绩入学成绩 From 学生学生 ;Where 所在系所在系 = 经济管理经济管理 ) And 所在系所在系 经济管理经济管理6.4 数据操数据操纵6.4.1 插入记录插入记录6.4.2 删除记录删除记录6.4.3 更新记更新记录录6.4.1 插入插入记录格式格式1: Insert Into ( 字段名字段名1 , , ) Values ( , , ) 功能:功能:在指定表尾添加一条新记录,其值为在指定表尾添加一条新记录,其值为Values后表达式的值后表达式的值例例6-21:将一个新学生记录(学号将一个新学生记录(学号:

48、075111;:075111;姓名姓名: :陈东陈东; ;性别性别: :男男; ;系别系别: :法律系法律系; ;年龄年龄:19:19)插入到学生表)插入到学生表Insert Into 学生学生 Values ( 075111 , 刘阿宝刘阿宝 , 男男, ;1988-5-12 , .T. , 555 , 四川省成都市四川省成都市 , 经济管理经济管理)例例6-22:插入一条选课记录插入一条选课记录(学号学号:075111; 课程号课程号:10011)到选课表到选课表Insert Into 选课选课(学号学号, 课程号课程号) Values(075111,10011)6.4.1 插入插入记录格

49、式格式2: Insert Into From Array | From Memvar 功能:功能:在指定的表尾添加一条新记录,其值来自于数组或对应的在指定的表尾添加一条新记录,其值来自于数组或对应的同名内存变量。同名内存变量。 例例6-23:将数组内容作为一个新记录插入到教师表将数组内容作为一个新记录插入到教师表Dimension a(3)Store 1010 To a(1)Store 李幺妹李幺妹 To a(2)Store 女女 To a(3)Insert Into 教师教师 From Array a6.4.2 删除除记录格式:格式:Delete From ! Where 功能:功能:从指定

50、表中,根据指定的条件逻辑删除记录从指定表中,根据指定的条件逻辑删除记录说明:说明:Delete语句语句删除的是表中的数据,而不是表的定义删除的是表中的数据,而不是表的定义Where子句子句缺省则删除表中的全部数据缺省则删除表中的全部数据例例6-24:删除学号为删除学号为075111的学生记录的学生记录Delete From 学生学生 Where 学号学号 = 075111例例6-25:将所有的学生选课记录将所有的学生选课记录Delete From 院系院系6.4.3 更新更新记录格式:格式:Update ! Set = , = Where 功能:功能:用表达式的值更新满足条件的记录的字段值用表达式的值更新满足条件的记录的字段值例例6-26:将教师编号为将教师编号为1008的教师职称修改为的教师职称修改为高级工程师高级工程师Update 教师教师 Set 职称职称 = 高级工程师高级工程师 ;Where 教师编号教师编号= 1008例例6-27:将所有教师的年龄增加将所有教师的年龄增加1岁岁Update 教师教师 Set 年龄年龄 = 年龄年龄 + 1本章内容本章内容 6.1 SQL语言概述言概述 6.2 数据定数据定义 6.3 数据数据查询 6.4 数据操数据操纵

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

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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