【教学课件】第6章SQL语言的应用.ppt
《【教学课件】第6章SQL语言的应用.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第6章SQL语言的应用.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 SQL语言的应用 任课教师:任课教师:乔奎贤E-mailE-mail:本章内容本章内容 6.1 SQL6.1 SQL语语言概述言概述 6.2 6.2 数据定数据定义义 6.3 6.3 数据数据查询查询 6.4 6.4 数据操数据操纵纵6.1 SQL6.1 SQL语语言概述言概述类类型型结构化查询语言结构化查询语言SQL:Structured Query LanguageSQL标准:标准:20世纪世纪80年代初由美国国家标准协会(年代初由美国国家标准协会(ANSI)制定)制定SQL语言的特点:语言的特点:SQL是一种一体化的语言是一种一体化的语言SQL语言是一种高度非过程化的语言语言是一
2、种高度非过程化的语言SQL语言非常简洁语言非常简洁SQL语语言言可可直直接接以以命命令令方方式式交交互互使使用用,也也可可嵌嵌入入到到程程序序设设计语言中以程序方式使用计语言中以程序方式使用6.2 数据定数据定义义6.2.1 建立表结构建立表结构6.2.2 删除表删除表6.2.3 修改表结构修改表结构6.2.1 6.2.1 建立表建立表结结构构格式:格式:Create Table|Dbf Name Free (,)Null|Not Null Check Error Default Primary Key|Unique References Tag ,)功能:功能:创建表,以指定的字段属性定义表
3、的结构创建表,以指定的字段属性定义表的结构例如:例如:Create Table aa Free(Fd1 C(8),Fd2 L,Fd3 N(4),Fd4 N(7,2),Fd5 D Null)6.2.1 6.2.1 建立表建立表结结构构说明:说明:l Free:创建自由表:创建自由表l Check Error :完整性检:完整性检查,检测字段值是否有效查,检测字段值是否有效lDefault:指定字段默认值:指定字段默认值lPrimary Key:指定字段为关键字段,仅用于数据库表:指定字段为关键字段,仅用于数据库表lUnique:指定字段为候选关键字段:指定字段为候选关键字段lReferences
4、 :为新建表指定永久性父表:为新建表指定永久性父表l Tag :父表中的关联字段:父表中的关联字段6.2.1 6.2.1 建立表建立表结结构构例例6.1:创建表创建表创建表创建表“学生学生学生学生”表,它由学号、姓名、性别、年龄、系表,它由学号、姓名、性别、年龄、系表,它由学号、姓名、性别、年龄、系表,它由学号、姓名、性别、年龄、系别五个属性组成。其中学号不能为空,值是唯一的,并且姓别五个属性组成。其中学号不能为空,值是唯一的,并且姓别五个属性组成。其中学号不能为空,值是唯一的,并且姓别五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一名取值也唯一名取值也唯一名取值也唯一Creat
5、e Table 学生学生学生学生;(学号学号 char(6)not 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.1 建立表建立表结结构构例例6.2:创建创建创建创建“学生管理学生管理”数据库,其中包含数据库,其中包含3个表:学生表、个表:学生表、选课表、课程表选课表、课程表Create Database 学生管理学生管理Create Table 学生学生(学号
6、学号 C(6)Primary 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 学号学号 Reference 学生学生,;Fo
7、reign Key 课程号课程号 Tag 课程号课程号 Reference 课程课程)6.2.1 6.2.1 建立表建立表结结构构使用说明:使用说明:lSQL Create命令不仅可以创建表,还可创建表之间的联系命令不仅可以创建表,还可创建表之间的联系lSQL Create命令创建的表自动在最小可用工作区中打开,命令创建的表自动在最小可用工作区中打开,并可通过别名引用,新表以独占方式打开并可通过别名引用,新表以独占方式打开l若建立自由表,则某些选项不可用,如若建立自由表,则某些选项不可用,如Name、Check、Default、Foreign Key、Primary Key、Reference
8、s等等6.2.2 6.2.2 删删除表除表格式:格式:Drop Table 功能:功能:直接从磁盘上删除所指定的表文件直接从磁盘上删除所指定的表文件 如果指定的表文件是数据库表且相应的数据库是当前数据如果指定的表文件是数据库表且相应的数据库是当前数据库,则从数据库中删除了表;否则虽然从磁盘上删除了表文件,库,则从数据库中删除了表;否则虽然从磁盘上删除了表文件,但是记录在数据库文件中的信息却没有删除,此后会出现错误但是记录在数据库文件中的信息却没有删除,此后会出现错误提示提示6.2.3 6.2.3 修改表修改表结结构构格式格式1:Alter Table Add|Alter Column (,)功
9、能:功能:可以添加可以添加(Add)新的字段或修改新的字段或修改(Alter)已有的字段,其已有的字段,其句法基本可与句法基本可与Create Table的句法相对应的句法相对应例例6.3:为课程表增加一个整数类型的为课程表增加一个整数类型的“学时学时”字段字段Open Database 学生管理学生管理Alter Table 课程课程 Add 学时学时 I Check(学时学时16);Error 学时应大于学时应大于16!6.2.3 6.2.3 修改表修改表结结构构格式格式2:Alter Table Alter Column Null|Not Null Set Default Set Che
10、ck Error Drop Default Drop Check功能:功能:定义、修改和删除有效性规则以及默认值定义定义、修改和删除有效性规则以及默认值定义例例6.4:删除课程表中的删除课程表中的“学时学时”字段的有效性规则字段的有效性规则Open Database 学生管理学生管理Alter Table 课程课程 Alter 学时学时 Drop Check6.2.3 6.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
12、.6 查询结果处理查询结果处理6.3 6.3 数据数据查询查询数据查询:数据查询:数据库的核心操作数据库的核心操作格式:格式:Select All|Distinct 字段选择字段选择 From子句子句Join子句子句 Where子句子句 Group子句子句 Order子句子句功能:功能:从指定表或视图中,创建一个由指定范围内、满足条件、从指定表或视图中,创建一个由指定范围内、满足条件、按某字段分组、按某字段排序的指定字段组成的新记录集按某字段分组、按某字段排序的指定字段组成的新记录集说明:说明:l命令基本形式:命令基本形式:Select From Wherel命令可从数据库中查询出各种数据命令
13、可从数据库中查询出各种数据l All:查询结果是表的全部记录:查询结果是表的全部记录l Distinct:查询结果是不包含重复记录的记录集:查询结果是不包含重复记录的记录集6.3.1 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 6.3.1 基本基本查询查询基本查询:基本查询:Select All|Distinct 字段选择字段选择 From子句子句:可以是字段、表达式、函数可以是字段、表达式、函数查询计算函数的格式及功能:查询计算函数的格式及功能:函数格式函数格式函数格式函数格式函数功能函数功能函数功能函数功能COUNT(*)
15、COUNT(*)计算记录个数计算记录个数计算记录个数计算记录个数SUM(SUM(字段名字段名字段名字段名)求字段名所指定字段值的总和求字段名所指定字段值的总和求字段名所指定字段值的总和求字段名所指定字段值的总和AVG(AVG(字段名字段名字段名字段名)求字段名所指定字段的平均值求字段名所指定字段的平均值求字段名所指定字段的平均值求字段名所指定字段的平均值MAX(MAX(字段名字段名字段名字段名)求字段名所指定字段的最大值求字段名所指定字段的最大值求字段名所指定字段的最大值求字段名所指定字段的最大值MIN(MIN(字段名字段名字段名字段名)求字段名所指定字段的最小值求字段名所指定字段的最小值求字
16、段名所指定字段的最小值求字段名所指定字段的最小值6.3.1 6.3.1 基本基本查询查询基本查询:基本查询:Select All|Distinct 字段选择字段选择 From子句子句例例6.7:写出对写出对stu表进行如下操作的命令表进行如下操作的命令(1)将所有学生入学成绩四舍五入,仅学号、姓名和入学成绩将所有学生入学成绩四舍五入,仅学号、姓名和入学成绩Select 学号学号,姓名姓名,Round(入学成绩入学成绩)As 入学成绩入学成绩 From 学生学生(2)求全部学生入学成绩的平均分求全部学生入学成绩的平均分Select Avg(入学成绩入学成绩)As 入学成绩平均分入学成绩平均分 F
17、rom 学生学生(3)求入学成绩的最高分和最低分求入学成绩的最高分和最低分Select Max(入学成绩入学成绩)As 最高成绩最高成绩,;Min(入学成绩入学成绩)As 最低最低成绩成绩 From 学生学生6.3.2 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.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.3.2 条件条件查询查询例例6.8:写出对写出对stu表进行如下操作的命令表进行如下操作的命令5.查询陕西、四川和辽宁籍学生记录查询陕西、四川和辽宁籍学生记录Select*From 学生学生 Where 籍贯籍贯=陕西陕西 Or;籍贯籍贯=四川四川 Or 籍贯籍贯=辽宁辽宁Select*From 学生学生 Where
20、籍贯籍贯 In(陕西陕西,四川四川,辽宁辽宁)6.查询所有宿舍电话为空值的学生查询所有宿舍电话为空值的学生Select*From 学生学生 Where 宿舍电话宿舍电话 Is Null5.注意:注意:成绩成绩 Is Null 不能写成不能写成成绩成绩=Null6.3.3 6.3.3 嵌套嵌套查询查询嵌套查询:嵌套查询:在在Select命令的命令的Where子句中包含另一个子句中包含另一个Select命令命令分类:分类:单层嵌套查询、多层嵌套查询单层嵌套查询、多层嵌套查询VFP只支持单层嵌套查询只支持单层嵌套查询l返回单值的子查询:返回单值的子查询:例例6.9:查询选修查询选修“数据库原理数据库
21、原理”的所有学生的学号的所有学生的学号Select 学号学号 From 选课选课 Where 课程号课程号=;(Select 课程号课程号 From 课程课程 Where 课程名课程名=高等数学高等数学)6.3.3 6.3.3 嵌套嵌套查询查询返回一组值的子查询:通常使用运算符返回一组值的子查询:通常使用运算符Any、All、INlAny 运算符运算符例例6.10:查询选修查询选修“10021”课的学生中成绩比选修课的学生中成绩比选修“10011”课课的最低成绩高的学号的学号和成绩的最低成绩高的学号的学号和成绩Select 学号学号,成绩成绩 From 选课选课 Where 课程号课程号=10
22、021Select 学号学号,成绩成绩 From 选课选课 Where 课程号课程号=10011Select 学号学号,成绩成绩 From 选课选课 Where 课程号课程号=10021 And;成绩成绩 Any(Select 成绩成绩 From 选课选课 Where 课程号课程号=10011)6.3.3 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 6.3.3 嵌套嵌套查询查询返回一组值的子查询:通常使用运算符返回一组值的子查询:通常使用运算符Any、All、INlIN 运算符:运算符:=Any例例6.12:查询选修查询选修“数据库原理数据库原理
24、”或或“软件工程软件工程”课的所有学生课的所有学生学号学号Select 学号学号 From 选课选课 Where 课程号课程号 IN;(Select 课程号课程号 From 课程课程 Where 课程名课程名=大学英语大学英语 ;Or 课程名课程名=高等数学高等数学 )6.3.4 6.3.4 多表多表查询查询等值联接:等值联接:按对应字段的共同值将两个表中的记录相联接按对应字段的共同值将两个表中的记录相联接例例6.13:写出如下操作的命令写出如下操作的命令1.列出所有教师姓名及所教课程列出所有教师姓名及所教课程Select a.教师编号教师编号,a.姓名姓名 As 教师姓名教师姓名,b.课程名
25、课程名;From 教师教师 a,课程课程 b Where a.课程编号课程编号=b.课程号课程号2.列出教列出教“高等数学高等数学”课程的所有教师姓名课程的所有教师姓名Select a.教师编号教师编号,a.姓名姓名 As 教师姓名教师姓名,b.课程名课程名;From 教师教师 a,课程课程 b ;Where a.课程编号课程编号=b.课程号课程号 And b.课程名课程名=高等数学高等数学6.3.4 6.3.4 多表多表查询查询等值联接:等值联接:按对应字段的共同值将两个表中的记录相联接按对应字段的共同值将两个表中的记录相联接例例6.13:写出如下操作的命令写出如下操作的命令3.列出所有学生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 SQL 语言 应用
限制150内