SQL中:语法总结(group by,having ,distinct,top,order by,like等等)

语法总结:group by,distinct ......

1.group by

作用:给列划分成组

对表中某列属性成组划分,一个列中按其属性可划分成多个组

按指定的一列或多列值分组,值相等的为一组

注意:

使用条件时,用having

例:

图1

sex 性别,可划分为:男、女 两组

以此类推:

上表也可以按sage 年龄分组,分为17、18、19三组

也可以按sno 学号分组,分为95001、95002等等五组,但这样分就没有意义了。

具体查询结果看 2.聚集函数中图2

2.聚集函数

第二个就写聚集函数,那肯定和上面的group by有点关联了;

1.一般聚集函数 常与group by 连用

2.聚集函数中可使用distinct 去掉重复值,如count(distinct 列名)等

3.聚集函数也可按情况单独使用,不用group by分组

若对查询结果分组后,聚集函数将分别作用于每个组

例:

查询结果如下图所示(查询表上图一):

图2

count

计数,求表中行的个数

用法:

count(列名)

count(distinct 列名)

3.order by

例:

sql 复制代码
select *
from student
where  sno=1
order by  列名 desc,列名 asc

注意:嵌套查询的子查询中不能使用order by子句

4.增insert、删(drop、delete)、改(update、alter)

向表中添加数据

例:

sql 复制代码
use xmgl  -- 使用数据库
insert into  sjproject -- 字段名
values --字段值
('2001','J001','项目总监'),
('2001','J008','项目总监'),
('2002','J001','项目员工'); -- 一次插入多条数据

5.查select

语法:

select distinct 或 top 列名

from student (student 为表名)

嵌套查询

外层查询 与 内层查询

例:

sql 复制代码
select * /* 查询所有列 ,此select为 外层查询 */  
from student
where sno in
(
select sno  /* 此select为内层查询 ,不可使用order by子句 */
from student
sno=1 or sno =2
)

内层查询 与 外层查询中:

where 列名1 < any

select 列名1

from sc

where ssex='男'

列名一样

不相关子查询

子查询的查询条件不依赖于父查询

过程:

由里向外逐层处理

即每个子查询在上一级查询处理之前求解,子查询的结果用于建立其父查询的查找条

件。

相关子查询

子查询的查询条件依赖于父查询

过程

1.首先取外层查询中表的第一个元组,根据它与内层查询相关的属性值处理内层查询,若where子句返回值为真,则取此元组放入结果表

2.再取外层表的下一个元组

3.重复这一过程,直至外层表全部检查完为止

外查询、内查询、外查询

使用的谓词

1.in谓词 (一般专有使用)

为什么不用等号=

等号=, 仅仅一个结果

in谓词,子查询中有多个结果

2.比较运算符

不等于:

!= 或 <>

结果:

true 或 false

使用的谓词

1.exist / not exitst (一般专有使用)

使用:

exists 存在true ,子查询中存在,结果:true

exists 存在true,子查询中不存在,结果:false

not exists 不存在false,子查询中存在true,结果:false

not exists 不存在false,子查询中不存在false,在结果:true

结果:

true 或 false

2.比较运算符

子查询的相关谓词

any(some)或all谓词

语法:

any(some):

子查询中某个值

all:

子查询中所有值

集合查询

UNION:将多个查询结果合并起来时,系统自动去掉重复元组

UNION ALL:将多个查询结果合并起来时,保留重复元组

待续、更新中


以上就是今日博客的全部内容了

创作不易,若对您有帮助,可否点赞、关注一二呢,感谢支持.

相关推荐
kali-Myon1 小时前
某校园门禁系统高危 SQL 注入漏洞挖掘复盘
数据库·sql·安全·web安全
程序员在囧途2 小时前
likeadmin-api API 中转站怎么做统一报价?从 /pricing、/user/balance 到 task_id 回执的落地方法
运维·服务器·数据库·likeadmin-api·api中转站·token计费
龙石数据3 小时前
MySQL 全量同步到 Hive 怎么做?三步配置教程
数据库·hive·mysql·数据治理·数据中台
程序员在囧途4 小时前
likeadmin-api API 算力超市怎么做供应商切换?统一鉴权、task_id 和 callback_url 才能稳交付
java·服务器·数据库·开放api·likeadmin-api·api算力超市
数据工匠老o4 小时前
连接池配置实战——从“连不上“到“连太多“的完整排查指南
数据库
一只专注api接口开发的技术猿5 小时前
电商评论自动化监控与情感数据分析完整落地教程(附可直接运行 Python 代码)
大数据·数据库·python·数据分析·自动化
hh真是个慢性子5 小时前
GaussDB Inside 2.23.01.280 集中式一主一备安装
数据库·database·gaussdb·国产数据库·高斯
沉静的小伙5 小时前
Spring事务
java·数据库·spring
大侠锅锅5 小时前
第 3 篇:节点自动化纳管——从裸机到可管理的 7 步安装流水线
数据库·自动化·边缘计算·iot
笃行3505 小时前
踩坑实战 | MySQL/PostgreSQL 迁移必踩:LEFT JOIN 莫名丢数据,KES 外连接消除避坑指南
数据库