MySQL数据库从入门到精通实战
MySQL数据库从入门到精通实战
浊酒南街
纵使疾风起,人生不言弃。
展开
-
mysql相关知识总结
在创建要给表的时候遇到一个有意思的问题,提示Specified key was too long;max key length is 767 bytes,从描述上来看,是Key太长,超过了指定的 767字节限制。MySQL对于InnoDB存储引擎有一个索引键长度的限制,这个限制基于字符集的不同而不同。修改索引中字段的长度,比如你的索引字段是字符串,类型是varchar(512),修改到varchar(225),或者更低,比如varchar(100),注意一个字符是两个字节,中文是四个字节;原创 2024-05-21 20:34:46 · 399 阅读 · 0 评论 -
第六章:MySQL子查询详解
目录1.在select后;2.在from后,在in后3.在exists后;子查询:在from后,在in后,在select后,在exists后;1.在select后;#查询每个部门的员工个数 SELECT ( SELECT COUNT(*) FROM employees e WHERE e.department_id = d.`department_id`) count ,d.*FROM departments d;结果:+-------------+---------+-------原创 2021-05-18 21:57:19 · 127 阅读 · 0 评论 -
第三章:数据查询语言DQL-子查询exists和in的比较
直接学习:https://edu.csdn.net/course/play/27328/370702子查询exists和in的比较#1、子查询 in :如果运算符in 后面的值来源于某个查询结果,并非是指定的几个值,这时就需要用用到子查询,子查询又称为内部查询或嵌套查询,即在SQL查询的where子句中嵌入查询结果#2、代码示例:查询学生表中所有选修了课程的学生信息select A.*...原创 2020-04-12 09:54:02 · 314 阅读 · 0 评论 -
第三章:数据查询语言DQL-使用distinct去除重复数据
直接学习:https://edu.csdn.net/course/play/27328/370700使用distinct去除重复数据distinct用于在查询中返回列的唯一不同值(去重复),支持单列和多列;1、select distinct username from footprint;2、select distinct city from footprint;3、select dis...原创 2020-04-11 22:06:41 · 168 阅读 · 0 评论 -
第七章:MySQL 8.0新特性-Navicat无法连接Mysql 8.0 的问题解决
直接学习:https://edu.csdn.net/course/play/27328/380517Navicat无法连接Mysql 8.0 的问题解决#1、原因及解决方法#2、示例代码入下:alter user 'root'@'localhost' identified with mysql_native_password by '123456';flush privileges;...原创 2020-04-15 16:59:12 · 144 阅读 · 0 评论 -
第三章:MySQL常用函数讲解(二)-IFNULL函数的简单使用
目录1.IFNULL(expr1,expr2)函数1.IFNULL(expr1,expr2)函数MYSQL IFNULL(expr1,expr2)函数如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。mysql> select IFNULL(1,0); -> 1 mysql> select IFNULL(0,10);原创 2021-05-15 17:04:20 · 278 阅读 · 0 评论 -
第一章:MySQL介绍与安装配置-mysql的安装和配置
直接学习:https://edu.csdn.net/course/play/27328/362516mysql的安装和配置:1、select version();可以看mysql的版本号2、status;可以看数据库当前的状态3、启停mysql服务:#1、可以通过图形界面,先启动windows的服务,再右键启停服务。其中启动windows服务,有两种操作可以依次点击控制面板----管理...原创 2020-04-09 14:55:57 · 180 阅读 · 0 评论 -
第二章:数据库与表的基本操作-DDL之数据表
直接学习:https://edu.csdn.net/course/play/27328/362519DDL之数据表:1、mysql 存储引擎:存储引擎就是如何存储数据,如何更新数据,如何查询数据,如何为存储的数据建立索引等一些列技术的实现方法。#查看mysql支持的存储引擎show engines;2、mysql支持多种数据类型,但大致可以分为三类:数值,日期/时间,和字符串(字符)类...原创 2020-04-09 16:57:19 · 165 阅读 · 0 评论 -
第六章:MySQL高级进阶-导出数据
直接学习:https://edu.csdn.net/course/play/27328/370717导出数据#导出数据的几种方式:方法一:select * from employee into outfile 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\employee.txt'fields terminated by ','...原创 2020-04-14 18:20:58 · 136 阅读 · 0 评论 -
第三章:MySQL常用函数讲解(二): 取整函数(ceil、floor、round)
目录1.ceil()函数2.floor()函数3.round()函数1.ceil()函数ceil:在英文中,是天花板的意思,有向上的意思,所以,此函数是向上取整,它返回的是大于或等于函数参数,并且与之最接近的整数;向上取整的时候,正数,则直接将当前整数加一;负数,则将整数后面的数据抹除;整数,则不变。select ceil(1.002)2select ceil(-1.002)-1select ceil(-3)-32.floor()函数floor:在英文中,是地面,地板的意思,有下原创 2021-05-17 08:44:05 · 5699 阅读 · 0 评论 -
MySQL异常处理:MySQL插入中文异常
目录1.报错Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 12.解决方案1.方案一:2.方案二3.分析原因4.遇到的问题1.报错Incorrect string value: ‘\xE5\xBC\xA0\xE4\xB8\x89’ for column ‘name’ at row 12.解决方案1.方案一:对于使用navicat 等工具的,可以选中表,右键设计表,打开后把字符集设为utf8,保存原创 2021-05-16 19:57:04 · 748 阅读 · 0 评论 -
第三章:数据查询语言DQL-group_concat函数的使用
直接学习:https://edu.csdn.net/course/play/27328/370699group_concat函数的使用:group_concat配合group by一起使用,用于将某一列的值按指定的分隔符进行拼接,mysql默认的分隔符是逗号。1、select dept ,count(), group_concat(name ) from employee group by ...原创 2020-04-11 17:56:00 · 210 阅读 · 0 评论 -
第五章:索引的使用-复合索引前导列特性
直接学习:https://edu.csdn.net/course/play/27328/362533复合索引前导列特性:#1、在mysql中如果创建了复合索引(name,salary,dept),就相当于创建了(name,salary,dept),(name,salary),(name)三个索引,这被称为复合索引前导特性。#2、示例代码如下:show index from employee...原创 2020-04-13 11:17:54 · 290 阅读 · 0 评论 -
第六章:MySQL高级进阶-复制表的几种方式
直接学习:https://edu.csdn.net/course/play/27328/370715复制表的几种方式#1、复制表的几种方式,如图所示:#2、示例代码如下:create table t1(id int not null auto_increment primary key,name varchar(50) comment'姓名');insert into t1(na...原创 2020-04-14 17:40:51 · 133 阅读 · 0 评论 -
第四章:数据控制语言DCL-忘记root用户密码的解决方案
直接学习:https://edu.csdn.net/course/play/27328/370705忘记root用户密码的解决方案:#1、解决方案如图:#2、代码示例如下:主窗口:1、net stop mysql80;2、mysqld --defaults-file=“C:\ProgramData\MySQL\MySQL Server 8.0\my.ini” --console --...原创 2020-04-12 17:41:10 · 114 阅读 · 0 评论 -
第六章:MySQL高级进阶-字符集之gb2312装不下“屌丝”
直接学习:https://edu.csdn.net/course/play/27328/370719字符集之gb2312装不下“屌丝”:#1、如何查看mysql支持的字符集show character set;#2、设置字符集#3、示例代码如下:create table t_gb2312(name varchar(30)) default charset=gb2312;inser...原创 2020-04-14 22:56:52 · 171 阅读 · 0 评论 -
第三章:数据查询语言DQL-MySQL常用函数讲解(二)
目录1.concat()函数1. 含义2. 语法3. 案例:2.concat_ws()函数1. 含义2. 语法3. 案例1.concat()函数1. 含义将多个字符串连接成一个字符串。2. 语法concat(str1, str2,…) 返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。3. 案例:select concat (id, name) as info from t1;+-------+------------------------+| info原创 2021-05-15 11:17:46 · 118 阅读 · 0 评论 -
第三章:MySQL常用函数讲解(二): 日期函数、时间函数比较
目录1.日期函数1、CURDATE():显示当前日期(包含年月日,中间以-分隔)2.DATE(date|datetime):截取date|datetime的日期;3.DATE_FORMAT(date,format):将日期转化为字符串4.str_to_date:将字符转换为日期;5.data计算函数如:DATE_ADD(date,INTERVAL exp unit)6.data计算函数如:DATE_DIFF(date1,date2):2.时间函数1.CURTIME():返回当前时间 如:21:35:201原创 2021-05-17 10:58:02 · 533 阅读 · 0 评论 -
第六章:MySQL高级进阶-存储过程实战给指定用户发邮件通知
直接学习:https://edu.csdn.net/course/play/27328/362515存储过程实战给指定用户发邮件通知#1、示例代码如下:/*普通情况实现*/drop table if exists user_info;drop table if exists email_info;create table user_info (id int not null auto...原创 2020-04-14 15:13:55 · 231 阅读 · 0 评论 -
第六章:Scrapy框架-Scrapy框架架构介绍
直接学习:https://edu.csdn.net/course/play/24756/283285Scrapy框架架构介绍:1、2、原创 2020-04-23 17:06:55 · 129 阅读 · 0 评论 -
第五章:索引的使用-慢查询日志
直接学习:https://edu.csdn.net/course/play/27328/362514慢查询日志#1、mysql日志用于记录数据库的运行情况,以及用户对数据库执行的各类操作。当数据库发生故障时,可以根据日志分析和解决问题,从而对数据库进行修复。#2、慢查询日志用于记录mysql数据库中响应时间超过指定阈值的语句。不仅仅针对select语句,包括 insert,update,de...原创 2020-04-12 23:56:09 · 101 阅读 · 0 评论 -
第三章:数据查询语言DQL-自连接查询的场景及使用
直接学习:https://edu.csdn.net/course/play/27328/370701自连接查询的场景及使用#什么是自连接?自连接是一种特殊的表连接,它是指相互连接的表在物理上同为一张表,但是逻辑上确是多张表。自连接通常用于表中的数据有层次结构,如区域表,菜单表,产品分类等。#代码如下select A.id,A.name ,B.name as provinceNamefr...原创 2020-04-11 23:47:48 · 135 阅读 · 0 评论 -
第三章:数据查询语言DQL-group by和having的使用
直接学习:https://edu.csdn.net/course/play/27328/362529group by和having的使用:#group by表示根据某种规则对数据进行分组,它必须配合聚合函数进行使用,对数据进行分组后,可以进行count ,avg , sum, max,min等运算。1、select sex , count() from employee group by s...原创 2020-04-11 17:14:51 · 140 阅读 · 0 评论 -
第六章:MySQL开窗函数
目录1.创表语句1.语法2.建表语句3.插入数据2.row_number()over需求1:查询基本信息,并新加一列,按照工资降序排列需求2:查询基本信息,并新加一列,先以id分组再按照工资降序排列需求3:查询基本信息,并新加一列,先以id分组再按照工资降序排列,并且排序数小于2需求4:查询基本信息,并新加一列,以工资降序排列,并且选出年龄再13到16之间的;with 用法3.rank()over需求1:查询基本信息,并新加一列,按照工资降序排列4.dense_rank()需求1:查询基本信息,并新加一列,原创 2021-05-15 14:49:59 · 734 阅读 · 3 评论 -
第六章:MySQL中 if语句的使用
目录1.Mysql的if作为表达式用2.存储过程中作为流程控制语句使用3.实战1.需求:有这样一个表,需要求出第一列大于3的个数,第二列大于3的个数;2.方案1 ,使用sum(if()) ;2.2.方案2 ,使用sum(if()) ;1.Mysql的if作为表达式用IF(expr1,expr2,expr3)含义:如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。mysq原创 2021-05-17 12:02:08 · 6110 阅读 · 0 评论 -
第六章:MySQL高级进阶-导入数据
直接学习:https://edu.csdn.net/course/play/27328/370718导入数据#1、导入数据的几种方式方法一:delete from employee;load data infile 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\employee.txt' into table employee c...原创 2020-04-14 22:08:53 · 123 阅读 · 0 评论 -
第三章:数据查询语言DQL-表连接(内连接、外连接、自连接)
直接学习:https://edu.csdn.net/course/play/27328/362530表连接(内连接、外连接、自连接)#1、什么是表连接?表连接(join)是在多个表之间通过一定的连接条件,使表之间产生关联,进而能从多个表之间获取数据。#2、表连接的几种方式#3、各种表连接的区别#4、代码如下:select A.stu_no ,A.name,B.course,B.s...原创 2020-04-11 23:07:01 · 150 阅读 · 0 评论 -
第六章:MySQL高级进阶-审计功能:谁在什么时间做了什么
直接学习:https://edu.csdn.net/course/play/27328/370722审计功能:谁在什么时间做了什么#1、审计是数据库安全中很重要的一个环节,它能实时记录数据库的操作记录,帮助数据库管理员对数据库异常行为进行分析审核。审计会详细记录谁在什么时间执行了什么操作。mysql社区版没有自带的审计功能或插件,mysql商业版有审计功能。#2、第三方的审计插件:...原创 2020-04-15 15:13:57 · 122 阅读 · 0 评论 -
第三章:MySQL常用函数讲解(二): substr函数和replace函数
目录1.substr函数1.SUBSTR(str,pos,len): 从pos开始的位置,截取len个字符2.SUBSTR(str,pos): pos开始的位置,一直截取到最后2.replace函数1.substr函数1.SUBSTR(str,pos,len): 从pos开始的位置,截取len个字符substr(string ,1,3) :取string左边第1位置起,3字长的字符串。所以结果为: strsubstr(string, -1,3):取string右边第1位置起,3字长的字符串。显然右原创 2021-05-16 23:48:35 · 454 阅读 · 0 评论 -
第七章:MySQL 8.0新特性- NoSQL 文档存储
直接学习:https://edu.csdn.net/course/play/27328/370726#1、什么是NoSQL?NoSQL是not only sql的简称,意思是不仅仅是SQL;NoSQL指的是非关系型数据库。#2、NoSQL数据库的分类NoSQL数据库数据库大致上可以分为四类:键值存储,列存储,文档存储和图形存储。![在这里插入图片描述](https://img-blog...原创 2020-04-15 21:37:59 · 1782 阅读 · 0 评论 -
第二章:数据库与表的基本操作-DML插入、修改、删除数据
直接学习:https://edu.csdn.net/course/play/27328/362520DML插入、修改、删除数据:#1、插入:create table contacts (id int not null auto_increment primary key,name varchar(50),sex tinyint default 1,phone varchar(20)...原创 2020-04-09 22:13:13 · 165 阅读 · 0 评论 -
第六章:MySQL高级进阶-分区表
直接学习:https://edu.csdn.net/course/play/27328/370710分区表:#1、什么是分区表?分区表就是按照某种规则将同一张表的数据分段划分到多个位置存储。#2、分区表的好处:#3、分区表的四种类型:mysql支持的分析类型包括Range,List ,Hash,Key, 其中Range最常用。#4、示例代码如下:create table user...原创 2020-04-14 07:58:55 · 120 阅读 · 0 评论 -
第五章:索引的使用-索引的基本使用
直接学习:https://edu.csdn.net/course/play/27328/362532索引的基本使用#1、什么是索引?索引是一种特殊的数据结构,类似于图书的目录,它能极大的提升数据库查询的效率。#2、常见的索引种类:#3、示例代码如下:show index from employee\G;create index index_name on employee (name...原创 2020-04-13 09:31:51 · 162 阅读 · 0 评论 -
第六章:MySQL高级进阶-预处理
直接学习:https://edu.csdn.net/course/play/27328/370713预处理:#1、什么是预处理?从mysql 4.1开始,就支持预处理语句(prepare statement),这大大提高了客户端与服务器端数据传输的效率。当创建一个预定义SQL时,客户端向服务器发送一个SQL语句的原型,服务器端接收到这个SQL语句后,解析并存储这个SQL语句的部分执行计划,返...原创 2020-04-14 16:45:58 · 184 阅读 · 0 评论 -
第六章:MySQL高级进阶-定时备份数据库
直接学习:https://edu.csdn.net/course/play/27328/370716定时备份数据库#1、备份数据库的解决方案:#2、示例代码如下:mysql_mylb_backup.batmysqldump -h localhost -uroot -proot mylb >d:\backup\mylb.sqlschtasks /create /sc minute...原创 2020-04-14 21:33:23 · 157 阅读 · 0 评论 -
第六章:MySQL高级进阶-黑客常说的SQL注入是什么?
直接学习:https://edu.csdn.net/course/play/27328/370720黑客常说的SQL注入是什么?#1、SQL注入(sql injection )是指应用程序对用户输入数据的合法性没有判断,没有过滤攻击者可以在应用程序中通过表单提交特殊的字符串,该特殊字符串会改变SQL语句的运行结果,从而在管理员毫不知情的情况下实现非法操作,以此来实现欺骗数据库的执行非授权的任意...原创 2020-04-15 08:30:47 · 169 阅读 · 0 评论 -
第五章:索引的使用-覆盖索引
直接学习:https://edu.csdn.net/course/play/27328/370707覆盖索引:#1、什么是覆盖索引?覆盖索引又称为索引覆盖,即select中的数据列只从索引中就能得到,不必读取数据行,也就是只需扫描索引就可以得到查询结果。#2、如何判断使用了索引覆盖?当一个查询使用了索引覆盖,在查询分析器explain的extra列可以看到’'using index;#3...原创 2020-04-13 11:40:34 · 345 阅读 · 0 评论 -
第二章:数据库与表的基本操作-数据完整性
直接学习:https://edu.csdn.net/course/play/27328/362521数据完整性:#1、什么是数据完整性:数据完整性是指存储在数据库中的数据,应该保持一致性和可靠性。关系模型允许定义三类数据约束,它们是实体完整性,参照完整性以及用户定义的完整性约束。...原创 2020-04-10 00:18:39 · 386 阅读 · 0 评论 -
第七章:MySQL 8.0新特性-默认字符集utf8mb4
直接学习:https://edu.csdn.net/course/play/27328/370725默认字符集utf8mb4#1、进一步了解utf8mb4mb4是most bytes 4 的缩写,专门用于兼容四字节字符,如Emoji表情,部分中文康熙的熙繁体。mysql中的utf8是utf8mb3的别称。mysql 8.0将utf8mb4作为默认字符集。...原创 2020-04-15 18:05:08 · 1208 阅读 · 0 评论 -
第七章:MySQL 8.0新特性-原子DDL
直接学习:https://edu.csdn.net/course/play/27328/370725原子DDL#1、什么是原子DDLMysql 8.0 开始支持原子性的数据定义语言(DDL),也成为原子DDL。一个原子DDL语句将相关的数据字典更新,存储引擎操作以及写入二进制日志组合成单一的原子事务。当事务正在处理时出现服务器故障,该事物可能被提交,相应的变更会保存到数据字典更新,存储引擎操...原创 2020-04-15 18:18:20 · 166 阅读 · 0 评论