(完整版)专升本数据库练习题及答案
辽宁省专升本数据库练习题

辽宁省专升本数据库练习题### 辽宁省专升本数据库练习题#### 一、选择题(每题2分,共10分)1. 在关系数据库中,关系模式的规范化程度越高,其优点是()。
A. 存储空间减少B. 数据冗余度减少C. 数据独立性降低D. 数据操作复杂度增加2. SQL语言中,用于查询数据的命令是()。
A. SELECTB. INSERTC. UPDATED. DELETE3. 下列哪个选项不是数据库设计阶段的任务?()A. 需求分析B. 概念性设计C. 物理设计D. 数据库维护4. 在数据库中,实体间的一对多关系可以用()来实现。
A. 一对一关系B. 多对多关系C. 一对多关系D. 多对一关系5. 数据库管理系统(DBMS)的主要功能不包括()。
A. 数据定义B. 数据操纵C. 数据控制D. 数据加密#### 二、填空题(每题2分,共10分)1. 在数据库中,数据的物理结构独立于逻辑结构,这是数据库的______特性。
2. 一个关系中的所有属性都是不可分割的基本数据项,这是数据库的______性。
3. 数据库中的视图是一个______的虚表,它是由查询结果构成的。
4. 数据库的完整性约束包括实体完整性、参照完整性和______完整性。
5. 数据库恢复操作主要依赖于______和日志文件。
#### 三、简答题(每题5分,共20分)1. 简述数据库管理系统(DBMS)的主要功能。
2. 描述数据库三级模式结构及其优点。
3. 什么是事务?事务的ACID特性是什么?4. 什么是数据库的并发控制?并发控制的主要策略有哪些?#### 四、综合题(每题15分,共30分)1. 给定一个学生选课数据库,包含学生表(Student)、课程表(Course)和选课表(Enrollment)。
学生表包含学号(S#)、姓名(Sname)和性别(Ssex);课程表包含课程号(C#)、课程名(Cname)和学分(Credits);选课表包含学号(S#)、课程号(C#)和成绩(Grade)。
数据库原理(专升本)

数据库原理(专升本) 单选题1. 层次模型不能直接表示_____。
(A) 1:1关系(B) 1 :m关系(C) m :n关系(D) 1 :1和1 :m关系标准答案:C2. 在数据库系统中,系统故障造成_ ____。
(4分)(A) 硬盘数据丢失(B) 软盘数据丢失(C) 内存数据丢失(D) 磁盘丢失标准答案:C3. 关系r和s自然连接时,能够把r和s原该舍弃的元组放到结果关系中的操作是_____。
(4分)(A) 左外连接(B) 右外连接(C) 外部并(D) 外连接标准答案:D4. 数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是_____。
(4分)(A) DBS包括DB和DBMS(B) DDMS包括DB和DBS(C) DB包括DBS和DBMS(D) DBS就是DB,也就是DBMS标准答案:A5. 要求关系的元组在主属性上不能为空值,这是_____约束。
(4分)(A) 实体完整性(B) 参照完整性(C) 用户自定义(D) 用户操作标准答案:A6. 在下面列出的数据模型中,___ __是概念数据模型。
(4分)(A) 实体、联系模型(B) 层次模型(C) 网状模型(D) 关系模型标准答案:A7. 在关系模式R(A,B,C)中,F= {(A,B) →C,B→C},则R最高可达到_____。
(4分)(A) BCNF(B) 3NF(C) 2NF(D) 1NF标准答案:D8. 数据库的三级模式体系结构的划分,有利于保持数据库的_____。
(4(A) 数据独立性(B) 数据安全性(C) 结构规范化(D) 操作可行性标准答案:A填空题9. 在ER图中,矩形框表示___(1)___ ,菱形框表示___(2)___ 。
(4分)(1).标准答案:实体类型(2).标准答案:联系类型10. 在需求分析中,___(3)___是各类数据描述的集合,它包括数据项、数据结构、数据流、数据存储和数据加工过程等描述。
专升本计算机综合数据库选择题练习(含答案)

《数据库系统》选择题练习数据库概述下列有关数据库的描述正确的是()。
A.数据库是一个DBF文件 B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件数据独立性是指()。
A.数据依赖于程序B.程序依赖于数据C.数据不依赖于程序D.程序不依赖于数据以下关于DBA职责的叙述中,不正确的是()。
A.DBA是数据库系统的超级用户,负责控制和经管各个用户的访问权限B.DBA要负责监控数据库的运行C.DBA要负责前端应用程序的开发D.DBA要负责当数据库系统发生故障时进行恢复DBMS是指()。
A.数据库B.数据库系统C.数据库经管系统D.数据处理系统数据冗余度低、数据共享以及较高数据独立性等特征的系统是()。
A.文件系统B.数据库系统C.操作系统D.高级程序仅次于用户和数据库之间的一层数据经管软件是()。
A.数据库系统B.数据库C.经管信息系统D.数据库经管系统数据库系统中,逻辑数据和物理数据可以相互转换,执行该功能的是()A.操作系统B.信息经管系统C.数据库经管系统D.文件系统数据库中对全部数据的整体逻辑结构的描述,作为数据库的()。
A.存储模式B.子模式C.外模式D.模式用户看到的那部分数据的局部逻辑结构的描述是()。
A.存储模式B.子模式C.概念模式D模式文件系统和数据库系统的最大区别是()。
A.数据共享B.数据独立C.数据冗余D.数据结构化关于信息和数据,下面的论述中正确是的()。
A.信息与数据,只有区别,没有联系B.信息是数据的载体C.同一信息用同一数据表示形式D.数据处理本质上就是信息处理描述事物性质的最小数据单位是()。
A.记录B.文件C.数据项D.数据库若干记录的集合称为()。
A.数据B.数据库C.数据项D.文件数据库系统中的软件是指()。
A.数据库经管系统B.应用程序C.数据库D.数据库经管员在数据库系统的组织结构中,把概念数据库与物理数据联系起来的映射是()。
A.外模式/模式B.内模式/外模式C.模式/内模式D.模式/外模式1975年SPARC公布了数据库规范报告,提出了数据库的()结构组织。
专升本《数据库系统原理》

[试题分类]:专升本《数据库系统原理》_08033050[题型]:单选[分数]:21.设关系数据库中一个表S的结构为S(SN,CN,grade),其中SN为学生名,CN为课程名,二者均为字符型;grade为成绩,数值型,取值范围0-100。
若要把“张二的化学成绩80分”插入S中,则可用()命令。
A.INSERTINTOSV ALUES(’张二’,’化学’,80)B.ADDINTOSV ALUES(’张二’,’化学’,80)C.ADDINTOSV ALUES(’张二’,’化学’,’80’)D.INSERTINTOSV ALUES(’张二’,’化学’,’80’)答案:A2.事务的隔离性是指()A.事务一旦提交,对数据库的改变是永久的B.事务中包括的所有操作要么都做,要么都不做C.一个事务内部的操作及使用的数据对并发的其他事务是无关的D.事务必须是使数据库从一个一致性状态变到另一个一致性状态答案:C3.如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是()A.两个都是UPDATEB.一个是SELECT,另一个是UPDATEC.两个都是SELECTD.其中有一个是DELETE答案:C4.已知在一个工厂中有多个车间,每一个车间有多名职工,工厂的产品要经过多个车间的多道工序加工。
具体来说,一个产品要经过多个工人加工,一位工人要加工多个产品。
工厂与车间之间属于一对多联系,车间与工人之间属于一对多联系,工人与产品之间属于()联系。
A.未知B.一对一C.多对多D.一对多答案:C5.()是存储在计算机内的有结构的数据集合。
A.数据库系统B.数据库C.网络系统D.操作系统答案:B6.若关系模式R∈3NF,则下面最正确的说法是()A.所有的非主属性都不部分依赖于码B.某个主属性不传递依赖于码C.所有的非主属性都不传递依赖于码D.某个非主属性不部分依赖于码答案:C7.表达用户使用观点的数据库局部逻辑结构的在三级模式结构中是()A.概念模式B.外模式C.模式D.内模式答案:B8.在关系数据库系统中,为了简化用户的查询操作,而又不增加数据的存储空间,常用的方法是创建()A.模式B.视图C.另一个表D.索引答案:B9.若要在基本表S中增加一列CN(课程名),可用()。
专升本《数据库系统原理》_试卷_答案

专升本《数据库系统原理》一、 (共53题,共150分)1.数据库管理系统DBMS中用来定义模式、内模式和外模式的语言是().(2分)A。
DML B.C C。
DDL D。
Basic。
标准答案:C2。
保证数据库系统正常工作的的核心软件是( )。
(2分) A.编译系统 B.数据库C。
操作系统 D。
数据库管理系统。
标准答案:D3. 数据库(DB。
、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是()(2分)A。
DBS包括DB和DBMS B。
DBMS包括DB和DBSC。
DB包括DBS和DBMS D.DBS就是DB,也就是DBMS。
标准答案:A4. 事务的原子性是指()(2分)A。
事务中包括的所有操作要么都做,要么都不做B。
事务一旦提交,对数据库的改变是永久的C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的D.事务必须是使数据库从一个一致性状态变到另一个一致性状态标准答案:A5。
系统能把数据库从被破坏、不正确的状态,恢复到最近一个正确的状态,DBMS的这种能力称为( ) (2分)A。
完整性控制B。
安全性控制 C。
可恢复性D。
并发控制。
标准答案:C6。
有两个实体集,并且它们之间存在着一个M:N联系,那么按照E-R模型转换成关系数据库的规则,这个E-R结构转换成表的个数为()。
(2分)A。
1 B。
2 C。
3 D。
4。
标准答案:C7.把E—R图转换为关系模型的过程,属于数据库设计的()(2分)A.概念设计B.逻辑设计 C.需求分析 D。
物理设计标准答案:B8。
若用如下的SQL语句创建一个student表:可以插入到student表中的记录是( )。
(2分)A。
(‘1031',‘曾华’,男,23)B。
(‘1031',‘曾华’,NULL,NULL) C。
(NULL,‘曾华',‘男',‘23’)C。
(‘1031’,NULL,‘男’,23)。
标准答案:B9. SQL语言中,删除一个视图的命令是().(2分)A。
数据库系统概论专升本模拟试题(含参考答案)

数据库系统概论模拟试题(含参考答案)一、单选题(共80题,每题1分,共80分)1、SQL语言是()语言。
A、网络数据库B、关系数据库C、非数据库D、层次数据库正确答案:B2、在WHERE语句的条件表达式中,与零个或多个字符进行匹配的通配符是()。
A、_B、*C、%D、?正确答案:C3、当两个关系没有公共属性时,其自然连接表现为( )。
A、笛卡尔积B、等值连接C、结果为空D、出错正确答案:A4、已知关系R(A,B,C)、S(D,E,A)其中R的主码是A,S的主码是E,S中的A与R中的A相对应。
S中的A被称为( )。
A、外码B、主码C、内码D、候选码正确答案:A5、设关系R和S的结构相同且各有100个元组,则R和S的并操作结果的元组数为( )。
A、200B、小于等于100C、100D、小于等于200正确答案:D6、下列()是对触发器的描述。
A、SQL语句的预编译集合B、当用户修改数据时,一种特殊形式的存储过程被自动执行C、它根据一或多列的值,提供对数据库表的行的快速访问D、定义了一个有相关列和行的集合正确答案:B7、有关三个世界中数据的描述术语,“实体”是()。
A、对现实世界数据信息的描述B、对计算机世界数据信息的描述C、对三个世界间相互联系的描述D、对信息世界数据信息的描述正确答案:D8、现有一个关系:借阅(书号、书名,库存数,读者号,借期,还期),假如同一本书允许一个读者多次借阅,但不能同时对—种书借多本,则该关系模式的码是()。
A、书号+读者号B、书号+读者号+借期C、读者号D、书号正确答案:B9、数据库系统实现整体数据的结构化,主要表现在以下几个方面,除了()A、数据的最小存取单位是数据项。
B、数据可以变长。
C、数据的结构用数据模型描述,无需程序定义和解释。
D、数据库和应用程序一一对应。
正确答案:D10、数据库系统并发控制的主要方法是采用()机制。
A、不加任何控制B、改为串行C、封锁D、拒绝正确答案:C11、数据库概念设计是面向企业或组织中的数据需求的。
数据库专升本试题及答案

数据库专升本试题及答案一、单项选择题(每题2分,共20分)1. 数据库管理系统(DBMS)的主要功能不包括以下哪一项?A. 数据定义B. 数据操纵C. 数据维护D. 数据备份答案:D2. 关系型数据库管理系统中,关系是指什么?A. 数据表B. 数据库C. 数据库文件D. 数据库服务器答案:A3. 在SQL中,用于创建新表的语句是?A. CREATE TABLEB. CREATE DATABASEC. CREATE INDEXD. CREATE VIEW答案:A4. 数据库设计中,实体与实体之间的关系通常分为几种?A. 1种B. 2种C. 3种D. 4种答案:C5. 以下哪个选项不是数据库的完整性约束?A. 实体完整性B. 参照完整性C. 数据完整性D. 用户定义完整性答案:C6. 在关系型数据库中,一个表的主键可以包含多个字段吗?A. 是B. 否答案:A7. 数据库中的视图是什么?A. 存储在数据库中的物理数据B. 基于SQL查询的虚拟表C. 数据库中的索引D. 数据库中的存储过程答案:B8. 在数据库中,事务的ACID属性指的是什么?A. 原子性、一致性、隔离性、持久性B. 原子性、一致性、隔离性、可扩展性C. 原子性、一致性、独立性、持久性D. 原子性、一致性、隔离性、可用性答案:A9. 数据库的规范化是为了解决什么问题?A. 数据冗余B. 数据备份C. 数据安全D. 数据存储答案:A10. 在数据库中,索引的作用是什么?A. 提高查询速度B. 降低存储空间C. 提高数据安全性D. 增加数据完整性答案:A二、多项选择题(每题3分,共15分)1. 数据库管理系统(DBMS)的组成部分包括以下哪些?A. 数据定义语言(DDL)B. 数据操纵语言(DML)C. 数据控制语言(DCL)D. 数据查询语言(DQL)答案:ABC2. 在关系型数据库中,以下哪些操作可以修改表结构?A. ADD COLUMNB. DROP COLUMNC. RENAME COLUMND. ALTER COLUMN答案:ABCD3. 数据库的并发控制机制包括哪些?A. 锁定机制B. 事务日志C. 乐观并发控制D. 悲观并发控制答案:ABCD4. 数据库的存储结构包括以下哪些?A. 物理存储结构B. 逻辑存储结构C. 索引结构D. 数据库文件答案:ACD5. 数据库的恢复技术包括以下哪些?A. 事务日志B. 数据备份C. 镜像D. 快照答案:ABC三、简答题(每题5分,共20分)1. 请简述数据库管理系统(DBMS)的主要功能。
数据库系统专升本考试(习题卷5)

数据库系统专升本考试(习题卷5)说明:答案和解析在试卷最后第1部分:单项选择题,共74题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]实体完整性约束中关系的主属性不能是()A)空值NULLB)RELLC)ALTERD)SQL2.[单选题]对于运算符“”,若其中有一个空值或者都是非空值但却不相等时,则为()A)TRUEB)FALSEC)NULLD)UNKNOWN3.[单选题]数据库中,数据的物理独立性是指( )A)用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的B)数据库与数据库管理系统的相互独立C)用户程序与DBMS的相互独立D)应用程序与数据库中数据的逻辑结构相互独立4.[单选题]下列关于存储函数的调用说法中错误的是()A)成功创建存储函数后才能调用B)和调用系统内置函数的方法一样C)使用关键字SELECT对其进行调用D)其语法格式是: CALL sp_name([func_parameter[.…]])5.[单选题]在MySQL中,用于实现交叉连接的关键字是A)CROSS JOINB)INNER JOINC)JOIND)LEFT JOIN6.[单选题]下列统计函数中不能忽略空值(NULL)的是( )。
A)SUMB)AVGC)MAXD)COUNT7.[单选题]将收集的数据进行适当的构造,这称为()A)数据存储B)数据组织C)数据构造D)以上答案都不对8.[单选题]每个部门有多名职工,每名职工在一个部门任职,实体集部门与职工之间的联系是()A)一对一B)一对多C)多对一D)多对多9.[单选题]若不控制并发问操作,将带来( )问题。
A)不一致B)死锁C)安全性D)死机10.[单选题]下列SQL语句中,修改表结构的是( )。
A)ALTERB)CREATEC)UPDATED)INSERT11.[单选题]数据库物理设计阶段是根据数据库逻辑设计的结果设计合适的数据库物理结构。
下列关于数据库物理设计的说法,错误的是( )A)物理设计时需要合理安排不同的存储介质,索引文件一般存储在高速磁盘中,日志文件可以考虑存储在磁带中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.关系代数运算1.选择σ(1)查询年龄小于20岁的学生σsage<20(student)(2)查询学号为201215122的学生σsno=201215122(student)2.投影(1)查询学生姓名,和所在系same,sdept(student)(2)查询选修了2号课程的学生学号sno(σcno=‘2’2(student))SQL语句学生-课程数据库学生表:学生(学号,姓名,性别,年龄,所在系)课程表:课程(课程号,课程名,先行课,学分)学生选课表:选课(学号,课程号,成绩)二.创建数据库SQL1.创建数据库Create database 数据库名On( name =逻辑文件名,Filename=’物理文件名’,Size=初始文件大小,Maxsize=最大文件大小,Filegrowth=文件自动增量)Log on( name =逻辑文件名,Filename=‘物理文件名’,Size=初始文件大小,Maxsize=最大文件大小,Filegrowth=文件自动增量)例创建‘教务管理数据库’Create database 教务管理数据库On( name =教务管理_dat,Filename=‘E:\SQL\教务管理_dat.mdf’,Size=2,Filegrowth=1 )Log on( name =教务管理.log,Filename=‘E:\SQL\教务管理_log.ldf’,Size=5M,Filegrowth=10% )1.查看数据库属性1)使用sp_helpdb查看数据库信息:sp_helpdb [数据库名](2)使用sp_databases 查看可使用的数据库信息:sp_databases(显示所有可以使用的数据库名称和大小)(3)使用sp_helpfile查看数据库文件信息sp_helpfile [文件名]1.设置数据库选项Alter database 数据库名Set 选项例设置教务管理数据库自动收缩Alter database 教务管理数据库Set auto_shrink on (自动收缩)1.修改数据库大小Alter database 数据库名Add file 增加数据文件Add log file 增加日志文件Remove file 删除文件Modify file 修改文件()例 1.修改教务管理数据库,增加数据文件jwgl_dat1Alter database 教务管理数据库Add file (Name=jwgl_dat1,Filename=‘E:\SQL\jwgl_dat1.ndf’,Size=2MB,Filegrowth=1MB )2.修改教务管理数据库Alter database 教务管理数据库Modify file (Name=jwgl_dat1,Size=5MB )2.删除教务管理数据库中次要数据文件jwgl_dat1Alter database 教务管理数据库Remove file jwgl_dat11.数据库更名1)更改数据库名Alter database 数据库名Modify name = 新数据库名例将数据库test更名为mytestAlter database testModify name = mytest1)更改数据库的逻辑文件名Alter database 数据库名Modify file(Name=逻辑文件名,Newname=新逻辑文件名)例将数据库逻辑文件test更名为mytestAlter database mytestModify file(Name = test,Newname = mytest )GoAlter database mytestModify file(Name = test_log,Newname = mytest_log )1)更改数据库的物理文件名Alter database 数据库名Modify file(Name=逻辑文件名,Filename =‘新路径\操作系统文件名’)例将数据库物理文件test更名为mytestAlter database mytestModify file(Name=mytest,Filename =‘E:\sql\mytest.mdf’)GOAlter database mytestModify file(Name=mytest_log,Filename =‘E:\sql\mytest_log.ldf’)1.删除数据库Drop database 数据库名例删除数据库名为test和数据库salesDrop database test,sales1.数据库分离Sp_detach_db 数据库名1.数据库附加Create database 数据库名On (Filename=‘主文件的物理文件名’)For attach三.基本表操作1.创建表Create table 表名()例创建一个学生表Create table 学生表(学号char(6)primary key,姓名char(20)unique,性别char(2),年龄smallint,所在系char(20))1.修改表Alter table 表名Add 列名数据类型()//增加列(alter column 列名数据类型()//对原有的基础上修改列)(drop column 列名//对原有的基础上删除列,可一次删除多列)例1. 添加一新列电子邮箱char型长度20Alter table 学生表Add 电子邮箱char(20)例2. 修改学生表列电子邮箱数据类型长度为22Alter table 学生表alter column 电子邮箱varchar(22)例3.删除学生表的电子邮箱列Alter table 学生表drop column 电子邮箱3.删除表Drop table 表名例删除学生表Drop table 学生表四.数据更新1.插入数据InsertInto 表名()Values 值()例1 插入一行数据到学生表的学生InsertInto 学生表(学号,姓名,性别,年龄,所在系)Values (‘201215126’,‘张成民’,‘男’,18,‘计算机系’)1.修改数据Update 表名Set 列名=表达式Where 条件1)修改某元祖的值例将学生201215121的年龄改为22Update 学生表Set 年龄=22Where 学号=‘201215121‘1)修改多个元祖的值例将所有学生年龄增加一岁Update 学生表Set 年龄=年龄+11)带子查询的修改语句例将计算机科学系全体学生成绩置零Update 选课表Set 成绩=0Where 学号in(select 学号From 学生表Where 所在系=‘计算机科学系’)1)修改表名Sp_rename 旧对象名,新对象名例课程表更名为课程信息表Sp_rename 课程表,课程信息表3.删除数据Deletefrom 表名Where 条件例将课程信息表中c程序设计课程信息删除DeleteFrom 课程信息表Where 课程名=‘c程序设计’五.使用约束1.非空约束(NOT NULL)例创建一个学生表使姓名,性别为非空约束学号为主键Create table 学生表(学号char(6)primary key,姓名char(20)NOT NULL,性别char(2)NOT NULL,年龄smallint,所在系char(20))1.唯一约束(UNIQUE)例创建一个学生表使姓名,性别为唯一约束学号为主键Create table 学生表(学号char(6)primary key,姓名char(20)UNIQUE,性别char(2)UNIQUE,年龄smallint,所在系char(20))1.Check约束(检查列值是否满足一个条件表达式)1.完整性约束命令子句Constraint 完整性约束条件名(包括非空主键唯一外键check约束等)约束条件例1创建一个学生表使性别只允许为‘男’或‘女’,年龄在20到30之间Create table 学生表(学号char(6)primary key,姓名char(20)UNIQUE,性别char(2)CHECK((性别=‘男’)or (性别=‘女’)),年龄smallint CHECK(年龄between 20 and 30),所在系char(20))2 利用T-SQL命令设置课程表中的考核方式只能取值‘考试’或‘考查’,学分的值为1-6之间Alter table 课程表with checkAdd constraint CK_课程表_1 check(考核方式in (‘考查’,‘考试’))Alter table 课程表with nocheckAdd constraint CK_课程表_2 check(学分between 1 and 6)1.主键约束(PRIMARY KEY)例创建一个学生表使姓名,性别为唯一约束学号为主键Create table 学生表(学号char(6)primary key,(在列定义后设置主键)姓名char(20)UNIQUE,性别char(2)UNIQUE,年龄smallint,所在系char(20))1.外键约束(FOREIGN KEY)Constraint 约束名FOREIGN KEY(列名)Reference 被引用表(列名)[on delete cascade(级联删除)|on update cascade(级联更新)]例创建选课表设置选课表的课程号为外键引用课程表课程号Create table 选课表(学号char(6)primary key,课程号char(11)Reference 课程表(课程号)on update cascade,成绩numeric(5,1))7.默认约束(DEFAULT)Constraint 约束名DEFAULT 常量表达式可在创建表中数据类型后直接加例修改课程表设置考核方式默认值为‘考试’Alter table 课程表Add constraint df_课程表_考核DEFAULT‘考试’)for 考核方式六.数据查询1.单表查询1)选择列查询例查询全体学生姓名学号Select 姓名,学号From 学生表1)查询全部列例查询全体学生姓名学号Select *From 学生表1)查询经过计算的值例查询全体学生姓名及出生年份Select 姓名,2017-年龄From 学生表1)消除取值重复的行(distinct)例查询选修了课程的学生学号结果取消重复行Select distinct 学号From 学生表1)查询满足条件的元祖(where子句)•比较大小(> = < 等)例查询选修了课程为‘计算机’的学生学号结果取消重复行Select distinct 学号From 学生表Where 课程=‘计算机’•确定查找范围(between and)例查询成绩为80-90的学生学号结果取消重复行Select distinct 学号From 选课表Where 成绩between 80 and 90•确定集合(in)例查询成绩为80,90,100的学生学号结果取消重复行Select distinct 学号From 选课表Where 成绩in(80,90,100)•字符匹配(like )%:任意长度的字符串_(下划线):任意单个字符例1查询所有姓刘的学生姓名学号结果取消重复行Select distinct 姓名,学号From 学生表Where 姓名like‘刘%’2查询名字中第二个字是阳学生姓名学号结果取消重复行Select distinct 姓名,学号From 学生表Where 姓名like‘_阳%’•空值查询(is null/not null)例查询成绩为空的中第二个字是阳学生姓名学号结果取消重复行Select distinct 姓名,学号From 学生表Where 姓名like‘_阳%’•多重条件查询(and or in)例查询成绩为80以上的女同学的姓名学号结果取消重复行Select distinct 姓名,学号From 学生表,选课表Where 学生表.学号=选课表.学号And 成绩>=80 AND 性别=‘女’6)设置字段别名(as)表达式as 别名或字段别名= 表达式例查询学生姓名性别年龄Select 姓名as学生姓名,性别,datediff(year,出生日期,getdate())as年龄From 学生表或Select 学生姓名=姓名,性别,年龄=datediff(year,出生日期,getdate())From 学生表2.Order by子句(对查询结果默认升序(asc)降序(desc))例查询选修了3号课程的学生学号成绩结果按分数降序排列Select 成绩,学号From 选课表Where 课程号=‘3’Order by成绩desc2.聚集函数(count 统计个数,sum 求和,avg 求平均数,max 最大数,min 最小数)只能用于select,group by,having 子句中不能用于where条件句中例查询选修课程号为1的学生最高成绩Select max(成绩)From 选课表Where 课程号=‘1’2.Group by ...... having子句(功能为分组)例1.求各个课程号及相应的选课人数Select 课程号,count(学号)From 选课表Group by课程号2.查询选修了三门以上课程的学生学号Select 学号From 选课表Group by学号having count(*)> 3(having子句作用范围为Group by后)3.查询平均成绩大于等于90分的学生学号和平均成绩Select 学号avg(成绩)From 选课表Group by学号having avg(成绩)>=90七.多表查询1.表连接用where子句连接两个表Where 表一.列名(比较运算符>,=,<)表2.列名例查询每个学生及选修课程的情况(用到学生表,选课表)Select 学生表.*,选课表.*(如查询的属性在两个表不唯一则不用加表前缀)From 学生表,选课表where学生表.学号=选课表.学号1.多表连接例查询每个学生的学号,姓名,选修的课程名及成绩(用到学生表,课程表选课表)Select 学生表.学号,姓名,课程名,成绩(查询的属性在两个表不唯一则不用加表前缀)From 学生表,课程表,选课表where学生表.学号=选课表.学号and 课程表.课程号=选课表.课程号1.带in的子查询(嵌套查询)例查询与‘刘晨’在同一个系学习的学生的学号,姓名Select 学号,姓名,系名From 学生表Where系名in(Select 系名From 学生表Where姓名=‘刘晨’)1.带比较运算符的子查询(>,<,=,>=,<=,!=)例查询与‘刘晨’在同一个系学习的学生的学号,姓名Select 学号,姓名,系名From 学生表Where系名in(Select 系名From 学生表Where姓名=‘刘晨’)八.建立索引1.建立索引Create [unique(唯一)][clustered ( 聚集) ][nonclustered ( 非聚集)]Index 索引名On (表/视图)(列名[asc(升序)][desc(降序)])With [pad_index][fillfactor=填充因子][drop_existing]例在学生表上创建一个名为XS XM的非唯一性非聚簇索引索引关键字为姓名升序填充因子为50%Create nonclusteredIndex XS XMOn 学生表(姓名asc)With fillfactor=502.删除索引Drop index 表名.索引名九.视图1.定义视图1)建立视图Create view 视图名列名AsSelect(在视图后加上with check option子句以后对该视图进行增删改时则自动添加)例建立信息系学生的视图Create view 信息系学生AsSelect 学号,姓名,年龄From 学生表Where 系别=‘信息系’1)删除视图Drop view 视图名(如选择级联删除视图名后加cascade)例删除视图BT_S和视图IS_S1Drop view BT_SDrop view IS_S1(拒绝执行因为与另一个视图有连接所以后面加cascade)2.查询视图!同表查询唯一区别在于from中添加的为视图名!2.更新视图(指对视图进行增删改,由于对视图修改最后都归结于对表的修改所以修改视图数据=修改表数据)函数1、标量值create function函数名(@变量类型)returns返回值类型beginreturnend例:给专业名求男女比例CREATE FUNCTION某专业男女比例(@专业名varchar(20))RETURNS numeric(6,2)ASBEGINdeclare@man intdeclare@woman intselect@man=count(*)from学生表,专业表,班级表where学生表.学号=班级表.班号and班级表.专业=专业表.专业号and性别='男'and 专业名=@专业名select@woman=count(*)from学生表,专业表,班级表where学生表.学号=班级表.班号and班级表.专业=专业表.专业号and性别='女'and 专业名=@专业名return cast(@man as float)/cast(@woman as float)END执行select dbo.某专业男女比例('数据库')2、表值函数给班名和课程名求某班某课成绩单CREATE FUNCTION某班某课成绩单(@班名char(20),@课程名varchar(20))RETURNS TABLEASRETURN(select班名,学生表.学号,姓名,课程名,成绩from学生表,课程表,班级表,选课表where课程表.课程号=选课表.课程号and学生表.学号=选课表.学号and学生表.班号=班级表.班号and班名=@班名and课程名=@课程名)GO执行select*from dbo.某班某课成绩单('嵌入式班','java程序设计')3、CREATE FUNCTION某班平均函数(@班号char(5))RETURNS TABLEASRETURN(SELECt课程号,avg(成绩)平均成绩from选课表,学生表where学生表.学号=选课表.学号and班号=@班号group by课程号)GO调用select*from dbo.某班平均函数('1001')十.存储过程1.存储过程创建与执行(1)创建存储过程Create proc[edure] 存储过程名[ @参数数据类型[output(指明返回参数)] ]AsBeginSql语句[ ]End说明:存储过程可以带参数也可不带参数可以输入也可输出例1. 创建“学生名单”存储过程功能为输出所有学生名单Create procedure 学生名单AsBeginSelect 学号,姓名From 学生表End例2.创建“某班学生名单”存储过程其功能查看某个班级学生名单结果按学号排序Create procedure 某班学生名单@班名varchar (20)AsBeginSelect 学号,姓名From 学生表,班级表Where 学生表.班号= 班级表.班号and班名=@班名Order by 学号End例3.创建“查询学生”存储过程功能根据学号查询学生姓名年龄Create procedure 查询学生@学号char(11),@姓名nchar(5)output,@年龄int outputAsBeginSelect @姓名= 姓名,@年龄=datediff(year,出生日期,getdate())From 学生表Where 学号=@学号End(2)执行存储过程Execute 存储过程名@参数=[值]例1 查看学校学生名单Execute 学生名单例2 查看计算机应用071班学生名单Execute 某班学生名单@班级=‘计算机应用071班’例3 查看学号为“20070101101”的学生姓名年龄declare@姓名nchar(5)declare@年龄intexec查询学生'15999015',@姓名output,@年龄outputprint@姓名print@年龄查看存储过程(1)查看存储过程的定义Exec sp_helptext “”(2)查看存储过程的参数和数据类型信息Exec sp_help “ ”(3)查看存储过程的依赖关系Exec sp_depends “ ”2.修改存储过程Alter proc[edure] 存储过程名[ @参数数据类型[output(指明返回参数)] ]AsBeginSql语句[ ]End例修改“学生名单”存储过程结果按学号排序alter procedure 学生名单AsBeginSelect 学号,姓名From 学生表Order by 学号End2.删除存储过程Drop procedure 存储过程名例将存储过程“学生名单”删除Drop procedure 学生名单十一.触发器1.创建触发器Create trigger 触发器名On 表名/视图名{ for / after / instead of }{ [ insert ] [ update ] [ delete ] 指定表/视图执行哪条语句时激活触发器关键字} AsSql 语句例1.对学生表创建插入触发器当有新纪录插入表时更新班级表中相应班级人数Create trigger 增加学生On 学生表after insertAsBeginSet nocount onIf update(班级)BeginUpdate 班级表Set 学生人数=学生人数+1From insertedWhere 班级表.班号=inserted.班级EndEnd例2.对学生表创建删除触发器当删除一条纪录时减少班级表中相应班级人数Create trigger 删除学生On 学生表after deleteAsBeginSet nocount onBeginUpdate 班级表Set 学生人数=学生人数-1From deletedWhere 班级表.班号=deleted.班级EndEnd例3.对学生表创建更新触发器当一条纪录被更新时修改班级表中相应班级人数Create trigger 更新学生On 学生表after updateAsBeginSet nocount onIf update(班级)BeginUpdate 班级表Set 学生人数=学生人数-1From deletedWhere 班级表.班号=deleted.班级EndEnd1.查看触发器(1)查看触发器的定义Exec sp_helptext “”(2)查看触发器的参数和数据类型信息Exec sp_help “ ”(3)查看触发器的依赖关系Exec sp_depends “ ”1.修改触发器Alter trigger 触发器名On 表名/视图名{ for / after / instead of }{ [ insert ] [ update ] [ delete ] 指定表/视图执行哪条语句时激活触发器关键字}AsSql 语句4.删除触发器Drop trigger 触发器名例将触发器“更新学生”删除Drop trigger 更新学生。