书签 分享 收藏 举报 版权申诉 / 96
上传文档赚钱

类型数据库原理与系统开发教程第03章-关系数据库标准语言SQL课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3426914
  • 上传时间:2022-08-30
  • 格式:PPT
  • 页数:96
  • 大小:2.34MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《数据库原理与系统开发教程第03章-关系数据库标准语言SQL课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据库 原理 系统 开发 教程 03 关系 标准 语言 SQL 课件
    资源描述:

    1、数据库系统概论数据库系统概论An Introduction to Database System第三章第三章 关系数据库标准语言关系数据库标准语言SQLSQL“数据库原理及安全数据库原理及安全”课程课程关系数据库标准语言关系数据库标准语言SQL SQL l 结构化查询语言(Structured Query Language,SQL),是一种数据库查询和程序设计的编程语言,用于定义、查询、更新数据以及管理关系数据库系统。目前,SQL已成为关系数据库的标准语言。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君第三章第三章 关系数据库标准语言关系数据库标准语言SQL3

    2、.1 SQL概述概述3.2 MySQL数据库简介数据库简介3.3 定义数据定义数据3.4 查询数据查询数据 3.5 更新数据更新数据3.6 视图视图3.7 小结小结2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.1 SQL概述概述l SQL是最重要的关系数据库操作语言l SQL基本上独立于数据库本身使用的机器、网络、操作系统,基于SQL的DBMS产品可以运行在从个人机、工作站到基于局域网、小型机和大型机的各种计算机系统上,具有良好的可移植性。l SQL是一种交互式查询语言,允许用户直接查询存储数据,但它不是完整的程序语言,如它没有DO或FOR 类似的循环语句

    3、,但它可以嵌入另一种语言中,也可以借用VB、C、Java等语言,通过调用级接口(Call Level Interface)直接发送到数据库管理系统。SQL基本上是域关系演算,但可以实现关系代数操作。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.1 SQL概述概述l SQL包含以下6个部分v 1数据定义语言(Schema Data Definition Language,DDL)其语句包括动词CREATE和DROP。利用DDL在数据库中创建新表(CREAT TABLE)或删除表(DROP TABLE);为表加入索引等。DDL也是动作查询的一部分。v 2数据查

    4、询语言(Data Query Language,DQL)其语句也称为“数据检索语句”,用于从表中获得数据,保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE、ORDER BY、GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。v 3数据操作语言(Data Manipulation Language,DML)其语句包括动词INSERT、UPDATE和DELETE,分别用于添加、修改和删除表中的行,也称为动作查询语言。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.1 SQL概述概述l

    5、SQL包含以下6个部分v 4数据控制语言(Data Control Language,DCL)它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。v 5事务处理语言(TPL)它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION、COMMIT和ROLLBACK。v 6指针控制语言(CCL)它的语句像DECLARE CURSOR、FETCH INTO和UPDATE WHERE CURRENT一样用于对一个或多个表单独行的操作。2022年8月3日北京电

    6、子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.1 SQL概述概述3.1.1 SQL的产生与发展的产生与发展 3.1.2 SQL的基本概念的基本概念3.1.3 SQL的特点的特点2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.1.1 SQL的产生与发展的产生与发展v在20世纪70年代初,IBM公司的San Jose和California研究实验室的 Edgar Codd发表将数据组成表格的应用原则(Codds Relational Algebra)。1974年,同一实验室的D.D.Chamberlin和R.F.Boyce研制出一套规范语言SEQU

    7、EL(Structured English QUEry Language),并在1976年11月公布新版本的SQL(名叫SEQUEL/2)。1980年改名为SQL。1986年10月,美国ANSI公布了第一个SQL标准(SQL-86),后为国际标准化组织(ISO)采纳为国际标准。此后,ANSI不断修改和完善SQL,并在1989年第二次公布SQL标准(SQL-89)。1992年又公布SQL-92标准。v目前主要的关系数据库管理系统支持某些形式的SQL,大部分数据库管理系统能支持SQL-92标准中的大部分功能以及SQL-99、SQL-2003中的部分概念。许多数据库软件厂商对SQL基本命令集还进行了

    8、不同程度的扩充和修改,也有所支持标准以外的一些功能的尝试。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.1.2 SQL的基本概念的基本概念2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.1.3 SQL的特点的特点v SQL是一种非过程化的语言,它允许在高层数据结构上操作,而不是对单个记录进行操作。用户在使用SQL的过程中,完全不用考虑数据的存储格式、数据存储路径等复杂问题。用户需要做的只是用SQL提出自己的需求,至于如何实现这些需求则是关系数据库管理系统的任务了。2022年8月3日北京电子科技学院计算机系北京电子科技学院

    9、计算机系 张克君张克君SQL功能动 词数据定义CREATE、DROP、ALTER数据查询SELECT数据操纵INSERT、UPDATE、DELETE数据控制GRANT、REVOKE表表3.1 SQL3.1 SQL的核心动词的核心动词3.1.3 SQL的特点的特点v 1集多种数据语言为一体数据查询语言(Data Query Language,DQL)、数据操纵语言(Data Manipulation Language,DML)、数据定义语言(Schema Data Definition Language,模式DDL),以及数据控制语言(Data Control Language,DCL)都可以用

    10、SQL来实现。v 2统一的数据操作方式在关系模型中,实体与实体之间的联系用关系来表示,即实体和实体具有统一的数据结构,这种统一的数据结构使得对数据的增删查改只需一种操作符。v 3面向集合的操作方式SQL采用集合操作方式,每次增删查改的操作对象都可以是元组的集合。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.1.3 SQL的特点的特点v 4高度非过程化用SQL对数据进行操作,只需要知道想做什么并写出相应的SQL语句,而不需要知道该怎么做,存取路径的选择和SQL语句的操作过程全部由数据库关系系统自动完成。v 5一种语言,两种使用方式用户既可以在终端键盘上直接键

    11、入SQL命令对数据库进行操作,也可以作为嵌入式语言,嵌入高级语言的程序中。这两种使用方式的语法基本一致。v 6语言易懂易学易用SQL非常接近日常生活中的英语,容易学习,并且它只用了9个动词就完成了数据定义、数据操作、数据控制的核心功能,语言简洁、容易使用。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君第三章第三章 关系数据库标准语言关系数据库标准语言SQL3.1 SQL概述概述3.2 MySQL数据库简介数据库简介3.3 定义数据定义数据3.4 查询数据查询数据 3.5 更新数据更新数据3.6 视图视图3.7 小结小结2022年8月3日北京电子科技学院计算机系

    12、北京电子科技学院计算机系 张克君张克君3.2 MySQL数据库简介数据库简介3.2.1 MySQL常用语句常用语句 3.2.2 MySQL的数据类型的数据类型2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.2.1 MySQL的常用语句的常用语句vMySQL中的常用语句如下。v(1)使用SHOW语句查找服务器当前存在的数据库SHOW DATABASES;SHOW DATABASES;v(2)创建一个数据库DBCREATE DATABASE DB;CREATE DATABASE DB;v(3)选择创建的数据库USE DB;USE DB;v(4)查看当前数据库中存

    13、在的表SHOW TABLES;SHOW TABLES;v(5)显示表的结构DESCRIBE TB;DESCRIBE TB;2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.2.1 MySQL的常用语句的常用语句vMySQL中的常用语句如下。v(6)用文本方式将数据装入数据库表中(如D:/mysql.txt)LOAD DATA LOCAL INFILE D:/mysql.txt INTO TABLE TB;LOAD DATA LOCAL INFILE D:/mysql.txt INTO TABLE TB;v(7)导入.sql文件命令(如D:/mysql.sql)

    14、USE DATAEBASE;USE DATAEBASE;SOURCE d:/mysql.sql;SOURCE d:/mysql.sql;v(8)删除表DROP TABLE TB;DROP TABLE TB;v(9)清空表DELETE FROM TB;DELETE FROM TB;2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.2.1 MySQL的常用语句的常用语句vMySQL中的常用语句如下。v(6)用文本方式将数据装入数据库表中(如D:/mysql.txt)LOAD DATA LOCAL INFILE D:/mysql.txt INTO TABLE TB;

    15、LOAD DATA LOCAL INFILE D:/mysql.txt INTO TABLE TB;v(7)导入.sql文件命令(如D:/mysql.sql)USE DATAEBASE;USE DATAEBASE;SOURCE d:/mysql.sql;SOURCE d:/mysql.sql;v(8)删除表DROP TABLE TB;DROP TABLE TB;v(9)清空表DELETE FROM TB;DELETE FROM TB;2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.2.1 MySQL的常用语句的常用语句vMySQL中的常用语句如下。v(10)

    16、全局管理权限对应解释FILE:在MySQL服务器上读写文件。PROCESS:显示或杀死属于其他用户的服务线程。RELOAD:重载访问控制表、刷新日志等。SHUTDOWN:关闭MySQL服务。v(11)数据库/数据表/数据列权限ALTER:修改已存在的数据表(如增加/删除列)和索引。CREATE:建立新的数据库或数据表。DELETE:删除表的记录。DROP:删除数据表或数据库。INSERT:增加表的记录。SELECT:显示/搜索表的记录。UPDATE:修改表中已存在的记录。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.2 MySQL数据库简介数据库简介3.2

    17、.1 MySQL常用语句常用语句 3.2.2 MySQL的数据类型的数据类型2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.2.1 MySQL的数据类型的数据类型v数值类型2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君类型大小范围(有符号)范围(无符号)用途TINYINT1字节(128,127)(0,255)小整数值SMALLINT2字节(32768,32767)(0,65535)大整数值MEDIUMINT3字节(8388608,8388607)(0,16777215)大整数值INT或INTEGER4字节(214748364

    18、8,2147483647)(0,4294967295)极大整数值BIGINT8字节(9233372036854775808,9233372036854775807)(0,18446744073709551615)小整数值FLOAT4字节(3.402823466E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402823466 351 E+38)0,(1.175 494 351 E-38,3.402823466 351 E+38)单精度浮点数值DOUBLE8字节(1.7976931348623157E+308,2.225 073 858 507

    19、2014 E-308),0,(2.225 073 858 507 2014 E-308,1.7976931348623157E+308)0,(2.225 073 858 507 2014 E-308,1.7976931348623157E+308)双精度浮点数值DECIMAL对DECIMAL(M,D),如果MD,为M+2,否则为D+2依赖于M和D的值依赖于M和D的值小数值3.2.1 MySQL的数据类型的数据类型v字符串类型2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君类 型大 小用 途CHAR0255字节定长字符串VARCHAR0255字节变长字符串TINY

    20、BLOB0255字节不超过255个字符的二进制字符串TINYTEXT0255字节短文本字符串BLOB065535字节二进制形式的长文本数据TEXT065535字节长文本数据MEDIUMELOB016 777 215字节二进制形式的中等长度文本数据MEDIUMTEXT016 777 215字节中等长度文本数据LOGNGBLOB04 294 967 295字节二进制形式的极大文本数据LONGTEXT04 294 967 295字节极大文本数据3.2.1 MySQL的数据类型的数据类型v日期和时间类型2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君类 型大小(字符)范

    21、 围格 式用 途DATE31000-01-019999-12-31YYYY-MM-DD日期值TIME3-838:59:59 838:59:59HH:MM:SS时间值或持续时间YEAR119012155YYYY年份值DATETIME81000-01-01 00:00:009999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值TIMESTAMP81970-01-01 00:00:00/2037年某时YYYYMMDDHHMMSS混合日期和时间值,时间戳第三章第三章 关系数据库标准语言关系数据库标准语言3.1 SQL概述概述3.2 MySQL数据库简介数据库简介3

    22、.3 定义数据定义数据3.4 查询数据查询数据 3.5 更新数据更新数据3.6 视图视图3.7 小结小结2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.3 定义数据定义数据3.3.1 创建与使用模式创建与使用模式 3.3.2 创建与使用基本表创建与使用基本表3.3.3 创建与使用索引创建与使用索引2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.3.1 创建与使用模式创建与使用模式v 1.创建模式例3-1 定义一个学生-课程模式S_T。CREATE SCHEMAS_T;CREATE SCHEMAS_T;在MySQL Work

    23、bench中的具体操作如图所示。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.3.1 创建与使用模式创建与使用模式解释:一个数据库系统可能有多个数据库,而创建模式就是在同一个数据库系统中建立一个新的具体的数据库。举一个简单的例子,在自己的计算机安装了MySQL服务器,在自己计算机的MySQL服务器下,新建一个用户,之后这个用户创建了多个数据库,包括学生选课数据库、银行借贷款数据库、商场进出货数据库,这些不同的数据库就对应的模式。v 2.删除模式例3-2 删除模式S_T。DROP SCHEMA S_T CASCADE;DROP SCHEMA S_T CASC

    24、ADE;解释:删除模式S_T的同时,该模式中的表也被删除。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.3.2 创建与使用基本表创建与使用基本表v 1.创建基本表例3-3 建立一个存储学生信息的表,包含学生的学号、姓名、性别、年龄、所属院系5个属性的信息,并且学号是主键,不能为空,值唯一。CREATE TABLE StudentCREATE TABLE Student(SnoSno VARCHAR(10)PRIMARY KEY,VARCHAR(10)PRIMARY KEY,SnameSname VARCHAR(5),VARCHAR(5),SsexSsex

    25、VARCHAR(1),VARCHAR(1),Sage INT,Sage INT,SdepartmentVARCHARSdepartmentVARCHAR(10)(10););解释:一个数据库中,即在一个模式下可能有多个表。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.3.2 创建与使用基本表创建与使用基本表v 1.创建基本表例3-4 建立一个存储课程的表,包含课程的代号、课程名、选修课程、学分4个属性的信息,并且课程代号是主键,不能为空,值唯一,选修课程是外键,被参照表是存储课程的表,被参照列是课程的代号。CREATE TABLE CourseCREATE

    26、 TABLE Course(CnoCno VARCHAR(10)PRIMARY KEY,VARCHAR(10)PRIMARY KEY,CnameCname VARCHAR(10),VARCHAR(10),CprimarynoVARCHARCprimarynoVARCHAR(10),(10),CcreditVARCHARCcreditVARCHAR(10),(10),FOREIGN KEY(FOREIGN KEY(CprimarynoCprimaryno)REFERENCES Course()REFERENCES Course(CnoCno)2022年8月3日北京电子科技学院计算机系北京电子科技

    27、学院计算机系 张克君张克君3.3.2 创建与使用基本表创建与使用基本表v 1.创建基本表例3-5 建立一个学生选课表S_C,包含学生学号、选修课程号、成绩3个属性,主键由学号和课程号定义,外键学号参照的是学生表中的学号列,外键课程号参照的是课程表中的课程号列。CREATE TABLE SCCREATE TABLE SC(SnoSno VARCHAR(10),VARCHAR(10),CnoCno VARCHAR(10),VARCHAR(10),Result VARCHAR(10),Result VARCHAR(10),PRIMARY KEY(PRIMARY KEY(Sno,CnoSno,Cno)

    28、,),FOREIGN KEY FOREIGN KEY SnoSno REFERENCE Student(REFERENCE Student(SnoSno),),FOREIGN KEY FOREIGN KEY CnoCno REFERENCE Course(REFERENCE Course(CnoCno)2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.3.2 创建与使用基本表创建与使用基本表v 1.创建基本表例3-5解释:SQL主键与外键的作用。主键默认不能为空,且值唯一,并自动按主键建立索引。外键取值要么为空值,要么参照主键的值。插入非空值时,如果主键表中没

    29、有这个值,则不能插入;更新时,不能改为主键表中没有的值;删除主键表记录时,可以在创建外键时设置外键记录一起级联删除还是拒绝删除;更新主键记录时,同样有级联更新和拒绝执行的选择。外键的作用就是保持数据的一致性和完整性的,主键为外键提供数据完整性约束。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.3.2 创建与使用基本表创建与使用基本表v 2.向基本表中增加一列例3-6 向存储学生信息的表中增加一个属性:学生所属的班级,即向Student表中增加一列班级。ALTER TABLE Student ALTER TABLE Student ADD Class CHA

    30、R(5);ADD Class CHAR(5);解释:不论原表是否为空,都可以增加一列,并且增加的一列的值都为空。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.3.2 创建与使用基本表创建与使用基本表v 3.修改列的数据类型例3-7 由于学校转来一名少数民族的学生,学生姓名长度不满足需求,需要增加其长度,即修改Student表中Name列的数据类型。ALTER TABLE Student ALTER TABLE Student MODIFY Name CHARMODIFY Name CHAR(1010);解释:如果更改数据类型,可能会破坏原有的数据。2022

    31、年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.3.2 创建与使用基本表创建与使用基本表v 4.删除唯一性约束例3-8 学生信息表中不再以学号为唯一的标识,即删除Student表中No列取唯一值的约束。ALTER TABLE Student ALTER TABLE Student DROP UNIQUE(No);DROP UNIQUE(No);SQL没有提供删除属性列的语句,可以将原表中要保留的列以及内容复制到一个新表中来删除原表。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.3.2 创建与使用基本表创建与使用基本表v 5.删除

    32、基本表例3-9 删除Student表。DROP TABLE Student;DROP TABLE Student;2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.3.3 创建与使用索引创建与使用索引v 为了加快查询速度,建立索引是行之有效的方法。在日常生活中翻阅字典时,肯定不是直接查找信息,而是通过目录找到信息所在的页码,之后只需要翻阅感兴趣的几页,而不用翻阅整本字典。数据库建立的索引就相当于字典的目录,通过索引可以大大加快查询的速度。v 可以在基本表上根据需要建立一个或多个索引,并且建立与删除索引由数据库管理员(DBA)负责完成,系统存取数据时,自动选择合

    33、适的索引作为存储路径,不需要用户干预。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.3.3 创建与使用索引创建与使用索引v 1建立索引例3-10 为了加快查询速度,为学生信息表(Student表)按学号(No)建立唯一索引。CREATE UNIQUE INDEX CREATE UNIQUE INDEX StunameStuname ON Student ON Student(SnameSname);2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.3.3 创建与使用索引创建与使用索引v 1建立索引解释:可以在Student

    34、表中的Indexes中看到两个索引(Sno与Stuname),这是因为在以Sno为主键建表时,系统默认以Sno建立索引。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.3.3 创建与使用索引创建与使用索引2删除索引例3-11 删除学生信息表(Student表)的Stuname索引。DROP INDEX DROP INDEX StunameStuname;2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君第三章第三章 关系数据库标准语言关系数据库标准语言SQL3.1 SQL概述概述3.2 MySQL数据库简介数据库简介3.3 定义

    35、数据定义数据3.4 查询数据查询数据 3.5 更新数据更新数据3.6 视图视图3.7 小结小结2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.4 查询数据查询数据l 数据库的查询功能可以说是数据库的核心功能。SQL提供了SELECT语句进行数据查询,并且提供了丰富的用法以满足用户各种需求的查询。l 以学生-课程信息数据库为例,以下是数据库中的三个表。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君学生基本信息表(学号,姓名,性别,年龄,院系)Student(Sno,Sname,Ssex,Sage,Sdepartment)课程信

    36、息表(课程编号,课程名,要修这门课需要先修的课程,学分)Course(Cno,Cname,Cprimaryno,Ccredit)学生选课表(学号,课程号,成绩)SC(Sno,Cno,Result)3.4 查询数据查询数据3.4.1 Select命令的一般格式命令的一般格式 3.4.2 单表查询单表查询3.4.3 连接查询连接查询3.4.4 嵌套查询嵌套查询3.4.5 集合查询集合查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.4.1 Select命令的一般格式命令的一般格式v解释:(1)方括号为可选项。(2)GROUP BY GROUP BY HAVIN

    37、G HAVING表示将结果按 的值进行分组,该值相等的记录为一组,带【HAVINGHAVING】短语则只有满足指定条件的组才会输出。(3)ORDER BY ORDER BY ASC ASC DESC DESC显示结果要按值升序或降序排序2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君SELECT ALL DISTICT ,FROM,,WHERE GROUP BY HAVINGORDER BY ASC DESC3.4 查询数据查询数据3.4.1 Select命令的一般格式命令的一般格式 3.4.2 单表查询单表查询3.4.3 连接查询连接查询3.4.4 嵌套查询嵌

    38、套查询3.4.5 集合查询集合查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.4.2 单表查询单表查询v 单表查询是指要查询的数据只和一个表相关。u 1查询表的全部内容例3-12 不知道Student表中有何内容,简单地浏览表中的所有数据。2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君SELECT*FROM Student;SELECT*FROM Course;SELECT*FROM SC;3.4.2 单表查询单表查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君图图3.7 3.7 查询

    39、查询StudentStudent表的全部内容示例表的全部内容示例3.4.2 单表查询单表查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君图图3.8 3.8 查询查询CourseCourse表的全部内容示例表的全部内容示例3.4.2 单表查询单表查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君图图3.9 3.9 查询查询SCSC表的全部内容示例表的全部内容示例3.4.2 单表查询单表查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君u 2查询表中某些列的内容例3-13 查询全体学生的学号和姓

    40、名。SELECT Sno,Sname FROM Student;3.4.2 单表查询单表查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君v 3查询表中的某些列,并且按照规定的列顺序显示例3-14 查询全体学生的学号和姓名,并且按照姓名、学号的列顺序输出。SELECT Sname,SnoFROM Student;3.4.2 单表查询单表查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君v 4查询经过计算的值,并更改列标题例3-15 查询全体学生的出生日期,并用Birthday作为计算出的出生日期的列标题。SELECT Sno

    41、Number,Sname Name,2016-Sage Birthday FROM Student;解释:2016-Sage是一个算术表达式,根据需要也可以是函数和字符串,例如,My name is、COUNT(列的名称)、AVG(列的名称)、MAX(列的名称)等。3.4.2 单表查询单表查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君v 5查询表中符合条件的元组例3-16 查询全体男生的学号。SELECT DISTINCT SnameFROM StudentWHERE Ssex=男男;3.4.2 单表查询单表查询2022年8月3日北京电子科技学院计算机系北

    42、京电子科技学院计算机系 张克君张克君v 5查询表中符合条件的元组解释:(1)DISTINCT的作用是去除重复的查询结果,假如有两个人都叫小明,则这里的查询结果只会显示一个。(2)WHERE之后的条件语句可以根据需求自己编写。SELECT DISTINCT SnameFROM StudentWHERE Ssex=男男;u 字符匹配是查找指定的属性列值与相匹配的元组。可以是一个完整的字符串,也可以含有通配符%和_。u%(百分号)代表任意长度(长度可以为0)的字符串。例如,a%b标识以a开头,以b结尾的任意长度的字符串。Abc、addgb、ab等都满足该匹配串。u _(下画线)代表任意单个字符。例如

    43、,a_b表示以a开头,以b结尾的长度为3的任意字符串,acb、afb等都满足该匹配串。谓语动词表谓语动词表2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君查询条件谓 词比较=、=、!=、!确定范围BETWEEN.AND.,NOT BETWEEN.AND.确定集合IN,NOT IN字符匹配LIKE,NOT LIKE空值IS NULL,IS NOT NULL多重条件AND,OR3.4.2 单表查询单表查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君v 6对查询结果进行排序例3-17 查询全体学生的1号课程的成绩,并按这门课程的成绩

    44、由高到低排序。v 解释:DESC表示降序,ASC表示升序(默认为升序)。SELECT Sno,ResultFROM SCWHERE Cno=1ORDER BY Result DESC;3.4.2 单表查询单表查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君v 7对查询的结果进行分组例3-18 查询全体学生中选修了两门以上课程的学号,以及选修的总门数。v 解释:这条SELECT语句按Sno分组,即把具有相同学号的元组分到一个组中并对其进行计数。WHERE和HAVING都是条件语句,不过WHERE的操作对象是元组,而HAVING的操作对象是由元组组成的组。SEL

    45、ECT Sno,COUNT(Cno)FROM SCGROUP BY SnoHAVING COUNT(*)1;3.4 查询数据查询数据3.4.1 Select命令的一般格式命令的一般格式 3.4.2 单表查询单表查询3.4.3 连接查询连接查询3.4.4 嵌套查询嵌套查询3.4.5 集合查询集合查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君3.4.3 连接查询连接查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君v 一个数据库中肯定不止存在一张表,并且这些表之间一般都存在某种联系,它们一起提供完整可用的信息,若一个查询同时涉

    46、及两个或者两个以上的表,则需要进行连接查询。v 1.等值与非等值的连接查询例3-19 查询每个学生及其选课情况,要求显示学生学号、学生姓名、选修课程代码和成绩。SELECT Student.Sno,Sname,SC.Cno,ResultFROM Student,SCWHERE Student.Sno=SC.Sno;3.4.3 连接查询连接查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君v 1.等值与非等值的连接查询解释(1)上面的SQL语句是对Student表、SC表的自然连接。还有一种意义不大的卡氏积。它对每个表的每个元组都要进行连接,其查询结果可能很庞大

    47、。假如Student表里有5个元组,SC表有4个元组,查询结果就会有5420个元组。卡氏积的SQL语句如下:SELECT Student.Sno,Sname,SC.Cno,ResultFROM Student,SCWHERE Student.Sno=SC.Sno;SWLWCT Student.*,SC.*.FROM Student,SC3.4.3 连接查询连接查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君v 1.等值与非等值的连接查询(2)连接查询的WHERE子句中用来连接两个表的条件称为连接条件或连接谓词,其一般格式为:其中比较运算符主要有:=、=、=、

    48、!=(或)等。此外,连接谓词还可以使用下面的形式。当连接运算符为=时,称为等值连接。使用其他运算符称为非等值连接。连接谓词中的列名称为连接字段。连接条件中的各连接字段类型必须是可比的,但名称不必相同。SELECT Student.Sno,Sname,SC.Cno,ResultFROM Student,SCWHERE Student.Sno=SC.Sno;.2.BETWEENBETWEEN.ANDAND.33.4.3 连接查询连接查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君v 2.表自身和自身连接查询例3-20 查询课程的先修课的先修课,要求显示课程号,以

    49、及先修课的先修课的课程号。解释:为了区分自身连接的前后两个相同的表,在FROM语句中为这两个表定义了两个不同的别名。SELECT ONE.Cno,TWO.CprimerynoFROM Course ONE,Course TWOWHERE ONE.Cprimeryno=TWO.Cno;3.4.3 连接查询连接查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君v 3外连接查询例3-21 查询每个学生及其选课情况,要求显示学生学号、学生姓名、选修课程代码,以及成绩。解释:外连接符*出现在连接运算符的右边,称为左外连接;出现在连接运算符的左边叫作右外连接。SELECT

    50、 Student.Sno,Sname,SC.Cno,ResultFROM Student,SCWHERE Student.Sno=SC.Sno;3.4.3 连接查询连接查询2022年8月3日北京电子科技学院计算机系北京电子科技学院计算机系 张克君张克君v 4更多表、更多条件的连接查询例3-22 查询每个学生及其选课情况,要求显示学生学号、学生姓名、选修课程代码、课程名称以及成绩。SELECT Student.Sno,Sname,SC.Cno,Cname,ResultFROM Student,Course,SCWHERE Student.Sno=SC.Sno AND Course.Cno=SC.

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:数据库原理与系统开发教程第03章-关系数据库标准语言SQL课件.ppt
    链接地址:https://www.163wenku.com/p-3426914.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库