使用SQL Server Management Studio 进行数据查询与维护

Slides:



Advertisements
Similar presentations

Advertisements

Data type P64 ‘’ 转义字符 P67 P68 EXE,选出某个教师的学生中最新的一 个,要姓名, ID (,LIMIT ) EXISTS,NOT EXISTS P409 Q,EXISTS 和 in 的区别( 1000 ,查询结果)
练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
第6章 数据库管理软件Access 年秋.
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
SQL的简单查询.
第4章 查询数据和修改数据.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
数据库及应用 授课教师:岳静 教学网站: Tel:
第2讲 Transact-SQL语言.
第2章 使用Transact-SQL语言.
数据库应用技术 SQL Server 2005.
数据库技术 实践.
高等院校计算机教材系列 数据库原理与应用(第2版) 任课教师:刘雅莉
Chap 11 SQL基本查詢指令.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
文科计算机小公共课规划教材 Access 程序设计.
第一讲 数据查询优化.
第 10 章 更多的查詢技巧.
第3章 数据查询与SQL命令.
在PHP和MYSQL中实现完美的中文显示
查询数据.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
第4章 数据的查询与更新 4.1 SQL查询语句格式 4.2 简单查询 4.3 统计查询 4.4 连接查询 4.5 嵌套查询
第九章 進階的查詢技巧.
SQL Injection.
第3章 创建数据库 重点内容: 创建数据库和表 列约束 创建索引 修改数据库和表 删除数据库和表.
国家“十一五”规划教材 数据库原理与应用教程.
SPARQL若干问题的解释 刘颖颖
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
MySQL 結構化查詢語言 MySQL.
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
数据库基础 1.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
第二章 Java语言基础.
第6章 SQL基础 本章概述 本章要点 教学过程.
数据库技术.
学习目标 1、select练习.
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
資料庫系統 李翊豪 2017/12/21 Reference
SQL 范引娣.
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
学习目标 1、什么是表连接 2、表连接类型 3、表连接区别.
学习目标 1、select语法 2、select执行顺序
查询与视图 蔡海洋.
第14章 SQL数据查询与操纵 内容提要 本章知识点
SQL查询语句 蔡海洋.
VB与Access数据库的连接.
Web安全基础教程
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第六章 Excel的应用 一、Excel的单元格与区域 1、单元格:H8, D7, IV26等 2、区域:H2..D8, HS98:IT77
第4章 Excel电子表格制作软件 4.4 函数(一).
第九节 赋值运算符和赋值表达式.
第八讲 SQL语言之数据查询(2) 第三讲 SQL Server 2000 数据库技术.
学习目标 1、limit的作用 2、实例操作.
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
第4课时 绝对值.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
学习目标 1、了解基本运算符 2、运算符优先级.
学习目标 1、如何对结果进行分组 2、分组函数的一些实用方法.
第十一章 查询.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
基于列存储的RDF数据管理 朱敏
VB与Access数据库的连接.
WEB程序设计技术 数据库操作.
第4章 数据查询.
第 9 章 查詢資料- 善用 SELECT 敘述.
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

使用SQL Server Management Studio 进行数据查询与维护 5 数据查询 简单SELECT语句 5.1 SELECT语句的统计功能 5.2 SELECT语句中的多表连接 5.3 子 查 询 5.4 使用SQL Server Management Studio 进行数据查询与维护 5.5

学习目标 通过本部分的学习,应该掌握以下内容。 数据查询的各种语句 运用SQL Server Management Studio和基本的SELECT语句查询表中的数据 数据维护的基本方法

5.1 简单SELECT语句 5.1.1 SELECT语句的语法格式 SELECT语句的基本语法格式如下。 SELECT 列名的列表  [INTO 新表名]  [FROM 表名与视图名列表]

 [WHERE 条件表达式]  [GROUP BY 列名的列表]  [HAVING 条件表达式]  [ORDER BY 列名1[ASC|DESC],列名2[ASC|DESC], ... 列名n[ASC|DESC]]

5.1.2 基本的SELECT语句 SELECT语句的基本形式如下。 SELECT 选取的列 FROM 表的列表 WHERE 查询条件

5.1.3 使用INTO子句 使用INTO子句允许用户定义一个新表,并且把SELECT子句的数据插入到新表中,其语法格式如下。 FROM 表的列表 WHERE 查询条件

5.1.4 使用WHERE子句 WHERE子句确定了查询的条件,表5-1给出了组成查询条件表达式的运算符。

表5-1 查询条件表达式的运算符 运算符分类 运 算 符 说 明 比较运算符 表5-1 查询条件表达式的运算符 运算符分类 运 算 符 说 明 比较运算符 >、>=、=、<、<=、<>、!=、!>、!< 比较大小(!>、!< 表示不大于和不小于) 范围运算符 BETWEEN…AND、NOT BETWEEN…AND 判断列值是否在指定的范围内 列表运算符 IN、NOT IN 判断列值是否是列表中的指定值 模糊匹配符 LIKE、NOT LIKE 判断列值是否与指定的字符通配格式相符 空值判断符 IS NULL、NOT NULL 判断列值是否为空 逻辑运算符 AND、OR、NOT 用于多个条件的逻辑连接

1.比较运算符 2.范围运算符 3.列表运算符 4.模糊匹配运算符 5.空值运算符 6.逻辑运算符

5.1.5 使用ORDER BY子句 在查询结果集中,记录的顺序是按它们在表中的顺序进行排列的,可以使用ORDER BY子句对查询结果重新进行排序,可以规定升序(从低到高或从小到大)或降序(从高到低或从大到小),方法是使用关键字ASC(升序)或DESC(降序)。

如果省略ASC或DESC,系统则默认为升序。 可以在ORDER BY子句中指定多个列,检索结果首先按第1列进行排序,第1列值相同的那些数据行,再按照第2列排序,依次类推。 ORDER BY子句要写在WHERE子句的后面。

5.2 SELECT语句的统计功能 SELECT语句中的统计功能对查询结果集进行求和、求平均值、求最大最小值等操作。 统计的方法是通过集合函数和GROUP BY子句、COMPUTE子句进行组合来实现的。

5.2.1 使用集合函数 集合函数是在查询结果记录的列集上进行各种统计运算,运算的结果形成一条汇总记录。

表5-2 SQL Server 2005集合函数及其功能 集 合 函 数 功 能 SUM([ALL|DISTINCT] 列表达式) 功 能 SUM([ALL|DISTINCT] 列表达式) 计算一组数据的和 MIN([ALL|DISTINCT] 列表达式) 给出一组数据的最小值 MAX([ALL|DISTINCT] 列表达式) 给出一组数据的最大值 COUNT({[ALL|DISTINCT] 列表达式}|*) 计算总行数。COUNT(*)返回行数,包括含有空值的行,不能与DISTINCT一起使用 CHECKSUM(*|列表达式[,…n]) 对一组数值的和进行校验,可探测表的变化 BINARY_CHECKSUM(*|列表达式[,…n]) 对二进制的和进行校验,可以探测行的变化 AVG([ALL|DISTINCT] 列表达式) 计算一组值的平均值

1.求和函数SUM与求平均值函数AVG SUM和AVG是数值型列值的求和与求平均值函数,它们只能用于数值型字段,而且忽略列值为NULL的记录。

2.最大值函数MAX与最小值函数MIN MAX和MIN函数分别用来返回指定列表达式中的最大值和最小值,忽略列值为NULL的记录,列表达式中的列可以是任何可排序的类型。

3.计数函数COUNT COUNT函数用于统计查询结果集中记录的个数,语法上,“*”用于统计所有记录的个数,ALL用于统计指定列的列值非空的记录个数,DISTINCT用于统计指定列的列值非空且不重复的记录个数。默认值为ALL。

5.2.2 使用GROUP BY 子句 GROUP BY子句就能够实现这种统计,它按照指定的列,对查询结果进行分组统计,该子句写在WHERE子句的后面。

注意:SELECT子句中的选择列表中出现的列,或者包含在集合函数中,或者包含在GROUP BY子句中,否则,SQL Server 2005将返回错误信息。

语法格式如下。 GROUP BY 列名[HAVING 条件表达式] "HAVING 条件表达式"选项是对生成的组进行筛选。

5.2.3 使用COMPUTE BY子句 使用COMPUTE BY子句时必须使用ORDER BY对COMPUTE BY中指定的列进行排序。 语法格式如下。 COMPUTE 集合函数 [BY 列名]

5.3 SELECT语句中的多表连接 在实际应用中,数据查询往往会涉及多个表,这就需要将多个表连接起来进行查询。 这种连接分为交叉连接、内连接、外连接和自连接4种。

图5-7 连接要使用的表和数据

5.3.1 交叉连接 SELECT 列名列表 FROM 表名1 CROSS JOIN 表名2 或者 5.3.1 交叉连接 SELECT 列名列表 FROM 表名1 CROSS JOIN 表名2 或者 SELECT 列名列表 FROM 表名1, 表名2 交叉连接的结果是两个表的笛卡儿积。 交叉连接在实际应用中一般是没有意义的,但在数据库的数学模式上有重要的作用。

5.3.2 内连接 内连接是只包含满足连接条件的数据行,是将交叉连接结果集按照连接条件进行过滤的结果,也称自然连接。 5.3.2 内连接 内连接是只包含满足连接条件的数据行,是将交叉连接结果集按照连接条件进行过滤的结果,也称自然连接。 连接条件通常采用“主键=外键”的形式。

内连接有以下两种语法格式。 SELECT 列名列表 FROM 表名1 [INNER] JOIN 表名2 ON 表名1.列名=表名2.列名 或 SELECT 列名列表 FROM 表名1, 表名2 WHERE 表名1.列名=表名2.列名

5.3.3 外连接 外连接根据连接时保留表中记录的侧重不同分为“左外连接”、“右外连接”和“全外连接”。

1.左外连接 将左表中的所有记录分别与右表中的每条记录进行组合,结果集中除返回内部连接的记录以外,还在查询结果中返回左表中不符合条件的记录,并在右表的相应列中填上NULL,由于bit类型不允许为NULL,就以0值填充。

左外连接的语法格式如下。 SELECT 列名列表 FROM 表名1 AS A LEFT [OUTER] JOIN 表名2 AS B ON A.列名=B.列名

2.右外连接 和左外连接类似,右外连接是将左表中的所有记录分别与右表中的每条记录进行组合,结果集中除返回内部连接的记录以外,还在查询结果中返回右表中不符合条件的记录,并在左表的相应列中填上NULL,由于bit类型不允许为NULL,就以0值填充。

右外连接的语法格式如下。 SELECT 列名列表 FROM 表名1 AS A RIGHT [OUTER] JOIN 表名2 AS B ON A.列名=B.列名

3.全外连接 全外连接是将左表中的所有记录分别与右表中的每条记录进行组合,结果集中除返回内部连接的记录以外,还在查询结果中返回两个表中不符合条件的记录,并在左表或右表的相应列中填上NULL,bit类型以0值填充。

全外连接的语法格式如下。 SELECT 列名列表 FROM 表名1 AS A FULL [OUTER] JOIN 表名2 AS B ON A.列名=B.列名

5.3.4 自连接 自连接就是一个表的两个副本之间的内连接。 5.3.4 自连接 自连接就是一个表的两个副本之间的内连接。 表名在FROM子句中出现两次,必须对表指定不同的别名,在SELECT子句中引用的列名也要使用表的别名进行限定。

5.3.5 合并结果集 UNION运算符用于将两个或多个检索结果合并成一个结果,当使用UNION时,需遵循以下两个规则。

(1)所有查询中的列数和列的顺序必须相同。 (2)所有查询中按顺序对应列的数据类型必须兼容。

5.4 子 查 询 在SQL语言中,当一个查询语句嵌套在另一个查询的查询条件之中时,称为子查询。 5.4 子 查 询 在SQL语言中,当一个查询语句嵌套在另一个查询的查询条件之中时,称为子查询。 子查询总是写在圆括号中,可以用在使用表达式的任何地方。

5.4.1 比较测试中的子查询 比较测试中的子查询是指父查询与子查询之间用比较运算符进行连接。 5.4.1 比较测试中的子查询 比较测试中的子查询是指父查询与子查询之间用比较运算符进行连接。 但是用户必须确切地知道子查询返回的是一个单值,否则数据库服务器将报错。

5.4.2 集合成员测试中的子查询 集合成员测试中的子查询是指父查询与子查询之间用IN或NOT IN进行连接,判断某个属性列值是否在子查询的结果中,通常子查询的结果是一个集合。

5.4.3 存在性测试中的子查询 存在性测试中的子查询只是检查子查询返回的结果集是否为空,使用的关键字为EXISTS或NOT EXISTS,它产生逻辑真值“TRUE”或假值“FALSE”。 例如,如果使用“EXISTS”进行测试,并且子查询返回的结果集不空,则测试的结果为真值“TRUE”。

5.4.4 批量比较测试中的子查询 1.使用ANY关键字的比较测试 5.4.4 批量比较测试中的子查询 1.使用ANY关键字的比较测试 通过比较运算符将一个表达式的值或列值与子查询返回的一列值中的每一个进行比较,只要有一次比较的结果为TRUE,则ANY测试返回TRUE。

2.使用ALL关键字的比较测试 通过比较运算符将一个表达式的值或列值与子查询返回的一列值中的每一个进行比较,只要有一次比较的结果为FALSE,则ALL测试返回FALSE。

5.4.5 使用子查询向表中添加多条记录 使用INSERT…SELECT语句可以一次向表中添加多条记录,语法格式如下。 5.4.5 使用子查询向表中添加多条记录 使用INSERT…SELECT语句可以一次向表中添加多条记录,语法格式如下。 INSERT 表名[(字段列表)] SELECT 字段列表 FROM 表名 WHERE 条件表达式

5.5 使用SQL Server Management Studio 进行数据查询与维护 5.5.1 查询设计器简介 在查询设计器中可以进行表的插入、删除、修改和查询操作。

图5-20 启动查询设计器

图5-21 查询设计器窗口

5.5.2 查询设计器的应用实例 例5-39 由客户信息表中,给出深圳和上海的所有客户信息,显示顺序按照姓名的升序排序。

图5-22 查询设计器界面

图5-23 使用查询设计器进行查询