《《SQL基础知识》课件.docx》由会员分享,可在线阅读,更多相关《《SQL基础知识》课件.docx(18页珍藏版)》请在优知文库上搜索。
1、SQL基础知识SQL(StructuredQueryLanguage)是具有数据操纵和数据定义等多种功能的数据库语言,这种语言具有交互性特点,能为用户提供极大的便利,数据库管理系统应充分利用SQL语言提高计算机应用系统的工作质量与效率。SQL语言不仅能独立应用于终端,还可以作为子语言为其他程序设计提供有效助力,该程序应用中,SQL可与其他程序语言一起优化程序功能,进而为用户提供更多更全面的信息。SQLSerVer数据库包括MicrosoftSQLSerVer以及SybaseSQLServer两个子数据库,该数据库能否正常运行直接关系着整个计算机系统的运行安全。1.简介在大数据时代中,数据库系统
2、的数据类型与规模在不断扩增,这给数据库管理带来了一定的挑战。在社会生产生活中,对于数据库的应用范围逐步增大,提升数据库开发及应用的效率,是保障我国社会生产生活高效运转的关键。SQL作为一种操作命令集,以其丰富的功能受到业内人士的广泛欢迎,成为提升数据库操作效率的保障。SQLServer数据库的应用,能够有效提升数据请求与返回的速度,有效应对复杂任务的处理,是提升工作效率的关键。由于SQLServers数据库管理系统具有较高的数据管理性能,因其优越的性能,应用范围非常广,大量应用于服务器和客户体系结构中。SQLServers数据库的性质主要由以下几个方面体现:系统的吞吐量、响应时间以及并行处理能
3、力,发出请求服务器回应的速度、还有不同屏幕之间切换的速度等等。2.优点1)非过程化语言2)统一的语言3)是所有关系型数据库的公共语言3 .体系SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。在SQL中,关系模式(模式)称为基本表(basetable);存储模式(内模式)称为存储文件(storedfile);子模式(外模式)称为视图(view);元组称为(row);属性称为,W(column).4 .组成在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成:1 .一个SQL数据库是表(TabIe)的集合,它由一个或多个SQL模式定
4、义。2 .一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。3 .一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。SQL数据库4 .一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。5 .用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。6.SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCALrP
5、L/I,C和Ada语言等。SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。5.分类国内外普遍采用SQL系统数据库产品,可以说,作为集成网络的数据库系统必须采用这类产品。关于SQL数据库产品种类较多,常用的有OracaSybase.Informix等。这些数据库管理系统在世界上占据了绝大部分的数据库市场,其中属Oracle占有市场的份额最大。Sybase是一种多媒体数据库,由于其优良的性能,使其处在上升期。国内开始使用Sybase的用户越来越多,使用的范围也越来越广。在选择数据库时应注意一个问题,即必须与网络操作系统相匹配,根据这些分布式数据库的性能,在选用Netware网络操作系
6、统时,一般应使用SybaSe或Orade数据库,若选用WindOWSNTAdvancedServer网络操作系统时,应选用微软公司的产品MSSQLServer,因为微软公司的这个数据库其核心就是Sybase,是一个分布式多媒体数据库。这样选择数据库,很容易建立起CIientSerVer结构,使整个网络数据的公布和利用更加合理。6 .操作SQL包括了所有对数据库的操作,主要是由4个部分组成:1 .数据定义:又称为“DDL语言,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。2 .数据操纵:又称为“DML语言,包括插入、删除更新三种操作。3 .数据查询:又称为DQL语言,包括数据查
7、询操作。4 .数据控制:又称为DCL语言,对用户访问数据的控制有基本表和视图的授权及回收。5 .事务控制:又称为“TCL语言,包括事务的提交与回滚。6 .嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。下面我们将分别介绍:6.1. 数据定义SQL数据定义功能包括定义数据库、基本表、索引和视图。首先,让我们了解一下SQL所提供的基本数据类型:(如人OO100O09)1.数据库的建立与删除Q)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为:CREATEDATABASE数据库名其它参数其中,数据库名在系统中必须是唯一的,不能重复,不然将导致数据存取失误。其它参
8、数因具体数据库实现系统不同而异。例:要建立项目管里瞰据库(Xmmanage),其语句应为:CREATEDATABASExmmanage(2)数据库的删除:将数据库及其全部内容从系统中删除。其语句格式为:DROPDATABASE数据库名例:删除项目管理数据库(Xmmanage),其语句应为:DROPDATABASExmmanage2.基本表的定义及变更本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。6.2. 数据查询SQL是一种查询功能很强的语言,只要是数据库存在的数据,总能通过适当的方法将
9、它从数据库中查找出来。SQL中的查询语句只有一个:SELECTl它可与其它语句配合完成所有的查询功能。SELECT语句的完整语法,可以有6个子句。完整的语法如下:SELECT目标表的列名或列表达式集合FROM基本表或(和)视图集合(WHERE条件表达式GROUPBY列名集合HAVING组条件表达式ORDERBY列名集合)简单查询,使用ToP子句查询结果排序Orderby默认ASC升序,使用关键词DESC降序。带条件的查询Where,使用算术表达式,使用逻辑表达式,使用between和in关键字。模糊查询like整个语句的语义如下:从FROM子句中列出的表中,选择满足WHERE子句中给出的条件表
10、达式的元组,然后按GROUPBY子句(分组子句)中指定列的值分组,再提取满足HAVING子句中组条件表达式的那些组,按SELECT子句给出的列名或列表达式求值输出。ORDERBY子句是对输出的目标表进行重新排序,并可附加说明ASC(升序)或DESC(降序)排列。在WHERE子句中的条件表达式F中可出现下列操作符和运算函数:算术上缴运算符:,=,=,!=。逻辑运算符:AND,OR,NOTo集合运算符:UNloN(去重合并),UNIONALL(不去重合并),INTERSEeT(交),MlNUS(差)。集合成员资格运算符:IN,NOTIN谓词:EXlSTS(存在蜀司),ALL,ANY,SOME,UN
11、IQUEo聚合函数:AVG(平均值),MIN(最小值),MAX(最大值),SUM(和),COUNT(计数)。其中运算对象还可以是另一个SELECT语句,即SELECT语句可以嵌套。上面只是列出了WHERE子句中可出现的几种主要操作,由于WHERE子句中的条件表达式可以很复杂,因此SELECT句型能表达的语义远比其数学原形要复杂得多。下面,我们以上面所建立的三个基本表为例,演示一下SELECT的应用:1 .无条件查询例:找出所有学生的的选课情况SELECTst_no,su_noFROMscore例:找出所有学生的情况SELECT*FROMstudent为通配符,表示查找FROM中所指出关系的所有
12、属性的值。2 .条件查询条件查询即带有WHERE子句的查询,所要查询的对象必须满足WHERE子句给出的条件。例:找出任何一门课成绩在70以上的学生情况、课号及分数SELECTUNIQUEstudent.st_class,student.st_no,student.st_name,student.st_sex,student.st_age,score.su_no,score.scoreFROMstudent,scoreWHEREscore.score=70ANDscore.stno=studentzst-no这里使用UNIQUE是不从查询结果集中去掉重复行,如果使用DISTINCT则会去掉重复行
13、。另外逻辑运算符的优先Jl痛为NOTANDOR例:找出课程号为c02的,考试成绩不及格的学生SELECTst_noFROMscoreWHEREsu.no=,c02,ANDscore603 .排序查询排序查询是指将查询结果按指定属性的升序(ASC)或降序(DESC)排列,由ORDERBY子句指明。例:查找不及格的课程,并将结果按课程号从大到小排列SELECTUNIQUEsu.noFROMscoreWHEREscore80)这里需要明确的是:当查询涉及多个基本表时用嵌套查询逐次求解层次分明,具有结构程序设计特点。在嵌套查询中JN是常用到的谓词。若用户能确切知道内层查询返回的是单值,那么也可用算术比
14、较运算符表示用户的要求。5 .计算查询计算查询是指通过系统提供的特定函数(聚合函数)在语句中的直接使用而获得某些只有经过计算才能得到的结果。常用的函数有:CONT(*)计算元组的个数。COUNT例名)对某一列中的值计算个数,并且自动忽略空值。SUM(列名)求某一列值的总和(此列值是数值型)。AVG例名)求某一列值的平均值(此列值是数值型)。MAX(列名)求某一列值中的最大值。MlN例名)求某一列值中的最小值。例:求男学生的总人数和平均年龄SELECTC0UNT(*)zAVG(st-age)FROMstudentWHEREst,sex=男例:统计选修了课程的学生的人数SELECTCOUNT(DISTINCTst_no)FROMscore注意:这里一定要加入DISTINCT,因为有的学生可能选修了多门课程,但统计时只能按1人统计,所以要使用DlSTlNCT进彳亍过滤。6.3. 数据更新数据更新包括数据插入、删除和修改操作。它们分别由INSERT语句,DELETE语句及UPDATE语句完成。这些操作都可在任何基本表上进行,但在视图上有所限制。其中,当视图是由单个基本表导出时,可进行插入和修改操作,但不能进行删除操作;当视图是从多个基本表中导出时,上述三种操作都不能进行。1.数据插入将数据插入SQL的基本表有两种方式:一种是单元组的插入,另一