关系数据库SQLServ.ppt_第1页
关系数据库SQLServ.ppt_第2页
关系数据库SQLServ.ppt_第3页
关系数据库SQLServ.ppt_第4页
关系数据库SQLServ.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章关系数据库标准语SQL,http:/V,VFP课程建设组,目录,http:/V,VFP课程建设组,4.1SQL语言概述,SQL全称是“结构化查询语言(StructuredQueryLanguage)”,最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是Oracle,Sybase,Informix,SQLserver这些大型的数据库管理系统,还是像VisualFoxPro,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。,http:/V,VFP课程建设组,4.1.1SQL语言的特点,1综合统一SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据以建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,这就为数据库应用系统开发提供了良好的环境。,2非过程化语言SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。,3面向集合的操作方式SQL语言采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。,http:/V,VFP课程建设组,4.1.1SQL语言的特点,5语言简捷SQL语言功能极强,但又十分简洁,只用9个动词即可完成对数据的操纵、数据的定义及数据的控制等功能。(1)数据操纵:SELECT、INSERT、UPDATE、DELETE(2)数据定义:CREATE、DROP、ALTER(3)数据控制:GRANT,REVOKE,4一种语法结构有两种使用方式SQL语言既是自含式语言,又是嵌入式语言。且在两种不同的使用方式下,SQL语言的语法结构基本上是一致的。,http:/V,VFP课程建设组,4.1.2SQL语言的功能,查询是SQL语言的重要组成部分,同时SQL还包括数据定义、数据操纵和数据控制功能等部分。SQL已经成为关系数据库的标准查询语言。1数据查询功能包括单表查询、多表查询、集合查询等。2数据定义功能包括定义、删除、修改表等操作。3数据操纵功能包括数据插入、数据更新、数据删除等操作。4数据控制功能包括数据保护及事务管理等操作。,http:/V,VFP课程建设组,4.2查询功能,数据查询是SQL语言的重要部分,通过Select语句来实现,下面首先介绍Select语句的格式,然后通过实例具体说明其使用方法。Select语句的基本格式:Select列名表;From表名;Where条件表达式;Groupby;Having;Orderby排序项目ASC/DESC,ASC/DESC.;,http:/V,VFP课程建设组,4.2查询功能,说明:(1)Select子句的列名表:指出要显示的列的字段名,可选一个或多个字段,多个字段间用逗号分开,“*”可以用来表示某一个数据表中的所有字段。(2)From子句的表名:指出在查找过程中所涉及的表,可以是单个表,也可以是多个表,多个表之间应用逗号分开。(3)Where子句的条件表达式:指出所需数据应满足的条件,条件表达式中必须用到比较运算符或逻辑运算符(如:=、!=等)。(4)Groupby子句:说明对数据如何进行分组,其Having则表示分组满足的条件,与Groupby一起使用。(5)Orderby排序项目:指出查询结构的输出顺序,其中ASC为升序,DESC为降序。,http:/V,VFP课程建设组,4.2.1简单查询,简单的SQL查询只包括Select子句、FROM子句。【例4-1】从“学生成绩数据库”中的student表查询所有学生的情况。在“命令”窗口中写下查询语句:Select*Fromstudent如图4-2所示,http:/V,VFP课程建设组,4.2.1简单查询,【例4-2】从“学生成绩数据库”中的student表查询所有学生的学号、姓名和系科的情况。在“命令”窗口中写下查询语句:Select学号,姓名,系科Fromstudent,http:/V,VFP课程建设组,4.2.2条件查询,WHERE子句设置查询条件,过滤掉不需要的数据行。WHERE子句可包括各种条件运算符:1比较运算符(大小比较):、=、=、!、!=10ANDage85)如图4-8所示,http:/V,VFP课程建设组,4.2.5计算与分组查询,1计算查询常用计算查询的函数有Count(计数);Sum(求和);Avg(平均值);Max(最大值);Min(最小值)等。它们可以使用在Select语句中。【例4-9】从“学生成绩数据库”查询数据表Student中“系科”的个数。在“命令”窗口中写下查询语句:SelectCount(Distinct系科)FromStudent如图4-9所示,http:/V,VFP课程建设组,4.2.5计算与分组查询,【例4-10】从“学生成绩数据库”查询数据表Student学生总分的平均值,最大值和最小值。在“命令”窗口中写下查询语句:SelectAvg(总分)AS平均值,Max(总分)AS最大值,Min(总分)AS最小值FromStudent,如图4-10所示。2分组查询根据关键字的值对数值属性的值进行汇总,使用GroupBy字句实现。【例4-11】从“学生成绩数据库”查询数据表Student中男学生和女学生总分平均值的情况。在“命令”窗口中写下查询语句:Select性别,Avg(总分)AS平均值FromStudentGroupBy性别,如图4-11所示。,http:/V,VFP课程建设组,4.2.5计算与分组查询,【例4-12】从“学生成绩数据库”中查询每位学生课程的平均成绩。在“命令”窗口中写下查询语句:Select姓名,Avg(成绩)AS课程平均值Fromstudent,assignWherestudent.学号=assign.学号GroupBy姓名,如图4-12所示。【例4-13】从“学生成绩数据库”中查询每位学生课程的平均成绩且大于80分的情况。在“命令”窗口中写下查询语句:Select姓名,Avg(成绩)AS课程平均值Fromstudent,assignWherestudent.学号=assign.学号,GroupBy姓名HavingAvg(成绩)80,如图4-13所示。,http:/V,VFP课程建设组,4.2.6空值查询,空值不是空格或0,而是表示数据值不可用,用NULL值表示。SQL可以使用空值,利用它进行相应查询。【例4-14】从“学生成绩数据库”查询数据表Student中系科为空的学生情况。在“命令”窗口中写下查询语句:Select*FromStudentWhere系科isnull,http:/V,VFP课程建设组,4.3操作功能,SQL的操作功能是对数据进行修改,包括数据的插入、数据的更新及数据的删除等操作。,http:/V,VFP课程建设组,4.3.1数据插入,SQL语言中用INSERT语句向表或视图中插入新的数据行。INSERT语句的语法格式为:INSERTINTOtable_sourcecolumn_listVALUES(DEFAULT|constant_expression,n)其中,column_list参数为新插入数据行中一列或多列列名列表,它说明INSERT语句只为指定列插入数据。在给表或视图中部分列插入数据时,必须使用列名列表方式指出这部分列名。,http:/V,VFP课程建设组,4.3.1数据插入,【例4-15】在数据表Student中插入一个学生的记录:学号2008021,姓名郭襄,性别女,系科计算机,出生日期1988年5月1日。在“命令”窗口中可用如下语句:InsertIntostudent(学号,姓名,性别,出生日期,系科);Values(“2008021”,”郭襄:,“女”,05/01/88,”计算机”),http:/V,VFP课程建设组,4.3.2数据更新,UPDATE语句用于修改表中数据,该语句的语法格式为:UPDATEtable_nameSETcolumn_name1=variable1,column_name2=variable2WHEREsearch_conditions其中SET子句指出表中被修改的列或变量,以及它们的新值。column_name为被修改的列名。,http:/V,VFP课程建设组,4.3.2数据更新,【例4-16】在数据表Student中为所有学生的总分增加10分。在“命令”窗口中可用如下语句:UpdatestudentSet总分=总分+10【例4-17】在数据表Student中为计算机系的学生其总分增加10分。在“命令”窗口中可用如下语句:UpdatestudentSet总分=总分+10Where系科=”计算机”,http:/V,VFP课程建设组,4.3.3数据删除,DELETE语句可以删除表中的数据。其DELETE语句的语法格式为:DELETEFROMtable_name|view_nameWHEREconditionsDELETE语句的结构与UPDATE语句有些类似,其中也包含FROM子句和WHERE子句。WHERE子句为数据删除指定条件。不使用WHERE子句时,DELETE语句将把有或视图中所有的数据删除。,http:/V,VFP课程建设组,4.3.3数据删除,【例4-18】永久删除数据表Student学号为2008015的记录。在“命令”窗口中可用如下语句:DeleteFromstudentWhere学号=”2008015”PackPack对当前表中具有删除标记的所有记录做永久的删除。,http:/V,VFP课程建设组,4.4定义功能,SQL的定义功能是对表进行修改,包括对表结构进行创建、修改表结构以及删除表等操作。,http:/V,VFP课程建设组,4.4.1表的定义,一般格式如下:CreateTable(列级完整性约束条件,列级完整性约束条件.,);其中:是所要定义的基本表的名字,最好能表达表的应用语义是由一个或多个属性(列)组成。建表的同时通常还可以定义与该表有关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由DBMS自动检查该操作是否违背这些完整性约束条件。如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。,http:/V,VFP课程建设组,4.4.1表的定义,【例4-19】建立一个自由表“学生”,包括:学号、姓名、性别、出生日期、是否党员、籍贯和简历。在“命令”窗口中可用如下语句:CreateTable学生(学号C(8),姓名C(8),性别C(2),出生日期D,是否党员L,籍贯C(8),简历M)【例4-20】用SQL命令建立Student表。在“命令”窗口中可用如下语句:OpenDataBase学生成绩数据库CreateTablestudent(学号C(8),姓名C(8),性别C(2),出生日期D,系科C(20),统招否L,总分N(6,1),备注M,照片G),http:/V,VFP课程建设组,4.4.2表结构的修改,一般格式为:AlterTableAlterAdd完整性约束DropModifyAddPrimaryKey(列名)AddPreignKey(列名)Referneces表名(列名);其中指定需要修改的基本表,Add子句用于增加新列和新的完整性约束条件,Drop子句用于删除指定的完整性约束条件,Modify子句用于修改原有的列定义。,http:/V,VFP课程建设组,4.4.2表结构的修改,【例4-21】为Student表增加一个党员否字段。在“命令”窗口中可用如下语句:AlterTablestudentAdd党员否L【例4-22】修改Student表的姓名字段,其宽度改为10。在“命令”窗口中可用如下语句:AlterTablestudentAlter姓名C(10)【例4-23】删除Student表的党员否字段。在“命令”窗口中可用如下语句:AlterTablestudentDrop党员否,http:/V,VFP课程建设组,4.4.3表的删除,删除表时会将与表有关的所有对象一起删掉。基本表定义一旦删除,表中的数据、在此表上建立的索引都将自动被删除掉,而建立在此表上的视图虽仍然保留,但已无法引用。因此执行删除操

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论