MySQL[笔记][基础部分1-4小节回顾]

2024-02-29 09:18

本文主要是介绍MySQL[笔记][基础部分1-4小节回顾],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1-4小节回顾

排序

1语法
SELECT 查询列表
FROM 表
WHERE 筛选条件
ORDER BY 排序列表【ASC|DESC】
2特点
1、asc:升序,如果不写默认升序
DESC:降序
2、排序列表支持 单个字段、多个字段、函数、表达式、别名
3、order by的位置一般放在查询语句的最后(除limit语句之外)

函数

一、概述 功能:类似java中的方法 好处:提高重用性和隐藏实现细节 调用:SELECT 函数名(实参列表);

二单行函数
1、字符函数

concat;连接
SELECT CONCAT(last_name,’,’,first_name) 姓名

substr;截取子串
SELECT SUBSTR(‘李莫愁爱上了陆展元’,7) out_put;
SELECT SUBSTR(‘李莫愁爱上了陆湛远’,1,3) out_put;

upper:变大写

lower:变小写

replace:替换
select replace(‘abcd’,‘a’,‘c’);

length

trim:去前后空格
SELECT TRIM(‘A’ FROM ‘AAVVVVVVVBBBBBAA’);

lpad:左填充

rpad:右填充
SELECT RPAD(‘11–22’,10,’*’);

instr:获取子串第一次出现的索引

SELECT INSTR(‘129213123’,9);

2、数学函数

ceil:向上取整
SELECT CEIL(1.2);

round:四舍五入
SELECT ROUND(12.7,2);

MOD:取模

floor:向下取整

truncate:截断
SELECT TRUNCATE(122.3333,2);

RAND:获取随机数,返回0-1之间的小数,无线接近1
SELECT RAND();

3、日期函数

now:返回当前日期+时间

year;返回年

month:返回月

day:返回日

date_format:将日期转换成字符
SELECT date_format(NOW(),’%y年%m月%d日’)AS out_put;

curdate:返回当前日期

str_to_date:将字符转换成日期
SELECT STR_TO_DATE(‘2020-1-18’,’%Y-%c-%d’)as out_put;

curtime:返回当前时间
SELECT CURTIME( );

hour:小时

minute:分钟

second:秒

datediff:返回两个日期相差天数

monthname:以英文形式返回月

4、其他函数

version:当前数据库服务器的版本

database:当前打开的数据库

user:当前用户

password(‘字符’):返回该字符的密码形式
SELECT PASSWORD(‘123’);

md5(‘字符’):返回该字符的md5加密形式

5、流程控制函数

1 if(条件表达式,表达式1,表达式2):如果条件表达式成立,返回表达式1,否则返回表达式2

2 case情况1

case 变量或表达式或字段

when 常量1 then 值1 when 常量2 then 值2 … else 值n end EG1: SELECT
salary 原始工资 ,department_id,

case department_id WHEN 30 THEN salary1.1 WHEN 40 THEN salary1.2
WHEN 50 THEN salary*1.3 ELSE salary END AS 新工资 FROM employees;

case情况2 CASE WHEN 条件1 then 值1 WHEN 条件2 then 值2 。。。 else 值n end

EG2: SELECT salary, case WHEN salary>20000 THEN ‘A’ WHEN salary>15000
THEN ‘B’ WHEN salary>10000 THEN ‘C’ ELSE ‘D’ END AS 工资级别 FROM
employees;

三、分组函数

1、分类

max最大值

min最小值

sum和

avg平均值

count计算个数

2、特点

1语法
SELECT MAX(字段) from 表名;

2支持类型
sum和avg一般用于处理数值型
max、min、count可以处理任何数值类型

3以上分组函数都忽略null

4都可以搭配distinct使用,实现去重的统计

select count(distinct 字段) from 表;

5count函数

count(字段):统计该字段非空值的个数

count(*):统计结果集的行数

案例;查询每个部门的员工个数
SELECT COUNT(*)
FROM EMPLOYEES E,DEPARTMENT
GROUP BY DEPARTMENT;

语法

SELECT 分组函数,分组后的字段 - 5
from 表 - 1
where 筛选条件 - 2
group by 分组的字段 - 3
having 分组后的筛选 - 4
order by 排序列表 - 6

连接查询

一、含义 当查询中涉及到了多个表的字段,需要使用多表连接

SELECT 字段1,字段2
from 表1,表2,…;

笛卡尔乘积:当查询多个表时,没有添加有效的连接条件,导致多个表所有行实现完全连接

如何解决:添加有效的连接

二、分类

按年代分类:
sql92
等值
非等值
自连接
也支持一部分外连接(用于oracle、sqlserver,mysql不支持)

sql99【推荐使用】
内连接
等值
非等值
自连接
外连接
左外
右外
全外(mysql不支持)
交叉连接

三、SQL92语法

1、等值连接
语法:
select 查询列表
from 表1 别名,表2 别名
where 表1.key=表2.key
【and筛选条件】
【group by 分组字段】
【having 分组后的筛选】
【order by 排序字段】

特点: 1 一般为表起别名 2 多表顺序可以调换 3 n表连接至少需要n-1个连接条件 4 等值连接的结果时多表的交集部分

2、非等值连接
语法
select 查询列表
from 表1 别名,表2 别名
where 非等值的连接条件
【and筛选条件】
【group by 分组字段】
【having 分组后的筛选】
【order by 排序字段】

3、自连接

语法:
select 查询列表
from 表 别名1,表 别名2
where 非等值的连接条件

【and筛选条件】
【group by 分组字段】
【having 分组后的筛选】
【order by 排序字段】

|使用关键字 |筛选的表| 位置|
|分组前筛选| where |原始表 |group by的后面|
| 分组后筛选 |having | 分组后的结果 |group by 的后面|

这篇关于MySQL[笔记][基础部分1-4小节回顾]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/758281

相关文章

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四:

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

MySQL中的锁机制详解之全局锁,表级锁,行级锁

《MySQL中的锁机制详解之全局锁,表级锁,行级锁》MySQL锁机制通过全局、表级、行级锁控制并发,保障数据一致性与隔离性,全局锁适用于全库备份,表级锁适合读多写少场景,行级锁(InnoDB)实现高并... 目录一、锁机制基础:从并发问题到锁分类1.1 并发访问的三大问题1.2 锁的核心作用1.3 锁粒度分