数据库应用技术教程第三章深入SQL.ppt

合集下载

数据库基础第三部分SQL语言课件

数据库基础第三部分SQL语言课件
INTO子句(与插入单条元组类似) ❖指定要插入数据的表名及属性列 ❖属性列的顺序可与表定义中的顺序不一致 ❖没有指定属性列:表示要插入的是一条完整的元组 ❖指定部分属性列:插入的元组在其余属性列上取空值
子查询 ❖SELECT子句目标列必须与INTO子句匹配 值的个数 值的类型
插入子查询结果(续)
FROM Student WHERE Ssex='女';
为基表Student增加属性列不会破坏Student表 与F_Student2视图的映象关系。
常见的视图形式
行列子集视图 WITH CHECK OPTION的视图 基于多个基表的视图 基于视图的视图 带表达式的视图 分组视图
2. 删除视图
❖ DROP VIEW <视图名>;
1. 修改某一个元组的值
[例4] 将学生95001的年龄改为22岁。 UPDATE Student SET Sage=22 WHERE Sno=' 95001 ';
2. 修改多个元组的值
[例5] 将所有学生的年龄增加1岁。 UPDATE Student SET Sage= Sage+1;
修改多个元组的值(续)
(1) 某个目标列是集函数或列表达式 (2) 目标列为 * (3) 多表连接时选出了几个同名列作为视图的字段 (4) 需要在视图中为某个列启用新的更合适的名字
行列子集视图
[例1] 建立信息系学生的视图。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= 'IS';
删除数据(续)
DBMS在执行插入语句时会检查所插元组 是否破坏表上已定义的完整性规则

《数据库原理及应用》教学课件 第三章SQL基础

《数据库原理及应用》教学课件 第三章SQL基础
(1)修改数据库名称。 ALTER DATABASE <数据库名称> MODIFY NAME=数据库新名称
(2)修改数据库中的具体文件。
ALTER DATABASE <数据库名称> ADD FILE(文件格式)[ , … N] [TO FILEGROUP <文件组名>] |ADD LOG FILE(文件格式)[ , … N] |REMOVE FILE <文件逻辑名称> |MODIFY FILE(文件格式) |ADD FILEGROUP <文件组名> |REMOVE FILEGROUP <文件组名> |MODIFY FILEGROUP <文件组名>
15
3.2 数据库基本操作
3.2.3 创建数据库
【例3-1】 创建一个数据库 SRS,数据文 件的逻辑名称为 SRS_Data,存放在 C 盘的 Data 文件夹下,文件名为 ,数据文件的初始 存储空间大小为10 MB,最大存储空间为50 MB,存储空间自动增长量为5%;日志文件 的逻辑名称为 SRS_Log,存放在 C 盘的 Data 文件夹下,文件名为,初始存储空间大小为1 MB,最大存储空间为50 MB,存储空间自动 增长量为10%。
03 面向集合
不同于非关系数据模型使用的面向记录的操作方式,SQL采用的是面向集合的操作方式,其操 作对象、查询结果都是元组的集合。
8
3.1 认识SQL
3.1.2 SQL的特点
04 使用方式灵活
SQL既可以作为独立语言又可以作为嵌入式语言使用。作为独立语言,SQL能够独立地用于联 机交互,用户在窗口键入SQL命令就可以直接对数据库进行操作;作为嵌入式语言,SQL能够嵌入 到多种高级语言程序中以供调用,如C,C++及Java等。

数据库技术 课件 第三章-3

数据库技术 课件 第三章-3

–创建索引的原则
• 在经常用来检索的列上创建索引(如经常在where子 句中出现的列)。 •在表的主键、外键上创建索引。 •在经常用于表间连接的字段上建立索引。 •一般而言,如下情况的列不考虑在其上创建索引:
– 在查询中几乎不涉及的列。 – 很少有唯一值的列(即包含太多重复值的列,如性别字 段)。 – 数据类型为text、ntext或image的列。 – 只有较少行数的表没有必要创建索引。 – 当写的性能比查询更重要时,应少建或不建索引。
第三章 关系数据库标准语言 — SQL(结构化查询语言)
第一节 SQL概述 第二节 SQL数据查询功能 第三节 SQL数据定义功能 第四节 SQL数据更新功能
信息工程学院 数据库系统原理
SQL的三级模式结构
SQL终端用户 视图1 视图2
子模式 基本表1 概念模式 存储模式 存储文件1
外模式 模式 内模式
视图创建后,只在数据字典中存放视图的定义,而其中的子查询SELECT 语句并不执行。 只有当用户对视图进行操作时,才按照视图的定义将数据从基本表中取 出。
信息工程学院 数据库系统原理
CREATE VIEW <视图名>[(<视图列表>)] AS <子查询>
在下面情况下视图列表不可省略: 1.视图由多个基本表连接得到,在不同的表中存在 同名属性列,或定义新的属性列名时,则需指定列 名; 2.当视图的列名为表达式或集函数的计算结果时, 而不是单纯的属性列名时,则需指明列名。
主关键字 (学号) 870701 870705 870707 870712 870721 870724 870736 记录地 址 D G C A F B E
数据文件
非聚簇索引

数据库语言SQLppt课件.ppt

数据库语言SQLppt课件.ppt

例:列出CS系中的男生的学号、姓名、年龄,
并按年龄进行排列(升序)。 Select sno,sname, sage From Student Where sdept = ‘CS’ Order By sage ASC
3.3 数据定义语言
• • • • • 数据定义语言(Data Definition Language) Create、Drop、Alter 定义一组关系(基本表)、说明各关系的信息 各关系的模式 各属性的值域 完整性约束 索引 安全性和权限
like
字符匹配:Like、Not Like 通配符: • % —— 匹配任意字符串 • _ —— 匹配任意一个字符 大小写敏感

• 列出姓张的学生的学号、姓名。 Select sno,sname From Student Where sname LIKE ‘张%’ • 列出张姓且单名的学生的学号、姓名。 Select sno,sname From Student Where sname LIKE ‘张_ _’
例:列出所有学生的学号、姓名、课号、成绩。
Select Sudent.sno,sname,o,grade From Student,SC Where Student.sno = SC.sno
元组变量
为 From 子句中的关系定义元组变量 方便关系名的引用 在同一关系的笛卡儿积中进行辨别
2. 现状
大部分DBMS产品都支持SQL,成为操作数据库的标 准语言 有特殊性,支持程度不同
3.1.1 SQL的功能
数据定义(DDL)
定义、删除、修改关系模式(基本表) 定义、删除视图(View) 定义、删除索引(Index)
数据操纵(DML)

数据库系统原理与应用第三版SQLServer2012ppt课件(完整版)

数据库系统原理与应用第三版SQLServer2012ppt课件(完整版)
1、传统的集合预算:例子
(a)R
A
B
C
a1
b1
c1
a2
b2
c2
(b)S
D d1 d2 a1 d1
E e1 e2 b1 e1
F f1 f2 c1 f1
(c) R∩S
A
B
C
a1 b1 c1
(f) RX S
A
B
C
D
E
F
a1
b1
c1
d1
e1
f1
a1
b1
c1
d2
e2
f2
a1
b1
c1
a1
b1
c1
a2
b2
c2
d1
主属性(Prime Attribute)。候选码的诸属性称为主属性。 非主属性(Non-Key Attribute)。不包含在任何候选码中的属
性。:D1×D2×D3×…×Dn={(d1,d2,d3,…,dn)|di∈Dj,i=1,2,…,n}
1 数据库基本知识
• 1.4 关系数据库与关系代数(续)
续表
含义 连接 除 大于 大于或等于 小于 小于或等于 等于 不等于 非 与 或
1 数据库基本知识
• 1.4 关系数据库与关系代数(续)
– 关系代数(续)
1、传统的集合预算:包括并(∪)、交(∩)、差(-)、笛卡尔积 (×),它将关系看成元组的集合,从关系的水平方向(行)来进行 的。
➢ 并∪ : R∪S={t|t∈R∨t∈S} ➢ 差- :R-S={t| t∈R ∧ t∈S} ➢ 交∩ :R∩S={t| t∈R ∧ t∈S} ➢ 广义笛卡尔积× :R×S={tr ts| tr∈R∧ts∈S}

SQLServer2012数据库应用与开发教程(第三版)第三章T-SQL语言基础简明教程PPT课件

SQLServer2012数据库应用与开发教程(第三版)第三章T-SQL语言基础简明教程PPT课件

标识符。
注意:常规标识符和分隔标识符包含的字符数必须在1~128 之间,对于本地临时表,标识符最多可以有116个字符。
3.2.4 系统保留字
• 与其他许多语言类似,SQL Server 2012使用了180多个保留关 键字(Reserved Keyword)来定义、操作或访问数据库和数据 库对象,这些关键字包括DATABASE、CURSOR、CREATE、 INSERT、BEGIN等。这些保留关键字是T-SQL语法的一部分, 用于分析和理解T-SQL语言。在编写T-SQL语句时,这些系统保 留字会以不同的颜色标记,方便用户区分。一般地,不要使用这些 保留关键字作为对象名称或标识符。
• •
• •
3.2.3 如何给标识符起名
3.2.3.1 标识符
1. 标识符格式
(1)标识符的首字符必须是下列字符之一 。 统一码(Unicode)2.0标准中所定义的字母,包括拉丁字母a-z和A-Z, 以及来自其他语言的字符。 下划线“_”、符号“@”或者数字符号“#”。 (2)标识符的后续字符可以是以下3种。
如:N‟SQL Server‟、N‟张三’、N‟计算机科学与技 术’。
小节3.3 常量
(2) 数值型常量 数值型常量包含整型常量和实数型常量。 整型常量(Integer)用来表示整数。可细分为二进制整 型常量、十六进制整型常量和十进制整型常量。二进制
小节3.2 Transact-SQL概述
• SQL的全称为Structured Query Language(结构化查询语言), SQL最早是在20世纪70年代由IBM公司开发出来的,作为IBM关 系数据库原型System R的原形关系语言,主要用于关系数据库中 的信息检索。由于SQL简单易学,目前它已经成为关系数据库系统 中使用最广泛的语言。 • SQL有3个主要标准:ANSI SQL;SQL2;SQL99。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%:表示可以匹配0个或任意多个字符;
_:表示通配一个字符。
数据库应用技术 第三章 深入SQL
1/81
3.1 SQL概述
❖ SQL的历史
1970, Structured English Query Language ("SEQUEL"), IBM
1979, Oracle SQL的标准化过程
❖从SQL-86(ANSI)到SQL-2003(ANSI, ISO)
SELECT sid, salary
FROM sales
WHERE salary BETWEEN 1000 AND 2000;
这是一个闭区间,等于两端值的记录也会被查出来。另外,一般要 求区间前面的值小于后面的值,否则将查不出结果。
❖ 2、IN
IN运算符用来检验某个表达式的值是否包含在一个指定的值集合内。
3.2 单SELECT语句
8/81
3.2.1 基本语句
❖ 语法
SELECT [DISTINCT | ALL] [ * | 查询项列表 ] FROM 表名;
❖ 说明
查询项:字段|表达式 [[AS] 别名 ] 无条件:查询出表的所有记录。次序不确定、不稳定,
依赖于数据库的实现。 *:按特定顺序列举所有字段。
❖ 控制(Data Control Language, DCL )
GRANT, REVOKE, COMMIT,ROLLBACK。
4/81
SQL的基本语法
❖ SQL语句不区分大小写,可以写在多行,各 个单词之间使用分隔符(空格,回车,制表 符)分隔。
❖ SQL语句中的关键字属于保留字,不能用于 其他地方。
❖ 数字常量的写法和通常程序语言一致,字符 串使用单引号包含,字符串中的单引号使用 两个连续的单引号转义表示,不区分字符和 字符串。
5/81
SQL书写规范
❖ 为便于书写和阅读,通常采用如下的书写规 范:
❖ 1、关键字大写,其他标识符小写
字段名大写???
❖ 2、每个子句单起一行 ❖ 3、使用制表符缩进
12/81
3.2.1 基本语句
❖ 如果明确地只想得到一行结果
在MS-SQL和MySQL中,可以使用不带FROM子句的 SELECT语句;
❖ SELECT 1+2
在Oracle中,不允许没有FROM子句。 系统提供了一个名叫dual的表,保证其中只有一条记录, 不依赖于表的计算可以使用这个表。
9/81
3.2.1 基本语句
当明确要查询哪些字段的时候,将字段名称列在SELECT 的后面,这样语句含义清楚,性能也有所提高。
[AS] 别名 :别名起到简化作用,通常还作为表达式的标 题。特别是很多使用SQL的开发工具直接使用SELECT语 句中每个查询表达式的名称作为标识符,这种情况下更 需要给出别名。表达式与别名之间的AS是一个冗余的关 键字,可以省略,直接以空白符分隔。
❖ SELECT SYSDATE, 1+2 FROM dual;
13/81
3.2.2 筛选
❖ 可以使用WHERE子句来筛选出满足某些条件的记 录。
❖ WHERE 逻辑表达式
基本比较运算符
❖ =,>,<,>=,<=,<> ❖ 它们都具有通常的含义。比较运算符的两端都可以是字段或者表达式。
其他相当于比较运算符的结构
DISTINCT | ALL:在整个查询内容前加上DISTINCT,返 回结果中不重复的内容。不重复针对所有要查询的表达 式集合而言。ALL是缺省值,列出包括重复的所有记录。 另外,DISTINCT是一个比较费时间的操作,使用时需慎 重。
10/81
3.2.1 基本语句
❖ 查询的内容可以是字段,也可以是由字段、常数通 过运算符、函数构成的复杂表达式。这种计算要对 表上的所有行都施加运算。
6/81
标准与可移植性
❖ 在SQL92标准中定义了四种级别:Entry, Transitional, Intermediate, and Full
❖ 国际标准与各个厂商之间的不兼容性。 ❖ 事实上的不可移植性
字符串连接||与+; 专有的查询关键字 数据类型与函数 特殊语义;
❖ 可移植性神话
7/81
❖ SQL的设计初衷是给高级用户提供一种通用 的、易于学习和理解的数据库操作方式。
❖ 演变为给程序员使用的数据库标准接口。
2/81
SQL的特点
❖ 面向集合的操作方式,是关系代数的实现; ❖ 高度非过程化。只需要提出“What”,不需
要指出“How”; ❖ 上下文无关,运行结果取决于数据; ❖ 语言风格统一,类自然语言,简单易学; ❖ 言语式入嵌是又,言语式含自是既
3/81
SQL的分类
❖ 查询(Data Query Language, DQL )
SELECT
❖ 操纵(Data Manipulate Language, DML )
INSERT, DELETE, UPDATE
❖ 定义(Data Definition Language, DDL )
CREATE, DROP, ALTER。
❖ BETWEEN AND ❖ IN ❖ LIKE ❖ NULL的运算
逻辑运算符
❖ NOT AND OR
14/81
其他where条件
❖ 1、BETWEEN … AND …
❖ 如果要限定某个表达式的值在某个区间内,可以使用这个关键字。 例:查询出薪水在1000和2000之间的记录的sid和salary值。
例:查询出名字叫Tom、Jack或者Mary的销售员的sid和salary值。
SELECT sid, salary
FROM sales
WHERE sname IN (‘Tom’, ‘Jack’, ‘Mary’);
15/81
❖ 3、LIKE
❖ 如果要对字符串进行通配查找时,需要使用LIKE运算符。它 允许在表达式中使用专门的通配符,表示符合某种规则的结 果。
SELECT sid, UPPER(sname), salary + 100 FROM sales;
11/81
3.2.1 基本语句
❖ 在某些情况下,也可能使用SQL计算纯粹常量表达 式的值,如检索服务器当前时间。
SELECT SYSDATE, 1+2 FROM sales;
依赖于表中记录的数目,将得到若干行(也可能 是0行)同样的结果。而这一般不是我们想要得 到的结果。
相关文档
最新文档