第三章 SQL语言
第三章 关系数据库查询语言SQL

20112011-2-25
主讲:王颂华
9
3.2 数据定义
3.2.3 索引的建立与删除
1.建立索引 1.建立索引 索引是数据库随机检索的常用手段,它实际上是记 录的关键字与其相应地址的对应表。借助于索引结构,可 以迅速查找到某个属性A 以迅速查找到某个属性A具有指定值的那些元组。对一个 基本表,可以按需要建立若干个索引,以便提供多种存取 路径。 建立索引的语句格式为: CREATE[UNIQUE][CLUSTER]INDEX<索引名 CREATE[UNIQUE][CLUSTER]INDEX<索引名 > ON<表名>(<列名1>[<次序>],[<列名2>[<次序 ON<表名>(<列名1>[<次序>],[<列名2>[<次序 >]]… >]]…);
3.2 数据定义
2)主关键字的定义 一个关系可能有多个候选关键字,但在定义基本表 时只能定义一个主关键字。一个关系的主关键字由一个或 几个属性构成,在CREATE TABLE中声明主关键字有两 几个属性构成,在CREATE TABLE中声明主关键字有两 种方法: (1)在列出关系模式的属性时,在属性及其类型后加 上保留字PRIMARY KEY,表示该属性是主关键字。 上保留字PRIMARY KEY,表示该属性是主关键字。 (2)在列出关系模式的所有属性后,再附加一个声明: PRIMARY KEY(<属性1>[,<属性2>,…]) KEY(<属性1 ,<属性2>,… 如果关键字由多个属性构成,则必须使用第二种方 法。
20112011-2-25 主讲:王颂华 12
3.3 数据查询
3.3.1 单表查询
关系数据库标准语言SQL

第三章关系数据库标准语言SQL1、视图:2、SQL:3、基本表:4、索引:5、下列的SQL语句中,()不是数据定义语句。
A、CREA TE INDEXB、DELETE TABLEC、CREA TE VIEWD、ALTER TABLE6、有关系S(S#,SNAME,SEX),C(C#,CNAME),SC(S#,C#,GRADE)。
其中S#是学生号,SNAME是学生姓名,SEX是性别,C#是课程号,CNAME是课程名称。
要查询选修“数据库”课的全体男生姓名的SQL语句是SELECT SNAME FROM S,C,SC WHERE子句。
这里的WHERE子句的内容是()。
A、S、S# = SC、S# and C、C# = SC、C# and SEX=’男’and CNAME=’数据库’B、S、S# = SC、S# and C、C# = SC、C# and SEX in’男’and CNAME in’数据库’C、SEX ’男’and CNAME ’数据库’D、S、SEX=’男’and CNAME=’数据库’7、在数据库技术中,NULL是指()。
A、0B、空格C、无任何值D、空字符串8、SQL语言中,删除一个视图所用的动词是()。
A、DELETEB、DROPC、CLEARD、REMOVE9、若要在一个查询中联接3个表,则需要()个联接条件。
A、1B、2C、3D、不确定10、假设学生关系S(S#,SNAME,SEX),课程关系C(C#,CNAME),学生选课关系SC (S#,C#,GRADE)。
要查询选修“Computer”课的男生姓名,将涉及到关系()A、SB、S,SCC、C,SCD、S,C,SC11、若要在一个等值连接查询中联接N个表,则需要()个联接条件。
A、N- 1B、NC、N+1D、不确定12、对由SELECT--FROM—WHERE—GROUP--ORDER组成的SQL语句,其在被DBMS处理时,各子句的执行次序为()。
第3章 SQL语言

SELECT SNO, CNO, SCORE FROM SC WHERE CNO=‘C1’ OR CNO= ‘C2’ 利用“NOT IN”可以查询指定集合外的元组。 例11 查询没有选修C1,也没有选修C2的学生的学号、课 程号和成绩。 SELECT SNO, CNO, SCORE FROM SC WHERE CNO NOT IN(‘C1’, ‘C2’) 等价于: SELECT SNO, CNO, SCORE FROM SC WHERE CNO!=‘C1’ AND CNO!= ‘C2’
注意:函数SUM和AVG只能对数值型字段进行计算。
23
例16 求选修C1号课程的最高分、最低分及之间相差的分 数 SELECT MAX(SCORE) AS MaxScore, MIN(SCORE) AS MinScore, MAX(SCORE) - MIN(SCORE) AS Diff FROM SC WHERE (CNO = 'C1') 例17 求计算机系学生的总数 SELECT COUNT(SNO) FROM S WHERE DEPT='计算机'
1. SQL语言类似于英语的自然语言,简洁易用。 2. SQL语言是一种非过程语言,即用户只要提出“干什 么”即可,不必管具体操作过程,也不必了解数据的 存取路径,只要指明所需的数据即可。 3. SQL语言是一种面向集合的语言,每个命令的操作对 象是一个或多个关系,结果也是一个关系。 4. SQL语言既是自含式语言,又是嵌入式语言。可独立 使用,也可嵌入到宿主语言中。 自含式语言可以独立使用交互命令,适用于终端 用户、应用程序员和DBA; 嵌入式语言使其嵌入在高级语言中使用,供应用 程序员开发应用程序。
10
例1 查询全体学生的学号、姓名和年龄。 SELECT SNO, SN, AGE FROM S 例2 查询学生的全部信息。 SELECT * FROM S 用‘ * ’表示S表的全部列名,而不必逐一列出。
sql 课件 第3章 关系数据库标准语言SQL

山东财政学院计算机信息工程学院
3、默认文件组
在每个数据库中,同一时间只能有一个文件组是默认 文件组(Default Filegroup)。 当进行数据库操作时,如果不指定文件组,则系统自 动选择默认文件组。 可使用Transact-SQL语句中的alter database语句指 定数据库的默认文件组。 在不特别指定的情况下,系统将主要文件组认定为默 认文件组。
山东财政学院计算机信息工程学院
2、扩展盘区
由8个连续页面组成的数据结构称为一个盘区。 是SQL Server分配给表和索引的基本单位。 扩展盘区可分为统一扩展盘区和混合扩展盘区。 统一扩展盘区由一个数据库对象所有。 混合扩展盘区可以为多个数据库所有,即其中最多 可以放8种数据库对象。
山东财政学院计算机信息工程学院
山东财政学院计算机信息工程学院
例:创建具有两个文件组的数据库bank2
CREATE DATABASE BANK2 ON PRIMARY (NAME=BANK2_1_DAT, FILENAME='d:\bank\bank2_f1dat.mdf', SIZE=20MB, MAXSIZE=50MB, FILEGROWTH=5MB), (NAME=BANK2_2_DAT, FILENAME='d:\bank\bank2_f2dat.ndf', SIZE=10MB, MAXSIZE=40MB, FILEGROWTH=5MB),
山东财政学院计算机信息工程学院
3.2 数据定义
3.2.1 数据库的定义 3.2.2 表的定义 3.2.3 索引的定义
山东财政学院计算机信息工程学院
数据定义
SQL Server数据库由包含数据的表集合和其他对象( 如视图、索引、存储过程、触发器、用户、角色等)组 成,支持三级模式结构。其中用户模式对应于视图,逻 辑模式对应于基本表,物理模式对应于存储文件、索引 等。
第3章:关系数据库标准语言SQL

例6:建立一个“课程”表Course. :建立一个“课程” Create table Course (Cno Cpno Char(4) Primary Key, , Char (4) , Cname Char (40) , Ccredit Smallint, , Foreign Key (Cpno) References Course(Cno) );
不论基本表中原来是否已有数据, 不论基本表中原来是否已有数据 , 新增加 的列一律为空值。 的列一律为空值。
例9:将年龄的数据类型改为整型。
ALTER TABLE Student Alter Column Sage Int; ;
修改原有的列定义有可能会破坏已有数据。 修改原有的列定义有可能会破坏已有数据。
group by:此短语将查询结果按某一列或某几 :
列的值进行分组。Having子句用于与group 列的值进行分组。Having子句用于与group by 子句用于与 子句配合使用,用于说明分组条件。 子句配合使用,用于说明分组条件。
查询分类
单表查询 连接查询 嵌套查询 集合查询
CREATE TABLE Student (Sno Ssex Sage Sdept
CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20) UNIQUE, ,
CHAR(1) , INT, , CHAR(15)); ;
修改
Alter table <表名 表名> 表名
Add <新列名> <新列类型> (列宽度)[完整性约束] Drop Column <列名>|<完整性约束名> Alter Column <列名> <列类型> (列宽度) P87例8,例9,例10 , ,
第三章 SQL

12
使用【对象资源管理器】
4.在【连接到数据库】框中键入“Student”,单击【连接】,连接 到服务器。如果已经连接,则将直接返回到对象资源管理器,并将该服 务器设置为当前服务器,如图3.6所示。
图3.6 对象资源管理器窗口
13
第三节 改变窗口布局
SQL Server Management Studio集成了很多组件,组件的展开会占 用屏幕空间。为了腾出更多空间,使屏幕简洁,布局合理、易用, 用户可以关闭、隐藏或移动Management Studio组件,根据自己的需 要,灵活定制窗口布局,来提高工作效率。
第三章 Management Studio
1
LOGO
本章主题
SSMS的组件 如何配置SSMS 如何保护SQL Server 的外围应用,使其免受攻击
Management Studio
SQL Server Management Studio是SQL Server 2005提供的一种集成的 管理平台,它提供了用于数据库管理的图形工具和功能丰富的开发环 境。Management Studio是SQL Server 2005最重要、最常用的管理工具, 所有的SQL Server对象的建立与管理都可以通过它来完成。 本章主要介绍SQL Server Management Studio的工具组件及其使用方 法。
16
(三)设置窗口的布局属性
可以为SQL Server Management Studio设置启动时打开首选配置的设 计图面,步骤如下: (1)在【工具】菜单上,单击【选项】,弹出【选项】对话框,如 图3.9所示。 (2)展开【环境】,单击【常规】。在【启动时】列表中,包含以 下四个选项: 打开对象资源管理器。这是默认选项。 打开新查询窗口。 打开对象资源管理器和新查询。 打开空环境。 (3)单击首选选项,再单击【确定】。 (4)还有其他选项。例如【在对象资源管理器中隐藏系统对象】, 该选项针对【对象资源管理器】是否显示系统对象而设置。
第3章 关系数据库标准语言SQL_第4版(1-3)

学分 Ccredit 4 2 4 3 4 2 4
SC表
学号 Sno
200215121 200215121 200215121 200215122 200215122
课程号 Cno
1 2 3 2 3
成绩 Grade
92 85 88 90 80
§3.3 数据定义
SQL的数据定义功能: 模式定义、表定义、视图 和索引的定义
被参照建立一个“学生选课”表SC CREATE TABLE SC Cno CHAR(4), Grade SMALLINT, 列级完整性约束条件, Sno是外码,被参照表是 Student
(Sno CHAR(9) REFERENCES Student(Sno) , 主码由两个属性构 成,必须作为表级 完整性进行定义
用户数据库投入运行后,可根据需要随时逐步修 改模式,不影响数据的运行。 数据操作符统一
2.高度非过程化
非关系数据模型的数据操纵语言“面向过程”,
必须制定存取路径
SQL只要提出“做什么”,无须了解存取路径。 存取路径的选择以及SQL的操作过程由系统自动 完成。
3.面向集合的操作方式
SQL
数据流(Data) 元数据流(Meta Data) 对应于视图和部 分基本表
视图1
视图2
外模式
对应于基本表
基本表1 基本表2 基本表3 基本表4
数据词典
(元数据)
模式
对应于存储 文件
存储文件1 存储文件2 内模式
SQL的基本概念(续)
基本表(BASE TABLE):
是独立存在的表, 一个关系对应一个基本表,
嵌入式语言:嵌入高级语言如C,COBOL, FORTRAN,PB等
数据库的标准语言SQL

学时数:12学时课程类型:理论课程章节:第三章 数据库的标准语言SQL§3.1SQL查询§3.2 SQL数据定义§3.3 SQL数据操作§3.4 SQL数据控制§3.5数据字典教学目的:了解SQL的背景知识掌握SQL查询语句掌握SQL数据定义语句CREATE、DROP、ALTER掌握数据操纵语句INSERT、DELETE、UPDATE掌握数据控制语句GRANT、REVOKE教学要求:牢记有关概念,掌握SQL查询教学重点:1. SQL数据定义:基本表、视图、别名,建立索引2. SQL数据操纵:插入、更新、删除3. SQL数据查询教学难点:SQL查询:简单查询、联接查询、嵌套查询、库函数查询、集合运算教学手段:讲解、分组讨论、习题主要教学内容:1.SQL查询:简单查询、联接查询、嵌套查询、库函数查询、集合运算2.SQL数据定义:基本表、视图、别名,建立索引3.SQL数据操作:插入、更新、删除4.SQL数据控制5.数据字典第三章 数据库的标准语言SQLSQL是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询。
SQL是一个通用的、功能极强的关系数据库语言。
SQL的特点SQL语言之所以能够为用户和业界所接受,并成为国际标准,是因为它是一个综合的、功能极强同时又简捷易学的语言。
SQL语言集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)和数据控制(Data Control)功能于一体,主要特点包括:1.综合统一数据库系统的主要功能是通过数据库支持的数据语言来实现的。
非关系模型(层次模型、网状模型)的数据语言一般都分为模式数据定义语言(Schema Data Definition Language,简称模式DDL)、外模式数据定义语言(Subschema Data Definition Language,简称外模式DDL或子模式DDL)、与数据存储有关的描述语言(Data Storage Description Language,简称DSDL)及数据操纵语言(Data Manipulation Language,简称DML),分别用于定义模式、外模式、内模式和进行数据的存取与处置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8字节,存储的货币数据值介于–263 与 263-1 字节,存储的货币数据值介于– 之间,精确到货币单位的千分之十。 之间,精确到货币单位的千分之十。最多可以 包含19 19位数字 包含19位数字 4字节,存储的货币数据值介于 – 字节, 之间, 214,748.3648 与 +214,748.3647 之间,精确 到货币单位的千分之十 返回首页 下一页 上一页
返回首页
下一页
上一页
3.3 数据定义功能
基本表的创建 表的创建: 一、 基本表的创建: Create Table
格式: 表名( 格式:CREATE TABLE 表名( 类型(长度) 列级完整性约束定义] 列名 类型(长度) [列级完整性约束定义] 类型(长度) 列级完整性约束定义] {, 列名 类型(长度) [列级完整性约束定义] … } [, 表级完整性约束定义 ] ) 在列级完整性约束定义处可以定义如下约束: 在列级完整性约束定义处可以定义如下约束: NULL: NOT NULL:限制列取值非空 DEFAULT:给定列的默认值,使用形式为: DEFAULT:给定列的默认值,使用形式为:DEFAULT 常量 UNIQUE: UNIQUE:限制列取值不重复 CHECK:限制列的取值范围,使用形式为:CHECK(约束表达式) CHECK:限制列的取值范围,使用形式为:CHECK(约束表达式) KEY: PRIMARY KEY:指定本列为主码 KEY:定义本列为引用其他表的外码。使用形式为: FOREIGN KEY:定义本列为引用其他表的外码。使用形式为: KEY][ 列名> ][< <外表名 外表名> 外表列名> [FOREIGN KEY][<列名>] REFERENCES <外表名>(<外表列名>) 返回首页 下一页 上一页
三、 SQL语言功能 语言功能
SQL按其功能可分为四大部分:数据定义功能、数据控制 按其功能可分为四大部分:数据定义功能、 按其功能可分为四大部分 功能、数据查询功能和数据操纵功能。 功能、数据查询功能和数据操纵功能。
Sql功能 功能
数据定义 数据查询 数据操纵 数据控制
命令动词
CREATE DROP ALTER SELECT INSERT UPDATE DELETE GRANT REVOKE
返回首页
下一页
上一页
二、 SQL语言特点 语言特点
高度非过程化的语言:用户只需提出“干什么” 至于“ 1. 高度非过程化的语言:用户只需提出“干什么”,至于“怎 么干” DBMS解决 用户只需要在查询语句中提出需要什么, 解决; 么干”由DBMS解决;用户只需要在查询语句中提出需要什么, DBMS即可按路径存取 并把结果返回给用户。 即可按路径存取, DBMS即可按路径存取,并把结果返回给用户。 面向集合的语言:每一个SQL的操作对象是一个或多个关系, SQL的操作对象是一个或多个关系 2. 面向集合的语言:每一个SQL的操作对象是一个或多个关系, 操作的结果也是一个关系。 操作的结果也是一个关系。 3.能以多种方式使用:即可以直接以命令方式交互使用,又可嵌 3.能以多种方式使用:即可以直接以命令方式交互使用,又可嵌 能以多种方式使用 命令方式交互使用 入到宿主语言(高级程序设计语言)中使用。 入到宿主语言(高级程序设计语言)中使用。 具有查询、操作、定义和控制四种语言一体化的特点。 4. 具有查询、操作、定义和控制四种语言一体化的特点。它只 向用户提供一种语言,但该语言具有上述多种功能, 向用户提供一种语言,但该语言具有上述多种功能,且每种 操作只需一种操作符。 操作只需一种操作符。 5.语言简洁、易学易用:功能只有9个动词,语法简单,接近核 5.语言简洁、易学易用:功能只有9个动词,语法简单,接近核 语言简洁 英语。 返回首页 下一页 上一页 心英语。
numeric(p,q) numeric(p,q) decimal decimal(p,q) 或decimal(p,q)
返回首页
下一页
上一页
一、数值型 近似型:用于表示浮点型数据的近似数据类型。 近似型:用于表示ห้องสมุดไป่ตู้点型数据的近似数据类型。
SQL Server 数据类型 float real SQL92或SQL99数据类 型 float 说明 8字节,存储从 –1.79E + 308 1.79E 字节, 1.79E 到 1.79E + 308 范围的浮点型数 3.40E 4字节,存储从 –3.40E + 38 到 字节, 3.40E 3.40E + 38 范围的浮点型数
说明: 说明:
NULL和DEFAULT不能在表级完整性约束处定义之外 不能在表级完整性约束处定义之外, 除NOT NULL和DEFAULT不能在表级完整性约束处定义之外, 其他约束均可在表级完整性约束处定义。 其他约束均可在表级完整性约束处定义。但有些约束必须在 表级约束处定义: 表级约束处定义: 如果CHECK约束是定义多列之间的取值约束; 如果CHECK约束是定义多列之间的取值约束; CHECK约束是定义多列之间的取值约束 如果表的主码由多个列(超过1 如果表的主码由多个列(超过1列)组成; 组成; 如果在表级完整性约束处定义外码, KEY和 如果在表级完整性约束处定义外码,则 FOREIGN KEY和< 列名>均不能省, 列名>必须用括号括起来。 列名>均不能省,且<列名>必须用括号括起来。
返回首页 下一页 上一页
3.2 SQL的数据类型 的数据类型
数值型 字符串型 日期时间类型 货币类型
返回首页
下一页
上一页
一、数值型
准确型:指在计算机中能够精确存储的数据。 准确型:指在计算机中能够精确存储的数据。
SQL Server 数据类型 Bigint Int Smallint Tinyint Bit Bit Integer Smallint SQL92或 SQL99数据 类型 说明
第 3 章 SQL语言 语言
SQL概述 3.1 SQL概述 SQL的数据类型 3.2 SQL的数据类型 3.3 数据定义功能 3.4 数据查询功能 3.5 数据更改功能 3.6 视图 3.7 嵌入式SQL 嵌入式SQL
返回首页
下一页
上一页
3.1 SQL语言概述 SQL语言概述
SQL语言的发展 语言的发展 SQL语言特点 语言特点 SQL语言功能概述 语言功能概述
返回首页
下一页
上一页
一、 SQL语言发展 语言发展
SQL是 SQL是Structured Query Language的缩写,意思为结构化查询 Language的缩写 意思为结构化查询 的缩写, 语言。 语言。 最早版本是由美国IBM公司提出的, 最早版本是由美国IBM公司提出的,该语言的最初名称为 IBM公司提出的 Sequel。 Sequel。 SQL是关系型数据库管理系统的标准语言。 SQL是关系型数据库管理系统的标准语言。 是关系型数据库管理系统的标准语言 SQL语句可以用来对数据库进行各种各样的操作。 SQL语句可以用来对数据库进行各种各样的操作。 语句可以用来对数据库进行各种各样的操作 SQL-86(SQL1)是第一个SQL标准 SQL-86(SQL1)是第一个SQL标准 是第一个SQL SQLSQL-89 SQL-92(SQL2) SQLSQLSQL-99(SQL3)
SQL Server 数据类型 Datetime 说明 占用8字节空间,存储从1753年 占用8字节空间,存储从1753年1月1日到9999 1753 日到9999 12月31日的日期和时间数据 日的日期和时间数据, 年12月31日的日期和时间数据,精确到百分之 三秒(或 3.33 毫秒) 三秒( 毫秒) 占用4字节空间,存储从1900年 占用4字节空间,存储从1900年1月1日到2079 1900 日到2079 日的日期和时间数据, 年6月6日的日期和时间数据,精确到分钟
image
binary
固定长度的二进制字符数据, 表示最大长度, 固定长度的二进制字符数据,n表示最大长度, 取值范围为1 取值范围为1~8000 大容量的、可变长度的二进制字符数据,可以存 大容量的、可变长度的二进制字符数据, 储多种格式的文件, Word、Excel、BMP、 储多种格式的文件,如:Word、Excel、BMP、 GIF和JPEG文件数据等 最多可存储2 文件数据等。 个字节, GIF和JPEG文件数据等。最多可存储231-1 个字节, 约为2 约为2GB
数据定义功能用于定义、删除和修改数据库中的对象; 数据定义功能用于定义、删除和修改数据库中的对象; 定义 数据库中的对象 数据查询功能用于实现查询数据的功能 实现查询数据的功能; 数据查询功能用于实现查询数据的功能; 数据操纵功能用于实现对数据库数据的增加 删除和修改; 实现对数据库数据的增加、 数据操纵功能用于实现对数据库数据的增加、删除和修改; 数据控制功能用于实现控制用户对数据库的操作权限 数据控制功能用于实现控制用户对数据库的操作权限
8字节,存储从–263 到263-1 范围的整数。 字节,存储从 2 范围的整数。 字节 4字节,存储从–231到231-1 字节,存储从 范围的整数
2字节,存储从–215到215-1 范围的整数 字节,存储从 存储从 0 到 255 之间的整数 存储1 存储1或0 定点精度和小数位数。使用最大精度时, 定点精度和小数位数。使用最大精度时,有效值从 –1038 其中, 为精度, +1 到 1038 -1。其中,p为精度,指定小数点左边和右边可 以存储的十进制数字的最大个数。 为小数位数, 以存储的十进制数字的最大个数。q为小数位数,指定小数点 右边可以存储的十进制数字的最大个数, 右边可以存储的十进制数字的最大个数,
四、货币型
货币数据类型表示货币值。 货币数据类型表示货币值。货币数据存储的精确度固定为 表示货币值 四位小数,实际上货币类型的数据都是有4 四位小数,实际上货币类型的数据都是有4位小数的 decimal类型的数据 SQL92或SQL99没有对应的货币类型 类型的数据。 没有对应的货币类型。 decimal类型的数据。SQL92或SQL99没有对应的货币类型。