![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL学习
文章平均质量分 76
Mr_BigG
这个作者很懒,什么都没留下…
展开
-
MySQL学习(20)︱复制表的几种方式
复制表的几种方式只复制表结构create table tableName like someTable;只复制表结构,包括主键和索引,但是不会复制表数据只复制表数据create table tableName select * from someTable;复制表的大体结构及全部数据,不会复制主键、索引等完整复制create table tableName like someTable;insert into tableName select * from someT原创 2021-04-26 20:28:09 · 5333 阅读 · 1 评论 -
MySQL学习(19)︱预处理与查询缓存
预处理什么是预处理从MySQL4.1开始,就支持预处理语句,这大大提高了客户端和服务器端数据传输的效率。当创建一个预定义SQL时,客户端向服务器发送一个SQL语句的原型;服务器端接收到这个SQL语句后,解析并存储这个SQL语句的部分执行计划,返回给客户端一个SQL语句处理句柄,以后每次执行这条SQL,客户端都指定使用这个句柄。预处理的优势高效执行重复SQL:在服务器端只需要解析一次SQL;在服务器端某些优化器的工作只需要执行一次,它会缓存一部分执行计划减少网络开销:对于重复执行的SQL,后续只原创 2021-04-12 16:35:53 · 3107 阅读 · 0 评论 -
MySQL学习(18)︱触发器及实战
什么是触发器触发器用于监视某种情况并触发某种操作,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,而是由事件来触发。例如,当对某张表进行insert、delete、update操作时就会触发执行它。创建触发器语法CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW trigger_stmt;//参数说明:/*trigger_name:触发器名称trigger_time:触原创 2021-04-09 09:16:08 · 3400 阅读 · 1 评论 -
MySQL学习(17)︱存储过程及实战
存储过程及基本使用什么是存储过程存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可以通过指定存储过程的名字并给定参数(需要时)来调用执行,类似于编程语言中的方法或函数。存储过程的优点:1.存储过程是对SQL语句的封装,增强可复用性2.存储过程可以隐藏复杂的业务逻辑、商业逻辑3.存储过程支持接收参数,并返回运算结果存储过程的缺点:1.存储过程的可移植性较差,如果更换数据库,要重写存储过程2.存储过程难以调试和扩展3.无法使用Explain对存储过程进原创 2021-04-07 19:01:46 · 1014 阅读 · 0 评论 -
MySQL学习(16)︱分区表与视图
什么是分区表分区表就是按照某种规则将同一张表的数据分段划分到多个位置存储。对数据的分区存储提高了数据库的性能,被分区存储的数据在物理上是多个文件,但在逻辑上仍然是一个表,对表的任何操作都跟没分区一样。在执行增、删、改、查等操作时,数据库会自动找到对应的分区,然后执行操作。MySQL从5.1.3开始支持分区在MySQL8.0中,只有InnoDB和NDB两个存储引擎支持分区分区表的好处存储更多:与单个磁盘或文件系统分区相比,可以存储更多的数据便于管理:很容易根据分区删除失去保存意义的历史数据原创 2021-04-06 20:55:27 · 809 阅读 · 0 评论 -
MySQL学习(15)︱事务控制
什么是事务控制事务是指作为一个逻辑工作单元执行的一系列操作,这些操作要么全部成功,要么全部失败。事务确保了多个数据的修改作为一个单元来处理。在MySQL中,只有使用了Innodb存储引擎的数据库或表才支持事物事务用于维护数据库的完整性,保证成批的sql语句要么都执行,要么都不执行事务用于管理INSERT、UPDATE和DELETE语句假如,张三在ATM机上给李四转账100元,在银行的业务系统中,主要会执行两步数据变更操作:从张三的账户减去100元给李四的账户增加100元试问,如果操作原创 2021-04-05 10:36:52 · 206 阅读 · 0 评论 -
MySQL学习(14)︱复合索引与覆盖索引
复合索引前导列特性在MySQL中,如果创建了复合索引(name, salary, dept),就相当于创建了(name, salary, dept)、(name, salary)、(name)三个索引,这被称为复合索引前导列特性,因此在创建复合索引时应将最常用作查询条件的列放在最左边,依次递减。未使用索引SELECT * FROM employee WHERE salary = 8800;SELECT * FROM employee WHERE dept = '部门A';SELECT * FR原创 2021-03-26 14:13:51 · 1297 阅读 · 1 评论 -
MySQL学习(13)︱查询分析器与索引的基本使用
EXPLAIN简介explain命令可以查看SQL语句的执行计划。当explain与SQL语句一起使用时,MySQL将显示来自优化器的有关语句执行计划的信息。也就是说,MySQL解释了它将如何处理语句,包括有关如何联接表以及以何种顺序联接表的信息。那么,explain能做什么?分析出表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表之间的引用每张表有多少行被优化器查询explain的使用很简单,只需要在SQL语句前面加上explain命令即可,除了select语句之原创 2021-03-25 17:05:47 · 490 阅读 · 0 评论 -
MySQL学习(12)︱慢查询日志
MySQL的日志类型日志用于记录数据库的运行情况,以及用户对数据库执行的各类操作。当数据库发生故障时,可以根据日志分析和解决问题,从而对数据库进行恢复。下图为MySQL主要的日志及其描述。认识慢查询日志慢查询日志用于记录MySQL数据库中响应时间超过指定阈值的语句。慢查询日志通常也被称为慢日志,因为它不仅仅只针对SELECT语句,像INSERT、UPDATE、DELETE等语句,只要响应时间超过所设定阈值都会记录在慢查询日志中。主要参数如下图。如何开启慢查询日志慢查询日志可以通过命令临时设置,也可原创 2021-03-24 15:25:27 · 666 阅读 · 0 评论 -
MySQL学习(11)︱禁止ROOT用户远程登陆与找回密码
禁止ROOT用户远程登陆在实际工作中,公司的DBA都会设置禁止ROOT用户远程登陆,原因如下:ROOT是MySQL数据库的超级管理员,几乎拥有所有权限,一旦泄露后果非常严重!ROOT是MySQL数据库的默认用户,所有人都知道,如果不禁止远程登陆,可以针对ROOT用户暴力破解密码!为了确保数据库的安全,要保证你的MySQL数据库ROOT用户的登陆主机/IP为localhost,如下图所示如果ROOT用户的host并非localhost,可以通过以下几步进行修改:连接数据库,使用mysql数据原创 2021-03-23 18:35:21 · 1680 阅读 · 0 评论 -
MySQL学习(10)︱用户与权限管理
认识DCLSQL语言按照功能用途分为4类,分别是DDL、DML、DQL、DCL。其中,DCL是数据控制语言,主要用于管理用户和权限。在企业中,这部分工作通常为DBA完成,一般开发人员接触较少。DCL主要能做的:创建用户、删除用户、修改密码、给用户赋予权限、撤销用户权限。权限体系MySQL的权限体系大致分为5个层级,全局层级、数据库层级、表层级、列层级和子程序层级。MySQL的权限信息主要存储在以下几张表中,当用户连接数据库时,MySQL会根据这些表对用户进行权限验证。用户管理在MySQL中,使用原创 2021-03-22 19:03:15 · 615 阅读 · 0 评论 -
MySQL学习(9)︱自连接与子查询IN、EXISTS
自连接自连接是一种特殊的表连接,它是指相互连接的表在物理上同为一张表,但是在逻辑上是多张表。自连接常用于表中的数据有层次结构,比如菜单表、区域表、商品分类表等。自连接语法:SELECT A.column, B.column FROM table A, table B WHERE A.column = B.column;子查询子查询的使用场景子查询IN博主之前的文章中有提到过运算符IN允许我们在WHERE子句中过滤某个字段的多个值。where子句使用in语法:SELECT col原创 2021-03-20 16:01:34 · 1363 阅读 · 2 评论 -
MySQL学习(8)︱DISTINCT去重与表连接
DISTINCT去重distinct用于在查询中返回列的唯一不同值(去重复),支持单列或多列。在实际的应用中,表中的某一列含有重复值是常见的,如employee表的dept列。如果在查询数据时,希望得到某列的所有不同值,可以使用distinct。distinct语法:SELECT DISTINCT column_name, columan_name FROM table_name;表连接表连接是在多个表之间通过一定的连接条件,使表之间发生关联,进而能从多个表之间获取数据。如下图所示,两张表通原创 2021-03-19 09:52:53 · 2072 阅读 · 1 评论 -
MySQL学习(7)︱GROUP BY、HAVING和GROUP_CONCAT的用法
GROUP BYgroup by表示根据某种规则对数据进行分组,它必须配合聚合函数进行使用,对数据进行分组后可以进行count、sum、avg、max、min等运算。group by语法:SELECT column_name, aggregate_function(column_name) FROM table_name GROUP BY column_name;//aggregate_function表示聚合函数,group by可以对一列或者多列进行分组HAVING在SQL中增加HAVI原创 2021-03-18 19:43:32 · 1068 阅读 · 2 评论 -
MySQL学习(6)︱查询结果排序与分页
ORDER BY的使用在SQL中,使用ORDER BY对查询结果集进行排序,可以按照一列或多列进行排序order by语法:SELECT 字段名1, 字段名2 FROM 表名1, 表名2 ORDER BY 字段名1, 字段名2[ASC|DESC]说明:1.ASC表示按升序排列,DESC表示按降序排列2.默认情况下,对列按升序排列LIMIT的使用在SELECT语句中使用LIMIT子句来约束要返回的记录数,通常使用LIMIT实现分页。limit语法:SELECT 字段名1,原创 2021-03-17 13:49:41 · 306 阅读 · 1 评论 -
MySQL学习(5)︱IN、LIKE的使用和MySQL常用函数
运算符的使用运算符:IN运算符IN允许我们在WHERE子句中过滤某个字段的多个值。WHERE子句使用IN语法:SELECT 字段名FROM 表名WHERE 字段名 IN(值1, 值2, ...);运算符:LIKE在WHERE子句中,有时候我们需要查询包含XXX字符串的所有记录,这时就需要用到运算符LIKE。WHERE子句使用LIKE语法:SELECT 字段名 FROM 表名 WHERE 字段名 LIKE '%值%';说明:- LIKE子句中的%类似于正则表达式中的*,匹配0个原创 2021-03-15 19:56:49 · 1796 阅读 · 0 评论 -
MySQL学习(4)︱数据库的查询
在SQL中,使用select语句来查询数据。不同的关系数据库,select语法会有细微差别,在MySQL官网可以查询到支持的select语法。SQL语法:SELECT column_name1, column_name2//选择查询什么字段FROM table_name//从哪张表查询[WHERE wher_condition]//查询条件[GROUP BY {col_name | expr | position}, ...[WITH ROLLUP]]//分组[HAVING where_co原创 2021-03-14 10:39:18 · 310 阅读 · 1 评论 -
MySQL学习(3)︱数据库与表的基本操作
插入数据在MySQL中,使用insert into语句向数据表中插入数据。插入单条数据INSERT INTO 表名(字段1, 字段2, ..., 字段N) VALUES(值1, 值2, ..., 值N);插入多条数据INSERT INTO 表名(字段1, 字段2, ..., 字段N) VALUES(值A1, 值A2, ..., 值AN), (值B1, 值B2, ..., 值BN), ..., (值N1, 值N2, ..., 值NN);注意:如果字段是字符型,值必须使用单引号或双引号;如果原创 2021-03-13 18:26:23 · 322 阅读 · 0 评论 -
MySQL学习(2)︱数据库与表的基本操作
SQL简介SQL是Structured Query Language的缩写,也就是结构化查询语言,SQL是一门标准的计算机语言,用于访问和操作数据库,其主要功能包括数据定义、数据操纵、数据查询和数据控制。SQL能做的:SQL可以创建和管理数据库、数据表、存储过程、视图等SQL可以向数据库中插入新的记录,并可以进行修改、删除SQL可以查询数据库中的记录SQL可以对数据库进行事务控制和权限管理SQL语言的分类按照功能用途,可以将SQL语言分为4类:DDL、DML、DQL和DCL。DDL(原创 2021-03-12 11:36:40 · 567 阅读 · 0 评论 -
MySQL学习(1)︱数据库的基本概念与安装配置
基本概念数据库数据库是按照数据结构来组织、存储和管理数据的仓库。数据库是长期存储在计算机内、有组织、可共享、统一管理的大量数据的集合体。数据库中的数据按照一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。其基本特征如下图所示。数据库的分类数据库通常被分为层次数据库、网状数据库和关系数据库。层次(树状结构):最典型的是IBM的IMS网状(网状结构):典型代表是DBTG系统关系(二维表格):主流的有Oracle、DB2、MySQL等数据库管理原创 2021-03-11 15:13:18 · 1334 阅读 · 1 评论