数据库原理与应用(SQL Server)笔记 第二章 简单数据查询

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 数据库原理与应用(SQL Server)笔记 第二章 简单数据查询

前言


本次内容,是由T-SQL语句来实现的,我们主要掌握数据库单表查询的方法以及实现的语句内容,同时在掌握聚合函数、排序、分组的方法。


一、SELECT 子句


首先来了解SELECT子句的用法,其基本框架如下:


SELECT <列名>  /*显示哪些列*/
FROM <表名>    /*从哪个表进行操作,即指定表*/
WHERE <条件>   /*根据什么条件在指定表中进行检索*/

(一)投影指定的列和投影全部列


1、SELECT子句可以投影指定的列也可以投影全部列,当投影多个列时,在各列名中用逗号“,”隔开。

SELECT 列名1,列名2,列名3,...
FROM <表名>
WHERE <条件>

2、若要投影该表的全部列时,即没有必要将各列名一一列出,这样就过于繁琐,只需在SELECT子句后面加上星号“ * ”,就可以代表投影该表的全部列。

SELECT *      /*这里的*号就代表投影了所有列*/
FROM <表名>
WHERE <条件>

(二)AS子句修改查询结构的列标题


当查询出一个所得到的结果后,我们自己知道所查的是什么,但是给别人就不能立即的理解查询的结果的含义,这时候就要用到AS子句来改变查询结果中显示的列标题,只需在列名后面加上所要改变的列表题名即可,其语法格式如下:

SELECT 列名1 AS '学号',列名2 AS '姓名',列名3 AS '性别',...

注:这里其实AS可以省略,但为了增加可读性,还是建议不省略。


例题1


例、在数据库Store中,查询student表中的studentID、name、sex、age、address,并将其结果中各列的标题分别改为学生的学号、姓名、性别、年龄和住址。


USE Store
SELECT studentID AS '学号',name AS '姓名',sex AS '性别',age AS '年龄',address AS '地址'
FROM student

(三)TOP谓词限制结果集中的行数


使用SELECT子句时,有时候需要只列出查询结果的前几行数据,就要用到TOP谓词进行对查询结果集的限定,即使用TOP n [PERCENT],其语法格式如下:

TOP n [ 数字 ] [ 百分数% ]


例如,若只显示查询结果的前2行,即SELECT TOP 2…

若要返回查询结果的前10%行,即SELECT TOP 10 PERCENT…


(四)INTO子句将结果插入新表中


当要将所查询的结果插入到一个新表当中,这时候就要用到INTO子句,所创建新表的结构由SELECT子句所选择的列来决定,且新表中的记录由SELECT子句的查询结构决定,若SELECT子句查询的结果为空,则创建的是一个只要结构但无记录的空表。INTO子句语法格式如下:

INTO <新表名>


例题2


例、通过数据库Store,由school表创建class1表,其中包括studentID、name、age、sex。

USE Store
SELECT studentID,name,age,sex INTO class1
FROM school

(五)DISTINCT关键字去除重复行


当查询的结果集中有重复行时,可以使用DISTINCT关键字来去除重复行。语句格式如下:

SELECT DISTINCT 列名1,列名2,...


例题3


例、通过数据库Store,查询school表中的max_grade列,并消除结果中的重复行。


USE Store
SELECT DISTINCT max_grade
FROM school


二、WHERE 子句


(一)定义


WHERE子句用于指定查询条件,此语句位于FROM子句后面,其语句格式如下:

WHERE <查询条件>  


(二)常用的查询条件


1666889700448.jpg

现我们从四点来简单介绍WHERE子句的用法:


1、表达式比较


表达式比较,即使用比较运算符来比较两个表达式值。


例题4

例、通过数据库School,查询class表中的Total points、Classnumber列学生总成绩在400分至500分之间且为1班的学生总成绩名单。


USE School
SELECT Total points,Classnumber
FROM class
WHERE Total points>=400 AND Total points<=500 
AND Classnumber='1' 

例题5

例、通过数据库YGGZ,查询在1980-1-1到1995-12-31日之间出生的员工名单及出生日期。

1666889756997.jpg

sql语句:


USE YGGZ
SELECT *
FROM Employee
WHERE Birthday>='1980-1-1'AND Birthday<='1995-12-31'

语句执行结果:

1666889783022.jpg


2、范围比较


范围比较用于查找字段在或者不在指定范围的行。


例题6

例、通过数据库School,查询class表中的学生姓名name列为陈小小、李文的成绩名单。

USE School
SELECT *
FROM class
WHERE name IN('陈小小','李文')

3、字符匹配


字符匹配使用LIKE谓词,即查找列值宇匹配串相互匹配的行,匹配串可以是一个完整的字符串,也可以含有通配符,这种查询相当于模糊查询,通配符分为两种:

①%:代表0或者多个字符

②_:代表一个字符


例题7

例1、通过数据库YGGZ,根据员工表查询所有姓“张”的员工的信息。

1666889815794.jpg

sql语句:


USE YGGZ
SELECT *
FROM Emplyee
WHERE EmpName LIKE '张%'

语句执行结果:

1666889838035.jpg

例2、通过数据库YGGZ,根据员工表查询姓名中含有“业”的员工的信息。


sql语句:

USE YGGZ
SELECT *
FROM Employee
WHERE EmpName LIKE '%业%'

语句执行结果:

1666889861658.jpg


4、空值使用


判断一个表达式的值是否为空值时,使用 IS NULL 关键字,语法格式如下:

<表达式> IS [NOT] NULL


例题8

例、通过数据库School,查询class表中的学生地址address为空值的学生信息。


USE School
SELECT *
FROM class
WHERE address IS NULL


三、ORDER BY 子句


当要使查询的结果有序输出,需要使用ORDER BY 子句,可以安装一个或者多个字段的值进行排序,语法格式如下:

ORDER BY <排序表达式(列名、表达式或者正整数)> [ASC] [DESC]


用 ACS 表示按正序排序(即:从小到大排序)—升序排列

用 DESC 表示按倒序排序(即:从大到小排序) —降序排列


例题9

例1、通过数据库YGGZ,根据员工表查询1980年之前出生的员工名单,并按照出生日期进行降序排列。

1666889941404.jpg

sql语句:


USE YGGZ
SELECT *
FROM Employee
WHERE Birthday<'1980'
ORDER BY Birthday DESC

语句执行结果:

1666889960001.jpg


四、统计计算


(一)聚合函数


1、常用的SQL聚合函数


AVG( ) :返回集合的平均值。

COUNT( ) :返回集合中的项目数。

MAX( ) :返回集合中的最大值。

MIN( ):返回集合中的最小值。

SUM( ):返回集合中所有或不同值的总和。


2、聚合函数的一般参数语法格式


([ALL| DISTINCT] 表达式)


其中ALL是默认值,DISTINCT表示去掉重复值,表达式即进行聚合函数运算的表达式。


例题10

例1、通过数据库YGGZ,根据工资表查询其所有员工的平均工资值。

1666890005861.jpg

sql语句:


USE YGGZ
SELECT AVG(Wages) AS '平均工资'
FROM Salay

语句执行结果:

1666890051551.jpg

例2、通过数据库YGGZ,根据工资表查询发放日期为2020-5-10的发放工资的员工人数。


sql语句:

USE YGGZ
SELECT COUNT(*) AS '人数'
FROM Salay
WHERE PayDate='2020-5-10'

语句执行结果:

1666890074962.jpg


(二)GROUP BY 子句


GROUP BY 子句用于将查询结果按指定列进行分组。语句格式:

GROUP BY <列名>


例题11

例、通过数据库YGGZ,根据员工表统计男、女员工各自的人数。

1666890103071.jpg

sql语句:

USE YGGZ
SELECT COUNT(*) AS '人数'
FROM Employee
GROUP BY Sex

语句执行结果:

1666890125558.jpg


(三)HAVING 子句


HAVING 子句用于对分组后的查询结果集按指定条件进行进一步筛选,并输出满足指定条件的分组。语句格式:

HAVING <筛选条件>


例题12

例、通过数据库YGGZ,根据工资表查询平均工资大于6000的员工工号及平均工资。

1666890150870.jpg

sql语句:


USE YGGZ
SELECT EmpNo AS '员工人数',AVG(Wages) AS '平均工资'
FROM Salay
GROUP BY EmpNo
HAVING AVG(Wages)>6000

语句执行结果:

1666890171913.jpg


结语


以上就是本次数据库原理与应用(SQL Server)教程简单数据查询的全部内容,感谢您的阅读和支持,篇幅较长,若有表述以及代码中的不当之处,望指出!您的指出和建议能给作者带来很大的动力!!!


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
5天前
|
SQL 存储 大数据
济南sql数据库工程师
济南SQL数据库工程师是负责管理和维护SQL数据库的专业人员。以下是关于济南SQL数据库工程师的一些详细介绍: 一、岗位职责 1. 负责数据库日常巡检,及时反馈运行状况,并跟踪解决问题,确
46 21
|
5天前
|
SQL 供应链 关系型数据库
数据库sql超市
当涉及到使用SQL来管理超市数据库时,通常需要考虑多个方面,包括商品管理、订单处理、销售分析、库存管理等。以下是一个简单的超市数据库SQL示例,以及一些常见的查询操作。 **1. 数据库表设计*
46 17
|
5天前
|
SQL 监控 安全
sql数据库清除工具
在SQL数据库管理中,清理和优化数据库是一个重要的环节,特别是当数据库日志文件过大时。虽然没有特定的“SQL数据库清除工具”可以一键解决所有问题,但你可以使用多种方法和工具来清理SQL Server数
27 6
|
5天前
|
SQL 关系型数据库 MySQL
sql数据库命令
SQL(Structured Query Language,结构化查询语言)是用于管理关系数据库的标准编程语言。以下是一些常用的 SQL 数据库命令: 1. **创建数据库**: ``
26 7
|
5天前
|
SQL 存储 关系型数据库
sql 数据库教程
SQL数据库教程可以从以下几个方面进行介绍: 一、SQL概述与基本概念 SQL,全称Structured Query Language,即结构化查询语言,是用于管理关系型数据库的编程语言。
21 0
|
5天前
|
SQL 存储 关系型数据库
数据库更新sql
SQL Server是由微软公司开发的一种关系型数据库管理系统(RDBMS),用于存储和检索数据。以下是对SQL Server的详细介绍: 一、基本特性 1. 可扩展性:SQL Serve
11 0
|
5天前
|
SQL JavaScript 前端开发
js链接sql数据库
在JavaScript中直接连接SQL数据库(如MySQL、PostgreSQL等)通常不是推荐的做法,特别是当JavaScript在客户端(如浏览器)中运行时。这是因为将数据库凭据暴露给客户端会导致
16 0
|
11天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之如何SQL同步数据到Oracle数据库中
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
11天前
|
SQL 关系型数据库 数据库
阿里云数据库 RDS SQL Server版实战【性能优化实践、优点探析】
本文探讨了Amazon RDS SQL Server版在云数据库中的优势,包括高可用性、可扩展性、管理便捷、安全性和成本效益。通过多可用区部署和自动备份,RDS确保数据安全和持久性,并支持自动扩展以适应流量波动。可视化管理界面简化了监控和操作,而数据加密和访问控制等功能保障了安全性。此外,弹性计费模式降低了运维成本。实战应用显示,RDS SQL Server版能有效助力企业在促销高峰期稳定系统并保障数据安全。阿里云的RDS SQL Server版还提供了弹性伸缩、自动备份恢复、安全性和高可用性功能,进一步优化性能和成本控制,并与AWS生态系统无缝集成,支持多种开发语言和框架。
57 2
|
SQL Go 数据库
SQL Server 系统数据库恢复
原文:SQL Server 系统数据库恢复 标签:SQL SERVER/MSSQL SERVER/数据库/DBA/故障恢复/master 概述      SQL Server 维护一组系统级数据库(称为“系统数据库”),这些数据库对于服务器实例的运行至关重要。
1125 0