加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Sqlserver基础教程系列3-基本的查询select语句

发布时间:2020-12-12 12:51:34 所属栏目:MsSql教程 来源:网络整理
导读:我们通过前面的学习,已经把数据库与表搭建出来了, 存储数据不是目的,我们在使用数据库的时候多数情况下就是按照不同条件获取数据库里面的数据,而我们sql语法中select语句就主要是解决这个问题的。 我们分以下几方面去讲解 基本的SELECT查询语句 查询FROM

我们通过前面的学习,已经把数据库与表搭建出来了, 存储数据不是目的,我们在使用数据库的时候多数情况下就是按照不同条件获取数据库里面的数据,而我们sql语法中select语句就主要是解决这个问题的。

我们分以下几方面去讲解

  1. 基本的SELECT查询语句

  2. 查询FROM子句的用法

  3. 查询WHERE子句进行简单的数据查询

  4. 规范化查询语句

我们以下面这个teacher表为依据讲解查询:

图1示例表

  1. 查询select所有列的信息,如下所示

语句:

SELECT * FROM ?teacher;

解释:select查询 from表示从哪teacher是数据库表的名称,而*代表是所有的列,合起来就查询所有列从teacher表中

  1. 查询某些列的信息

财务人员就想看一下每个人员的工资,在这情况下,如果查询所有列信息,效率就比较低了。

Select t_name,t_salary from teacher

解释:

我们以前用*代表所有列,现在直接写列名即可。每一列用逗号隔开

查询结果

  1. 取消重复元组,关键词Distinct

需求:我们想查询表中民族不重的有哪些

Select distinct mingzu from teacher

  1. 查询前N行的信息

我们有一个表有多条记录,我们只想看最新几条记录的时候,就可以可以下面的语句实现。

  1. Select top 3 * from teacher?? --解释:查询前三条记录的所有列

  2. Select top 3 t_name,t_salary from teacher? --解释:查询前三条记录的特定列信息

  3. 限定查询条件

可以在SELECT语句中使用条件查询语句,即WHERE子句查询。根据指定条件返回,运用比较运算符可以查询条件进行限定:=< > <= >= <> !=

需求1、我们想看男教师的信息

Select * from teacher where t_sex='男'

如果连接的数据类型不是数字时必须用单引号将比较运算符后面的数据引起

需求2、想看一下工资大于等于3000的信息

Select * from teacher where t_salary>=3000

6、范围运算符

我们可以通过BETWEEN与NOT BETWEEN,主要用于查询是否在指定范围内的数据

Select * from teacher where t_no between 2 and 5? ??where条件,哪个字段的什么区间(between)的值

那么这样就查询出来在编号在2到5之间的信息。其实咱们可以把它理解为区间

7、逻辑运算符

可以满足用户在查询时指定多个查询条件,AND?表示当指定的所有查询条件都成立时则返回 ,OR?表示当指定的所有查询条件只要有一个成立就返回结果集,NOT?表示否定查询条件

需求:查询男教师信息,并且工资要在3000以上的。

语句1:

Select * from teacher where t_sex='男' and t_salary>=3000

通过上面语句,我们既要满足是男教师,又要满足工资

语句2:

Select * from teacher where d_no=11 or d_no=03

这样查询的结果就是要么d_no这一列编号是03,要么是11的

  1. 字符匹配

运用LIKE字符匹配可以对数据库进行模糊查询

select * from teacher where t_name like '读书屋'

select * from teacher where t_name like '%书%'

我们在前后添加了%,%表示任意长度的字符串,这样的话,只要我们在姓句式中包括了书的都可能被查询到,PS我们更改了源表的内容,如下图所示

?

9、规范化查询

对于使用 SELECT 语句查询出的结果集,可以用ORDER BY?子句对结果集的相应属性列进行排序,ASC表示升序,DESC表示降序,默认为ASC.

需求:我们想看一下教师工资从高到低的一个顺序

SELECT * FROM teacher ORDER BY t_salary DESC

通过order by,然后是想依照的字段,最后是升序或是降序

10、GROUP BY?子句

在SELECT 语句查询中,可以用 GROUP BY 子句对结果集进行分类汇总. GROUP BY 后面还可以跟HAVING 子句,将满足条件的结果输出.

需求:想查询一下男教师与女教师的平均工资

select AVG(t_salary) as 平均工资,t_sex FROM teacher group by t_sex

解释:avg(字段名称),聚合函数,表示平均值,就像EXCEL就算平均一样,最终得到一个,由于聚合函数统计后列名不显示了,所以通过AS关键字重新起个名称,group by跟着的是分类的依据

Ps:HAVING 子句查询类似WHERE 子句查询,不同的是WHERE 子句查询是限定于行的查询,而HAVING 子句查询是限定于对统计组的查询,一般与GROUP BY 一起使用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读