版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章关系数据库的标准语言SQL
31一月20233.1
SQL概述3.2
数据定义语言3.3
数据更新语言3.4
数据查询语言3.5
数据控制语言小结内容
31一月20233.1SQL概述
3.1.1
SQL的发展历程3.1.2
SQL的组成与功能3.1.3
SQL语言的特点3.1.4
SQL基本知识31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红SQL语言1974年被提出,并首先在IBM公司研制的RDB原型系统SystemR上实现。它具有功能丰富、使用方式灵活、语言简洁易学等突出优点,深受计算机工业界和计算机用户的欢迎。1986年10月,美国国家标准局(ANSI)的DB委员会批准SQL作为RDB语言的美国标准。同年公布了标准SQL文本。1987年6月,国际标准化组织(ISO)将其采纳为国际标准(称“SQL86”)。此后出现了“SQL89”、“SQL2”(1992)和“SQL3”(1993)。3.1.1SQL的发展历程31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红SQL成为国际标准后,各个DB厂家纷纷推出各自的支持SQL的软件或与SQL接口的软件。趋势:各种计算机(微机、小型机、大型机)上的DBS,都采用SQL作为共同的数据存取语言和标准接口。成为不同DBS间互操作的基础。SQL对DB以外的领域也产生了很大影响(软件产品将SQL语言的数据查询功能与图形功能、软件工程工具、软件开发工具、人工智能程序结合起来,开发出功能更强的软件产品)。可预见,在未来一段相当长的时间内,SQL仍将是RDB的主流语言,而且在知识发现、人工智能、软件工程等领域,也具有广阔的应用前景。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红3.1.2SQL的组成与功能⑴数据定义语言⑵数据操纵语言⑶数据控制语言⑷嵌入式SQL31一月2023⑴数据定义语言称为“SQLDDL”。用来定义RDB的模式、外模式和内模式,以实现对基本表、视图以及索引文件的定义、修改和删除等操作。⑵数据操纵语言称为“SQLDML”。包括数据查询和数据更新两类。数据查询:对DB中的数据查询、统计、分组、排序等操作;数据更新:数据的插入、删除、修改等数据维护操作。⑶数据控制语言数据控制语言(简称DCL)也称为“SQLDCL”。数据控制包括对基本表和视图的授权,完整性规则的描述,事务控制语句等。⑷嵌入式SQL规定了SQL语句嵌入在宿主语言程序中使用的各种规则。31一月20233.1.3SQL语言的特点⑴
自含式和嵌入式两种形式⑵语言简洁、易学易用⑶高度非过程化⑷
支持RDB三级模式结构31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红⑴自含式和嵌入式两种形式自含式SQL:能够独立地进行联机交互,用户只需在终端键盘上直接键入SQL命令就可以对DB进行操作;嵌入式SQL:能够嵌入到高级语言,如C、COBOL、FORTRAN、PL/1程序中来实现对DB的数据存取操作,给程序员设计应用程序提供了很大的方便。在自含式SQL和嵌入式SQL不同的使用方式中,SQL的语法结构基本上一致。31一月2023⑵语言简洁、易学易用尽管SQL语言功能极强又有两种使用方式,但由于设计巧妙,其语言十分简洁,完成核心功能的语句只用了9个动词。SQL语法很简单,容易学习和使用。SQL的命令动词表:31一月2023⑶高度非过程化SQL是一种第四代语言(4GL),用户只需要提出“干什么”,无需具体指明“怎么干”;像存取路径选择和具体处理操作等,均由系统自动完成。31一月2023⑷支持RDB三级模式结构①
全体基本表构成DB的概念模式②视图和部分基本表构成DB的外模式③
DB的存储文件和它们的索引文件构成RDB的内模式
图31一月2023①全体基本表构成DB的概念模式基本表是本身独立的表;SQL中的一个关系对应一个基本表;基本表按数据全局逻辑模式建立。31一月2023视图:由一个或几个基本表导出的表。视图不独立存储在DB中,DB中只存放视图的定义而不直接存放视图对应的数据,这些数据仍存放在与视图相关的基本表中。视图是一个虚表,是根据外模式定义的,能满足用户和应用程序的数据格式要求。当基本表不适合用户直接查询的操作要求时,需要定义视图,以便于用户的查询操作。在数据查询时,SQL对基本表和视图等同对待。②视图和部分基本表构成DB的外模式31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红在SQL中,基本表可以直接被用户操作,被直接使用的基本表也是外模式的一部分。基本表和视图构成了RDB的外模式,SQL支持RDB的外模式结构。用户可用SQL语言对视图和基本表进行查询。在用户眼中,视图和基本表都是关系,而存储文件对用户是透明的。
31一月2023一个关系对应一个表;一个或多个表对应一个存储文件;一个表可带若干个索引,索引也存放在存储文件中;存储文件的逻辑结构组成RDB的内模式。③DB的存储文件和它们的索引文件构成RDB的内模式31一月2023SQL对RDB模式的支持31一月20233.1.4SQL基本知识1.数据类型2.表达式与运算符3.函数4.语法规定与约定31一月20231.
数据类型⑴
数值型⑵字符型⑶位串型⑷日期型31一月2023数据类型是数据自身的特点,它的属性被放在表的列字段里。数据类型用于给特定的列提供数据规则,它决定着数据在列中的存储方式和给列分配的数据长度,并且决定了此数据是字符、数字还是时间日期数据。每一个具体的SQL的实施方案都有自己特有的数据类型,因此有必要使用与具体的实施方案相关的数据类型。但所有的实施方案中的基本数据类型都是一样的。31一月2023⑴数值型INT:长整数,也可写成INTEGERSMALLINT:短整数REAL:取决于机器精度的浮点数DOUBLEPRECISION:取决于机器精度的双精度浮点数FLOAT(n):浮点数,精度至少为n位数字NUMBERIC(p,q):定点数,由p位数字组成,但不包括符号、小数点,小数点后面有q位数字,也可写成DECIMAL(p,q)或dec(p,q)31一月2023⑵字符型CHAR(n):长度为n的定长字符串,n是字符串中字符的个数VARCHAR(n):具有最大长度为n的变长字符串31一月2023⑶位串型BIT(n):长度为n的二进制位串BITVARYING(n):最大长度为n的变长二进制位串31一月2023⑷日期型
DATE:日期包含年、月、日格式为YYYY-MM-DD
TIME:时间包含一日的时、分、秒格式为HH﹕MM﹕SS31一月2023有的系统可能还会提供货币型、文本型、图像型等类型。SQL支持空值的概念,空值是RDB中的一个重要概念,与空(或空白)字符串、数值0具有不同的含义,不能把它理解为任何意义的数据。31一月20232.
表达式与运算符⑴
比较运算符⑵谓词⑶逻辑运算符⑷算术运算符31一月2023表达式:由一个或多个值、运算符和函数组合而成,可计算出一个值,其数据类型一般为它的成分的数据类型。运算符:是保留的字或字符,主要用于在子句中执行比较和数学运算等操作。在SQL语句中运算符用于确定条件和建立语句中多个条件之间的连接。31一月2023⑴比较运算符其在SQL语句中用于测试单个的值。包括:=、!=或<>、<、>、<=、>=用于测试数据相等、不等、小于、大于、小于等于和大于等于的各种情况。当条件满足时,返回True,否则返回False。31一月2023⑵谓词
①
ISNULL和ISNOTNULL
②BETWEEN…AND…和NOTBETWEEN…AND…
③IN
④LIKE
⑤EXISTS和NOTEXISTS
⑥UNIQUE
⑦ALL和ANY31一月2023①ISNULL和ISNOTNULL用于判断字符串的值是否是空值。例如:查询缺少成绩(CJ)的学生的学号。可在WHERE子句中使用的表达式为:CJISNULL注意:不能用“=”来查找NULL值。若使用“=”,则表示要查找的是字符“NULL”,而不是NULL值。例如:查找不属于任何部门的职工。错误的表达式为:BMH=′NULL′31一月2023②BETWEEN…AND…和NOTBETWEEN…AND…谓词BETWEEN用于判断值是否在给定的两个值之间,注意包括边值。例如:查找成绩(CJ)在90分到100分之间的学生。可在WHERE子句中使用表达式:CJBETWEEN90AND100
也可使用表达式:CJ>=90ANDCJ<=100显然在可读性上谓词BETWEEN更好一些。BETWEEN前面加上NOT表示否定。31一月2023③IN用于判断值是否属于指定的集合。例如:查找职工表中工资(GZ)是否为以下几个值中的一个:4000,5000,6000。可在WHERE子句中使用表达式:GZIN(4000,5000,6000)31一月2023④LIKE可以用来进行字符串的匹配。其一般语法格式如下:[NOT]LIKE<匹配符>[ESCAPE<换码字符>]在指定的关系中查找指定属性列值与<匹配符>相匹配的元组。31一月2023说明1:<匹配符>中经常使用通配符%(百分号)和_(下划线),且可组合使用。其中:%(百分号):代表任意长度(长度可能为0)的字符串;_(下划线):代表任意单个字符。例如:
A%B以A开头,以B结尾的任意长度的字符串。
A_B以A开头,以B结尾长度为3的任意字符串。31一月2023说明2:如果LIKE后面的匹配符中不含通配符,则可以用“=”运算符取代谓词LIKE,用<>或!=运算符取代谓词NOTLIKE。31一月2023
说明3:若要查询的字符串本身就含有“%”或“_”,则需要使用由ESCAPE指定的换码字符。例如:在WHERE子句中的LIKE谓词为:LIKE′COM\_cn_′ESCAPE′\′(表示以COM_cn开始的最后一个字母任意的字符串)指定的换码字符为′\′,匹配串′COM\_cn_′中的第一个下划线前因为有换码字符,所以将其解释为下划线本身,而不再是通配符;第二个下划线则仍是通配符。31一月2023⑤EXISTS和NOTEXISTS格式为:EXISTS(子查询)。用于判断在指定的表中是否存在一行符合某种条件的数据。带有EXISTS谓词的子查询不返回任何数据,当子查询结果非空,返回逻辑真值“True”,否则,返回逻辑假值“False”。31一月2023⑥UNIQUE用于在指定的表中判断每一行是否是惟一的。⑦ALL和ANY用于将某个值同另一数据集中的每个值相比较。31一月2023⑶逻辑运算符
①
NOT
②AND
③OR31一月2023①NOT将它使用的逻辑运算符的意义反转。如NOTBETWEEN、NOTIN、NOTEXISTS、NOTLIKE、NOTUNIQUE等。31一月2023③OR连接多个查询条件,表示至少有一个查询条件成立。例如:查找年龄(NL)为20岁或25岁的学生。可使用表达式为:NL=20ORNL=2531一月2023②AND连接多个查询条件,表示所有的查询条件都成立。例如:查找年龄(NL)为25岁,并且家庭住址(ZZ)住在大连的女学生(XB表示性别)。可使用表达式为:NL=25ANDZZ=′大连′ANDXB=′女′31一月2023⑷算术运算符用于执行数学运算的功能。通常有四种操作符:+、-、*和∕。可单独使用,也可组合使用。31一月20233.
函数⑴
单行函数⑵统计函数31一月2023⑴单行函数单行函数主要分为数值函数、字符函数、日期函数、转换函数等;它对查询的表或视图的每一行返回一个结果行。31一月2023数值函数:用于接受数值输入,返回数值。许多函数的返回值可精确到38位十进制数字,三角函数精确到36位十进制数字。单行字符函数:用于接受字符输入,可返回字符值或数值。日期函数:是操作DATE数据类型的值,所有日期函数都返回一个DATE类型的值。转换函数:是将一种数据类型的值转换成另一种数据类型的值。31一月2023⑵统计函数统计函数是用来累加、合计和显示数据极限的函数,它主要用于给SQL语句提供统计信息。常用的统计函数有COUNT、SUM、MAX、MIN和AVG等。31一月20234.语法规定与约定
⑴语句格式约定符号
<>:其中的内容为必选项,它表示实际语义,不能为空;
[]:其中内容为任选项;
{}或∣:必选其中之一项;
[,…n]:表示前面的项可以重复多次。31一月2023⑵语法规定
①一般语法规定SQL中数据项(列项、表和视图)的分隔符为“,”;字符串常数的定界符用单引号“′”表示。
②SQL特殊语法规定SQL的关键词一般使用大写字母表示;SQL语句的结束符为“;”;SQL采用格式化书写方式。31一月20233.2数据定义语言3.2.1
数据库3.2.2
表3.2.3
索引3.2.4
视图3.2.5
存储过程31一月2023数据定义语言(DDL)是SQL的一部分,用来定义RDB的模式、外模式和内模式,以实现对RDB的基本表、视图以及索引文件等基本要素的定义、修改和删除等操作。DDL的功能包括:数据库、基本表、索引、视图及存储过程的定义、修改和删除等。31一月20233.2.1
数据库1.创建数据库2.修改数据库3.撤消数据库31一月2023SQL中,DB被定义为对象(即基本表、视图和索引等)的集合。并包含DB中每一个对象的定义。DB在磁盘上是以文件为单位存储的,由数据文件和日志文件组成。数据文件中实际存放DB所有数据和对象,日志文件用来存放(记录)用户对DB所进行的所有操作,它是维护DB完整性的重要工具。创建一个DB,就是定义了一个存储空间。1.创建DB31一月2023
语句格式:CREATEDATABASE<数据库名>功能:
定义DB名和DB的存储空间。说明:⑴使用该语句的用户必须具有DBA的权限;⑵DB的创建者被默认为该DB的所有者;⑶在创建DB的过程中,要指定DB名称、设计所占用的存储空间和存放文件位置。创建DB至少需要定义数据文件和日志文件,省略系统选择默认值。对于数据文件和日志文件的定义不同SQL版本规定不同。例3-1:创建学生管理数据库createdatabase学生管理31一月2023语句格式:ALTERDATABASE<数据库名>功能:修改指定的DB。说明:⑴该语句只有DBA或具有CREATEDATABASE权限的DB拥有者才有权使用;⑵
该语句可以增加或删除DB中的文件,也可以修改DB文件的属性。2.修改数据库31一月2023语句格式:DROPDATABASE<数据库组名>功能:撤消指定的一个或多个DB。说明:⑴该语句只有DBA或具有CREATEDATABASE权限的DB拥有者才有权使用;⑵当DB处于正在被使用或正在恢复等非正常状态时,是不能被撤消的;⑶该语句执行后,系统将无法恢复被撤消的DB,除非事先有DB的备份;⑷当一个或多个DB被撤消后,其中所有的数据及DB对象都将被删除,所有的数据文件和日志文件也都将被删除,所占用的空间将被释放。3.撤消数据库31一月20233.2.2表1.创建基本表2.完整性约束3.修改基本表4.撤消基本表31一月20231.创建基本表语句格式:CREATETABLE<表名>(<列名><数据类型>[<列级完整性约束条件>][,<列名>[<数据类型>[<列级完整性约束条件>]]…][<表级完整性约束条件>]);功能:定义基本表的表名及其结构。31一月2023说明:⑴
<表名>是所要定义的基本表的名字,基本表可以由一列(属性)或多列组成;⑵
创建基本表时必须说明每一列的数据类型;⑶创建基本表的同时可定义与该基本表有关的完整性约束条件,它们被存入系统的DD中,当用户操作表中数据时由DBMS自动检查该操作是否违背这些完整性约束条件;⑷
若完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可定义在列级也可定义在表级。31一月2023例3-2:建立学生管理DB中的基本表:学生(学号,姓名,性别,年龄,班级号)课程(课程号,课称名,学分,周学时)考试(学号,课程号,成绩)
createtable学生(学号char(6),姓名char(10),性别char(2),
年龄smallint,
班级号char(5));
createtable课程(课程号char(6),
课称名char(20),
学分smallint,周学时smallint);
createtable考试(学号char(6),
课程号char(6),
成绩smallint);31一月20232.完整性约束⑴PRIMARYKEY约束⑵
FOREIGNKEY约束⑶
UNIQUE约束⑷
CHECK约束⑸
NOTNULL或NULL约束31一月2023完整性约束的用途是限制输入到基本表中的值的范围。列级完整性约束:是行定义的一部分,只能应用在一列上;表级完整性约束:它的定义独立于列的定义,可应用在一个基本表中的多列上。当需要在一个基本表中的多列上建立约束条件时,只能建立表级约束。当完整性约束创建之后,它作为基本表定义的一部分,存入DD中。31一月2023⑴PRIMARYKEY约束也称主关键字约束,是实体完整性约束。该约束用于定义主关键字,它能保证主关键字的惟一性和非空性。该约束可在列级或表级上进行定义,但不允许同时在两个级别上进行定义。31一月2023PRIMARYKEY约束定义主关键字方法:①
PRIMARYKEY约束直接写在列名及其类型之后;②按照语法在相应列名及类型后单独列出:CONSTRAINT<约束名>PRIMARYKEY其中<约束名>是PRIMARYKEY约束的名字。③
在CREATETABLE语句列出基本表的所有列之后,再附加一个声明:PRIMARYKEY(<列名1>[,<列名2>,…])
31一月2023例3-3:在创建学生基本表时,将学号定义为主关键字,列级PRIMARYKEY约束。
createtable学生(学号char(6)primarykey,
姓名char(10),
性别char(2),
年龄smallint,
班级号char(5));31一月2023例3-4:在创建课程基本表时,将课程号定义为主关键字,并指定PK_KCH为PRIMARYKEY约束名(列级约束)。
createtable课程(课程号char(6)constraintpk_kchprimarykey,
课称名char(20),
学分smallint,
周学时smallint);31一月2023例3-5:在创建考试基本表时定义了一个名为PK_KS的表级
PRIMARYKEY约束。createtable考试(学号char(6),
课程号char(6),
成绩smallint,
constraintpk_ksprimarykey(学号,课程号));31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红⑵FOREIGNKEY约束也称为外部关键字或参照表约束,用于定义参照完整性,即用来维护两个基本表之间的一致性关系。外部关键字的建立主要是通过将一个基本表中的主关键字所在的列包含在另一个表中,这些列就是另一个表的外部关键字。FOREIGNKEY约束不仅可以与另一基本表上的PRIMARYKEY约束建立联系,也可以与另一基本表上的UNIQUE约束建立联系。当一行新的数据被加入到表格中,或对表格中已经存在的外部关键字上的数据进行修改时,新数据必须存在于另一基本表的主关键字上,或者为NULL。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红外部关键字的作用不只是对输入自身表格的数据进行限制,同时也限制了对主关键字所在基本表的数据进行修改。当主关键字所在表的数据被另一张表的外部关键字所引用时,用户将无法对主关键字里的数据进行修改或删除,除非事先删除或修改引用的数据。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红
FOREIGNKEY约束定义外部关键字方法①如果外部关键字只有一列,可在它的列名和类型后面直接用“REFERENCES”说明它参照了某个基本表的某些列(必须是主关键字),其语法格式为:REFERENCES<表名>(<列名>)31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红②在属性列表后面增加一个或几个外部关键字说明,语法格式为:FOREIGNKEY(<列名>)REFERENCES<表名>(<列名>)其中,第一个“列名”是外部关键字;第二个“列名”是被参照基本表中的列名。③在相应列名及其类型后单独列出,并指定约束名,语法格式为:CONSTRAINT<约束名>FOREIGNKEY(<列名>)REFERENCES<表名>(<列名>)31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红例3-6:在创建考试基本表时,定义相应外部关键字。
createtable考试
(学号char(6),
课程号char(6),
成绩smallint,
constraintpk_ks1primarykey(学号,课程号),
constraintpk_ks2foreignkey(学号)references学生(学号),
constraintpk_ks3foreignkey(课程号)references课程(课程号));31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红学生、考试和课程三个基本表之间所建立的FOREIGNKEY约束31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红⑶UNIQUE约束主要是用来确保不受PRIMARYKEY约束的列上的数据的惟一性。PRIMARYKEY约束与UNIQUE约束区别:UNIQUE约束,主要用在非主关键字的一列或多列上要求数据惟一的情况;UNIQUE约束,允许该列上存在NULL值,而主关键字决不允许出现NULL值;可在一个表上设置多个UNIQUE约束,而在一个表上只能设置一个主关键字。UNIQUE约束也可在列级或在表级上设置。若在多于一列的表上设置UNIQUE约束,则必须设置表级约束。
31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红定义UNIQUE约束的方法:①列级UNIQUE约束CONSTRAINT<约束名>UNIQUE其中<约束名>是UNIQUE约束的名字②表级UNIQUE约束CONSTRAINT<约束名>UNIQUE(<列名1>[,<列名2>,…])
31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红例3-7
:在创建学生基本表时,创建一个列级UNIQUE约束。createtable学生(学号char(6)
primarykey,
姓名char(10)
constraintun_xmunique,
性别char(2),
年龄smallint,
班级号char(5));31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红例3-8:在创建课程基本表时,创建一个表级UNIQUE约束。createtable课程
(课程号char(6),
课称名char(20),
学分smallint,周学时smallint,
constraintun_oneunique(课称名,学分));31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红⑷CHECK约束CHECK约束通过检查输入表列的数据的值来维护值域的完整性,它就像一个门卫,依次检查每一个要进入数据库的数据,只有符合条件的数据才允许通过。CHECK约束同FOREIGNKEY约束相同点都是通过检查数据值的合理性来实现数据完整性的维护。但FOREIGNKEY约束是从另一张表上获得合理的数据,而CHECK约束则是通过对一个逻辑表达式的结果进行判断来对数据进行检查。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红可在一列上设置多个CHECK约束,也可将一个CHECK约束应用于多列(表级约束)。当一列受多个CHECK约束控制时,所有的约束按照创建的顺序,依次进行数据有效性的检查。在SQL中,创建基本表时,定义CHECK约束的语法格式为:CONSTRAINT<约束名>CHECK(<约束条件表达式>)
31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红例3-9:规定学生的年龄在20岁到65岁之间。在创建学生基本表时,可在年龄上设置一个CHECK约束,使满足CHECK约束的数据才被DB接受。
createtable学生
(学号char(6)primarykey,
姓名char(10),
性别char(2),
年龄smallint,constraintch_nlcheck(年龄>=20and年龄<=65),
班级号char(5));31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红⑸NOTNULL或NULL约束NOTNULL约束不允许列值为空,而NULL约束允许列值为空。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红3.修改基本表语句格式:ALTERTABLE<表名>
[ADD<新列名><数据类型>[<完整性约束>][,…n]]
[DROP[[[CONSTRAINT]<约束名>]|[COLUMN<列名>]][,…n]]
[MODIFY<列名><数据类型>[,…n]];功能:修改指定基本表的结构。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红说明:⑴
其中<表名>是指要修改的基本表;⑵ADD子句用于在基本表中增加新列和新的完整性约束条件。新增加的列不能定义为“NOTNULL”,因为不论基本表中原来是否有数据,新增加的列一律为空值(NULL);⑶DROP子句用于在表中删除指定的完整性约束或指定的列;31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红⑷
当在基本表中删除某一列时,所有引用该列的视图和约束也一起自动被删除。有的系统规定若删除某一列时,只有当没有视图和约束引用该列时,才能进行,否则将被拒绝;⑸MODIFY子句用于修改原有的列的定义,包括修改列名、列的宽度和列的数据类型。但是,有些系统一般不允许对列名和数据类型进行修改,以免丢失原有基本表中的数据。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红例3-10:在学生基本表中增加“入学时间”列,其数据类型为日期型。altertable学生add入学时间datetime;
例3-11:将课程基本表中的“周学时”列删除。altertable课程dropcolumn周学时;例3-12:删除考试基本表中的学号外部关键字,其名为pk_ks2。altertable考试dropconstraintpk_ks2;31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红4.撤消基本表语句格式:DROPTABLE<表名>功能:撤消指定的基本表。说明:⑴
<表名>是所要撤消的基本表的名字;⑵
基本表一旦撤消,表中的数据以及此表上建立的索引和视图都将自动被删除,并且无法恢复,此时系统释放其所占用的存储空间;⑶
只有基本表的拥有者才可使用此语句;⑷
不能使用DROP撤消系统表。
31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红3.2.3
索引1.索引的特点2.索引的用途3.创建索引的原则4.索引的类型及选择5.索引的创建6.索引的撤消1.索引的特点
索引:是一个指向表中数据的指针。索引是SQL在基本表中列上建立的一种DB对象,也可称其为索引文件。与基本表是分开存储的,创建或撤消索引,对数据毫无影响。建立索引的主要目的是提高数据检索的性能。当索引被撤消,数据查询的速度可能会变慢。索引建立后,它便记录了被索引列的每一个取值在表中的位置。索引要占用物理空间,且常比基本表本身占用的空间要大。当在表中加入新数据时,索引中也增加相应的数据项。当DB中的基本表建立了索引,进行数据查询时,首先在相应的索引中查找。若数据被找到,则返回该数据在基本表中的确切位置。一个基本表,可根据应用环境的需要创建若干索引以提供多种存取途径。通常,索引的创建和撤消由DBA或表的拥有者负责。用户不能也不必在存取数据时选择索引,索引的选择由系统自动进行。2.索引的用途
⑴提高数据查询的速度⑵保证数据的惟一性索引的定义中包括定义数据惟一性的内容。当定义了数据惟一性的功能后,在对相关的索引项进行数据输入或数据更新时,系统要进行检查,以确保其数据惟一性成立。⑶加快表连接的速度
在进行基本表连接操作时,系统需要对被连接的基本表的连接字段进行查询,其工作量是非常可观的。若在被连接的基本表的连接字段上创建索引,则可大大提高连接操作的速度。
例如:要列出学生表中所有学生某门课程的成绩,则要进行学生和考试这两个基本表的连接操作。在考试基本表中学号(外部关键字)列上建立索引,可提高表连接的速度。3.创建索引的原则⑴索引的创建和维护由DBA和DBMS完成⑵是否创建索引取决于表的数据量大小和对查询的要求基本表中记录的数量越多,记录越长,越有必要创建索引。记录较少的基本表,创建索引意义不大。索引要根据数据查询或处理的要求而创建(对那些查询频度高、实时性要求高的数据一定要建立索引,否则不必创建索引)。⑶一个基本表,不要建过多索引索引文件占用文件目录和存储空间,索引过多会使系统负担加重。索引需要自身维护,当基本表的数据增加、删除或修改时,索引文件要随之变化,以保持与基本表一致。索引过多会影响数据增、删、改的速度。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红避免使用索引的情形⑴包含太多重复值的列;⑵查询中很少被引用的列;⑶值特别长的列;⑷查询返回率很高的列;⑸具有很多NULL值的列;⑹需要经常插、删、改的列;⑺记录较少的基本表;⑻需进行频繁、大批量数据更新的基本表。
31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红4.索引的类型及选择⑴单列索引。是对基本表的某一单独的列进行索引,是最简单和最常用的索引类型,它是在表的某一列的基础上建立的。⑵惟一索引。惟一索引不允许在表中插入任何相同的取值。使用惟一索引不但能提高性能,还可以维护数据的完整性。⑶复合索引。针对基本表中两个或两个以上的列建立的索引。由于被索引列的顺序对数据查询速度具有显著的影响,所以创建复合索引时,应当考虑索引的性能。为优化性能,通常将最强限定值放在第一位。不过,那些始终被指定的列更应当放在第一位。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红5.索引的创建
语句格式:CREATE[UNIQUE][CLUSTERED]INDEX<索引名>
ON<表名>(<列名1>[<次序>][,<列名2>[<次序>]]…);功能:为基本表创建索引。
说明:⑴<表名>是要创建索引的基本表名字。索引可建在该表的一列或多列上,各列名间用逗号分隔;⑵每个<列名>后面还可用<次序>指定索引值的排列次序,次序可选ASC(升序)或DESC(降序),默认值为ASC;⑶
UNIQUE表示该索引的每一个索引值只对应惟一的数据记录;31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红⑷CLUSTERED表示建立聚簇索引聚簇索引是SQLServer提供的一种索引形式,它使基本表中数据的物理顺序与索引项的排列顺序一致。创建聚簇索引可提高查询效率,但创建聚簇索引后,在更新索引列数据时,往往会导致表中记录的物理顺序的变更,因而代价是较大的。一个基本表上最多只能建一个聚族索引,对于经常更新的列不宜建立聚簇索引。⑸SQL中的索引是非显示索引。即在索引创建以后,用户在索引撤消前不会再用到该索引名,但是索引在用户查询时会自动起作用。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红例3-13:为学生管理DB中的基本表学生、考试、课程创建索引。学生:按学号升序创建惟一的聚簇索引;createuniqueclusteredindexidx_xhon学生(学号);考试:按学号降序和课程号升序创建惟一的聚簇索引;
createuniqueclusteredindexidx_xh_kchon考试(学号desc,课程号asc);课程:按课程号升序创建惟一的索引。
createuniqueindexidx_kchon课程(课程号);索引前后的学生与考试基本表(上面的为索引前的数据显示)6.索引的撤消语句格式:DROPINDEX<索引名>[,…n]功能:在DB中撤消指定的索引。说明:⑴<索引名>是要撤消的索引的名字;⑵
撤消索引时,系统会同时从DD中删除有关对该索引的描述;⑶
一次可撤消一个或多个指定的索引,索引名间逗号间隔。例3-14:撤消学生管理DB中课程基本表的idx_kch索引和考试基本表的idx_xh_kch索引。dropindex课程.idx_kch,考试.idx_xh_kch;
3.2.4
视图1.视图的优点2.视图的创建3.视图的撤消4.视图的查询5.视图的更新
视图(窗口):存储在DB中的预先定义好的查询,具有基本表的外观,可像基本表一样对其进行存取,但不占据物理存储空间。是一个逻辑表,它允许操作者从其他表或视图存取数据,视图本身不包含数据,所以也称为“虚表”。是RDBS提供给用户以多种角度观察DB中数据的重要机制。在三层DB体系结构中,视图是外部DB,它是从一个或几个基本表(或视图)中派生出来的,它依赖于基本表,不能独立存在。视图是DB对象。视图和基本表的主要区别:基本表中的数据要消耗物理空间来存储,而视图并不需要物理存储空间,因为事实上视图中的数据是通过参照表而得到的。在DB中,视图具有和表一样的使用方法(可像从表中查询数据那样从视图中查询数据)。1.视图的优点⑴简化用户操作。使用户将注意力集中在视图所关联的数据上;⑵使用户能以多种角度看待同一数据(可使不同的用户以不同的方式看待同一数据);⑶对机密数据提供安全保护。在设计DB应用系统时,对不同的用户定义不同的视图,使机密数据不出现在不应看到这些数据的用户视图上,自动提供了对机密数据的安全保护功能;⑷为DB重构提供一定的逻辑独立性。如果只是通过视图来存取DB中的数据,DBA可以有选择地改变构成视图的基本表,而不用考虑那些通过视图引用数据的应用程序的改动。2.视图的创建创建视图实际上就是DB执行定义该视图的查询语句。语句格式:
CREATEVIEW<视图名>[(<列名>[,<列名>]…)]
AS<子查询>[WITHCHECKOPTION];功能:定义视图名和视图结构,并将<子查询>得到的元组作为视图的内容。说明:
⑴<子查询>可以是任意复杂的SELECT语句,但通常不允许含有ORDERBY(对查询结果进行排序)和DISTINCT(从查询返回结果中删除重复行)短语;⑵
WITHCHECKOPTION表示对视图进行UPDATE、INSERT和DELETE操作时要保证更新、插入和删除的行满足视图定义中的谓词条件,即<子查询>中WHERE子句的条件表达式。选择该子句,则系统对UPDATE、INSERT和DELETE操作进行检查;
⑶视图的列名或全部指定或全部省略若省略视图各个列名,则表明该视图各列由<子查询>中SELECT子句各目标列组成。
下列情况,必须指定组成视图的所有列名:①目标列不是单纯的列名,而是集函数或列表达式;②<子查询>中使用多个表或视图,且目标列中含有相同的列名;③需要在视图中改用新的、更合适的列名。⑷
该语句执行的结果,仅是将视图的定义信息存入DB的DD中,而定义中的<子查询>语句并不执行。当系统运行到包含该视图定义语句的程序时,根据DD中的视图的定义信息临时生成该视图。程序一旦执行结束,该视图立即被撤销。例3-15:在学生管理DB中,建立01001班学生的视图VIEW_01001,其结构包括学号,姓名,年龄,班级号。
createviewview_01001asselect学号,姓名,年龄,班级号
from学生
where班级号=′01001′;3.视图的撤消语句格式:DROPVIEW<视图名>功能:从DB中删除指定的视图。说明:⑴DROPVIEW是删除视图在DD中的定义信息,而由该视图导出的其他视图的定义却仍存在DD中,但这些视图已失效;⑵
视图创建后,若导出此视图的基本表被删除了,则该视图将失效(一般不会被自动删除),用DROPVIEW语句将其删除。4.视图的查询是对基本表的查询,其查询结果是从基本表得到,所以,同样一个视图查询,在不同的执行时间可能得到不同的结果,因为在这段时间里,基本表可能发生了变化。DBMS执行对视图的查询时,首先进行有效性检查,检查查询的基本表、视图等是否存在,如果存在,则从DD中取出视图的定义,把定义中的子查询和用户的查询结合起来,转换成等价的对基本表的查询,然后再执行修正了的查询。例3-16:在例4–15创建的01001班学生的视图VIEW_01001中,找出年龄小于21岁的学生。
select学号,年龄
fromview_01001where年龄<21;根据视图消解的原理,本例对视图的查询转换成对基本表的查询语句为:
select学号,年龄
from学生
where年龄<21and班级号=′01001′;5.视图的更新是指通过视图来插入、删除和修改数据。因视图是虚表,故对视图的更新,最终要转化为对基本表的更新。为防止用户通过视图进行更新数据,有意或无意对不属于视图范围内的基本表数据进行操作,可在定义视图时加上[WITHCHECKOPTION]子句。在视图上更新数据时,DBMS检查视图定义中的条件,若不满足条件,则拒绝执行更新操作。一般的DBS只允许对行列子集的视图进行更新操作。行列子集视图是指从单个基本表导出、虽去掉了基本表的某些行和某些列但保留了主关键字的视图。对行列子集进行数据更新操作时,DBMS会把更新数据传到对应的基本表中。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红DBS不支持对视图进行数据更新的操作:⑴由两个以上基本表导出的视图;⑵
视图的列来自列表达式函数;⑶
视图中有分组子句或使用DISTINCT短语;⑷
视图定义中有嵌套查询,且内层查询中涉及与外层一样的导出该视图的基本表;⑸
在一个不允许更新的视图上定义的视图。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红3.2.5存储过程1.存储过程特点2.使用存储过程的好处3.存储过程的创建与执行4.修改存储过程5.存储过程的撤消31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红存储过程:是指编译之后可以以一种可执行的形式永久地存储在DB中的SQL语句。是一些DB开发商对标准SQL语言开发的扩展版本中新增加的DB对象。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红1.存储过程特点正常情况下,当DB中有SQL发出时,DB必定检查该语句的语法,并进行语法分析,即将其转化为DB内部的可执行形式。经过语法分析的语句驻留在内存中(但不是永久性的)。当其他操作需要内存空间时,该语句将被清除出内存。存储过程中的SQL语句在任何时候都是可执行的,并存在DB中,直到它像其他DB对象那样被撤消为止。对经常需要执行的语句,应当为它们创建存储过程。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红2.使用存储过程的好处⑴执行速度快。创建时经过语法检查和性能优化,执行时不必再重复这些步骤。经过第一次调用后,驻留内存中,不必再经过编译和优化。⑵模块化的程序设计。存储过程经过一次创建后,可被无数次调用。用户可独立于应用程序而修改存储过程。可为不同功能模块设计不同存储过程。⑶减少网络通信量。存储过程中包含大量SQL语句。但其作为一独立单元使用,进行调用时,只需使用一条语句就可实现。⑷保证系统的安全性。可设置用户通过存储过程来对某些关键数据进行访问,但不许用户直接使用SQL来对数据进行访问。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红3.存储过程的创建与执行⑴创建存储过程语句格式:
CREATEPROC[EDURE]<存储过程名>[RECOMPILE|
ENCRYPTION|RECOMPILE,ENCRYPTION]
AS
<SQL语句序列>
功能:在DB中创建存储过程。说明:①<存储过程名>是指要创建的存储过程;②选择RECOMPILE参数,表示每次执行存储过程时,都要对其进行重新编译和优化;③选择ENCRYPTION参数,表示隐藏存储过程的文本;④<SQL语句序列>指任意合法的SQL语句。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红⑵执行存储过程存储过程创建后,可直接使用存储过程名字对其进行调用执行。例3-17:创建能返回01001班全体男生的学号、姓名、年龄信息的存储过程PROC_BOY。
createprocproc_boyrecompile,encryptionasselect学号,姓名,年龄
from学生
where班级号=′01001′and性别=′男′;执行存储过程,使用命令:proc_boy
31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红4.修改存储过程语句格式:
ALTERPROC[EDURE]<存储过程名>
[RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION]
AS
<SQL语句序列>功能:修改DB中指定的存储过程。说明:⑴一般使用该语句的前提是不改变存储过程的使用许可和不改变其名字;⑵一次只能修改一个存储过程。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红5.存储过程的撤消语句格式:DROPPROCEDURE<存储过程名>[,…n]功能:在DB中撤消指定的存储过程。说明:⑴
<存储过程名>指要撤消的存储过程;⑵一次可将一个或多个存储过程从DB中删除。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红3.3数据更新语言3.3.1
插入数据3.3.2
修改数据3.3.3
删除数据31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红3.3.1插入数据1.插入单个元组2.插入多元组31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红1.插入单个元组语句格式:
INSERTINTO<表名>[(<列名1>[,<列名2>,…])]
VALUES([<常量1>[,<常量2>,…]]);功能:将一个新元组插入指定的基本表中。说明:⑴
INTO子句中的<列名1>[,<列名2>,…]指出在基本表中插入新值的列,VALUES子句中的<常量1>[,<常量2>,…]指出在基本表中插入新值的列的具体值;⑵
VALUES子句中各常量的数据类型必须与INTO子句中所对应列的数据类型兼容,VALUES子句中常量的数量必须匹配INTO子句中的列数;⑶
INTO子句中没有出现的列,新插入的元组在这些列上取空值;⑷
如果省略INTO子句中的<列名1>[,<列名2>,…],则新插入元组的每一列必须在VALUES子句中均有值对应;⑸
如果在基本表中存在定义为NOTNULL的列,则该列的值必须要出现在VALUES子句中的常量列表中,否则错误。⑹
这种插入数据的方法一次只能向基本表中插入一行数据,并且每次插入数据都必须输入基本表的名字以及要插入的列的数值。31一月2023例3-18:将一个新生的数据(020011,张三,男,19,02005)插入到学生基本表中。insertinto学生Values('020011','张三','男',19,'02005')或insertinto学生(sno,sname,sex,age,classno')如果只列出个别列,那么列名不能省略,例如:insertinto学生(sno,sname,age)Values('020011','张三',19)31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红2.插入多元组语句格式:
INSERTINTO<表名>[(<列名1>[,<列名2>,…])]
<子查询>;功能:一次向基本表中插入多个元组。说明:⑴SQL先处理<子查询>,得到查询结果,再将结果插入到<表名>所指的基本表中;⑵
<子查询>结果集合中的列数、列序和数据类型必须与<表名>所指的基本表中相应各项匹配或兼容。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红例3-19:在学生管理中,要求将所有女学生的学号、姓名和年龄单独存放在一个基本表中。(在学生管理数据库中创建女学生基本表→查询→插入)
createtable女学生
(学号char(6)NOTNULL,
姓名char(10),
年龄smallint);建立一个空的基本表
insertinto女学生
select学号,姓名,年龄
from学生
where性别=‘女’依次插入多个记录31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红3.3.2修改数据语句格式:
UPDATE<表名>
SET<列名>=<表达式>[,<列名>=<表达式>][,…n]
[WHERE<条件>];功能:修改指定表中满足WHERE子句所指定条件的元组。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红说明:⑴
<表名>指出要修改数据的基本表的名字;⑵
SET子句用于指定修改方法,用<表达式>的值取代相应<列名>的列值,且一次可以修改多个列的列值;⑶
WHERE子句指出基本表中需要修改数据的元组应满足的条件,如果省略WHERE子句,则修改基本表中的全部元组;⑷在WHERE子句中也可以嵌入子查询。31一月2023《数据库原理与应用》——第3章关系数据库的标准语言SQL——东北财经大学李红例3-20:将“数据库”的周学时在原来的基础上再加2学时。
update课程
set周学时=周学时+2where课程名=‘数据库’例3-21:将考试基本表中的“数据库”课程的考试成绩乘以难度系数0.8。
update考试
set成绩=成绩*0.8where课程号=(select课程号
from课程
where课程名=‘数据库’)31一月20233.3.3删除数据语句格式:DELETEFROM<表名>[WHERE<条件>];功能:删除指定表中满足WHERE子句条件的所有元组。说明:⑴
DELETE语句删除的是基本表中的数据,而不是表的定义;
⑵
省略WHERE子句,表示删除基本表中的全部元组;⑶
在WHERE子句中也可以嵌入子查询;⑷数据一旦被删除将无法恢复,除非事先有备份。31一月2023例3-22:删除01001班所有学生的考试成绩。
deletefrom考试
where学号in(select学号
from学生
where班级号=‘01001’)3.4
数据查询语言3.4.1
SELECT语句3.4.2
单表查询3.4.3
连接查询3.4.4
嵌套查询3.4.5
集合查询3.4.6
函数查询数据查询:DB的核心操作。功能:是指根据用户的需要以一种可读的方式从DB库中提取所需数据,由SQL的数据操纵语言的SELECT语句实现。3.4.1SELECT语句格式:SELECT[ALL|DISTINCT][<目标列表达式>[,…n]]
FROM<表名或视图名>[,<表名或视图名>,…][WHERE<条件表达式>]
GROUPBY<列名1>[HAVING<条件表达式>]]
ORDERBY<列名2>[ASC|DESC],…];功能:从指定的基本表或视图中,选择满足条件的元组数据,并对它们进行分组、统计、排序和投影,形成查询结果集。①其中SELECT和FROM语句为必选子句,其他子句为任选子句;②[ALL|DISTINCT][<目标列表达式>[,…n]]子句<目标列表达式>是指查询结果集中包含的列名,可以是直接从基本表或视图中投影得到的字段、与字段相关的表达式或数据统计的函数表达式,目标列还可是常量。
执行过程③
FROM<表名或视图名>[,<表名或视图名>,…]子句指明要查询的数据来自哪些基本表或视图。基本表或视图名间用“,”分割。如果查询使用的基本表或视图不在当前DB中,还需要在表或视图前加上DB名加以说明,即使用“<数据库名>.<表名>”的形式表示。如果在查询中需要一表多用,则每种使用都需要一个表的别名标识,并在各自使用中用不同的基本表别名表示。定义基本表别名的格式为“<表名><别名>”。
④
WHERE<条件表达式>]子句通过条件表达式描述对基本表或视图中元组的选择条件。DBMS处理语句时,以元组为单位,逐个考察每个元组是否满足WHERE子句中给出的条件,将不满足条件的元
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 175红色人物剪影背景的五四青年节青年诗歌朗诵模板
- 弱电工程项目岗位素质要求、分工及职责培训
- 肠内营养耐受性管理方案
- 2025《登高》中杜甫沉郁顿挫风格的具体呈现课件
- 2026年乡村振兴示范点建设协议
- 一年级下册数学课件 第六单元《小括号》人教版
- 特种设备设施安全管理制度培训
- 压块机人员安全职责培训
- 高校实验室安全与保密制度培训
- 2026年广东省河源市单招职业适应性测试题库及答案详解一套
- T/SHPTA 102-2024聚四氟乙烯内衬储罐技术要求
- 2024年(四级)公路收费及监控员技能鉴定理论考试题库(浓缩500题)
- 企业摄影投标方案范本
- 《新收入准则下腾讯控股收入确认面临的挑战及对策-以腾讯控股为例》18000字【论文】
- 2025年甘肃公务员省考《行测》真题(含答案)
- 脑电图在临床中的应用
- 党支部关于2025年组织生活会召开情况的报告
- PCB电路板设计作业指导书
- 八年级历史下册 第4课 社会主义制度的确立说课稿 北师大版
- 「Bed talk」杜蕾斯地球1小时策略
- 2025(新人教版)地理八年级下册全册复习知识清单 课件
评论
0/150
提交评论