
MySQL学习笔记
文章平均质量分 84
MySQL学习笔记
小炜1128
这个作者很懒,什么都没留下…
展开
-
[MySQL]学习笔记目录(尚硅谷宋红康MySQL数据库教程)
[MySQL]学习笔记目录(尚硅谷宋红康MySQL数据库教程)基础篇高级篇原创 2022-10-31 17:10:03 · 6295 阅读 · 7 评论 -
[MySQL]约束(constraint)
1. 约束1.1 数据的完整性1.2 约束1.3 约束的分类2. 查看表中的约束3. 非空约束(NOT NULL)4. 唯一性约束(UNIQUE)5. 主键约束(PRIMARY KEY)6. 自增列(AUTO_INCREMENT)7. 外键约束(FOREIGN KEY)8. 检查约束(CHECK)9. 默认值约束(DEFAULT)10. 面试题原创 2022-11-23 17:20:16 · 2295 阅读 · 0 评论 -
[MySQL]视图
1. 常见的数据库对象2. 视图概述2.1 视图的使用场景2.2 视图的理解3. 创建视图3.1 语法3.2 创建单表视图3.2.1 基于单表创建视图3.2.2 为视图的字段取名3.2.3 通过对基表的字段进行运算创建视图3.3 创建多表联合视图3.3.1 基于多表创建视图3.3.2 利用视图对数据进行格式化3.4 基于视图创建视图4. 查看视图4.1 语法1:查看数据库的表对象、视图对象4.2 语法2:查看视图的结构4.3 语法3:查看视图的属性信息4.4 语法4:查看原创 2022-11-03 18:18:42 · 598 阅读 · 0 评论 -
[MySQL]触发器
1. 触发器概述2. 触发器的创建2.1 创建触发器的语法2.2 代码示例2.2.1 数据表的创建2.2.2 创建触发器3. 触发器的查看3.1 查看当前数据库的所有触发器的定义3.2 查看当前数据库中某个触发器的定义3.3 从系统库information_schema的TRIGGERS表中查询4. 删除触发器5. 触发器的优缺点6. 触发器注意点原创 2022-10-31 16:37:16 · 955 阅读 · 0 评论 -
[MySQL]变量
1.1 系统变量1.1.1 系统变量分类1.1.2 查看系统变量查看所有系统变量查询部分系统变量查看指定系统变量1.1.3 修改系统变量方式一:修改配置文件方式二:使用 set 设置系统变量的值1.2 用户变量1.2.1 用户变量的分类1.2.2 会话用户变量变量的声明与赋值变量的使用代码示例1.2.3 局部变量局部变量的声明局部变量的赋值使用局部变量代码示例1.2.4 练习1.2.5 对比会话用户变量与局部变量原创 2022-10-30 15:23:52 · 6932 阅读 · 0 评论 -
[MySQL]存储过程与函数
1. 存储过程概述2. 创建存储过程3. 调用存储过程4. 存储过程的调试5. 存储函数6. 存储函数和存储过程的对比7. 存储过程和函数的查看、修改、删除7.1 查看7.1.1 SHOW CREATE7.1.2 SHOW STATUS7.1.3 information_schema.Routines表中查看存储过程和函数的信息7.2 修改7.3 删除8. 存储过程与函数的优缺点5.1 存储函数语法5.2 调用存储函数原创 2022-10-30 11:24:59 · 2667 阅读 · 1 评论 -
[MySQL]数据的增加(插入)、修改、删除与计算列
1. 插入数据1.1 表的准备1.2 一次添加一条记录1.2.1 为表的所有字段按默认顺序插入数据1.2.2 为表的指定字段插入数据1.3 一次添加多条记录1.4 将查询结果插入到表中2. 更新(修改)数据2.1 语法2.2 修改指定记录的指定数据2.3 修改所有记录的指定数据2.4 修改一条记录的多个字段3. 删除数据3.1 语法3.2 删除指定记录3.3 删除所有数据4. 注意点5. MySQL8新特性:计算列原创 2022-10-27 00:59:31 · 9133 阅读 · 0 评论 -
[MySQL]表的创建、修改与删除
1. MySQL中的数据类型1.1 常用的数据类型2. 创建表2.1 方式一:创建空的新表2.1.1 新表的创建2.1.2 查看表结构2.1.3 查询创建表的语句2.2 方式二:基于现有的表创建表2.3 练习2.3.1 练习12.3.2 练习23. 修改表3.1 添加字段3.1.1 添加一个字段3.1.2 添加字段到指定位置3.2 修改字段3.2.1 修改字段的长度3.2.2 修改字段的同时设置默认值3.2.3 修改字段的位置3.3 重命名字段3.4 删除字段4.原创 2022-10-08 17:58:03 · 2086 阅读 · 0 评论 -
[MySQL]数据库的创建、修改与删除
1. 数据库创建的基础知识1.1 数据存储的过程1.2 MySQL中的标识符命名规则2. 数据库的创建和管理2.1 创建数据库2.1.1 创建数据库2.1.2 创建数据库并指定字符集2.1.3 创建并判断数据库是否已经存在(推荐)2.2 数据库的管理2.2.1 查看当前所有数据库2.2.2 切换数据库2.2.3 查看当前正在使用的数据库2.2.4 查看当前数据库中的所有表2.2.5 查看指定数据库下的所有表2.2.6 查看数据库的创建信息2.3 修改数据库2.3.1 更改数据原创 2022-10-08 13:48:30 · 1796 阅读 · 0 评论 -
[MySQL]子查询
1. 子查询概述2. 子查询的引入2.1 实际问题需要实现的需求2.2 问题需求的实现2.2.1 逐步查询实现2.2.2 自连接查询实现2.2.3 子查询实现3. 子查询称谓的规范4. 子查询的分类4.1 按内查询返回的结果进行划分4.1.1 单行子查询4.1.2 多行子查询4.2 按内查询是否被执行多次进行划分4.2.1 相关(或关联)子查询4.2.2 不相关(或非关联)子查询:5. 单行子查询5.1 单行比较操作符5.2 示例5.2.1 题目15.2.2 题目25原创 2022-10-07 21:36:19 · 797 阅读 · 0 评论 -
[MySQL]聚合函数与分组
1. 聚合函数介绍1.1 什么是聚合函数1.2 常用的聚合函数2. 常用的聚合函数2.1 AVG()2.2 SUM()2.3 MAX()2.4 MIN()2.5 COUNT()2.6 补充3. GROUP BY3.1 分组的基本使用3.2 使用多个列分组3.3 结论3.4 WITH ROLLUP4. HAVING原创 2022-10-05 14:28:42 · 2035 阅读 · 0 评论 -
[MySQL]流程控制函数&加密与解密函数&MySQL信息函数&其他函数
1. 流程控制函数IF(value,value1,value2)IFNULL(value1, value2)CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 .... [ELSE resultn] ENDCASE expr WHEN 常量值1 THEN 值1 WHEN 常量值1 THEN 值1 .... [ELSE 值n] END2. 加密与解密函数PASSWORD(str)MD5(str)SHA(str)ENCODE(value,password_seed原创 2022-10-05 00:43:25 · 734 阅读 · 0 评论 -
[MySQL]日期和时间函数
1 获取日期、时间CURDATE() ,CURRENT_DATE()CURTIME() , CURRENT_TIME()NOW() / SYSDATE() / CURRENT_TIMESTAMP() / LOCALTIME() / LOCALTIMESTAMP()UTC_DATE()UTC_TIME()代码示例2 日期与时间戳的转换UNIX_TIMESTAMP()UNIX_TIMESTAMP(date)FROM_UNIXTIME(timestamp)代码示例3 获取月份、星期、星期数原创 2022-09-25 15:26:41 · 1185 阅读 · 0 评论 -
[MySQL]字符串函数
ASCII(S)CHAR_LENGTH(s)LENGTH(s)CONCAT(s1,s2,......,sn)CONCAT_WS(x, s1,s2,......,sn)INSERT(str, idx, len, replacestr)REPLACE(str, a, b)UPPER(s) 或 UCASE(s)LOWER(s) 或LCASE(s)LEFT(str,n)RIGHT(str,n)LPAD(str, len, pad)RPAD(str ,len, pad)LTRIM(s)RT原创 2022-09-20 00:16:54 · 434 阅读 · 0 评论 -
[MySQL]数值函数
1 基本函数ABS(x)SIGN(X)PI()CEIL(x),CEILING(x)FLOOR(x)LEAST(e1,e2,e3…)GREATEST(e1,e2,e3…)MOD(x,y)RAND()RAND(x)ROUND(x)ROUND(x,y)TRUNCATE(x,y)SQRT(x)代码示例2 角度与弧度互换函数RADIANS(x)DEGREES(x)代码示例3 三角函数SIN(x)ASIN(x)COS(x)ACOS(x)TAN(x)ATAN(x)AT原创 2022-09-20 00:15:21 · 419 阅读 · 0 评论 -
[MySQL]单行函数
[MySQL]单行函数查询函数用法ABS(x)SIGN(X)PI()CEIL(x),CEILING(x)FLOOR(x)LEAST(e1,e2,e3…)GREATEST(e1,e2,e3…)MOD(x,y)RAND()RAND(x)ROUND(x)ROUND(x,y)TRUNCATE(x,y)SQRT(x)ASCII(S)CHAR_LENGTH(s)LENGTH(s)CONCAT(s1,s2,......,sn)CONCAT_WS(x, s1,s2,......,s原创 2022-09-15 01:32:38 · 1062 阅读 · 0 评论 -
[MySQL] 多表查询
资料1 为什么需要多表查询2 笛卡尔积(或交叉连接)的理解3 表的别名4 连接多个表5 多表查询的分类6 UNION 和 UNION ALL7 7种SQL JOINS的实现原创 2022-07-29 16:27:42 · 998 阅读 · 0 评论 -
[MySQL] 排序与分页
资料1 排序数据2 多级排序3 分页4 排序与分页练习题目:解答:原创 2022-07-28 15:55:10 · 768 阅读 · 0 评论 -
[MySQL] 运算符
资料1. 算术运算符2. 比较运算符2.1 符号类型的比较运算符2.2 非符号类型的比较运算符3. 逻辑运算符4 位运算符5 运算符的优先级6 运算符练习【题目】【解答】原创 2022-07-28 06:16:35 · 485 阅读 · 1 评论 -
[MySQL] 基本的SELECT语句
1. 查询常量计算2. 查询语句的基本语法2.1 查询全部字段2.2 查询指定字段3. 列的别名4. 去除重复行5. 空值参与运算6. 着重号7. 查询常数8. 显示表结构9. 过滤数据10. 基本的SELECT语句练习【题目】【答案】..................原创 2022-07-24 15:17:25 · 1043 阅读 · 0 评论 -
[MySQL] 数据的导入
MySQL 数据的导入在命令窗口登录 MySQL ,使用 source 指令导入数据。基于图形化界面工具 DataGrip 导入数据通过 sql 文件导入数据通过 csv 文件导入数据原创 2022-07-24 13:26:35 · 2362 阅读 · 0 评论 -
[MySQL] SQL 基础知识
1. SQL的分类2.SQL的规则和规范2.1 SQL的规则(必须要遵守)2.2 SQL的规范(建议遵守)2.3 命名规则(了解)3.MySQL的注释原创 2022-07-24 04:10:38 · 1461 阅读 · 2 评论 -
MySQL----存储过程
文章目录1. 存储过程介绍1.1 特点:2. 基本语法2.1 创建2.2 调用1. 存储过程介绍存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。1.1 特点:封装,复用 -----------------------> 可以把某一业务SQL封装在存储过程中,需要用到的时候直接调用即可。可原创 2022-05-01 14:23:50 · 528 阅读 · 0 评论 -
MySQL----视图
文章目录1. 视图介绍2. 语法2.1 创建2.2 查询2.3 修改2.4 删除3. 通过视图来插入、更新数据4. 检查选项4.1 CASCADED4.2 LOCAL5. 视图的更新6. 视图作用1. 视图介绍视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。2. 语法2.1原创 2022-05-01 01:14:42 · 413 阅读 · 0 评论 -
MySQL----SQL优化
文章目录插入数据insert批量插入数据手动控制事务主键顺序插入,性能要高于乱序插入。大批量插入数据主键优化数据组织方式页分裂主键顺序插入效果主键乱序插入效果页合并索引设计原则插入数据insert如果我们需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化。批量插入数据例如:Insert into tb_test values(1,'Tom'),(2,'Cat'),(3,'Jerry');手动控制事务例如:start transaction; insert into tb_原创 2022-05-01 01:14:24 · 1343 阅读 · 1 评论 -
MySQL----索引设计原则
文章目录索引设计原则索引设计原则针对于数据量较大,且查询比较频繁的表建立索引。针对于常作为查询条件(where)、排序(order by)、分组(group by)操作的字段建立索引。尽量选择区分度高的列作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高。如果是字符串类型的字段,字段的长度较长,可以针对于字段的特点,建立前缀索引。尽量使用联合索引,减少单列索引,查询时,联合索引很多时候可以覆盖索引,节省存储空间,避免回表,提高查询效率。要控制索引的数量,索引并原创 2022-05-01 01:14:05 · 159 阅读 · 0 评论 -
MySQL----前缀索引 & 单列索引与联合索引
文章目录前缀索引语法:前缀长度前缀索引的查询流程单列索引与联合索引前缀索引当字段类型为字符串(varchar,text,longtext等)时,有时候需要索引很长的字符串,这会让索引变得很大,查询时,浪费大量的磁盘IO, 影响查询效率。此时可以只将字符串的一部分前缀,建立索引,这样可以大大节约索引空间,从而提高索引效率。语法:create index idx_xxxx on table_name(column(n)) ;为tb_user表的email字段,建立长度为5的前缀索引。cre原创 2022-05-01 00:43:54 · 702 阅读 · 0 评论 -
MySQL----覆盖索引
文章目录尽量使用覆盖索引,减少select *。覆盖索引:指查询使用了索引,并且需要返回的列,在该索引中已经全部能够找到 。explain select id, profession from tb_user where profession = '软件工程' and age = 31 and status = '0' ; explain select id,profession,age, status from tb_user where profession = '软件工程' and原创 2022-04-30 15:39:50 · 1373 阅读 · 0 评论 -
MySQL----SQL提示
文章目录`use index` :`ignore index` :`force index` :表格的建立:MySQL----索引表格当前有的索引:show index from tb_user;执行SQL:explain select * from tb_user where profession = '软件工程';查询走了联合索引执行SQL,创建profession的单列索引:create index idx_user_pro on tb_user(profession);原创 2022-04-30 15:23:15 · 1221 阅读 · 0 评论 -
MySQL----索引失效
文章目录索引失效情况1 索引列运算2 字符串不加引号3 模糊查询4 or连接条件5 数据分布影响索引失效情况1 索引列运算不要在索引列上进行运算操作, 索引将失效。目前表格拥有的索引:show index from tb_user;当根据phone字段进行函数运算操作之后,索引失效。explain select * from tb_user where substring(phone,10,2) = '15'; 当根据phone字段进行等值匹配查询时, 索引生效。( 没有进行运原创 2022-04-25 00:53:24 · 1188 阅读 · 0 评论 -
MySQL----索引使用规则
文章目录1 最左前缀法则3.1 字段顺序更换,最左前缀法则是否生效2 范围查询1 最左前缀法则如果索引了多列(联合索引),要遵守最左前缀法则。最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。如果跳跃某一列,索引将会部分失效(后面的字段索引失效)。show index from tb_user;对于最左前缀法则指的是,查询时,最左边的列,也就是profession必须存在,否则索引全部失效。而且中间不能跳过某一列,否则该列后面的字段索引将失效。接下来,我们来演示几组案例,看原创 2022-04-24 01:01:31 · 1300 阅读 · 0 评论 -
MySQL----SQL性能分析
文章目录SQL性能分析1 SQL执行频率2 慢查询日志2.1 查询慢日志是否开启2.2 查询慢日志的时间2.3 查看慢日志文件中记录的信息3 profile详情3.1 查询是否支持 profile3.2 查询 profile 是否开启3.3 开启 profile3.4 查看每一条SQL的耗时基本情况3.5 查看指定query_id的SQL语句各个阶段的耗时情况3.6 查看指定query_id的SQL语句CPU的使用情况4 explain4.1 语法4.2 Explain 执行计划中各个字段的含义SQL性原创 2022-04-24 00:33:58 · 2916 阅读 · 0 评论 -
MySQL----索引
文章目录1 索引概述1.1 特点2 索引结构2.1 概述1 索引概述索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。在无索引情况下,就需要从第一行开始扫描,一直扫描到最后一行,我们称之为 全表扫描,性能很低。如果我们针对于这张表建立了索引,假设索引结构就是二叉树,那么也就意味着,会对age这个字段建立一个二叉树的原创 2022-04-22 14:47:45 · 2571 阅读 · 0 评论 -
MySQL----存储引擎
MySQL----存储引擎MySQL体系结构MySQL体系结构MySQL的体系结构包括:连接层、服务层、引擎层、存储层原创 2022-04-13 22:09:03 · 552 阅读 · 0 评论 -
MySQL----事务
MySQL----事务事务简介事务操作数据准备事务操作事务简介事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。MySQL中事务默认是自动提交的,即当执行一条语句,MySQL会立即隐式的提交事务。事务,防止在对数据进行操作时,中间抛出异常,部分数据改变,一部分数据无法发送对应的更改。事务操作数据准备表格和数据:create table account ( id int auto_in原创 2022-04-13 18:35:18 · 1359 阅读 · 0 评论 -
MySQL----多表查询
MySQL----多表查询多表关系表与表之间的联系:一对多(多对一)多对多一对一多表查询多表查询的分类数据准备内连接外连接自连接联合查询子查询标量子查询列子查询行子查询表子查询多表查询案例原创 2022-04-05 17:26:48 · 38420 阅读 · 8 评论 -
MySQL----约束
MySQL----约束约束的概述约束的分类约束案例外键约束**外键约束概念:****添加外键语法:****删除外键:****添加外键约束后对表的删除更新如何处理:**约束的概述概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据目的:保证数据库中数据的正确、有效性和完整性约束的分类注意:约束是作用在表中的字段上的,可以在创建表的时候添加,也可以在表创建之后对表的字段进行修改添加约束案例create table user ( id int primary key a原创 2022-04-05 16:41:04 · 961 阅读 · 0 评论 -
数据库----函数
函数介绍函数是指一段可以直接被另一段程序调用的程序或代码函数的分类1.字符串函数2.数值函数3.日期函数4.流程函数字符串函数# 字符串拼接select concat( 'hello ', 'world' );# 字符串全部转为小写select lower( 'HELLO' );# 字符串全部转为大写select upper( 'hello' );# 左填充select lpad( '12', 5, '0' );# 右填充select rpad( '12', 5, '-'原创 2022-03-05 00:26:09 · 387 阅读 · 0 评论 -
SQL语句----DCL
DCL-介绍DCL数据控制语言,用来管理数据库和用户、控制数据库的访问权限原创 2022-03-03 00:46:26 · 549 阅读 · 0 评论 -
SQL语句----DQL
DQL-介绍DQL数据查询语言,用来查询数据库中表的记录查询关键字:selectDQL-语法select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 order by 排序字段列表 limit 分页参数;DQL-基本查询查询多个字段select 字段1,字段2,字段3,... from 表名;select * from 表名;设置别名select 字段1 [as 别名1], 字段2 [as 别名2], ... from 表名;去除重复记录原创 2022-02-28 12:04:35 · 547 阅读 · 0 评论