版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VFP课程建设组课程建设组第四章关系数据库标准语第四章关系数据库标准语SQL目录SQL语言概述语言概述 4.1查询功能查询功能 4.2操作功能操作功能 4.3定义功能定义功能 4.4本章小结本章小结4.54.1 SQL语言概述语言概述vSQL全称是“结构化查询语言(Structured Query Language)”,最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是Oracle,Sybase, Informix
2、, SQL server这些大型的数据库管理系统,还是像Visual FoxPro,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。 4.1.1SQL语言的特点语言的特点1综合统一 SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据以建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,这就为数据库应用系统开发提供了良好的环境。2非过程化语言 SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。 3面向
3、集合的操作方式 SQL语言采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。 4.1.1SQL语言的特点语言的特点5语言简捷 SQL语言功能极强,但又十分简洁,只用9个动词即可完成对数据的操纵、数据的定义及数据的控制等功能。(1数据操纵:SELECT、INSERT、UPDATE、DELETE(2数据定义:CREATE、DROP、ALTER(3数据控制:GRANT,REVOKE 4一种语法结构有两种使用方式 SQL语言既是自含式语言,又是嵌入式语言。且在两种不同的使用方式下,SQL语言的语法结构基本上是一致的。 4.1.2SQL语言的功能语言的
4、功能 v查询是查询是SQLSQL语言的重要组成部分,同时语言的重要组成部分,同时SQLSQL还包括数还包括数据定义、数据操纵和数据控制功能等部分。据定义、数据操纵和数据控制功能等部分。SQLSQL已已经成为关系数据库的标准查询语言。经成为关系数据库的标准查询语言。v 1 1数据查询功能数据查询功能v 包括单表查询、多表查询、集合查询等。包括单表查询、多表查询、集合查询等。v 2 2数据定义功能数据定义功能v 包括定义、删除、修改表等操作。包括定义、删除、修改表等操作。v 3 3数据操纵功能数据操纵功能v 包括数据插入、数据更新、数据删除等操包括数据插入、数据更新、数据删除等操作。作。v 4 4
5、数据控制功能数据控制功能v 包括数据保护及事务管理等操作。包括数据保护及事务管理等操作。 4.2查询功能查询功能v数据查询是数据查询是SQLSQL语言的重要部分,通过语言的重要部分,通过SelectSelect语句语句来实现,下面首先介绍来实现,下面首先介绍SelectSelect语句的格式,然后通语句的格式,然后通过实例具体说明其使用方法。过实例具体说明其使用方法。vSelectSelect语句的基本格式:语句的基本格式:v Select Select列名表;列名表;v From From表名;表名;v Where Where条件表达式;条件表达式;v Group by Group by ;
6、v Having Having ;v Order by Order by排序项目排序项目ASC/DESCASC/DESC,ASC/DESCASC/DESC.; 4.2查询功能查询功能阐明:(1Select子句的列名表:指出要显示的列的字段名,可选一个或多个字段,多个字段间用逗号分开,“*”可以用来表示某一个数据表中的所有字段。(2From子句的表名:指出在查找过程中所涉及的表,可以是单个表,也可以是多个表,多个表之间应用逗号分开。(3Where子句的条件表达式:指出所需数据应满足的条件,条件表达式中必须用到比较运算符或逻辑运算符如:=、 !=等)。(4Group by 子句:说明对数据如何进行
7、分组,其Having则表示分组满足的条件,与Group by一起使用。(5Order by排序项目:指出查询结构的输出顺序,其中ASC为升序,DESC为降序。 4.2.1 简单查询简单查询 v简单的简单的SQLSQL查询只包括查询只包括SelectSelect子句、子句、FROMFROM子句。子句。v【例【例4-14-1】从】从“学生成绩数据库中的学生成绩数据库中的studentstudent表查表查询所有学生的情况。询所有学生的情况。 v在在“命令窗口中写下查询语句:命令窗口中写下查询语句: vSelect Select * * From student From studentv如图如图4
8、-24-2所示所示4.2.1 简单查询简单查询【例【例4-24-2】从】从“学生成绩数据库中的学生成绩数据库中的studentstudent表查询表查询所有学生的学号、姓名和系科的情况。所有学生的学号、姓名和系科的情况。在在“命令窗口中写下查询语句:命令窗口中写下查询语句: Select Select 学号,姓名,系科学号,姓名,系科 From student From student 4.2.2 条件查询条件查询v WHEREWHERE子句设置查询条件,过滤掉不需要的数据行。子句设置查询条件,过滤掉不需要的数据行。v WHEREWHERE子句可包括各种条件运算符:子句可包括各种条件运算符:v
9、 1 1比较运算符比较运算符( (大小比较大小比较) ): 、=、= =、 、=、!、! !=10 AND age=10 AND age=30age8585)v如图如图4-84-8所示所示 4.2.5 计算与分组查询计算与分组查询v1 1计算查询计算查询v常用计算查询的函数有常用计算查询的函数有Count(Count(计数计数);Sum();Sum(求求和和);Avg();Avg(平均值平均值);Max();Max(最大值最大值);Min();Min(最小值最小值) )等。等。它们可以使用在它们可以使用在SelectSelect语句中。语句中。v【例【例4-94-9】从】从“学生成绩数据库查询
10、数据表学生成绩数据库查询数据表StudentStudent中中“系科的个数。系科的个数。v在在“命令窗口中写下查询语句:命令窗口中写下查询语句:vSelect Count(Distinct Select Count(Distinct 系科系科) From Student) From Studentv如图如图4-94-9所示所示 4.2.5 计算与分组查询计算与分组查询【例【例4-104-10】从】从“学生成绩数据库查询数据表学生成绩数据库查询数据表StudentStudent学生总学生总分的平均值,最大值和最小值。分的平均值,最大值和最小值。在在“命令窗口中写下查询语句:命令窗口中写下查询语句
11、:Select Avg(Select Avg(总分总分) AS ) AS 平均值平均值, Max(, Max(总分总分) AS ) AS 最大值最大值, , Min(Min(总分总分) AS ) AS 最小值最小值 From Student From Student,如图,如图4-104-10所示。所示。2 2分组查询分组查询根据关键字的值对数值属性的值进行汇总,使用根据关键字的值对数值属性的值进行汇总,使用Group By Group By 字字句实现。句实现。【例【例4-114-11】从】从“学生成绩数据库查询数据表学生成绩数据库查询数据表StudentStudent中男学中男学生和女学生
12、总分平均值的情况。生和女学生总分平均值的情况。在在“命令窗口中写下查询语句:命令窗口中写下查询语句:Select Select 性别性别,Avg(,Avg(总分总分) AS ) AS 平均值平均值From Student Group By From Student Group By 性别,如图性别,如图4-114-11所示。所示。 4.2.5 计算与分组查询计算与分组查询【例【例4-124-12】从】从“学生成绩数据库中查询每位学生课程的平均学生成绩数据库中查询每位学生课程的平均成绩。成绩。在在“命令窗口中写下查询语句:命令窗口中写下查询语句:Select Select 姓名姓名,Avg(,A
13、vg(成果成果) AS ) AS 课程平均值课程平均值From studentFrom student,assign Where student.assign Where student.学号学号= assign.= assign.学号学号 Group By Group By 姓名,姓名,如图如图4-124-12所示。所示。【例【例4-134-13】从】从“学生成绩数据库中查询每位学生课程的平均学生成绩数据库中查询每位学生课程的平均成绩且大于成绩且大于8080分的情况。分的情况。在在“命令窗口中写下查询语句:命令窗口中写下查询语句:Select Select 姓名姓名,Avg(,Avg(成果成
14、果) AS ) AS 课程平均值课程平均值From studentFrom student,assign Where student.assign Where student.学号学号= assign.= assign.学号,学号,Group By Group By 姓姓名名 Having Avg( Having Avg(成果成果)80)80,如图,如图4-134-13所示。所示。 4.2.6 空值查询空值查询 v空值不是空格或空值不是空格或0 0,而是表示数据值不可用,用,而是表示数据值不可用,用NULLNULL值表示。值表示。SQLSQL可以使用空值,利用它进行相应可以使用空值,利用它进行
15、相应查询。查询。v【例【例4-144-14】从】从“学生成绩数据库查询数据表学生成绩数据库查询数据表StudentStudent中系科为空的学生情况。中系科为空的学生情况。v在在“命令窗口中写下查询语句:命令窗口中写下查询语句:vSelect Select * * From Student Where From Student Where 系科系科 is null is null4.3操作功能操作功能vSQLSQL的操作功能是对数据进行修改,包的操作功能是对数据进行修改,包括数据的插入、数据的更新及数据的删括数据的插入、数据的更新及数据的删除等操作。除等操作。4.3.1 数据插入数据插入 SQ
16、LSQL语言中用语言中用INSERTINSERT语句向表或视图中插入新的数据语句向表或视图中插入新的数据行。行。INSERTINSERT语句的语法格式为:语句的语法格式为:INSERT INTO table_sourceINSERT INTO table_sourcecolumn_listcolumn_listVALUES (DEFAULT | constant_expression ,n)VALUES (DEFAULT | constant_expression ,n)其中,其中,column_listcolumn_list参数为新插入数据行中一列或多参数为新插入数据行中一列或多列列名列表,
17、它说明列列名列表,它说明INSERT INSERT 语句只为指定列插入语句只为指定列插入数据。在给表或视图中部分列插入数据时,必须使数据。在给表或视图中部分列插入数据时,必须使用列名列表方式指出这部分列名。用列名列表方式指出这部分列名。 4.3.1 数据插入数据插入【例【例4-154-15】在数据表】在数据表StudentStudent中插入一个学生的记录:中插入一个学生的记录:学号学号20190212019021,姓名,姓名 郭襄,性别郭襄,性别 女,系科女,系科 计算机,计算机,出生日期出生日期 1988 1988年年5 5月月1 1日。日。在在“命令窗口中可用如下语句:命令窗口中可用如下
18、语句:Insert Into student(Insert Into student(学号,姓名,性别,出生日期,学号,姓名,性别,出生日期,系科系科);); Values(“2019021”,” Values(“2019021”,” 郭襄郭襄:, :, “女女”,05/01/88,” ”,05/01/88,” 计算机计算机”)”)4.3.2 数据更新数据更新UPDATEUPDATE语句用于修改表中数据,该语句的语法格式为:语句用于修改表中数据,该语句的语法格式为:UPDATE table_nameUPDATE table_nameSET SET column_name1=variable1,
19、column_name2=variablecolumn_name1=variable1,column_name2=variable2 2WHERE search_conditionsWHERE search_conditions其中其中SETSET子句指出表中被修改的列或变量,以及它们子句指出表中被修改的列或变量,以及它们的新值。的新值。column_namecolumn_name为被修改的列名。为被修改的列名。 4.3.2 数据更新数据更新【例【例4-164-16】在数据表】在数据表StudentStudent中为所有学生的总分增中为所有学生的总分增加加1010分。分。在在“命令窗口中可用如
20、下语句:命令窗口中可用如下语句:Update student Set Update student Set 总分总分= =总分总分+10+10【例【例4-174-17】在数据表】在数据表StudentStudent中为计算机系的学生其中为计算机系的学生其总分增加总分增加1010分。分。在在“命令窗口中可用如下语句:命令窗口中可用如下语句:Update student Set Update student Set 总分总分= =总分总分+10 Where +10 Where 系科系科=”=”计算机计算机”4.3.3 数据删除数据删除 DELETEDELETE语句可以删除表中的数据。其语句可以删除
21、表中的数据。其DELETEDELETE语句的语语句的语法格式为:法格式为:DELETE DELETE FROM table_name | view_nameFROM table_name | view_name WHERE conditions WHERE conditionsDELETEDELETE语句的结构与语句的结构与UPDATEUPDATE语句有些类似,其中也包语句有些类似,其中也包含含FROMFROM子句和子句和WHEREWHERE子句。子句。WHEREWHERE子句为数据删除指子句为数据删除指定条件。不使用定条件。不使用WHEREWHERE子句时,子句时,DELETEDELETE语
22、句将把有语句将把有或视图中所有的数据删除。或视图中所有的数据删除。 4.3.3 数据删除数据删除【例【例4-184-18】永久删除数据表】永久删除数据表StudentStudent学号为学号为20190152019015的的记录。记录。在在“命令窗口中可用如下语句:命令窗口中可用如下语句:Delete From student Where Delete From student Where 学号学号=”2019015”=”2019015”Pack Pack Pack Pack对当前表中具有删除标记的所有记录做永久对当前表中具有删除标记的所有记录做永久的删除。的删除。 4.4定义功能定义功能 v
23、SQLSQL的定义功能是对表进行修改,包括对表结的定义功能是对表进行修改,包括对表结构进行创建、修改表结构以及删除表等操作。构进行创建、修改表结构以及删除表等操作。 4.4.1 表的定义表的定义一般格式如下:一般格式如下: CreateCreate TableTable ( 列级完整性约束条列级完整性约束条件件 , 列级完整性约束条件列级完整性约束条件. ,);); 其中:其中: 是所要定义的基本表的名字,最好能表达表的应用语是所要定义的基本表的名字,最好能表达表的应用语义义 是由一个或多个属性列组成。是由一个或多个属性列组成。 建表的同时通常还可以定义与该表有关的完整性约束条件,这建表的同时
24、通常还可以定义与该表有关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中,当用户操作表些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由中数据时由DBMSDBMS自动检查该操作是否违背这些完整性约束条自动检查该操作是否违背这些完整性约束条件。如果完整性约束条件涉及到该表的多个属性列,则必须件。如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。定义在表级上,否则既可以定义在列级也可以定义在表级。 4.4.1 表的定义表的定义【例【例4-194-19】建立一个自由表】建立一个自由表“学生学生”,包括:学号、姓名、性,包括:学号
25、、姓名、性别、出生日期、是否党员、籍贯和简历。别、出生日期、是否党员、籍贯和简历。在在“命令窗口中可用如下语句:命令窗口中可用如下语句:Create Table Create Table 学生学生( (学号学号 C(8), C(8), 姓名姓名 C(8), C(8), 性别性别 C(2), C(2), 出出生日期生日期 D, D, 是否党员是否党员 L, L, 籍贯籍贯 C(8), C(8), 简历简历 M) M)【例【例4-204-20】用】用SQLSQL命令建立命令建立StudentStudent表。表。在在“命令窗口中可用如下语句:命令窗口中可用如下语句:Open DataBase Op
26、en DataBase 学生成绩数据库学生成绩数据库Create Table student(Create Table student(学号学号 C(8), C(8), 姓名姓名 C(8), C(8), 性别性别 C(2), C(2), 出生日期出生日期 D, D, 系科系科 C C2020), , 统招否统招否 L, L, 总分总分N(6N(6,1), 1), 备备注注 M, M, 照片照片 G) G) 4.4.2 表结构的修改表结构的修改 一般格式为:一般格式为: AlterAlter TableTable AlterAlter AddAdd 完整性约束完整性约束 DropDrop Mod
27、ifyModify AddAdd PrimaryPrimary Key(Key(列名列名) AddAdd PreignPreign Key(Key(列名列名) ) RefernecesReferneces 表名列名)表名列名); 其中其中 指定需要修改的基本表,指定需要修改的基本表,AddAdd子句用于增加新列和子句用于增加新列和新的完整性约束条件,新的完整性约束条件,DropDrop子句用于删除指定的完整性约束子句用于删除指定的完整性约束条件,条件,ModifyModify子句用于修改原有的列定义。子句用于修改原有的列定义。 4.4.2 表结构的修改表结构的修改【例【例4-214-21】为】为StudentStudent表增加一个党员否字段。表增加一个党员否字段。在在“命令窗口中可用如下语句:命令窗口中可用如下语句:Alter Table student Add Alter Table student Add 党员否党员否 L L【例【例4-224-22】修改】修改StudentStudent表的姓名字段,其宽度改为表的姓名字段,其宽度改为1010。在在“命令窗口中可用如下语句:命令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖北省襄阳市农业专业技术职务水平能力测试(水产工程)考前冲刺试题及答案
- 2026年湖北省十堰市专业技术职务水平能力测试(农学)综合练习题及答案
- 党组织创先争优活动自查报告(3篇)
- 资阳公铁物流港铁路专用线项目水土保持报告书
- 建筑工地文明施工准则
- 某家具厂生产流程管理细则
- 2025-2026学年人教版PEP三年级英语下册全册易错题(带答案)
- 2026宾馆面试题型及答案详解
- 2026编辑面试题库及答案
- 卫生院绩效考核细则及评分办法(财务管理)
- 工业机器人技术与应用PPT完整全套教学课件
- dd5e人物卡可填充格式角色卡夜版
- JJG 573-2003膜盒压力表
- GB/T 19247.4-2003印制板组装第4部分:分规范引出端焊接组装的要求
- GB/T 17457-2019球墨铸铁管和管件水泥砂浆内衬
- GB/T 10156-2009水准仪
- 计算机网络技术说课课件
- 万科施工图设计任务书
- Q∕SY 17001-2016 泡沫排水采气用消泡剂技术规范
- 物控作业指导书
- 竞争法完整版教学课件全套ppt教程
评论
0/150
提交评论