本篇主要解说查询语句,全部的演示样例都会依照以下这张表进行。

stuID

stuName

age

sex

11090241031

王小虎

21

11090241032

王小六

22

11090241033

张三

23

1.使用where子句查询表中满足条件的记录

比較查询

算术比較查询

算术比較中经常使用的就是所谓的>、<、<>、=、!<(不小于)、!=(不等于)等,比較的语法例如以下

select*
from T_student
where age!>30

select*
from T_student
where stuName<>
'王小七'

注意:在where子句中,假设比較的是数值型数据,则能够省略单引號,假设是字符串或者日期的话,须要用单引號引起来

Between and

用来查询指定条件范围的记录

select*
from T_student
where agebetween 3
and 45

注意:between and的查询的记录包含两个边界值

IN运算符查询与列表匹配的记录

使用IN运算符能够查询与列表匹配的记录

select*
from T_student
where agein(32,15)

注意:在SQL语句中也能够使用not in运算符来排除一些记录。

逻辑查询

在SQL中逻辑运算符主要包含AND、OR和NOT三种。

AND:用来同一时候满足多个条件的记录

OR:用来满足多个条件中的当中随意一个条件

NOT:用来满足反条件的记录

select*
from T_student
where agein(30,15)and
stuName ='王小虎'

(假设有一个条件为False的话,就不会显示结果)

select*
from T_student
where agein(32,15)or
stuName ='王小虎'

(仅仅要满足不论什么一个条件就能够显示记录)

select*
from T_student
where agenot
in(32,15)

(查询的是反条件记录,也就是不满足年龄在32和15的记录)

复杂逻辑

复杂逻辑事实上就是AND、OR、NOT的运算符使用的组合,正如我们所知运算符也有先后顺序

NOT>AND>OR

select*
from T_student
where agenot
in(32,15)OR
stuName ='王小六'

(依据先后顺序可知,查询的是年龄不是32和15或者名字是王小六的记录)

空值查询

在使用SQL语句时,有时可能遇到该字段中没有值,那么就称为空值(null),查询语句也很easy.

select*
from T_student
where stuNameIS
NOT NULL

(查询表汇总名字不是空值的记录)

Like模糊查询

使用LIKE操作符实现模糊查询

在使用SQL时,可能有时会遇到一种情况,不能全然确定自己要查找的信息,可是这些信息又有一些明显的特征,那么就能够採取以下的模糊查询

匹配随意单个字符

通配符“_”表示匹配单个字符,在查询中能够用到

select*
from T_student
where stuName like
'王_虎'

(表示查询王*虎的记录)

匹配0个或者多个字符

通配符“%”表示匹配0个或者多个字符,即一个%能够表示一个字符或者多个字符

select*
from T_student
where stuName like
'王%'

(表示名字中首字符石王的记录)

通配符[]

字符列中的不论什么单一字符

select*
from T_student
where stuName like
'[王菲]%'

(表示姓名以王或者菲开头的记录)

通配符[^]

表示不在字符列中的不论什么单一字符

select * from T_student where stuName like '[^菲]%'

(表示姓名不是已菲开头的记录)

转义字符

在使用SQL运行模糊查询时,假设数据表某个字段本身就包括通配符时,又该怎么办

(1):在须要转义的“%”或者是“_”前加一个转义符,该转义符能够是一个随意字符

(2):在ESCAPEkeyword后指定该转义符的名称

select * from T_student where sutID  like '%$_%' ESCAPE '$'

(该查询语句表示,ID中包括_的记录,当中转义符$已经把_转义)

---------------------------------------------------------------------------------------

2.数据表的分组操作

表中的数据的排序和分组

我们在使用SQL语句查询操作时,可能查询出的语句是没有规律的,那么为了更好的观察自己查到的结果能够对其进行排序。

GROUP BY

通过ORDER BY子句能够对查询结果指定的列进行升序或降序,这取决于后面的keyword

select * from T_student order by age desc

(将查出后的结果按降序排序)

注意:ORDER BY子句仅仅是对终于结果进行排序,不能用在select子查询中的select语句中,并且ORDER BY子句的位置必须放在全部子句的最后,也就是说,假设查询语句中有多个子句的话,那么ORDER
BY子句必须放在这些子句之后

经常使用的聚合函数

所谓的聚合函数就是统计函数,主要是对得到的数据进行排序求值等操作

函数

功能

COUNT(列表达式)

计算给定列或者表示式中非空行数

COUNT(*)

计算数据表中的总行数,包含空值

MAX(列表达式)

计算给定列中或者表达式中的最大值

MIN(列表达式)

计算给定列或者表达式中的最小值

SUM(列表达式)

计算给定列或者表达式中全部的总和

AVG(列表达式)

计算给定列或者表达式中的全部值得平均值

使用GROUP BY子句对表中数据进行分组

GROUP by子句能够依据数据列的多个数据查询出来的结果进行分组

select age, count(stuname)from t_student whereage <50 group by age order by age

(以年龄进行分组,而且统计每一个年龄段的学生的数目)

使用having限制分组后的查询结果

假设要对分组后的结果限制查询条件,就能够使用having语句,该语句放在GROUP BY语句的后面

select age, count(stuname)from t_student whereage <50 group by age having age >15 order by age

(跟上面的同样,仅仅只是又多了年龄的限制,必须大于15)

限制结果集行数

有些时候,我们并不希望看到查出的结果的所有,仅仅显示几行就可,尤其当在分页操作中的时候,仅仅关心前几条记录就OK了,这时候就须要对结果集进行限制

语法:select top n {precent}列名1,列名2 from表名

Top:keyword,表示限制结果集行数的keyword

N:表示限制结果集行数

Precent:表示返回查询的结果集中的前N%的行数

selecttop 1
agefromt_student
where age
<50

(表示仅仅返回一行)

SQL SERVER之数据查询的更多相关文章

  1. sql server数据库数据查询成功

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...

  2. SQL Server 中数据查询注意事项

    1.查询语句不用区分大小写,而且即使每张表的表名或者列名出现大写字母,在写查询语句的时候也不用区分大小写,查询结果保持一致,所以查询语句小写即可. 2.在写查询语句的时候列名不需要带单引号,数值型的字 ...

  3. Sql Server 存储过程中查询数据无法使用 Union(All)

    原文:Sql Server 存储过程中查询数据无法使用 Union(All) 微软Sql Server数据库中,书写存储过程时,关于查询数据,无法使用Union(All)关联多个查询. 1.先看一段正 ...

  4. SQL Server 变更数据捕获(CDC)监控表数据

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现过程(Realization) 补充说明(Addon) 参考文献(References) ...

  5. 【转】SQL Server T-SQL高级查询

    SQL Server T-SQL高级查询 高级查询在数据库中用得是最频繁的,也是应用最广泛的. Ø 基本常用查询 --select select * from student; //查询student ...

  6. SQL Server查询优化方法(查询速度慢的原因很多,常见如下几种) .

    今天看到一位博友的文章,觉得不错,转载一下,希望对大家有帮助,更多文章,请访问:http://blog.haoitsoft.com 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺 ...

  7. SQL SERVER 2000 & SQL SERVER 2005 数据缓存依赖

    一.SQL SERVER 7.0/2000和SQL SERVER 2005的简介及比较 1.1     SQL SERVER 7.0/2000 SQL SERVER 7.0/2000没有提供内置的支持 ...

  8. 《转》SQL Server 2008 数据维护实务

    SQL Server 2008 数据维护实务 http://blog.csdn.net/os005/article/details/7739553 http://www.cnblogs.com/xun ...

  9. SQL Server GUID 数据迁移至MongoDB后怎样查看?

    关键字:SQL Server NEWID():BSON:MongoDB UUID 1.遇到的问题和困惑 SQL Server中的NEWID数据存储到MongoDB中会是什么样子呢?发现不能简单的通过此 ...

随机推荐

  1. listview,fragment结合起来

    这是csdn上的以个demo,很适合初学者.来源:http://download.csdn.net/detail/endlife99/7274419,侵删. MainActiviy: package ...

  2. mysqldump 备份数据说明+ 避免锁表

    1.mysqldump命令备份Mysql数据库的参数说明 在用mysqldump备份使用那些参数选项是最完美的组合呢?--skip-opt--create-option                 ...

  3. CodeForces 385C Bear and Prime Numbers 素数打表

    第一眼看这道题目的时候觉得可能会很难也看不太懂,但是看了给出的Hint之后思路就十分清晰了 Consider the first sample. Overall, the first sample h ...

  4. POJ 1458 最长公共子序列 LCS

    经典的最长公共子序列问题. 状态转移方程为 : if(x[i] == Y[j]) dp[i, j] = dp[i - 1, j - 1] +1 else dp[i, j] = max(dp[i - 1 ...

  5. ORACLE存储过程笔记2

    ORACLE存储过程笔记2 运算符和表达式     关系运算 =等于<>,!=不等于<小于>大于<=小于等于>=大于等于       一般运算   +加-减*乘/除 ...

  6. Xcode4.5 本地化,多语言设置

    网上已有很多关于ios本地化的博客和资料,由于部分原作者使用的Xcode版本较早,4.5以后的版本已不再支持该方法,后来也没有更新,因此在此写一点学习资料分享出来.废话不多说.     ios本地化主 ...

  7. [置顶] 图书推荐:SQL Server 2012 T-SQL基础 Itzik Ben-Gan

    经过近三个月的不懈努力,终于翻译完毕了.图书虽然是基础知识,但是,即使你已经使用T-SQL几年,很多地方还是能够弥补你的知识空白.大师级的人物写基础知识,或许你想知道这基础中还有哪些深奥,敬请期待吧. ...

  8. 删除: warning C4996: &#39;sprintf&#39;: This function or variable may be unsafe. Consider 方法

    可以使用的最简单的方法: 选项Project   |   Configuration   Properties   |   C/C++   |   Preprocessor   |   Preproc ...

  9. 软件顾问可视设计的得力助手——PowerMockup

    你可能是一位从事信息化的软件顾问,你也可能是一位软件设计师,你须要通过图形直观的向客户表达你的设计意图. 你可能已经积累了非常多的Powerpoint图形元素,但每次都要从以往的文件里到处寻找,浪费您 ...

  10. Java进阶03 IO基础

    链接地址:http://www.cnblogs.com/vamei/archive/2013/04/11/3000905.html 作者:Vamei 出处:http://www.cnblogs.com ...