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

SQL进阶

⼀ 、 M y S Q L 函 数

数 据 分 析 的 基 础

1 . 排 序

1 . m a x

2 . m i n

2 . 汇 总

1 . c o u n t

2 . s u m

3 . a v g

3 . 数 制

1 . ⼆ 进 制

1 . 0 0

2 . 1 1

3 . 2 1 0

4 . 3 1 1

5 . 4 1 0 0

2 . ⼋ 进 制

3 . ⼗ 进 制

4. ⼗六进制

5. AA 27

1、聚合函数

只有 select ⼦句和 having ⼦句、order by ⼦句中能使⽤聚合函 数,where ⼦句不能使⽤聚合函数。当使⽤聚合查询以后,不能 使⽤where条件,如果要添加条件,就使⽤having

2、其他常⽤函数

(1)⽇期函数

(2)数字函数

(3)字符串函数

⼆、MySQL 分组查询

语法:

select 聚合函数(表头名 1),表头名 2 from 数据表名 group by 表 头名;

select 聚合函数(表头名) 临时表头名,真实表头名 from 数据表名 group by 真实表头名;

若⽤ group by 分组查询语句,必须加⼊聚合函数,否则报错 (踩坑)

下⾯实例:

三、MySQL ⼦语句查询

⼦查询是指⼀个查询语句嵌套在另⼀个查询语句内部的查询;

该查询语句可以嵌套在⼀个 SELECT、SELECT...INTO、 INSERT...INTO 等语句中。

在执⾏查询时,⾸先会执⾏⼦查询中的语句,再将返回的结果作 为外层查询的过滤条件。

在⼦查询中通常可以使⽤⽐较运算符和 IN、EXISTS、ANY、 ALL 等关键字。

例如:select * from class where cid=(select classid from student where sname='张三');

1、⽐较运算符的⼦查询

也就是⽤“=”、“、“>”这类⽐较运算符

2、exists 关键字的⼦查询

exists 关键字后⾯的参数可以是任意⼀个⼦查询, 它不产⽣任 何数据只返回 true 或 false。⽽当返回值为 true 时外层查询才会 执⾏。

相当于内层句⼦是⼀个判断句式。

四、MySQL 多表联合查询

1、交叉连接查询

交叉连接返回的结果是被连接的两个表中所有数据⾏的笛卡尔 积; 

⽐如:集合A={a,b},集合B={0,1,2},则集合A和B的笛卡尔积为 {(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)。所以,交叉连接也被称为笛卡 尔连接。

语法:

select * from 表1 cross join 表2;

2、多表联合查询

语法:select 查询字段1,查询字段2, ... from 表1 join 表2 join ... on 表1.关系字段=表2.关系字段=...;

join:联合

on:条件

五、MySQL 授权

1、MySQL 基础权限

2、权限语法

grant all on test.user

客户机地址可以有以下表现形式:

%:表示所有地址

192.168.33.%:表示 33 ⽹段下所有主机,⼀般为你想为哪个⽹ 段授权,或为⾃⼰⽹段下的主机授权

六、MySQL 触发器

1、概念

触发器是⼀种特殊的存储过程,它在插⼊,删除或修改特定表中 的数据时触发执⾏,它⽐数据库本身标准的功能有更精细和更复 杂的数据控制能⼒

1. 例如在某⼀个时间触发什么事情

2. 例如不允许股票价格的升幅⼀次超过%10

3. 审计功能,某⼀个⼈登录会记录所有的操作

2、触发器语法

create trigger 触发器名称 触发的时机 触发的动作 on 表名 for each row 触发器状态

1. 语法的红字为固定格式

2. 触发器名称:⾃定义 mysql> drop user haha@'192.168.100.%'; # 删除⽤户 Query OK, 0 rows affected (0.00 sec) mysql> show grants for haha@'192.168.100.%'; ERROR 1141 (42000): There is no such grant defined for user 'haha' on host '192.168.100.%'

3. 触发的时机:before(之前) 或 after(之后),在执⾏动作之前还是 之后

4. 触发的动作:指的激发触发程序的语句类型(插⼊、更新、删除表或数据等)

5. each row:操作的每⼀⾏都会被监控 6. 触发器状态:在触发的动作之前或之后做什么事情,⽐如当我删 了表 1 的某条数据后,⾃动清空表 2。

3、触发器创建的四要素

(1)监视地点:table(表)

(2)监视事件:insert(插⼊)、update(更新)、delete(删除) 等动作

(3)触发时间:before(之前)、after(之后)

(4)触发事件:在监视事件之前或之后,对当前表或其他表的插 ⼊、更新、删除等动作

4、触发器实例

七、MySQL 基本优化操作

1、忘记 MySQL 密码

2、MySQL 存储引擎

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • AI学习记录 - 如何进行token理论知识,以GPT2为举例
  • 【鸿蒙学习】鸿蒙开发学习路径:迈向鸿蒙高级认证之路
  • python-热杆上的蚂蚁(赛氪OJ)
  • C/C++数字与字符串互相转换
  • 240808opencv中反向投影
  • 【学习笔记】Day 7
  • PHP MySQL 读取数据
  • 模块化叙事的演变:DeFi借贷开发的模块化转型
  • Web前端开发具有哪些特点?
  • 大学新生的编程入门攻略
  • 数据库(详解)-系统架构师(四十四)
  • 你了解堆和栈的由来吗?
  • JavaScript异步简介|Promise快速入门
  • 用python创建极坐标平面
  • 住宅代理和数据中心代理:指纹浏览器用哪个更安全?
  • JavaScript-如何实现克隆(clone)函数
  • #Java异常处理
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • es6(二):字符串的扩展
  • Git同步原始仓库到Fork仓库中
  • Intervention/image 图片处理扩展包的安装和使用
  • js
  • JS基础之数据类型、对象、原型、原型链、继承
  • js如何打印object对象
  • PV统计优化设计
  • python 学习笔记 - Queue Pipes,进程间通讯
  • React 快速上手 - 07 前端路由 react-router
  • Redis的resp协议
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Spring声明式事务管理之一:五大属性分析
  • webpack4 一点通
  • 安装python包到指定虚拟环境
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 搞机器学习要哪些技能
  • 开源地图数据可视化库——mapnik
  • 前端知识点整理(待续)
  • 人脸识别最新开发经验demo
  • 积累各种好的链接
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • # Redis 入门到精通(九)-- 主从复制(1)
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • (1)(1.13) SiK无线电高级配置(六)
  • (23)Linux的软硬连接
  • (day18) leetcode 204.计数质数
  • (分类)KNN算法- 参数调优
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)创业的注意事项
  • .Net Core中的内存缓存实现——Redis及MemoryCache(2个可选)方案的实现
  • .NET Framework .NET Core与 .NET 的区别
  • .NET 常见的偏门问题