SQL查询语句大全(个人总结)

前言

在一级项目组时,监控服务器的同时,总结了一下SQL关于查询的语句,希望能给大家带来一些帮助
推荐两个博客,下面借鉴了这两个
菜鸟教程
网上大佬的

之前的总结

在这里插入图片描述
这次在之前的基础上扩展一些内容,分别在字句的后面扩展更多的表达式或者函数。
在这里插入图片描述
下面会用到一级中具体某个表,会有说明

Select

Select+聚合函数
总数

count(*)表示计算总行数,括号中写星与列名,结果相同
例1.查询登录系统学总数

select count(*) from StudentBindPaperTypeEntity
最大值

max(列)求此列的最大值
例2.求下表的最大编号

select max(StudentID) from StudentBindPaperTypeEntity
最小值

min(列)求此列的最小值
例3.求下表编号最小编号

select min(StudentID) from StudentBindPaperTypeEntity
求和

sum(列)求此列之和(注:sum运算符与数字类型连用)
例4.查询当前在线的学生(IsUse=0表示未在线,1表示在线)

select SUM(IsUse) from StudentBindPaperTypeEntity
平均值

avg(列) 表示求此列的平均值(注:avg运算符与数字类型连用)
例5:查询学生编号的平均数

select avg(StudentID) from StudentBindPaperTypeEntity
Select+case…when…then语句

case…when…then语句,相当于编程语言中if判断
例1根据IsUser字段查询学生是否在线

select a.StudentID,
	(case a.IsUse 
	when '0' then '未在线' 
	when '1' then '在线' else '未上传' end) as 在线情况
from StudentBindPaperTypeEntity as a

显示情况:
在这里插入图片描述

select+top

top:取表中前多少的数据
例1.取出表中第几行数据(如第一行)

select top 1 * from StudentBindPaperTypeEntity

例2.取出表中百分之多少数据

select top 50 percent * from StudentBindPaperTypeEntity 

from(表)+连接查询

连接查询

  • 内连接:Inner join
  • 左连接:Left join
  • 右连接:Right join

例子中涉及的表

  • StudentInfoEntity:全校学生的信息
  • ScoreEntity:学生考试的成绩(并不全包含全校学生)
from+inner join

在这里插入图片描述
例1.查出这两个表中共有的信息(as为表的别名,方便)

select score.studentID,score.score,s.CollegeID,s.major,s.majorClass
from ScoreEntity as score inner join StudentInfoEntity as s on score.studentID=s.studentID 
where score.CollegeID=02

显示结果
在这里插入图片描述

from+left join

在这里插入图片描述
左外连接:左表的值会全部显示出来,右表的值显示on条件搜索的的结果,搜索不到为NULL
例1两个表作左外连接

select score.studentID,score.score,s.CollegeID,s.major,s.majorClass
from  StudentInfoEntity as s left join ScoreEntity as score on s.studentID=score.studentID 

显示结果:(个别)
在这里插入图片描述

from+right join

在这里插入图片描述
右外连接与左外连接相反(右表的值全部显示出来)
例1两个表做右外连接

select score.studentID,score.score,s.CollegeID,s.major,s.majorClass
from  ScoreEntity as score  right join StudentInfoEntity as s on s.studentID=score.studentID 

现在两个表换了位置,结果是一样的
在这里插入图片描述

Where(条件语句查询)

在这里插入图片描述

比较运算符

例1.查询学号>18832650890的学生

select * from StudentBindPaperTypeEntity where StudentID>18832650890

例2.查询学号!=18832650890的学生(<>同效)

select * from StudentBindPaperTypeEntity where StudentID!=18832650890
模糊查询

like
%表示任意多个字符
例1.查询1月8号考试的学生

select * from StudentBindPaperTypeEntity where TimeTamp like '2020-01-08%'

例2.查询不是1月8号考试的学生

select * from StudentBindPaperTypeEntity where TimeTamp not like '2020-01-08%'
范围查询

in关键字为非连续查询
例1.查询两个不相邻的学号的学生

select * from StudentBindPaperTypeEntity where StudentID in('19100142001','19100142006')

Between…and…为连续查询(注:sql软件情况不一样,可能不包含and后的值)
例2.查询两个学号之间的学生

select * from StudentBindPaperTypeEntity where StudentID Between 19100142001 and 19100142006
空判断

is null判断为空
例1.查询没有试卷的学生

select * from StudentBindPaperTypeEntity where PaperType is null

is not null 判断非空
例2.查询有试卷的学生

select * from StudentBindPaperTypeEntity where PaperType is not null
优先级

优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符
and比or先运算,如果同时出现并希望先算or,需要结合()使用

group by(分组)

作用:将字段间一对多的关系,向一的方向靠拢分组
例1.查出参加考试有几个学院

select CollegeID  from StudentBindPaperTypeEntity group by CollegeID

显示结果:
在这里插入图片描述

group by+聚合函数

例2.查出各个学院参加考试的人数

select CollegeID, count(StudentID) from StudentBindPaperTypeEntity group by CollegeID 

显示结果:
在这里插入图片描述
其实group by + 聚合函数是从group by + group_concat()演变过来的,SqlServer不支持这个函数

group by+having

having的作用跟where子句功能一样,只不过having只用在group by
例3.查出学院ID大于10的学院

select CollegeID  from StudentBindPaperTypeEntity group by CollegeID having CollegeID>10

显示结果:
在这里插入图片描述

Order by(排序)

排序查询语法:

select * from 表名 order by1 asc|desc [,2 asc|desc,...]
  • 如果列1的值相同,则按照列2排序,以此类推
  • asc从小到大
  • desc从大到小

例1.根据学院分组ID降序(desc)

select CollegeID  from StudentBindPaperTypeEntity group by CollegeID order by CollegeID desc

在这里插入图片描述
例2.将上表升序(asc)

select CollegeID  from StudentBindPaperTypeEntity group by CollegeID order by CollegeID asc

在这里插入图片描述

  • 407
    点赞
  • 2980
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 39
    评论
### 回答1: 要查看SQL的DBMS,可以使用以下方法之一: 1. 查看数据库管理系统的文档或配置文件:大多数数据库管理系统会在其文档或配置文件中列出其名称和版本号。可以通过查看这些文档或文件来确定使用的数据库管理系统。 2. 使用SQL命令行界面:连接到数据库管理系统后,运行SELECT @@VERSION;命令,将返回数据库管理系统的版本信息。 3. 使用可视化工具:许多可视化工具,如phpMyAdmin、SQL Management Studio等,可以在其界面中显示当前使用的数据库管理系统的名称和版本信息。 ### 回答2: 要查看SQL的DBMS(数据库管理系统),可以通过以下几种方法: 1. 查看数据库连接信息:可以查看应用程序或数据库连接配置文件中的连接字符串,其中包含了DBMS的信息。连接字符串通常会指定DBMS的类型和版本。 2. 登录到DBMS的管理界面:DBMS通常提供了一个管理界面,可以通过浏览器或者独立的客户端应用程序访问。登录到管理界面后,可以查看关于DBMS的详细信息,包括版本号、配置参数等。 3. 使用SQL语句查询:连接到数据库后,可以使用SQL语句查询DBMS的相关信息。例如,可以使用"SELECT @@VERSION"语句查询DBMS的版本号,或者使用"SHOW VARIABLES"语句查询DBMS的配置参数。 4. 查询系统表或视图:DBMS通常会提供一些系统表或视图,用于存储和展示关于DBMS本身的信息。可以查询这些系统表或视图,以获取有关DBMS的详细信息。例如,在MySQL中,可以查询"INFORMATION_SCHEMA"数据库中的表和视图。 无论使用哪种方法,我们都需要访问数据库或DBMS的相关权限,例如具有足够的权限登录DBMS的管理界面,或者具有查询系统表或视图的权限。另外,每种DBMS的具体操作方式可能会有所不同,需要按照相应的文档或指南进行操作。 ### 回答3: 要查看 SQL 的 DBMS,需要根据具体情况采取不同的方法。 首先,可以通过登录到所使用的 DBMS 管理工具来查看。不同的 DBMS 有不同的管理工具,比如 MySQL 可以使用 MySQL Workbench,Oracle 可以使用 Oracle SQL Developer。打开相应的工具后,输入正确的连接信息(如 IP 地址、端口号、用户名、密码等),成功连接后即可查看所连接的 DBMS。 其次,可以通过命令行界面来查看。打开终端或命令提示符窗口,使用相应的命令连接到 DBMS,并通过命令执行各种操作。比如使用命令 "sqlplus" 连接到 Oracle DBMS,使用命令 "mysql -u username -p" 连接到 MySQL DBMS。连接成功后,可以使用 SQL 语句查询、插入、更新、删除数据等。 此外,还可以通过编程语言来查看 DBMS。比如使用 Java、Python、C#等编程语言,选择相应的数据库连接驱动,通过编写代码来连接 DBMS,并执行相应的 SQL 操作。通过编程方式可以更加灵活地处理和展示 DBMS 中的数据。 总结而言,查看 SQL 的 DBMS 可以通过管理工具、命令行界面或编程方式进行。根据个人需要和熟悉程度选择适合的方法,以便查询和操作所连接的 DBMS。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿成长轨迹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值