网站首页 > 技术文章 正文
数据查询:简单来说通过执行编写的TSQL代码查询出表中符合条件的数据,查询的出数据一般称为数据(结果)集,是一个结果集合(其中的数据是没有顺序的)
1 不带条件查询表中所有列的数据(也叫检索数据)
--简单查询数据的标准格式
select * from 表名
--select:意指查询/检索
--* : 代表所有列名
--from:意指从哪个表
--最后一次说明
--切换至要查询表随机所在的数据库
--否则报错(自行测试)
use School;
--查询出 Student 表中所有列的数据
select * from Student
--* 代替 Student 表中所有列名
--有时查询时不需要查询出所有列的数据
--可使用只查询指定列名的方式进行查询
--这样做也可以节省查询时间,提供查询数据的效率
--查询出 Student 表中指定列的数据
select SId, SName, SAge from Student
--每个列名间使用逗号间隔(半角英文状态下)
--也可以进行折行编写
select
SId, SName, SAge
from Student
--查询语句的执行顺序
--大致执行顺序从后向前,从左向右
1)from Student 确认从哪个表中获取数据
2)select SId, SName, SAge 再从1)筛选出指定列的数据
并不是从上到下依次执行
注意:除非必要,不要通过 不带条件,使用 * 查询表的所有数据(特别是数据非常多的表)
2 带条件的查询表中数据(现只针对单个表)需要使用到查询条件的基本条件符号
条件符号:用于SQL查询语句中筛选数据的关键字,通过它可以根据不同的条件符号来对表中数据进行筛选,可以使得使用者更加快速精准地得到我们所需的数据
最基本的条件符号
1) = (等于符号)用于筛选出符合条件的数据集
2) <> (不等于符号)与 =相反,用于筛选出不符合条件的数据集
3) > (大于符号)用于筛选出大于指定数值或日期的数据集
4) < (小于符号)用于筛选出小于指定数值或日期的数据集
5) >= (大于等于)用于筛选出大于等于指定数值或日期的数据集
6) <= (小于等于符号)用于筛选出小于等于指定数值或日期的数据集
7) and/or(逻辑运算符)用于多个条件的组合,可以筛选出两个条件的交/并集数据集
--1) = (等于符号)用于筛选出符合条件的数据集
select SId,SName,SAge from Student where SAge = 18
--2) <> (不等于符号)与 =相反,用于筛选出不符合条件的数据集
select SId,SName,SAge from Student where SAge <> 18
--3) > (大于符号)用于筛选出大于指定数值或日期的数据集
select SId,SName,SAge from Student where SId > 13
--4) < (小于符号)用于筛选出小于指定数值或日期的数据集
select SId,SName,SAge from Student where SId < 13
--5) >= (大于等于)用于筛选出大于等于指定数值或日期的数据集
select SId,SName,SAge from Student where SId >= 13
--6) <= (小于等于符号)用于筛选出小于等于指定数值或日期的数据集
select SId,SName,SAge from Student where SId <= 13
--7) and/or/not (逻辑运算符)用于多个条件的组合,可以筛选出两个条件的交/并/相反集数据集
--使用and得到两个条件的交集结果
select SId,SCId,SName,SAge from Student where SId <=5 and SCId = 3
--使用or 得到两个条件的并集结果
select SId,SCId,SName,SAge from Student where SId <=5 or SCId = 3
--使用 not 得到筛选条件结果的相反结果集
select SId,SCId,SName,SAge from Student where not(SId <=5)
3 (*了解即可)查询数据时可以通过 as 或 = 为表中的列名起个别名,但是这个别名只是基于列名的临时性"列名"只能应用于这个查询中(暂时)
--使用 as 为列名起别名(根据需要自定义有意义的别名)
select
SId as N'学生编号',
SName as N'学生姓名',
SAge as N'学生年龄'
from Student
--使用 = 为列名起别名
select
学生编号 = SId,
学生姓名 = SName,
学生年龄 = SAge
from Student
4 通过top/percent获取查询结果的前几条/百分之几(大于当前百分比的最近的整数)
--表中共有16条数据
--获取查询结果的前5条数据
select top 5 * from Student
--获取查询结果的前百分10% 条数据
--查询结果为1.12,实际查询出的数据为2条
select top 7 percent * from Student
注意:通过查询语句得到的数据并没有顺序(只是显示的有顺序)单独使用top意义不大
5 order by 排序语句,top语句一般与order by 语句合在一起连用(进行数据分页时经常使用 order by语句)
--order by 排序语句
--通过年龄降序升序排序(小到大,默认 asc可以省略)
select top 5 * from Student order by SAge asc
--通过年龄降序排序(大到小)
select top 5 * from Student order by SAge desc
--语句执行顺序
1)from Student 从此表中获取结果集
2)order by SAge asc/desc 对1)中数据进行升序/降序排序
3)select top 5 * 获取2)中结果集的前5条数据
知道其查询的执行顺序,查看其查询结果才不会迷惑
6 游标:是SQL的一种数据访问机制,游标是一种处理数据的方法
通过SQL的select查询语句返回的结果是一个包含一行或者是多行的数据集,如果要对查询的结果再进行查询如查看结果的第一行、上一行、下一行、最后一行等等操作
使用select语句无法完成的其操作结果,因为这时要查询的结果不再是针对数据表,而是针对已经查询出来的结果集,游标就是针对这种情况而出现的
可以将" 游标"简单的看成是结果集中的一个指针,我们可以根据需要通过此"指针"在结果集中来回移动获取需要的数据
--未进行排序,查询结果为无顺序的集合
select * from Student
--进行排序,查询结果为有顺序的称为游标
select * from Student order by SAge
--虽然最终结果相同,但是查询的结果是不同的
猜你喜欢
- 2025-09-03 数据库教程-SQL Server多条件模糊查询
- 2025-09-03 数据库教程-SQL Server海量数据的快速存储
- 2025-09-03 数据库教程-SQL Server数据字典查询及导出
- 2025-09-03 利用VBA+SQL查询Excel工作表数据(基本查询)
- 2025-09-03 紫金桥组态软件基于内置SQL查询历史数据的方法
- 2025-09-03 【开源推荐】SQL 审核查询平台Archery v1.7.9 发布,数据可归档
- 2025-09-03 利用VBA+SQL查询Excel工作表数据(分组查询)
- 2025-09-03 这才是数据分析全流程,而不是跑个SQL
- 2025-09-03 见过最惊艳的 SQL 查询语句是什么?揭秘高效查询的奥秘
- 2025-09-03 sql年月查询多种方式_sql查询当前时间年月日
- 最近发表
-
- count(*)、count1(1)、count(主键)、count(字段) 哪个更快?
- 深入探索 Spring Boot3 中 MyBatis 的 association 标签用法
- js异步操作 Promise fetch API 带来的网络请求变革—仙盟创梦IDE
- HTTP状态码超详细说明_http 状态码有哪些
- 聊聊跨域的原理与解决方法_跨域解决方案及原理
- 告别懵圈!产品新人的接口文档轻松入门指南
- 在Javaweb中实现发送简单邮件_java web发布
- 优化必备基础:Oracle中常见的三种表连接方式
- Oracle常用工具使用 - AWR_oracle工具有哪些
- 搭载USB 3.1接口:msi 微星 发布 990FXA Gaming 游戏主板
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)