sqlserver like 21个超实用的SQL基础查询例子,一看就懂!

sqlserver like 21个超实用的SQL基础查询例子,一看就懂!

想搞定数据查询,SQL 是绕不开的工具。这里整理了 21 个最基础的 SQL 查询用法,从简单的查个名字、地址,到按条件筛选、给结果排排序,甚至处理重复数据、格式化内容,每个例子都带了具体数据和代码说明,说得明明白白。不管是刚入门还是想复习基础,跟着这些例子学,很快就能上手用 SQL 处理数据了。(所有代码块和表格都可以左右滚动)

1. 查询列

功能说明:从指定表中选取特定列的数据。

基础语法: 列名 FROM 表名;

模拟数据(tb_顾客表):

-- 示例:从tb_顾客表中查询顾客姓名列
SELECT 顾客姓名
FROM tb_顾客表;

模拟结果:

2. 查询全部信息

功能说明:返回指定表中的所有列和所有行数据。

基础语法: * FROM 表名;

模拟数据(tb_顾客表):同上表。

-- 示例:从tb_顾客表中查询所有列的所有信息
SELECT *
FROM tb_顾客表;

模拟结果:返回整个tb_顾客表的数据(全部列和行)。

3. 换标题(列别名)

功能说明:为查询结果的列指定新的显示名称(别名)。

基础语法: 列名 AS '新列名' FROM 表名; (AS可省略)

模拟数据(tb_顾客表):同上表。

-- 示例:为顾客编号、顾客姓名、所在城市列换标题
SELECT 
  顾客编号 AS '编号',
  顾客姓名 AS '姓名',
  所在城市 AS '城市'
FROM tb_顾客表;

模拟结果:

4. 添加列(计算列)

功能说明:通过表达式创建新的计算列。

基础语法: 列名, 表达式 AS 新列名 FROM 表名;

模拟数据(tb_顾客表):同上表。

-- 示例:新增计算列'傻'(电话+传真)和'锅'(邮编+电话)
SELECT 
  顾客姓名, 
  邮编, 
  电话, 
  传真,
  (电话 + 传真) AS '傻',   -- 假设电话和传真为数值类型,实际中可能是字符串,这里按数值运算
  (邮编 + 电话) AS '锅'    -- 同上,注意数据类型匹配
FROM tb_顾客表;

注意:实际应用中,如果电话和传真是字符串类型(如),则+会连接字符串。这里假设它们是数值类型(如INT)。

模拟结果(假设为数值):

5. 区间查询(选择数据范围)

功能说明:根据条件筛选特定范围内的数据。

基础语法:

模拟数据:

-- 示例1:查询邮编大于131000的顾客信息
SELECT 顾客姓名, 邮编, 电话, 传真
FROM tb_顾客表
WHERE 邮编 > 131000;
-- 示例2:查询图书价格在68到88之间的记录
SELECT *
FROM mrbooks
WHERE 图书价格 BETWEEN 68 AND 88;

模拟结果:

6. 模糊查询

功能说明:使用模式匹配筛选数据(如以特定字符开头)。

基础语法: 列名 FROM 表名 WHERE 列名 LIKE 模式;

模拟数据(表):同上表sqlserver like 21个超实用的SQL基础查询例子,一看就懂!,假设图书价格是字符串类型(如'68元'),如果是数字列不推荐用LIKE,下面有详细说明。

-- 示例:查询图书价格以数字开头的记录(假设图书价格是字符串,且至少有一个字符)
SELECT *
FROM mrbooks
WHERE 图书价格 LIKE '_%';

— 示例为:WHERE 图书价格 LIKE '_%',目的是匹配价格以任意单个字符开头(即非空)。

模拟结果:返回所有图书价格非空的记录(因为_%匹配至少一个字符)。

说明:在SQL中,通常不推荐对数字列使用LIKE进行模糊匹配,因为LIKE是专门为字符串设计的操作符。但在某些特殊场景下,这种用法确实存在sqlserver like,下面来详细说明:

数字列用LIKE的问题

适用场景(特殊情况)

在某些特定场景下,数字列用LIKE也有一定合理性:

日期或编码处理:当数值代表的是日期(如)或者编码(如1001)sqlserver like,需要按字符串规则筛选时,就可以使用LIKE。– 筛选2023年5月的数据(假设日期存为格式的INT)

* FROM WHERE LIKE '%';兼容旧系统:如果数据库设计不合理,数值列里存的是字符串形式的数据(例如用INT存邮编),这时可以用LIKE。字符串化的数值:有些数据库会把数值当作字符串来处理(比如默认不严格区分数据类型),在这种情况下,LIKE可能会正常工作。

替代方案

对于数值筛选sqlserver like 21个超实用的SQL基础查询例子,一看就懂!,推荐使用专门的数值操作符sqlserver like,这样逻辑更清晰,性能也更好:

总结:虽然数字列能用LIKE,但存在以下风险:

建议:优先使用数值运算(如>、 按拼音排序?实际按字符编码排序(如UTF-8): 中(中文字符编码较大), 美(M), 日(R)。

注意:中文字符排序与数据库的排序规则设置有关,此处按常规理解为按国籍的拼音首字母或值排序。

实际应用中,若需按拼音排序,可使用指定排序规则(如)。

11. 按姓氏笔画排序

功能说明:按姓名的笔画数排序。

基础语法:在ORDER BY子句中使用指定笔画排序规则。

模拟数据(表):

-- 示例:按姓名笔画升序排列
SELECT *
FROM tb_stu05
ORDER BY 姓名 COLLATE Chinese_PRC_Stroke_CI_AS_KS_WS; -- 笔画排序规则

模拟结果:按姓名的笔画数从少到多排列(实际笔画:张(11画)、李(7画)、王(4画))-> 王、李、张。

12. 多条件查询(NOT、OR)

功能说明:使用逻辑运算符组合多个条件。

基础语法:WHERE NOT 条件1 OR 条件2

模拟数据(表):

-- 示例:查询数学成绩不大于90(即小于等于90)或者音乐成绩大于等于95的记录
SELECT ID, Name, Math_Score, Music_Score
FROM tb_stuscore
WHERE NOT (Math_Score > 90) OR (Music_Score >= 95);
-- 等价于:Math_Score = 95

模拟结果:

返回A和C的记录。

13. 区间查询(使用LIKE)

功能说明:使用LIKE进行模式匹配实现区间查询(适用于特定区间)。

基础语法:WHERE 列名 LIKE '模式' (如十位是8,个位任意:'8_')

模拟数据(表):

-- 示例:查询数学成绩在80-89之间的记录(即十位是8,个位0-9)
SELECT *
FROM tb_StuScore
WHERE Math_score LIKE '8_';

注意:此方法要求是字符串类型。如果是数值类型,可转换为字符串:CAST( AS ) LIKE '8_'。

模拟结果:返回85和88的记录(92不在80-89之间)。

14. 不在90-99之间(使用LIKE)

功能说明:使用LIKE模式匹配查询不在某个区间的记录。

基础语法:使用排除字符。

模拟数据(表):同上表。

-- 示例:查询数学成绩不在90-99之间的记录
SELECT *
FROM tb_StuScore
WHERE 
  Math_score LIKE '[^9]%'   -- 十位不是9,个位匹配任意数量(包括0个)的任意字符,即后续字符可以是任意内容 
  OR Math_score LIKE '[0-8]%'     -- 或者十位是0-8(即0-89)
-- 注意:这里的模式不够精确,示例仅供参考。实际推荐使用数值比较:Math_score  99

模拟结果(按上述SQL模式):

返回85和88。

15. 查询姓姚的人

功能说明:查询以特定字符开头的数据。

基础语法:WHERE 列名 LIKE '姚%'

模拟数据(表):

-- 示例:查询姓姚的记录
SELECT *
FROM tb_StuScore
WHERE 姓名 LIKE '姚%';

模拟结果:返回姚大和姚远的记录。

16. 去重

功能说明:返回指定列的唯一值(去除重复行)。

基础语法: 列名1, 列名2, … FROM 表名;

模拟数据(表):

-- 示例:查询去重后的书号、书名、作者、出版社
SELECT DISTINCT 书号, 书名, 作者, 出版社
FROM tb_BookSell
ORDER BY 书号;

模拟结果:返回去重后的书号记录(B001只出现一次,B002出现)。

17. 列出重复超过1次的记录

功能说明:分组后使用筛选重复组。

基础语法:GROUP BY 列名 COUNT(列名) > 1

模拟数据(表):

-- 示例:查询书名、书号、作者重复出现次数超过1次的记录,并统计重复数量
SELECT 书名, 书号, 作者, COUNT(书名) AS 重复数量
FROM tb_Booksell
GROUP BY 书名, 书号, 作者
HAVING COUNT(书名) >= 2;

模拟结果:返回书A的记录,重复数量为2。

18. 查询备注不为空的信息

功能说明:筛选指定列非空的记录。

基础语法:WHERE 列名 IS NOT NULL

模拟数据(表):

-- 示例:查询备注不为空的学生姓名、所在学院、备注
SELECT 学生姓名, 所在学院, 备注
FROM tb_stu
WHERE 备注 IS NOT NULL;

模拟结果:返回姚远的记录(备注为“转专业”)。

19. 格式化信息(字符串连接)

功能说明:将多个列值格式化为一个字符串。

基础语法:使用+连接字符串(SQL )或函数(跨数据库)。

模拟数据(表):

-- 示例:格式化为'*姓名:张三;编号:1'的形式
SELECT '*姓名:' + Name + ';编号:' + CONVERT(VARCHAR(3), id) AS 学生信息
FROM tb_stu;

模拟结果:

20. 去除空格

功能说明:去除字符串左右的空格。

基础语法:

模拟数据(客户信息表):

-- 示例:去除姓名左右两边的空格
SELECT 
  姓名,
  LTRIM(姓名) AS 去除左面空格,
  RTRIM(姓名) AS 去除右面空格,
  LTRIM(RTRIM(姓名)) AS 去除左右面空格
FROM 客户信息表;

模拟结果(假设输入有空格):

21. 四舍五入

功能说明:对数值进行四舍五入处理。

基础语法:

模拟数据(工资表):

-- 示例:代扣税四舍五入到十位(即个位四舍五入),本月扣零四舍五入到整数,应发合计保留1位小数并转为REAL类型
SELECT 
  人员姓名,
  ROUND(代扣税, -1) AS 代扣税,     -- 四舍五入到十位(如123.45 -> 120.00)
  ROUND(本月扣零, 0) AS 本月扣零,  -- 四舍五入到整数(678.90 -> 679.00)
  CAST(ROUND(应发合计, 1) AS REAL) AS 应发合计  -- 保留1位小数,并转为REAL类型
FROM 工资表;

模拟结果:

— 假设7890.123四舍五入到1位小数:7890.1

总之,这 21 个 SQL 基础查询例子,基本把日常数据处理会用到的操作都覆盖到了。不管是查特定列、给结果换个名字,还是按条件找数据、去重统计,每个用法都结合实际场景讲清楚了,还有模拟数据和代码注释帮忙理解。学会这些,遇到简单的数据查询需求,基本都能应对,对刚接触 SQL 的朋友来说,是很实用的入门参考。

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » sqlserver like 21个超实用的SQL基础查询例子,一看就懂!

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们