
MySQL笔记总结
java小白。。
努力学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【MySQL笔记】utf8与utf8mb4的区别
utf8 字符集表示一个字符需要使用 1 ~ 4 个字节,但是我们经常使用的一些字符使用 1 ~ 3 个字节就可以表示了,比如中文 “我” 占用 3 个字节。在 MySQL 中 utf8 是 utf8mb3 的别名,所以之后在 MySQL 中提到 utf8 就意味着使用 1 ~ 3 个字节来表示一个字符。utf8mb3:阉割过的 utf8 字符集,只使用 1 ~ 3 个字节表示字符。utf8mb4:正宗的 utf8 字符集,使用 1 ~ 4 个字节表示字符。原创 2023-03-09 20:19:48 · 1264 阅读 · 0 评论 -
【MySQL笔记】Linux系统下的MySQL安全卸载步骤
目录1.查看是否安装过MySQL2. 检查 mysql service3. 关闭 mysql 服务4. 查看当前 mysql 安装状况5. 卸载上述命令查询出的已安装程序6. 删除 mysql 相关文件2. 检查 mysql service3. 关闭 mysql 服务4. 查看当前 mysql 安装状况5. 卸载上述命令查询出的已安装程序务必卸载干净,反复执行 rpm -qa | grep -i mysql 确认是否有卸载残留查找相关文件删除上述命令查找出原创 2022-06-12 06:00:00 · 309 阅读 · 0 评论 -
【MySQL笔记】共用表表达式
公用表表达式(或通用表表达式)检测为 CTE 。CTE 是一个命名的临时结果集,作用范围是当前语句。CTE 可以理解成一个可以复用的子查询,当然跟子查询还是有区别的,CTE 可以引用其它 CTE,但子查询不能引用其它子查询。所以,可以考虑代替子查询目录公用表表达式的分类普通公用表表达式递归公用表表达式依据语法结构和执行方式的不同,公用表表达式分为普通公用表表达式和递归公用表表达式普通公用表表达式类似于子查询,不过,跟子查询不同的是,它可以被多次引用,而且可以被其它的普通公用表表达式所引用例子说明原创 2022-06-11 05:30:00 · 310 阅读 · 0 评论 -
【MySQL笔记】窗口函数的使用
MySQL 从 8. 0 版本开始支持窗口函数。窗口函数的作用类似于在查询中对数据进行分组,不同的分组的结果聚合成一条记录,而窗口函数是将结果置于每一条数据记录中目录窗口函数的分类代码举例小结窗口函数的分类窗口函数可以分为静态窗口函数和动态窗口函数静态窗口函数的窗口大小是固定的,不会因为记录的不同而不同动态窗口函数的窗口大小会随着记录的不同而变化代码举例计算 goods 数据表中名称为 “女装 / 女士精品” 的类别下的商品的 PERCENT_RANK 值原创 2022-06-10 06:00:00 · 238 阅读 · 0 评论 -
【MySQL笔记】触发器(TRIGGER)的使用
MySQL 从 5. 0. 2 版本开始支持触发器,MySQL 的触发器·和存储过程一样,都是嵌入到 MySQL 服务器的一段程序。触发器是由事件来触发某个操作,包括 INSERT 、UPDATE 、DELETE 事件。所谓事件就是指用户的动作或者触发某项行为。如果定义了触发程序,当数据库执行这些语句的时候,就相当于事件发生了,就会自动激发触发器执行相应的操作目录创建触发器说明代码举例查看、删除触发器查看触发器删除触发器创建触发器CREATE TRIGGER 触发器原创 2022-06-09 06:00:00 · 909 阅读 · 0 评论 -
【MySQL笔记】游标(cursor)的使用
虽然我们也可以通过筛选条件 WHERE 和 HAVING,或者是限定返回记录的关键字 LIMIT 返回一条记录,但是,却无法在结果集中像指针一样,向前定位一条记录、向后定位一条记录,或者是随意定位到某一条记录,并对记录的数据进行处理这个时候就可以用到游标。游标,提供了一种灵活的操作方式,让我们能够对结果集中的每一条记录进行定位,并对指向的记录中的数据进行操作的数据结构。游标让 SQL 这种面向集合的语言有了面向过程开发的能力,游标充当了指针的作用目录游标的使用声明游标打开游标使用游标原创 2022-06-08 06:00:00 · 1251 阅读 · 0 评论 -
【MySQL笔记】跳转语句(LEAVE和ITRATE)
目录跳转语句 LEAVE跳转语句 ITERATE跳转语句 LEAVELEAVE语句:可以用在循环语句内,或者以 BEGIN 和 END 包裹起来的程序体内,表示跳出循环或者跳出程序体的操作。如果你有面向过程的编程语言的使用经验,你可以把 LEAVE 理解为 breakLEAVE 标记名DELIMITER //CREATE PROCEDURE leave_while(OUT num INT)BEGIN DECLARE avg_sal DOUBLE; DE原创 2022-06-07 06:00:00 · 1346 阅读 · 0 评论 -
【MySQL笔记】流程控制(分支与循环)
解决复杂问题不可能通过一个 SQL 语句完成,我们需要执行多个 SQL 操作。流程控制语句的作用就是控制存储过程中 SQL 语句的执行顺序,是我们完成复杂操作必不可少的一部分目录流程的分类通用分类MySQL中的流程分类分支结构 IF分支结构 CASE循环结构 WHILE循环结构 LOOP循环结构 REPEAT对比三种循环结构流程的分类通用分类顺序结构:程序从上往下依次执行分支结构:程序按条件进行选择执行,从两条或多条路径选择一条执行循环结构:程原创 2022-06-06 05:45:00 · 624 阅读 · 0 评论 -
【MySQL笔记】会话用户变量(@)与局部变量(DECLARE)的使用
目录用户变量用户变量的分类会话用户变量变量的定义查看用户变量的值局部变量定义变量变量赋值使用变量比较会话用户变量与局部变量用户变量用户变量的分类用户变量是用户自己定义的,作为 MySQL 编码规范,MySQL 中的用户变量以一个 "@" 开头。根据作用范围不同,又分为会话用户变量和局部变量会话用户变量:作用域和会话变量一样,只对当前连接会话有效局部变量:只在 BEGIN 和 END 语句块中有效。局部变量只能在存储过程和存...原创 2022-06-04 05:15:00 · 2430 阅读 · 0 评论 -
【MySQL笔记】GLOBAL与SESSION系统变量的使用
在 MySQL 数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果数据,就称为变量在 MySQL 数据库中,变量分为系统变量以及用户自定义变量目录系统变量的分类查看系统变量查看所有或部分系统变量查看指定系统变量修改系统变量的值系统变量的分类系统变量分为全局系统变量(需要添加 global 关键字)以及会话系统变量(需要添加 session 关键字),有时也把全局系统变量称为全局变量,有时也会把会话系统变量称为 local 变量原创 2022-06-03 05:15:00 · 1187 阅读 · 0 评论 -
【MySQL笔记】存储过程和存储函数的查看、修改、删除
目录查看查看存储过程和函数的创建信息查看存储过程和存储函数的状态信息修改删除关于存储过程使用的争议优点编辑缺点查看查看存储过程和函数的创建信息SHOW CREATE {PROCEDURE | FUNCTION} 存储过程名或函数名查看存储过程和存储函数的状态信息SHOW PROCEDURE STATUS;查看存储过程和存储函数的信息SELECT * FROM information_schema.RoutinesWHERE ROU原创 2022-06-01 05:15:00 · 691 阅读 · 0 评论 -
【MySQL笔记】存储过程(PROCEDURE)与存储函数(FUNCTION)的创建与使用
MySQL 从 5.0 版本开始支持存储过程和函数。存储过程和函数能够将复杂的 SQL 逻辑封装在一起,应用程序无须关注存储过程和函数内部复杂的 SQL 逻辑,而只需要简单地调用存储过程和函数即可目录存储过程存储过程的优点和视图、函数的对比创建存储过程代码举例存储函数创建存储函数代码举例对比存储函数和存储过程存储过程存储过程的优点和视图、函数的对比它和视图有着同样的优点,清晰、安全,还可以减少网络传输量。不过它和视图不同,视图是虚拟表,通常.原创 2022-06-02 05:15:00 · 2175 阅读 · 0 评论 -
【MySQL笔记】视图的创建与使用(VIEW)
视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查询视图。比如,针对一个公司的销售人员,我们只想给他们看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给他目录视图的理解创建视图创建单表视图利用视图对数据进行格式化基于视图创建视图查看视图更新视图数据不可更新的视图删除视图删除视图数据删除视图视图的优点视图的理解1. 视图是一种虚拟表,本身是不具有数据的,占用很少的内存空间,它是 SQL 中...原创 2022-05-31 05:15:00 · 2353 阅读 · 0 评论 -
【MySQL笔记】默认值约束(DEFAULT)与有关约束的面试题
目录默认值约束的使用作用关键字添加默认值约束建表时添加修改表时添加删除约束默认值约束的使用作用给某个字段 / 某列指定默认值,一旦设置默认值,在插入数据时,如果此字段没有显式赋值,则赋值为默认值关键字DEFAULT添加默认值约束设置 salary 的默认值为 2000建表时添加CREATE TABLE test(id INT,last_name VARCHAR(15),salary DECIMAL(10,2) DEFAULT 2原创 2022-05-30 05:15:00 · 373 阅读 · 0 评论 -
【MySQL笔记】检查约束(CHECK)
目录CHECK约束的使用作用关键字说明:MySQL 5.7 不支持添加CHECK约束CHECK约束的使用作用检查某个字段的值是否符合符号 xx 要求,一般指的是值的范围关键字CHECK说明:MySQL 5.7 不支持MySQL 5.7 可以使用 check 约束,但 check 约束对数据验证没有任何作用。添加数据时,没有任何错误或警告。但是 MySQL 8.0 中可以使用 check 约束添加CHECK约束只有工资大于 2000 的数据才会被原创 2022-05-29 05:15:00 · 2130 阅读 · 0 评论 -
【MySQL笔记】外键约束(FOREIGN KEY)
目录外键约束的使用作用关键字主表和从表 / 父表和子表特点添加外键约束外键约束的关系是针对双方的约束等级删除外键约束外键约束的缺点外键约束的使用作用限定某个表的某个字段的引用完整性关键字FOREIGN KEY主表和从表 / 父表和子表主表(父表):被引用的表,被参考的表从表(子表):引用别人的表,参考别人的表特点添加外键约束#先创建主表CREATE TABLE dept1(dept_id INT PRIMAR.原创 2022-05-28 05:30:00 · 500 阅读 · 0 评论 -
【MySQL笔记】自增列(AUTO_INCREMENT)
目录自增列的使用作用关键字特点和要求添加自增约束自增列的使用作用某个字段的值自增关键字AUTO_INCREMENT特点和要求1. 一个表最多只能有一个自增长列2. 当需要产生唯一标识符或顺序值时,可设置自增长3. 自增长列约束的列必须是键列(主键列,唯一键列)4. 自增约束的列的数据类型必须是整数类型5. 如果自增列指定了 0 和 null,会在当前最大值的基础上自增;如果自增列手动指定了具体值,直接赋值为具体值添加自增约束C原创 2022-05-27 05:15:00 · 1646 阅读 · 0 评论 -
【MySQL笔记】主键约束(PRIMARY KEY)
目录主键约束的使用作用关键字特点添加主键约束在建表时添加修改表时添加删除主键约束主键约束的使用作用用来唯一标识表中的一行记录关键字PRIMARY KEY特点主键约束相当于 “唯一性约束 + 非空约束”,主键约束列不允许重复,也不允许出现空值添加主键约束在建表时添加CREATE TABLE test(id INT PRIMARY KEY, #列级约束last_name VARCHAR(15),salary DECIMA原创 2022-05-26 05:45:00 · 987 阅读 · 0 评论 -
【MySQL笔记】唯一性约束(UNIQUE)
目录唯一性约束的使用作用关键字特点添加唯一性约束建表时添加修改表时添加删除唯一性约束查看表的索引删除唯一性约束唯一性约束的使用作用用来限制某个字段 / 某列的值不能重复关键字UNIQUE特点添加唯一性约束建表时添加CREATE TABLE test(id INT UNIQUE, #列级约束last_name VARCHAR(15),email VARCHAR(25),salary DECIMAL(10,2)..原创 2022-05-25 05:15:00 · 1144 阅读 · 0 评论 -
【MySQL笔记】非空约束(NOT NULL)
为了保证数据的完整性(精确性与可靠性),SQL 规范以约束的方式对表数据进行额外的条件限制。目录约束的分类如何查看表中约束非空约束的使用作用关键字特点添加非空约束建表时添加修改表时添加删除约束约束的分类从约束的字段个数来看:约束分为单列约束与多列约束从约束的作用范围来看:约束分为列级约束(将此约束声明在对应字段的后面)和表级约束(在表中所有字段都声明完,在所有字段的后面声明的约束)如何查看表中约束SELECT * FROM infor..原创 2022-05-24 05:15:00 · 814 阅读 · 2 评论 -
【MySQL笔记】数据库创建中的数据类型
目录MySQL中的数据类型常见的数据类型属性字符集设置整数类型浮点数类型定点数类型位类型日期与时间类型编辑文本字符串类型CHAR与VARCHAR类型TEXT类型ENUM(枚举)类型SET类型二进制字符串类型BINARY与VARBINARY类型BLOB类型JSON类型MySQL中的数据类型常见的数据类型属性字符集设置# 指明表的字符集CREATE TABLE test ( ...原创 2022-05-23 05:30:00 · 2065 阅读 · 0 评论 -
【MySQL笔记】MySQL8新特性 — 计算列
什么叫计算列呢?简单来说就是·某一列的值是通过别的列计算得来的。例如·,a 列值为 1,b 列值为 2,c 列不需要手动插入,定义 a + b 的结果为 c 的值,那么 c 就是计算列,是通过别的列计算得来的在 MySQL 8 中,CREATE TABLE 和 AlTER TABLE 中都支持增加计算列,本文以 CREATE TABLE 举例说明创建计算列数据表CREATE TABLE test( a INT, b原创 2022-05-22 05:30:00 · 2132 阅读 · 2 评论 -
【MySQL笔记】数据表 添加数据、修改数据、删除数据
目录添加数据更新(修改)数据删除数据添加数据方式一:一条一条加,不指明字段INSERT INTO 表名VALUES (数据); # 注:一定要按照声明的字段的先后顺序添加方式二:一条一条加,指明添加字段(推荐)注:没有赋值的字段值为 nullINSERT INTO 表名 (指明字段)VALUES (数据);# 比如INSERT INTO emp (id,hire_data,salary)VALUES (2,'2022-5-11',5000);方式原创 2022-05-20 05:15:00 · 2363 阅读 · 0 评论 -
【MySQL笔记】撤销删除—DCL中COMMIT与ROLLBACK的使用
COMMIT:提交数据。一旦执行了 COMMIT,则数据就被永久的保存在了数据库中,意味着数据不可以回滚原创 2022-05-21 05:15:00 · 2438 阅读 · 0 评论 -
【MySQL笔记】数据表的创建、修改与删除
目录MySQL中的数据类型创建与管理数据表创建数据表管理数据表修改数据表重命名数据表删除数据表清空数据表MySQL中的数据类型其中几种常见的类型介绍创建与管理数据表创建数据表创建数据表需要用户具备创建表的权限,一般为 root如果创建表时没有指明使用的字符集,则默认使用表所在的数据库的字符集方式一:创建数据表CREATE TABLE IF NOT EXISTS mytest( ...原创 2022-05-19 05:15:00 · 929 阅读 · 0 评论 -
【MySQL笔记】数据库的创建、修改与删除
存储数据是处理数据的第一步。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只能是一团乱麻,无从下手在 MySQL 中,一个完整的数据存储结构总共有 4 步,分别是创建数据库、确认字段、创建数据表、插入数据 目录创建和管理数据库创建数据库管理数据库修改数据库删除数据库创建和管理数据库创建数据库创建此数据库使用的是默认的字符集CREATE DATABASE 数据库名;显示的指明了要创建的数据......原创 2022-05-18 05:15:00 · 480 阅读 · 4 评论 -
【MySQL笔记】子查询(关联与非关联查询,单行与多行查询,EXISTS 关键字)
子查询包括单行子查询与多行子查询,子查询(内查询)在主查询之前一次执行完成子查询的结果被主查询(外查询)使用子查询注意事项1. 子查询要包含在括号内2. 将子查询放在比较条件的右侧3. 单行操作符对应单行子查询,多行操作符对应多行子查询单行子查询子查询返回单行的查询,使用单行比较运算符# 查询最低工资大于 50 号部门最低工资的部门 id 和其最低工资SELECT department_id,MIN (salary)FROM employeesWHERE depa原创 2022-05-17 05:15:00 · 761 阅读 · 0 评论 -
【MySQL笔记】聚合函数的使用(GROUP BY 与 HAVING)
目录常见的几个聚合函数计算表中有多少条记录的方法GROUP BY的使用HAVING的使用聚合函数SQL 99语法SQL语句的执行过程常见的几个聚合函数AVG()与 SUM():平均值与求和。只适用于数值类型的字段。公式:AVG = SUM / COUNTMAX()与 MIN():求最大值与最小值。适用于数值类型,字符串类型,日期时间类型的字段(或变量)COUNT():计算指定字段在查询结构中出现的个数。注:计算指定字段出现的个数时,是不计算 NULL 值的.原创 2022-05-16 05:15:00 · 3093 阅读 · 0 评论 -
【MySQL笔记】流程控制与加密解密函数
目录流程控制函数加密解密函数MySQL信息函数其他函数流程控制函数#如果工资大于6000则返回高工资否则返回低工资SELECT last_name,salary,IF(salary >= 6000,'高工资','低工资')"details"FROM employees;SELECT last_name,salary,CASE WHEN salary >= 15000 THEN 'A' ...原创 2022-05-15 05:15:00 · 241 阅读 · 0 评论 -
【MySQL笔记】日期函数的使用
目录获取日期、时间日期与时间戳转换获取月份、星期、星期数、天气等函数日期的操作函数时间和秒钟转换函数计算日期和时间的函数日期的格式化解析获取日期、时间日期与时间戳转换获取月份、星期、星期数、天气等函数日期的操作函数时间和秒钟转换函数计算日期和时间的函数日期的格式化解析...原创 2022-05-14 05:30:00 · 95 阅读 · 0 评论 -
【MySQL笔记】函数的基本使用
函数在计算机语言的使用者贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既提高了代码效率,又提高了可维护性。在 SQL 中我们也可以使用函数对检索出来的数据进行函数操作。使用这些函数,可以极大地提高用户对数据库的管理效率。目录数值函数三角函数弧度制转化函数指数与对数进制间的转换字符串函数数值函数三角函数弧度制转化函数 指数与对数进制间的转换字符串函数...原创 2022-05-13 05:15:00 · 175 阅读 · 0 评论 -
【MySQL笔记】多表查询(JOIN ON)
多表查询,也称关联查询,指两个或更多个表一起完成查询操作目录多表查询的前提条件多表查询的基本语法多表查询的分类等值连接与非等值连接自连接与非自连接内连接与外连接(JOIN ON)现在我们假设有两个表,employees 和 departments,它们之中有一些重复的字段多表查询的前提条件这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了外键,也可能没有建立外键。比如员工表与部门表之间依靠 “部门编号” 进行关联原创 2022-05-03 14:44:04 · 17339 阅读 · 0 评论 -
【MySQL笔记】自然连接(NATURAL JOIN)与USING连接
目录自然连接USING连接自然连接SQL 99 在 SQL 92 的基础上提供了一些特殊语法,比如 NATURAL JOIN 用来表示自然连接。我们可以把自然连接理解为 SQL 92 中的等值连接。它会帮你自动查询两张连接表中所有相同的字段,然后进行等值连接SELECT employee_id,last_name,department_nameFROM employees e NATURAL JOIN departments d;USING连接与自然连接不同的是,US原创 2022-05-12 05:15:00 · 430 阅读 · 0 评论 -
【MySQL笔记】BY实现排序操作与LIMIT实现分页操作
目录排序操作分页操作排序操作升序排列:ASC(ascend)降序排列:DESC(desend)如果在 ORDER BY 后没有显式指明排序的方式的话,则默认按照升序排列我们可以使用列的别名进行排序,但不能用在 WHERE 过滤数据中强调格式:WHERE 要声明在 FROM 后,ORDER BY 之前#显示员工信息,在 10.20.30 之间按照 id 降序,salary 升序排列SELECT id FROM employees WHERE id IN (10,原创 2022-05-10 05:15:00 · 350 阅读 · 0 评论 -
【MySQL笔记】运算符的使用
算数运算符逻辑运算符位运算符运算符的优先级数字编号越大,优先级越高,优先级高的运算符先进行运算原创 2022-05-11 05:15:00 · 319 阅读 · 0 评论 -
【MySQL笔记】查找,别名,去重,过滤
导入现有数据表、表的数据source D:\xxxx\xx;(表在计算机中的路径)从表中查找数据SELECT xxx FROM 表名;从伪表中查询(同时建立伪表)SELECT xxx FROM DUAL; # dual:伪表查询表中所有数据SELECT * FROM 表名;列的别名(as,可以省略)列的别名可以使用一对 " " 引起来SELECT employee emp,apple AS app FROM employees;# 把 employee原创 2022-05-09 05:15:00 · 390 阅读 · 0 评论