![](https://img-blog.csdnimg.cn/20210121215739214.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Mysql
Mysql
LLLLLLLLLLLLIU
.
展开
-
mysql 自连接
自连接自连接是一种特殊的表连接,它是指相互连接的表在物理上同为一张表,但是逻辑上是多张表。自连接通常用于表中的数据有层次结构,如区域表、菜单表、商品分类表等。自连接语法select A.column,B.columnfrom table A,table Bwhere A.column = B.column;创建表、插入数据create table area( id int not null auto_increment primary key comment '区域id', pid i原创 2021-02-01 14:48:14 · 233 阅读 · 0 评论 -
mysql 子查询in和exists的使用
子查询in、exists的使用子查询in我们已经知道运算符in,它允许我们在WHERE子句中过滤某个字段的多个值。where子句使用in语法select column_name from table_name where column_name in(value1,value2,...)如果运算符in后面的值是来源于某个查询结果,并非是指定的几个值,这时就需要用到子查询。子查询又称为内部查询或嵌套查询,即在SQL查询的WHERE子句中嵌入查询语句。子查询in语法select column_n原创 2021-02-01 14:47:24 · 544 阅读 · 0 评论 -
Mysql 表连接
表连接(内连接、外连接、自连接)表连接(join)是多个表之间通过一定的连接条件,使表之间发生关联,进而能从多个表之间获取数据。表连接语法select table1.column,table2.columnfrom table1,table2where table1.column1 = table2.column; #连接条件各种表连接的区别连接类型定义内连接只连接匹配的行左连接包含左表的全部行(不管右表是否存在与之匹配的行), 以及右表中全部匹配的行右连原创 2021-02-01 14:46:29 · 228 阅读 · 1 评论 -
MySQL 图形化管理工具
MySQL的管理工具非常多,除了自带的命令行管理工具之外,还有许多其他的图形化管理工具。名称描述MySQL WorkbenchMySQL Workbench为数据库管理员、程序开发者和系统规划师提供可视化设计、模型建立、以及数据库管理功能。它是MySQL官方提供的图形化管理工具,功能很强大,值得推荐。HeidiSQLHeidiSQL是一款免费的软件,其目标是易于学习和使用,可用于MySQL、MariaDB、SQL Server和PostgreSQL。下载地址:https://原创 2021-01-22 22:14:54 · 194 阅读 · 0 评论 -
mysql binlog日志恢复误删的数据
MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。万一遇到数据丢失的紧急情况下,可以使用binlog日志进行数据恢复(定时全备份+binlog日志恢复增量数据部分)。使用binlog恢复误删的数据#查看binlog日志的状态show variables like '%log_bin%';#查看所有二进制日志列表show mast原创 2021-01-22 21:48:22 · 269 阅读 · 0 评论 -
mysql sql注入
sql注入是指应用程序对用户输入数据的合法性没有判断、没有过滤,攻击者可以在应用程序中通过表单提交特殊的字符串,该特殊字符串会改变sql的运行结果,从而在管理员毫不知情的情况下实现非法操作,以此来实现欺骗数据库执行非授权的任意查询。sql注入的特点广泛性:任何一个基于SQL语言的数据库都可能受到SQL注入攻击。很多开发人员都为了省事不对表单参数进行校验。隐蔽性:SQL注入语句一般都嵌入在普通的HTTP请求中,很难与正常语句区分开,SQL注入也有很多变种。危害大:攻击者通过SQL注入能够获取到更多数据原创 2021-01-22 16:30:18 · 105 阅读 · 0 评论 -
mysql 字符集
字符是各种文字和符合的总称,包括各国家文字、标点符号、图形符号、数字等。字符集是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见的字符集有ASCII、GB2312、GBK、GB18030、Unicode等。计算机要准确的处理各种字符集文字,就需要进行字符编码,以便计算机能够识别和存储各种文字。ASCII:最简单的西文编码方案,主要用于显示现代英语和其它西欧语言。使用1个字节表示,可表示128个字符。GB2312:国家标准简体中文字符集,兼容ASCII。使用2个字节表示,能表示7445原创 2021-01-22 14:50:19 · 130 阅读 · 0 评论 -
mysql 导入数据
在mysql中,可以使用load data语句将文本文件数据导入到对应的数据库表中,可以将load data语句看成是select…into outfile的反操作#示例use mydb;select * from employee;delete from employee;load data infile 'C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\employee.txt' into table employee character原创 2021-01-22 14:12:05 · 112 阅读 · 0 评论 -
mysql 定时备份数据库
完成定时备份数据库需要定时调度器和数据库备份脚本windows上实现定时备份mysqlschtasks.exe用于安排命令和程序在指定时间内运行或定期运行,它可以从计划表中添加和删除任务、按需要启动和停止任务、显示和更改计划任务。#备份数据库的脚本mysql_mydb_backup.batmysqldump -h localhost -uroot -proot mydb > e:\backup\mydb.sql #将备份数据的命令放进脚本里面#创建计划任务(每隔指定时间备份一次mysql)原创 2021-01-21 21:54:49 · 133 阅读 · 0 评论 -
mysql 导出数据的几种方式
在mysql中,可以使用select…into outfile语句将查询结果数据导出到文本文件。#select...into outfile示例#将数据放到文本文件中,其它数据库也能使用select * from employee into outfile 'D:\\employee.txt'fields terminated by ','enclosed by '"'lines terminated by '\r\n';这样的话会报错变量secure_file_priv取不同的值时,有原创 2021-01-20 17:36:44 · 7736 阅读 · 0 评论 -
mysql 复制表的几种方式
复制表的几种方式只复制表结构,包括主键、索引,但不会复制表数据create table tablename like sometable;只关注表数据,复制表的大体结构及全部数据,不会复制主键、索引等create table tablename select * from sometable;完整复制,包括表结构和数据create table tablename like sometable; #复制表结构insert into tablename select * from原创 2021-01-20 14:06:40 · 167 阅读 · 0 评论 -
mysql 预处理的基本使用
从mysql 4.1开始,就支持预处理语句,这大大提高了客户端和服务器端数据传输的效率。当创建一个预定义sql时,客户端向服务器发送一个sql语句的原型;服务器端接收到这个sql语句后,解析并存储这个sql语句的部分执行计划,返回给客户端一个sql语句处理句柄,以后每次执行这条sql,客户端都指定使用这个句柄。平时使用的sql是即时sql:一次编译、一次运行;预处理sql:一次编译、多次运行预处理的优势:高效执行重复sql、减少网络开销、更加安全mysql支持sql接口的预处理,即不使用二进制传输协原创 2021-01-19 16:28:00 · 231 阅读 · 2 评论 -
触发器实战:给新用户发邮件
触发器是用于监视某种情况并触发某种操作,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,而是由事件来触发。例如,对某张表进行insert、delete、update操作时就会触发执行它。创建触发器语法create trigger trigger_name trigger_time trigger_event on table_name for each row trigger_stmt参数说明:trigger_name:触发器名称trigger_time:触发时间,取值有before、原创 2021-01-19 15:43:00 · 157 阅读 · 0 评论 -
mysql 存储过程模拟给某个用户发送邮件
drop table if exists user_infodrop table if exists email_info#用户表create table user_info( id int not null auto_increment primary key, name varchar(30), email varchar(50))default charset=utf8;insert into user_info(id,name,email) values(1,'Lau','liuyo原创 2021-01-18 21:46:28 · 198 阅读 · 0 评论 -
mysql 存储过程的基本使用
存储过程是为了完成特定功能的sql语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行,类似于编程语言中的方法或函数。存储过程的优点:对sql语句封装,增强可复用性;可以隐藏复杂的业务逻辑、商业逻辑;支持接收参数,并返回结果存储过程的缺点:可移植性差,如果更换数据库,要重写存储过程;难以调试和拓展;无法使用explain对存储过程进行分析;《阿里粑粑java开发手册》中禁止使用存储过程存储过程示例:求两数之和#存储过程定义:求两数之和#声明语句结束符,在s原创 2021-01-18 16:09:30 · 89 阅读 · 0 评论 -
mysql 视图
视图是一个虚拟表,其内容由select查询语句定义。和真实的表一样,视图也包含行和列,对视图的操作与对表的操作基本一致。视图中的数据是在使用视图时动态生成的,视图中的数据都存储在基表中。视图是对复杂查询语句的封装,简化了复杂的查询,使复杂的查询更易于理解和使用,可以隐藏一些敏感的信息,将权限限定到行列级别。视图是一个虚拟表,其内容由select查询语句定义。和真实的表一样,视图也包含行和列,对视图的操作与对表的操作基本一致。视图中的数据是在使用视图时动态生成的,视图中的数据都存储在基表中。视图表的数据变化原创 2021-01-18 14:49:35 · 98 阅读 · 0 评论 -
mysql 分区表
分区表就是按照某种规则将同一张表的数据分段划分到多个位置存储。对数据的分区存储提高了数据库的性能,被分区存储的数据在物理上是多个文件,但在逻辑上仍然是一个表,对表的任何操作都跟没分区之前一样。在执行增、删、改、查操作时,数据库会自动找到对应的分区,然后执行操作。mysql从5.1.3开始支持分区分区表的好处:存储更多、便于管理、提升查询效率、并行处理、提高查询吞吐分区表中的四种类型mysql支持的分区类型包括Range、List、Hash和Key,其中Range最常用。Range分区:允许将数据划原创 2021-01-18 14:05:49 · 137 阅读 · 0 评论 -
Mysql 事物控制
什么是事物控制事物(Transaction)是指作为一个逻辑工作单位执行的一系列操作,这些操作要么全部成功,要么全部失败。事物确保对多个数据的修改作为一个单元来处理。在Mysql中,只有使用了Innodb存储引擎的数据库或表才支持事物。事物用于维护数据库的完整性,保证成批的sql语句要么都执行,要么都不执行。事物用于管理insert、update和delete语句。例如,张三在ATM机上给李四转账100元,在银行的业务系统中,主要会执行两步数据变更操作:从张三的账号减去100元;给李四的原创 2020-12-25 17:29:14 · 228 阅读 · 0 评论 -
Mysql 索引的使用
Mysql的日志类型日志是用于记录数据库的运行情况,以及用户对数据库执行的各类操作。当数据库发生故障时,可以根据日志分析和解决问题,从而对数据库进行恢复。日志描述重做日志(redo log)重做日志是一种物理格式的日志,记录的是物理数据页面的修改的信息,其redo log是顺序写入redo log file的物理文件中去的回滚日志(undo log)回滚日志是一种逻辑格式的日志,在执行undo的时候,仅仅是将数据从逻辑上恢复至事物之前的状态,而不是从物理页面上操作实现的,这原创 2020-12-25 16:39:12 · 152 阅读 · 0 评论 -
Mysql DCL 用户管理、权限管理、禁止root用户远程登录、忘记root密码的解决办法
我们知道,SQL语言按照功能用途分为4类,分别是DDL、DML、DQL和DCL。其中,DCL是数据控制语言,主要用于管理用户和权限。在企业中,这部分工作通常是由DBA完成,一般开发人员很少接触。DCL主要能做什么?创建用户删除用户修改密码给用户赋予权限撤销用户权限Mysql的权限体系大致分为5个层级,全局层级、数据库层级、表层级、列层级和子程序层级层级描述全局层级适用于一个给定服务器中的所有数据库。这些权限存储在mysql.user表中。GRANT ALL ON *原创 2020-12-24 18:17:28 · 288 阅读 · 1 评论 -
Mysql group_concat、distinct
group_concat的应用场景及使用group_concat的应用场景使用group by可以分组统计每个部门有多少员工。假如,除了统计每个部门的员工数量之外,还想知道具体是哪些员工(员工列表),又该如何实现呢?group_concat的使用group_concat配合group by一起使用,用于将某一列的值按指定的分隔符进行拼接,Mysql默认的分隔符为逗号。group_concat语法group_concat([distinct] column_name [order by colum原创 2020-12-24 14:49:36 · 962 阅读 · 0 评论 -
Mysql查询结果的排序和分页及group by、having的应用场景及使用
查询结果排序和分页order by的使用在SQL中,使用order by对查询结果集进行排序,可以按照一列或多列进行排序。order by语法select column_name1,column_name2from table_name1,table_name2order by column_name,column_name [ASC|DESC]说明:ASC表示按升序排列,DESC表示按降序排列。默认情况下,对列按升序排列。limit的使用在select语句中使用limit子句来原创 2020-12-23 17:35:22 · 737 阅读 · 1 评论 -
Mysql条件查询、内置函数和常用函数
在SQL中,insert、update、delete和select后面都能带where子句,用于插入、修改、删除或查询指定条件的记录SQL语句中使用where子句语法select column_name from table_name where column_name 运算符 value运算符描述=等于<>或!=不等于>大于<小于>=大于等于<=小于等于between and选取介于两个值之间原创 2020-12-23 15:51:03 · 531 阅读 · 0 评论 -
Mysql数据库和表的操作
数据库操作mysql命令语句select version(); 查看数据库版本status; 查看数据库状态windows命令行net start mysql57 启动mysql服务net stop mysql57 停止mysql服务环境变量配置:mysql.exe的路径,这样每次启动mysql时,就不需要转到该路径才能使用mysqlmysql -h localhost -u root -p 连接mysqlmysql命令行客户端查看所有的数据库show databases;创建数据库原创 2020-12-15 18:00:22 · 240 阅读 · 0 评论