Sql Server查询语句

简介: Sql Server查询语句

Sql Server查询语句

对于Sql Server创建的表中的数据进行查询,可以进行,基础查询,条件查询,模糊查询

基础查询

基础查询语句为:select *from 表名

select *from 表名
表示查询表中的所有数据
-- 查询指定列(姓名、生日、月薪、电话)
select PeopleName,PeopleSex,PeopleBirth,PeopleSalary,PeoplePhone from People
-- 表示从People表中查询指定的列
-- 当我们需要查询指定列,并显示别名的时候(自定义别名)
select PeopleName 姓名,PeopleSex 性别,PeopleBirth 生日,PeopleSalary 薪水,PeoplePhone 电话 from People
-- 查询出员工所在的城市(不需要重复的数据显示) 关键字 distinct
select distinct (PeopleAddress) from People
-- 假设查询出来加工资前和加工资后员工数据对比
select PeopleName 姓名, PeopleSex 性别,PeopleSalary 原始工资,PeopleSalary*1.2 加薪后的工资 from People

条件查询

对于查询的列或者表,进行条件赛选,得到我们所需的数据

SQL语句基础的运算符

-- SQL常用的运算符
= :等于表示是否相等或者赋值
!=:表示不相等
>,<,>=,<= :分别表示大于,小于,大于等于,小于等于
is null:表示为空
is not null:表示不为空
in:表示是否在其中
like:模糊查询
between...and...:比较是否在两者之间
and:逻辑与(两者必须都成立,条件才成立)
or:逻辑或(两者成立一个则条件成立)
not:逻辑非(条件成立,加not后表示表达式不成立)
-- and or not 其实相当于C语言中的&& || !
对于上述的运算符的合理运用,便能组合成条件,进行条件查询

上述运算符是基础,必须要掌握,下面是演示代码

-- 根据指定列(姓名,性别)查询女性员工
select PeopleName 姓名,PeopleSex 性别 from People where PeopleSex='女'
-- 查询月薪在10000-15000范围的男性员工
select PeopleName 姓名,PerPleSex 性别,PeopleSalary 薪水 from People where PeopleSex='男' and PeopleSalary >=10000 and PeopleSalary<=15000
-- 使用between....and...来实现上述语句
select PeopleName 姓名,PerPleSex 性别,PeopleSalary 薪水 from People where PeopleSex='男' and PeopleSalary between 10000 and 15000
-- 查询女性员工的薪水,并按照降序排序
-- 排序查询的语法,select *from 表名 order by 列(被排名的基准列)desc(默认是asc)
-- asc:升序(默认值,可以不写)desc:降序
select PeopleName 姓名,PerPleSex 性别,PeopleSalary 薪水 from People where PeopleSex='女' order by PeopleSalary desc
-- 我们对于员工的生日日期,规范使用的是“1988-1-1”(模板)
-- 三个内置函数,year(PeopleBirth),month(PeopleBirth),day(PeopleBirth),分别表示取得PeopleBirth的年月日
-- 如果我们需要查询员工是00后,并按照薪水的升序排列
select PeopleName 姓名,PeopleSex 性别,PeopleSalary 薪水,PeopleBirth 生日 from People where year(PeopleBirth) between 2000 and 2009 order by
-- 如果我们要得到员工的年龄:year(gettime())-year(PeopleBirth)
select PeopleName 姓名,PeopleBirth 生日 from People year(gettime())-year(PeopleBirth) between 30 and 40 
-- 上述查询30-40岁的员工信息
-- 查询和某一员工相同地址的所有员工信息
select *from People where PeopleAddress=(select PeopleAddress from People where PeopleName='xxx')
-- 上述语句说明,查询语句本身就是可以作为一个条件,将查询的内容,作为条件

如果我们想要得到同一属性的员工数据,可以根据年龄,使用case end语句

-- case 相当于C语言中switch
-- end是结尾关键字
-- 在case后面可以输入数据,然后在case里,使用when...then来表示C语言中的if语句,else表示为C语言中的default
-- 比如我们这个员工的表格年份是从1984年开始的,1984年是鼠
-- 鼠 牛 虎 兔 龙 蛇 马 羊 猴 鸡 狗 猪
-- 0  1  2  3  4 5 6  7  8 9 10 11
-- 如果我们想要员工属鼠的数据
select *from People where year(PeopleBirth)%12=0
-- 我们显示所有人的属象,那么就根据%以及case...end语句来判断
select *,
case (year(PeopleBirth)%12)
  when 0 then '鼠'
  when 1 then '牛'
  when 2 then '虎'
  when 3 then '兔'
  when 4 then '龙'
  when 5 then '蛇'
  when 6 then '马'
  when 7 then '羊'
  when 8 then '猴'
  when 9 then '鸡'
  when 11 then '狗'
  when 12 then '猪'
 else''
end 生肖
from People

模糊查询

模糊查询使用like关键字以及通配符来实现,下面是通配符

-- % :代表匹配任意字符(包括0)
-- _:表示匹配的字符有且只有一个
-- []: 代表匹配范围内   [1,2,3] 表示匹配数据中相关列的1 2 3数据的成员
-- [^]:表示匹配不在该范围内

下面是详细例子使用like和通配符来实现模糊查询

1.查询员工中姓王的员工
select *from People where PeopleName like '王%' --可以是王磊,王二狗等,以王头即可
2.查询电话号码,以138开头,以5181结尾
select *from People where PeoplePhone like '138%5181' and len(PeoplePhone)=13 --中间字符是任意的,且保证为13位数字
3.找到名字里面有’红‘的员工
select *from People where PeopleName like '%红%'
-- substring(PeopleName,1,1) 表示在PeopleName数据中从第一个位置,选择一个字符的数据


相关文章
|
3月前
|
SQL 监控 关系型数据库
一键开启百倍加速!RDS DuckDB 黑科技让SQL查询速度最高提升200倍
RDS MySQL DuckDB分析实例结合事务处理与实时分析能力,显著提升SQL查询性能,最高可达200倍,兼容MySQL语法,无需额外学习成本。
|
3月前
|
SQL 存储 关系型数据库
MySQL体系结构详解:一条SQL查询的旅程
本文深入解析MySQL内部架构,从SQL查询的执行流程到性能优化技巧,涵盖连接建立、查询处理、执行阶段及存储引擎工作机制,帮助开发者理解MySQL运行原理并提升数据库性能。
|
7月前
|
SQL 数据挖掘 数据库
第三篇:高级 SQL 查询与多表操作
本文深入讲解高级SQL查询技巧,涵盖多表JOIN操作、聚合函数、分组查询、子查询及视图索引等内容。适合已掌握基础SQL的学习者,通过实例解析INNER/LEFT/RIGHT/FULL JOIN用法,以及COUNT/SUM/AVG等聚合函数的应用。同时探讨复杂WHERE条件、子查询嵌套,并介绍视图简化查询与索引优化性能的方法。最后提供实践建议与学习资源,助你提升SQL技能以应对实际数据处理需求。
562 1
|
3月前
|
SQL 监控 关系型数据库
SQL优化技巧:让MySQL查询快人一步
本文深入解析了MySQL查询优化的核心技巧,涵盖索引设计、查询重写、分页优化、批量操作、数据类型优化及性能监控等方面,帮助开发者显著提升数据库性能,解决慢查询问题,适用于高并发与大数据场景。
|
2月前
|
SQL 关系型数据库 MySQL
(SQL)SQL语言中的查询语句整理
查询语句在sql中占了挺大一部分篇幅,因为在数据库中使用查询语句的次数远多于更新与删除命令。而查询语句比起其他语句要更加的复杂,可因为sql是数据库不可或缺的一部分,所以即使不懂,也必须得弄懂,以上。
249 0
|
4月前
|
SQL XML Java
通过MyBatis的XML配置实现灵活的动态SQL查询
总结而言,通过MyBatis的XML配置实现灵活的动态SQL查询,可以让开发者以声明式的方式构建SQL语句,既保证了SQL操作的灵活性,又简化了代码的复杂度。这种方式可以显著提高数据库操作的效率和代码的可维护性。
318 18
|
9月前
|
SQL 运维 监控
SQL查询太慢?实战讲解YashanDB SQL调优思路
本文是Meetup第十期“调优实战专场”的第二篇技术文章,上一篇《高效查询秘诀,解码YashanDB优化器分组查询优化手段》中,我们揭秘了YashanDB分组查询优化秘诀,本文将通过一个案例,助你快速上手YashanDB慢日志功能,精准定位“慢SQL”后进行优化。
|
9月前
|
SQL 索引
【YashanDB知识库】字段加上索引后,SQL查询不到结果
【YashanDB知识库】字段加上索引后,SQL查询不到结果
|
4月前
|
SQL 人工智能 数据库
【三桥君】如何正确使用SQL查询语句:避免常见错误?
三桥君解析了SQL查询中的常见错误和正确用法。AI产品专家三桥君通过三个典型案例:1)属性重复比较错误,应使用IN而非AND;2)WHERE子句中非法使用聚合函数的错误,应改用HAVING;3)正确的分组查询示例。三桥君还介绍了学生、课程和选课三个关系模式,并分析了SQL查询中的属性比较、聚合函数使用和分组查询等关键概念。最后通过实战练习帮助读者巩固知识,强调掌握这些技巧对提升数据库查询效率的重要性。
162 0
|
7月前
|
SQL 关系型数据库 MySQL
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路
凌晨2点报警群炸了:一条sql 执行200秒!搞定之后,我总结了一个慢SQL查询、定位分析解决的完整套路