第2章 SQL语言
第2章sq语句

注意:属性列与常量的对应不仅数量而且顺 序都得对应,若属性列中没出现的属性在新 记录中这些列为空值 若没属性列则必须为表中每个属性都赋值 例:将一个学号为46789、性别为男、名叫 王红的学生插入学生表。
2)使用select子查询为一条记录或多条记录指定数 据值。 格式:insert [into] 表名[(属性1,属性2……)] select 子查询 例:首先在student数据库中建立一个新表‘新成 绩表’,字段有学号,姓名,课程名,成绩。 再使用sql语句将student数据库中01计算机一班 的学生成绩插入到‘新成绩表’中。
含有多表的几个查询应用
1.统计各班学生的人数,显示结果班级名称、 人数。 2.显示考试总分最高的三位同学信息,结果 包括学号、姓名、总分 3.显示所有学生的考试成绩,结果包括学号、 姓名、课程名称、成绩
左连接 格式:数据表1 left join 数据表2 on 连接表达式 含义:使用左连接进行查询的结果集将包括数据 表1中的所有记录,而不仅仅是连接字段所匹配 的记录。 例29:班级表与学生表进行左连接,显示学号, 姓名、班级编号,班级名称
1、SQL的历史 在70年代初,提出了关系模型。70年代中期,IBM公司在研 制 SYSTEM R关系数据库管理系统中研制了SQL语言,最 早的SQL语言是在1976 年 11 月公布的。 1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS数据库系统中也实现了SQL。 1986年10月,美国ANSI采用SQL作为关系数据库管理系统的 标准语言(ANSI X3. 135-1986),后为国际标准化组织(ISO) 采纳为国际标准。 1989年,美国ANSI采纳在ANSI X3.135-1989报告中定义的关 系数据库管理系统的SQL标准语言,称为ANSI SQL 89, 该标准替代ANSI X3.135-1986版本。 目前,所有主要的关系数据库管理系统支持某些形式的SQL 语言, 大部分数据库打算遵守ANSI SQL89标准。
SQL语言

例11.15:输出score表中的最高分
11.3.4 使用聚合函数
11.3 SQL数据查询功能
SQL命令为: SELECT AVG(degree) as '课程平 均分' FROM score WHERE cno='3-105'
SQL命令为: SELECT cno,AVG(degree) AS " 平均分" FROM score WHERE cno LIKE '3*' GROUP BY cno HAVING COUNT(*)>=3
11.3 SQL数据查询功能
SQL-SELECT关系运算符
运算符 = <> > >= < <= BETWEEN„AND IN LIKE 含义 等于 不等于 大于 大于或等于 小于 小于或等于 在两组之间 在一组值的范围中 与一个字符图式匹配①
11.3.2 选择查询
11.3 SQL数据查询功能
SQL命令为: SELECT * FROM score WHERE degree BETWEEN 60 and 80
11.3.4 使用聚合函数
11.3 SQL数据查询功能
SQL命令为: SELECT COUNT(*) AS 95031班人数 FROM student WHERE class='95031'
SQL命令为: SELECT MAX(degree) AS 最高分 FROM score
例11.14:输出95031班的学生人数
11.2 SQL数据定义功能
例11.1:建立一个名称为student2的学生表
11.2 SQL数据定义功能
新建的student2表的结构(例11.1)
第二章理论课SQL查询和SQL函数

《Oracle数据库应用》理论课第2章SQL 查询和SQL 函数⏹本章技能目标⏹了解Oracle 数据类型⏹了解数据定义语言和数据操纵语言⏹了解事务控制语言和数据控制语言⏹掌握SQL 操作符和SQL 函数1.SQL简介SQL 是Structured Query Language(结构化查询语言)的首字母缩写词。
SQL 是数据库语言,Oracle 使用该语言存储和检索信息。
表是主要的数据库对象,用于存储数据。
通过SQL可以实现与Oracle 服务器的通信。
下图显示了用户执行命令时与Oracle服务器的通信。
与Oracle服务器通信SQL 支持下列类别的命令:数据定义语言(DDL)2数据操纵语言(DML ) 事务控制语言(TCL ) 数据控制语言(DCL )数据定义语言:Create(创建),Alter (更改)和Drop(删除)命令 数据操纵语言:Insert (插入),Select (),Delete (),Update () 事务控制语言:Commit (),SavePoint (),Rollback () 数据控制语言:Grant (),Revoke ()2. Oracle 数据类型创建表时,必须为各个列指定数据类型。
下面介绍Oracle 中常用的数据类型。
以下是 Oracle 数据类型的类别:2.1 字符数据类型CHAR 数据类型当需要固定长度的字符串时,使用 CHAR 数据类型。
CHAR 数据类型存储字母数字值。
CHAR 数据类型的列长度可以是 1 到 2000 个字节。
如果输入的值小于指定的长度,数据库则用空格填充至固定长度。
如果用户输入的值大于指定的长度,数据库则返回错误报告。
V ARCHAR2数据类型V ARCHAR2数据类型支持可变长度字符串。
V ARCHAR2数据类型存储字母数字值。
V ARCHAR2数据类型的大小在1至4000个字节范围内。
在定义该数据类型时,应该指定其大小。
SQL高级 第2章

13
--定义变量 DECLARE @maleScore float DECLARE @femaleScore float --第一步,分别统计男生和女生的平均成绩并存入局部变量中。 SELECT @maleScore = AVG((Chinese + English + Math) / 3) FROM StuScore WHERE StuSex = '男' SELECT @femaleScore = AVG((Chinese + English + Math) / 3) FROM StuScore WHERE StuSex = '女' PRINT '男生平均成绩:' + CONVERT(VARCHAR(5),@maleScore) PRINT '女生平均成绩:' + CONVERT(VARCHAR(5),@femaleScore) --第二步,用IF-ELSE结构判断,输出结果。 IF @maleScore >@femaleScore BEGIN PRINT '男生成绩优于女生,男生第一名是:' SELECT TOP 1 * FROM StuScore WHERE StuSex = '男' ORDER BY (Chinese + English + Math) DESC END ELSE BEGIN PRINT '女生成绩优于男生,女生第一名是:' SELECT TOP 1 * FROM StuScore WHERE StuSex = '女' ORDER BY (Chinese + English + Math) DESC END
数据库SQL第二章习题

第二章数据库设计和ER模型一、单项选择题(一)同步练习1.在一个ER模型中,有三个不同的实体集和3个不同的二元联系,其中有一个1一对一联系,一个多对多的联系,根据ER模型转换成关系模型的规则,转换成关系的数目是()。
A.3 B. 4C.5 D. 62.增强的ER模型中,子类与超类之间存在着()。
A.相容性 B.一致性C.继承性 D.完整性3.在数据库设计中,用ER模型图来描述信息结构但不涉及信息在计算机中的表示,他属于数据库设计的()阶段。
A.需求分析 B. 概念设计C.逻辑设计 D. 物理设计4.数据库逻辑设计结构的主要任务是()。
A.建立ER图和说明书 B.创建数据库说明C.建立数据流图 D.把数据送入数据库5.下列不属于数据库逻辑设计阶段应考虑的问题是()。
A.概念模式B.存取方法C.处理要求D.DBMS特性6.设计数据库时首先考虑的是()。
A.数据库应用系统结构B.DBMS结构C.数据库的概念结构D.数据库的控制结构7.下列不属于需求分析阶段工作的是()。
A.分析用户活动B.建立ER图C.建立数据字典D.建立数据流图8.数据流图是在数据库()阶段完成的。
A.逻辑设计B.物理设计C.需求分析D.概念设计9.在关系数据库设计中,设计关系模式是()的任务。
A.需求分析B.概念设计C.逻辑设计D.物理设计10.一个M:N:P的联系可以转化成()个关系模式。
A.3 B.2C.1 D.011.当局部ER图合并成全局ER图时可能出现冲突,不属于合并冲突的是()。
A.属性冲突B.语法冲突C.结构冲突D.命名冲突12.ER图中的联系可以与()个实体有关。
A.0 B.1C.1或多D.多(二)试题09011.学校里规定,一个教师最多可讲授3门课程,最少必须讲授l门课程;每门课程最多5个教师讲授,最少需要一个教师讲授,则教师与课程的基数分别为()A.(1,3),(1,5)B.(3,1),(5,1)C.(1,5),(1,3)D.(5,1),(3,1)08101.教师实体中有教师号、姓名、部门、任教时间、教龄等属性,其中教龄是一个()A.派生属性B.多值属性C.复合属性D.NULL属性08102.对关系的描述不正确...的是()A.关系是一个集合B.关系是一张二维表C.关系可以嵌套定义D.关系中的元组次序可交换07101.设计数据库时,应该首先设计数据库的()A.应用系统结构B.概念结构C.逻辑结构D.物理结构07011将ER模型转换成关系模型的过程属于数据库的()A.需求分析 B. 概念设计C.逻辑设计 D. 物理设计07012用二维表结构表达实体集的模型是()A.概念模型B.层次模型C.网状模型D.关系模型二、填空题(一)同步练习1.ER数据模型一般在数据库设计的__________阶段使用。
《数据库系统原理与设计》课后答案 (第四版,王珊,萨师煊)

第1章绪论1 .试述数据、数据库、数据库系统、数据库管理系统的概念。
答:( l )数据( Data ) :描述事物的符号记录称为数据。
数据的种类有数字、文字、图形、图像、声音、正文等。
数据与其语义是不可分的。
解析在现代计算机系统中数据的概念是广义的。
早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。
现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。
数据与其语义是不可分的。
500 这个数字可以表示一件物品的价格是500 元,也可以表示一个学术会议参加的人数有500 人,还可以表示一袋奶粉重 500 克。
( 2 )数据库( DataBase ,简称 DB ) :数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
( 3 )数据库系统( DataBas 。
Sytem ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
解析数据库系统和数据库是两个概念。
数据库系统是一个人一机系统,数据库是数据库系统的一个组成部分。
但是在日常工作中人们常常把数据库系统简称为数据库。
希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。
( 4 )数据库管理系统( DataBase Management sytem ,简称 DBMs ):数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。
DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。
解析DBMS 是一个大型的复杂的软件系统,是计算机中的基础软件。
目前,专门研制DBMS 的厂商及其研制的DBMS 产品很多。
第二章 SQL

3
2005简介 SQL Server 2005简介
Server和 Server有着核心的联系 1987年 有着核心的联系. Microsoft SQL Server和Sybase SQL Server有着核心的联系.1987年,Microsoft SQL Server最早起始于 最早起始于Sybase Server.1988年微软公司 Sybase公司和Ashton-Tate公司共 年微软公司, 公司和Ashton Server最早起始于Sybase SQL Server.1988年微软公司,Sybase公司和Ashton-Tate公司共 同合作进行Sybase Server的开发 这种产品基于OS/2操作系统.后来由于某些原因, 的开发, OS/2操作系统 同合作进行Sybase SQL Server的开发,这种产品基于OS/2操作系统.后来由于某些原因, Ashton-Tate公司退出了该产品的开发 而微软公司和Sybase 公司退出了该产品的开发, Sybase公司签署了一个共同开发协 Ashton-Tate公司退出了该产品的开发,而微软公司和Sybase公司签署了一个共同开发协 就是把SQL Server移植到微软新开发的 移植到微软新开发的Windows NT操作系统上 操作系统上. 议, 就是把SQL Server移植到微软新开发的Windows NT操作系统上.这两家公司的共 同开发结果是发布了用于Windows NT操作系统的 4. 同开发结果是发布了用于Windows NT操作系统的 SQL Server 4.这也是这两家公司合 作的结束点. 4版本发布之后 微软公司和Sybase公司在SQL Server上的开 版本发布之后, Sybase公司在 作的结束点.在SQL Server 4版本发布之后,微软公司和Sybase公司在SQL Server上的开 发开始分道扬镳.微软公司致力于用于Windows NT平台的 平台的SQL Server的开发 的开发, 发开始分道扬镳.微软公司致力于用于Windows NT平台的SQL Server的开发,而Sybase 公司致力于用于UNIX平台的SQL Server的开发 UNIX平台的 的开发. 6是完全由微软公司开发的 公司致力于用于UNIX平台的SQL Server的开发.SQL server 6是完全由微软公司开发的 第一个SQL Server版本 1996年 微软公司把SQL Server产品升级到了6.5版本 版本. 产品升级到了6.5版本. 第一个SQL Server版本.1996年,微软公司把SQL Server产品升级到了6.5版本.经过两 年的开发周期, 1998年微软公司发布了有巨大变化的 年微软公司发布了有巨大变化的SQL 7.2000年微软公司 年的开发周期,在1998年微软公司发布了有巨大变化的SQL Server 7.2000年微软公司 又迅速发布了Microsoft 2000版本 版本. 2005年微软公司又正式发布了 年微软公司又正式发布了Microsoft 又迅速发布了Microsoft SQL Server 2000版本.在2005年微软公司又正式发布了Microsoft 2005版本 版本. SQL Server 2005版本. 2005是 Server产品的最新版本 产品的最新版本, Microsoft SQL Server 2005是Microsoft SQL Server产品的最新版本,是微软公司为用 户提供的一个完整的数据库解决方案, 户提供的一个完整的数据库解决方案,也是一些优秀的数据库专家为新世纪制作的杰 出纪念品,该版本在可伸缩性,可用性,可管理性方面有了很大的提高. 出纪念品,该版本在可伸缩性,可用性,可管理性方面有了很大的提高.
习题参考答案_第2章

第2章关系数据库1.试述关系模型的三个组成部分。
答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
2.试述关系数据语言的特点和分类。
答:关系数据语言可以分为三类:关系代数语言。
关系演算语言:元组关系演算语言和域关系演算语言。
SQL:具有关系代数和关系演算双重特点的语言。
这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。
4.试述关系模型的完整性规则。
在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R 和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。
即属性F本身不是主属性,则可以取空值,否则不能取空值。
5.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:1)求供应工程J1零件的供应商号码SNO:πSno(σSno=…J1‟(SPJ))2)求供应工程J1零件P1的供应商号码SNO:πSno(σSno=…J1‟∧Pno=…P1…(SPJ))3)求供应工程J1零件为红色的供应商号码SNO:πSno(σPno=…P1… (σCOLOR=‟红… (P)∞SPJ))4)求没有使用天津供应商生产的红色零件的工程号JNO:πJno(SPJ)- πJNO(σcity=…天津‟∧Color=…红… (S∞SPJ∞P)5)求至少用了供应商S1所供应的全部零件的工程号JNO:πJno,Pno(SPJ)÷πPno(σSno=…S1… (SPJ))6.试述等值连接与自然连接的区别和联系。
答:连接运算符是“=”的连接运算称为等值连接。
它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CREATE DATABASE Teach
ON
(
NAME=Teach_Data,
FILENAME='D:\Teach_Data.mdf',
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5)
LOG ON
(
NAME=Teach_Log,
FILENAME='D:\Teach_Log.ldf',
12
2.3.1 SQL Server的系统数据库
Master
最重要(系统信息) : 磁盘空间 ;文件分配和使用 ;系统级的配置参 数;登录账号信息 ;SQL Server初始化信息; 系统中其他系统数据库和用户数据库的相关信息
系
Model数据库存储了所有用户数据库和Tempdb数
统
据库的创建模板
默
13
MSSQL Data
2.3.2 SQL Server的实例数据库
实
文
件 夹 下
子 目 录
例 数 据 库
pubs
Northwind
虚构的图书出版公司的基本情况 包含了一个公司的销售数据
14
2.3.3 创建用户数据库
用Enterprise Manager 创建数据库
选中服务器,单击前面的“+”号, 使其展示;选中“数据库”文件 夹,单击鼠标右键,在弹出单上 选择“新建数据库”
[例2-6] 修改teach数据库的名字为教师信息表
ALTER DATABASE teach Modify name=教师信息表
25
26
2.3.5 删除用户数据库
用Enterprise Manager删除数据库
用鼠标右击指定的数据库名, 在弹出的菜单中选择“属性” 项
①右击选中 的数据库
删除库项
②右击数据库对象
①展开服务器
③选新建数据库项 15
2.3.3 创建用户数据库
用SQL命令创建数据库
CREATE DATABASE database_name [ ON [ < filespec > [ ,...n ] ] [ , < filegroup > [ ,...n ] ] ] [ LOG ON { < filespec > [ ,...n ] } ] [ COLLATE collation_name ] [ FOR LOAD | FOR ATTACH ]
学号 1310111 1310112 1310113 1310114
学号 1310111 1310112 1310113 1310114
22
[例2-2] 修改teach数据库中的文件Teach_Data,增容方一式条改alt为er一语次句增一加2MB。
次只能修改文件
ALTER DATABASE teach
的一个参数
MODIFY FILE
(
NAME = Teach_Data,
FILEGROWTH = 2mb
)
[例2-3] 修改teach数据库,为其增加一个文件组f1
核心功能的语句只有9个命令动词
SQL功能 数据定义(数据库对象的定义、修改、删除) 数据操纵(数据查询和更新) 数据控制(权限的授予与收回)
3、 SQL支持三级数据模式结构
命令动词 Create,alter,drop Select,update,insert,delete Grant,revoke(deny)
2.4.1 关系型数据库几个基本概念
1、关系:关系就是一张二维表
学号 1310111 1310112 1310113 1310114
姓名 王芳 张磊 李华 丁自然
性别 女 男 男 男
出生日期 1987-2-10 1988-1-1 1987-6-29 1988-3-9
2、元组、记录:表中的一行
பைடு நூலகம்
元组、记录
16
说明:
1、SQL语言不区分大小写 2、[ ]表示其内容可以 省略;<>里的内容必须 给出;|表示多项选一项。 3、合法的标识符:第一 个字必须是字母、汉字、
下划线@和#开头,后跟
若干个字母、数字、汉
字、下划线@、#和$, 但不能全为符号
用SQL语言新建数据库
17
[例2-1] 用SQL命令创建一 个教学数据库Teach,数据 文件的逻辑名称为 Teach_Data,数据文件物理 地存放在D:盘的根目录 下,文件名为 TeachData.mdf,数据文件 的初始存储空间大小为 10MB,最大存储空间为 50MB,存储空间自动增长 量为5MB;日志文件的逻 辑名称为Teach_Log,日志 文件物理地存放在D:盘 的根目录下,文件名为 TeachLog.ldf,初始存储空 间大小为10MB,最大存储 空间为25MB,存储空间自 动增长量为5MB。
删除库项 ②选择属性项
27
2.3.5 删除用户数据库
用SQL命令删除数据库
DROP DATABASE database_name [,...n] [例2-7] 删除数据库Teach。
DROP DATABASE Teach 说明:一个drop 语句可以一次删除多个数据库
28
2.4 创建与使用数据表
4
视图 1
SQL 视图 2
视图 3
外模式
基本表
基本表
基本表
模式
12
3
4
存储文件 1
存储文件 2
内模式
SQL语言支持的关系数据库的三级模式结构
5
视图是通过不同路径去看一个实际表,就像 一个窗口一样,通过窗口去看外面的高楼, 我们可以看到高楼的不同部分,而透过视图 我们可以看到数据库中自己感兴趣的内容。
组件
功能
企业管理器
管理所有的数据库系统工作和服务器工作
查询分析器
执行Transact-SQL命令等SQL脚本程序
服务管理器
启动、暂停或停止SQL Server的四种服务
客户端网络实用工具 配置客户端的连接、测定网络库的版本信息以及 设定本地数据库的相关选项
服务器网络实用工具 配置服务器端的连接、测定网络库的版本信息
6、关系的性质 每一列中的分量必须来自同一个域,必须是同一类 型的数据。 不同的列可来自同一个域,每一列称为属性,不同 的属性必须有不同的名字 。 列的顺序可以任意交换。 关系中元组的顺序(即行序)可任意。 关系中每一分量必须是不可分的数据项。
说明:只有满足上述性质的二维表才能称为关系
30
2.4.1 关系型数据库几个基本概念
6
2.2 了解SQL Server 2008
SQL Server是一个关系数据库管理系统
企业版(Enterprise Edition) 标准版(Standard Edition) 个人版(Personal Edition) 开发者版(Developer Edition)
7
2.2.1 SQL Server 2000的主要组件
只有一
可有n(n>=0)个
存放数个据库数据和数据库对象的文件
主要数据文件(.mdf ) +次要数据文件(.ndf )
记录数据库更新情况,扩展名为.ldf 当数据库破坏时可以用事务日志还原数据 库内容
11
文件组
文件组(File Group)是将多个数据文件集合起来形 成的一个整体 ,实现分组管理 主要文件组(Primary)+次要文件组 (自定义) 一个数据文件只能存在于一个文件组中,一个文件 组也只能被一个数据库使用 日志文件不分组,它不能属于任何文件组
第2章 关系数据库标准语言——SQL
SQL语言的基本概念与特点 了解SQL Server 2008 创建与使用数据库 创建与使用数据表 创建与使用索引 数据查询 数据更新 视图 数据控制
2
结构化查询语言 Structured Query Language
数据定义(Data Definition Language,DDL)
SIZE=5,
MAXSIZE=25,
FILEGROWTH=5)
18
在企业管理器中新建数据库
19
2.3.4 修改用户数据库
用Enterprise Manager修改数据库
用鼠标右击指定的数据库名, 在弹出的菜单中选择“属性” 项
①右击选中 的数据库
删除库项
删除库项 ②选择属性项
20
上机作业(写实验报告)
Model
通过更改Model数据库的设置可以大大简化数据
认 数
库及其对象的创建设置工作
据
库
Msdb
存储计划信息以及与备份和还原相关的信息
MSSQL Data
文
件 夹 下
子 目 录
Tempdb
Tempdb数据库用作系统的临时存储空间 存储临时表,临时存储过程和全局变量值 ,创建临 时表 ,存储用户利用游标说明所筛选出来的数据
企业管理器的管理工作
管理数据库 管理数据库对象
管理备份
管理复制 管理登录和许可 管理SQL Server Agent
管理SQL Server Mail
9
2.2.3 查询分析器
使用查询分析器的熟练程度是衡量一个SQL Server用户水平的标准。
10
2.3 创建与使用数据库
…
数据库
数据文件1 数据文件n 事务日志文件
数据操纵(Data Manipulation Language,DML)
数据控制 (Data Control Language ,DCL)
3
2.1 SQL语言的基本概念与特点
2.1.1 SQL语言特点
三个特点: 1、SQL 具有自主式和嵌入式语言两种使用方式 2、SQL具有语言简洁、易学易用的特点。