300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > SQL数据库语言基础之SqlServer条件查询 排序数据表 like模糊查询【大总结】

SQL数据库语言基础之SqlServer条件查询 排序数据表 like模糊查询【大总结】

时间:2019-12-07 02:12:20

相关推荐

SQL数据库语言基础之SqlServer条件查询 排序数据表 like模糊查询【大总结】

文章目录

一、语句查询数据(SELECT)二、获取满足查询条件的语句(WHERE)三、排序查询(ORDER BY)四、高级条件查询

一、语句查询数据(SELECT)

1、在SSMS中查看数据

在数据库中找到需要查看的数据表,右击——>编辑前200行,就可以查看数据表中的所有数据。

2、使用查询表中指定字段的数据

SELECT * FROM COU --查询表COU中全部字段数据SELECT CNO, C_COURSE_NAME FROM COU --查询2列的数据

3、查询结果中去除重复信息

在查询字段前,加入一个“DISTINCT”字段。

注意:使用DISTINCT会降低数据表的查询效率,因为它的原理是先进行排序分组,再进行相同字段的去除。

4、命名新列

在查询的字段后使用AS关键字。

SELECT CNO AS '课程号', C_COURSE_NAME AS '课程名' FROM COU

注意:这里的字符串 是用单引号括起来的,而不是双引号。

AS也可以用来新建临时列:

SELECT CNO AS '课程号', C_COURSE_NAME AS '课程名', 'aaa' AS bbb FROM COU

5、将查询结果保存为新表

SELECT CNO AS '课程号', C_COURSE_NAME AS '课程名', 'aaa' AS bbb INTO new_couFROM COU

再查询或刷新一下即可以看到新生成的表:

6、连接字段

SELECT CNO+' '+C_COURSE_NAME AS 课程信息FROM COU

注意:连接字段时左右两边的数据类型必须相同。

二、获取满足查询条件的语句(WHERE)

1、条件表达式

就是可以判断出确定逻辑值的表达语句,条件表达式跟在WHERE后面。

2、逻辑运算符

3、根据条件查询

根据条件可以所有相关信息、数值数据、字符数据(单引号括起来)、日期数据等。

4、按范围查询数据

--between andSELECT *FROM COUWHERE CHOUR BETWEEN 30 AND 200--等价于SELECT *FROM COUWHERE CHOUR>=30 AND CHOUR<=200

5、查询NULL值(使用is null)

SELECT H_CNO FROM HOMEWORKS WHERE H_SCORE_1 is null

其实也可以用:

SELECT H_CNO FROM HOMEWORKS WHERE H_SCORE_1=null

不过往往后者查不出结果,在查询表达式中(比如where与having中),UnKnown会视为false。所以select * from 表 where 字段=null查不到正确的结果。在sql中要查询某列值为null的所有结果集时,查询条件应该这样写:select * from 表 where 字段 is null。

三、排序查询(ORDER BY)

1、排序方向

desc:降序排列,从高到低;

asc:升序排列,从低到高,是默认排序方式。

SELECT * FROM COU ORDER BY CHOUR DESC

2、按字段位置排序

只按CSCORE进行降序排列:

SELECT CNO,CSCORE,C_TEACHER_NAMEFROM COUORDER BY 2 DESC

3、查询前几行数据(top)

查询前3行数据:

SELECT top 3 CNO,CSCORE,C_TEACHER_NAMEFROM COUORDER BY 2 DESC

4、查询前百分比数据(percent)

查询前30%的数据:

SELECT top 30 percent CNO,CSCORE,C_TEACHER_NAMEFROM COUORDER BY 2 DESC

5、WHERE 与 ORDER BY结合使用(WHERE 在前)

SELECT * FROM COUWHERE CSCORE<7ORDER BY CSCORE DESC

四、高级条件查询

也就是使用比较复杂的逻辑运算符进行的查询。

1、逻辑表达词

2、LIKE通配符(模糊查询)

3、范围表示

此外,还要一个可以表示字符范围的通配符:

[a-z]代表a到z的26个字母中任意一个,指定一个范围中任意一个续上;

排除 [!字符] [!a-z]代表9,0,%,*等 它只代表单个字符;

数字排除 [!数字] [!0-9]代表A,b,C,d等同上;

组合类型 字符[范围类型]字符 cc[!a-d]#代表ccF#等 可以和其它几种方式组合使用。

4、模糊查询示例(中括号[ ]表示范围,!和^表示非)

(1)查询 C_TEACHER_NAME字段中包含有“三”字的:

SELECT * FROM COU WHERE C_TEACHER_NAME LIKE '%三%'

(2)查询 C_TEACHER_NAME字段中以“甘”字开头:

SELECT * FROM COU WHERE C_TEACHER_NAME LIKE '甘%'

(3)查询 CHOUR字段中含有数字的:

SELECT * FROM COU WHERE CHOUR LIKE '%[0-9]%'

(4)查询 CNO字段中含有大写字母的信息:

SELECT * FROM COU WHERE CNO LIKE '%[A-Z]%'

(5)查询 CNO字段中不含有数字的:

SELECT * FROM COU WHERE CNO LIKE '%[!0-9]%'

(6)查询C_TEACHER_NAME中姓张或者姓李的信息:

SELECT * FROM COU WHERE C_TEACHER_NAME LIKE '[张李]%'

(7)查询C_TEACHER_NAME中 不 姓张或者姓李的信息:

SELECT * FROM COU WHERE C_TEACHER_NAME LIKE '[^张李]%'

5、注意

当我们作字符型字段包含一个子串的查询时最好采用“%”而不用“”,用“”的时候只在开头或者只在结尾时,而不能两端全由“*”代替任意字符的情况下。

6、定义转义字符

只有紧紧跟在转义字符后面的字符,才可以被看作为转义字符。

LIKE '%5#%' ESCAPE '#' --表示#为转义字符LIKE '%5#%%' ESCAPE %' --表示%为转义字符,可以是5%

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。