当前位置: 首页 > news >正文

SQL常用基础语句(一)-- FGHIJ开头

GROUP BY

GROUP BY语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。在GROUP BY子句后面包含了一个HAVING子句,HAVING类似于WHERE,(唯一的差别是WHERE过滤行,HAVING过滤组)。

1)列出每个部门最高薪水的结果
select dept , max(salary) AS MAXIMUM
FROM STAFF
GROUP BY DEPT

2where, group by查询公司2010年入职的各个部门每个级别里的最高薪水

SELECT dept,edlevel,MAX(salary) AS MAXIMUM
FROM STAFF
WHERE hiredate > '2010-01-01'
GROUP BY dept,edlevel
3where, group by, having查找雇员数超过2个的部门的最高和最低薪水:
SELECT dept ,MAX(salary) AS MAXIMUM ,MIN(salary) AS MINIMUM
FROM STAFF
GROUP BY dept
HAVING COUNT(*) > 2
ORDER BY dept

IF

if函数也能通过判断条件来返回特定值,当表达式结果对时,返回result_true,否则返回result_false。语法结构是:

if (表达式,result_true, result_false)

IFNULL

IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。

IFNULL(expression, alt_value)

INSERT INTO

向指定的表中,插入如下几列数据,列的值通过value 指定

方法1

INSERT INTO   表名  (列一 , 列二  ...) VALUE (值一 , 值二 ...)

方法2

INSERT INTO 表名 SET  字段1 = 值1,字段1 = 值1,字段1 = 值1;

JOIN

JOIN用于连表查询,主要有5种用法:

1)笛卡尔积:CROSS JOIN

使两张表的所有字段直接进行笛卡尔积,假设表1有m条数据,表2有n条数据,则结果数量为m*n条

SELECT * FROM tab1 CROSS JOIN tab2

2)内连接:INNER JOIN

内连接需要用ON来指定两张表需要比较的字段,最终结果只显示满足条件的数据

SELECT * FROM tab1 INNER JOIN tab2 ON tab1.id1 = tab2.id2

3)左连接:LEFT JOIN

左连接可以看做在内连接的基础上,把左表中不满足ON条件的数据也显示出来,但结果中的右表部分中的数据为NULL

SELECT * FROM tab1 LEFT JOIN tab2 ON tab1.id1 = tab2.id2

4)右连接:RIGHT JOIN

右连接就是与左连接完全相反

SELECT * FROM tab1 RIGHT JOIN tab2 ON tab1.id1 = tab2.id2

5)全连接:OUTER JOIN

全连接就是左连接和右连接的并集,但是MySQL中并不支持全连接的写法:

SELECT * FROM tab1 OUTER JOIN tab2 ON tab1.id1 = tab2.id2

不过MySQL可以用UNION联合左连接和右连接的结果来代替:

SELECT * FROM tab1 LEFT JOIN tab2 ON tab1.id1 = tab2.id2
UNION
SELECT * FROM tab1 RIGHT JOIN tab2 ON tab1.id1 = tab2.id2

http://www.lryc.cn/news/350957.html

相关文章:

  • 大语言模型量化方法对比:GPTQ、GGUF、AWQ 包括显存和速度
  • 实现本地访问云主机,以及在云主机搭建FTP站点
  • 存储+调优:存储-Cloud
  • 海山数据库(He3DB)线程池方案详解
  • K8s 高级调度
  • 数据猿携手IDC Directions 2024:探索中国ICT市场新趋势
  • 前端开发工程师——ajax
  • uni-app项目在微信开发者工具打开时报错[ app.json 文件内容错误] app.json: 在项目根目录未找到 app.json
  • 最大连续1的个数(滑动窗口)
  • Spring Cloud 框架的应用详解
  • C语言 数组——向函数传递数组
  • 数据链路层简单介绍
  • 【软考】设计模式之装饰器模式
  • 网络编程day6
  • 5.23总结
  • SQL Server基础学习笔记
  • 用Vuex存储可配置下载的ip地址(用XML进行ajax请求配置文件)
  • Spring: OncePerRequestFilter
  • 《Python编程从入门到实践》day37
  • GBDT、XGBoost、LightGBM算法详解
  • 【考研数学】李林《880》是什么难度水平强化够用吗
  • Flutter 中的 AnimatedAlign 小部件:全面指南
  • (Qt) 默认QtWidget应用包含什么?
  • 测试环境KDE组件漏洞修复
  • 微服务下认证授权框架的探讨
  • 使用 ASM 修改字段类型,解决闪退问题
  • 【python】python社交交友平台系统设计与实现(源码+数据库)【独一无二】
  • Linux 实验报告3-4
  • 网络安全之BGP详解
  • 【MySQL精通之路】SQL优化(1)-查询优化(8)-嵌套联接优化