第四章 SQL应用
1. DCL 数据控制语言
grant
revoke
2. DML
# insert
# update
建议:
1,将需要更新的数据的主键先查出来,然后按主键更新。
2,如果无法达到以上需求,需要将where 条件后的列,设置合理索引
3,减少更新范围
4,尽量不要跨多表更新
# delete
建议:
1, 可以使用"伪删除",定期归档
2, 批量删除,推荐pt-archive
转载
2024-09-10 08:51:36
31阅读
排序查询order by#案例2:查询部门编号>=90的员工信息,按入职时间的先后进行排序【添加筛选条件】
SELECT *
FROM employees
WHERE department_id >=90
ORDER BY HIREDATE ASC
#案例3:按年薪的高低显示员工信息和 年薪【按表达式排序】
#这里的按表达式排序是指年薪是一个表达式
SELECT *,salary*12
子查询#1.查询平均工资最低的部门mysql中聚合函数是不能嵌套使用的所以,这样的代码是错误的,无法执行SELECT MIN(AVG(salary))
FROM employees
GROUP BY department_id正确的查询如下: 先查询到最低的部门平均工资方法:在FROM中声明子查询(查询的部门平均工资生成新的表,然后再select ...from(新生成的表),即可对新生
转载
2023-10-26 13:21:05
51阅读
# 从MySQL中获取工资排名第2至第5的员工
在今天的文章中,我们将讨论如何使用MySQL查询语句来提取工资排名第2至第5的员工信息。我们将使用ORDER BY和LIMIT关键字来实现这一目标,同时也将通过一些简单的示例来帮助读者理解这个过程。
## 1. 数据库和表的准备
假设我们有一个名为`employees`的表,结构如下:
| ID | Name | Salary
数据库准备创建一个分数表s_scoreCREATE TABLE `s_score` (`id` int NOT NULL AUTO_INCREMENT,`score` int NOT NULL DEFAULT 0,`name` varchar(20) CHARACTER SET utf8mb4 NULL,PRIMARY KEY (`id`));插入数据INSERT INTO `s_score` (
MySQL 8.0版本用窗口函数就可以实现排名,有三种方式,对相同值的处理不同:row_number():不产生相同的记录,没有序号间隔rank():产生相同的记录,有序号间隔dense_rank():产生相同记录,没有序号间隔(以上区别会在文末举例,本文主要讨论用变量实现排名)5.5版本用不了窗口函数(至少排序窗口用不了,其他的没试过),那么对于要显示排名的需求就得想其他办法啦,看网
转载
2023-07-27 23:16:51
377阅读
数据测试表表名TEST需求:这是一张店铺的虚拟表,ID为店铺ID,USER_ID为该店铺的发展人,现需要对USER_ID进行分组查询每个USER下共有多少家店铺,并对这个数据进行排名思路:有点类似循环里面的自增一样,设置一个变量并赋予初始值,循环一次自增加1,从而实现排序; mysql里则是需要先将数据查询出来并先行按照需要排序的字段做好降序desc,或则升序asc,设置好排序的变量(初始值为
转载
2023-11-07 08:21:31
86阅读
统计一下哪个goods_id出现的次数最多,用来做商品推荐算法SELECT goods_id AS 'goods_id',COUNT(USER) AS 'user_num' FROM t_look GROUP BY goods_id
ORDER BY COUNT(USER) DESC LIMIT 10先按照goods_id进行了分组然后在按照数量 降序显示前十
转载
2023-05-28 12:16:47
277阅读
一、子查询1、where的子查询 举个简单的例子,例如现在需要查找比最低薪资高的薪资。那么我们第一步是找到最低薪资: select min(salary) from sal; 我们将上面的语句记为Fun
转载
2023-08-12 14:44:20
951阅读
业务背景数据排名是很常用的功能,简单的排名功能可以根据order by来实现,但是如果数据一样,排名应该并列的时候,order by虽然是排序的,但是名次却不是并列的。 我们先通过order by演示一下。 建表CREATE TABLE `user_score` (
`user_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`s
转载
2024-02-19 13:13:53
41阅读
1.percent_rank()函数PERCENT_RANK()函数计算分区或结果集中行的百分位数排名
这PERCENT_RANK()是一个窗口函数,
用于计算分区或结果集中行的百分位数。
以下显示了PERCENT_RANK()函数的语法:
PERCENT_RANK()
OVER (
PARTITION BY expr,...
ORDER BY expr
转载
2023-08-11 13:10:22
389阅读
作者:神易风现在有个需求对所有学生分数进行排名,并且列出名次。刚看到这个需求,我有点懵逼,完全没有思路?,为什么难一点需求,我就不会做呢? 去网上查询资料,把所有实现都列出来,全部都要学会。数据库准备创建一个分数表s_scoreCREATE TABLE `s_score` ( `id` int NOT NULL AUTO_INCREMENT, `score` int NOT NULL DEF
转载
2024-06-21 21:15:08
0阅读
MySQL中没有Rank排名函数,当我们需要查询排名时,只能使用My
原创
2022-07-08 13:55:26
1034阅读
# 如何实现 MySQL 平均工资大于某工资的查询
在今天的文章中,我们将学习如何在 MySQL 中实现一个查询:找到所有平均工资大于特定工资的员工信息。这对于刚入行的小白来说是一个很好的练习,这个过程不仅可以帮助你了解数据库查询的基本知识,还能提升你的 SQL 技能。
## 整体流程
在进行这一查询操作之前,让我们首先列出整个流程。我们可以将步骤划分为几个部分,下面是一个简单的表格,帮助您
MySQL数据库是一个非常出名的关系型数据库,当然现在已经成为了甲骨文的旗下产品,一般很多基于WEB的应用都是首先它作为数据存储的对象,今天我们就来聊聊MySQL里面常用的5个函数。FIND_IN_SET难度指数:★ ★ ☆ ☆ ☆使用频率:★ ★ ★ ★ ★从上面的例子我们可以看到,我们可以执行判断一个值是否在一个集合里面的操作,这和in的效果差不多相同,只不过in多个单独的值,而这个仅仅是一个
转载
2023-08-29 10:26:47
70阅读
sql语句查询排名 思路:有点类似循环里面的自增一样,设置一个变量并赋予初始值,循环一次自增加1,从而实现排序; mysql里则是需要先将数据查询出来并先行按照需要排序的字段做好降序desc,或则升序asc,设置好排序的变量(初始值为0): a>.将已经排序好的数据从第一条依次取出来,取一条就自增加一,实现从1到最后的一个排名 b>.当出现相同的数据时,排名保持不变,
转载
2023-09-22 09:48:07
179阅读
sql语句查询排名思路:有点类似循环里面的自增一样,设置一个变量并赋予初始值,循环一次自增加1,从而实现排序; mysql里则是需要先将数据查询出来并先行按照需要排序的字段做好降序desc,或则升序asc,设置好排序的变量(初始值为0): a>.将已经排序好的数据从第一条依次取出来,取一条就自增加一,实现从1到最后的一个排名 b>.当出现相同的数据时,排名保持不变,此时则
转载
2024-07-05 21:57:03
39阅读
什么是视图?
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
视图(view)是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。
转载
2024-08-21 08:24:37
40阅读
## 实现 MySQL 数据排名的步骤
### 1. 创建数据库和数据表
首先,我们需要创建一个数据库和一个数据表来存储需要排序的数据。可以使用以下 SQL 语句创建数据库和数据表:
```sql
-- 创建数据库
CREATE DATABASE ranking_db;
-- 使用创建的数据库
USE ranking_db;
-- 创建数据表
CREATE TABLE ranking_d
原创
2023-10-30 07:21:08
6阅读
# 如何实现 MySQL 分类排名
## 1. 流程图
```mermaid
flowchart TD
A(开始)
B(连接数据库)
C(创建分类排名表)
D(插入数据)
E(查询排名)
F(结束)
A --> B --> C --> D --> E --> F
```
## 2. 任务步骤
### 步骤一:连接数据库
首先,你需要
原创
2024-06-17 04:38:43
37阅读