![](https://img-blog.csdnimg.cn/d4de1af3d1d64d2884d8910f09350f5c.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
初识mysql
文章平均质量分 73
mysql和pymysql
三月七꧁ ꧂
尚未佩妥剑,转眼便江湖。愿历尽千帆,归来仍少年! 跨考计算机上岸,下一站:月薪3W!
展开
-
MySQL---pymysql操作
PyMySQL 是一个纯 Python 实现的 MySQL 客户端库,支持兼容 Python 3,用于代替。原创 2023-05-30 16:50:05 · 84 阅读 · 0 评论 -
MySQL---JDBC基础操作、SQL注入
符号站位,被称为参数标记。简单的来讲,就是在写SQL语句时用字符串拼接,where查询条件拼接到了or,or后面的判别式为。由于编写的SQL语句,是在用户输入数据后,整合后再编译成SQL语句。问题,使SQL语句在用户输入数据前,SQL语句已经完成编译,成为了完整的SQL语句,再进行填。为一个参数或一个字段的属性值来处理而不会作为一个SQL指令,如此,就起到了防止SQL注入的。我们可以看到输出的SQL是把整个参数用引号包起来,并把参数中的引号作为转义字符,从而避。真,即使SQL语句乱写,数据库也会链接成功。原创 2023-05-29 16:45:42 · 932 阅读 · 0 评论 -
MySQL---优化(insert、order by 、group by 、limit、子查询)
GROUP BY 实际上也同样会进行排序操作,而且与ORDER BY 相比,GROUP BY 主要只是多了。所以,在GROUP BY 的实现过程中,与 ORDER BY 一样也可以利用到索引。如果在分组的时候还使用了其他的一些聚合函数,那么还需要一些聚合函数。但是,有些情况下,子查询是可以被更高效的连接(①在索引上完成排序分页操作,最后根据主键关联回原表查询所需要的其他列内容。②该方案适用于主键自增的表,可以把Limit 查询转换成某个位置的查询。排序,所有不是通过索引直接返回排序结果的。原创 2023-05-28 16:52:53 · 792 阅读 · 0 评论 -
MySQL---使用索引优化、大批量插入数据优化
索引是数据库优化最常用也是最重要的手段之一。1.2 避免索引失效应用-最左前缀法则。通过索引通常可以帮助用户解决大多数的。该情况下,索引生效,执行效率高。原创 2023-05-27 16:57:19 · 1132 阅读 · 0 评论 -
MySQL---show profile分析SQL、trace分析优化器执行计划
执行完上述命令之后,再执行show profiles 指令, 来查看SQL语句执行的耗时。最大能够使用的内存大小,避免解析过程中因为默认。优化时帮助我们了解时间都耗费到哪里去了。在使用什么资源上耗费了过高的时间。文件能够进一步了解为什么优化器选择。执行过程中每个线程的状态和消耗的。在获取到最消耗时间的线程状态后,我们能够更清楚地了解。转载 2023-05-26 16:34:00 · 1194 阅读 · 0 评论 -
MySQL---SQL优化上(explain分析执行计划、查看SQL的执行效率、定位低效率SQL)
1) id列,用户登录mysql时,系统分配的"connection_id",可以使用函数connection_id()查看。5) command列,显示当前连接的执行的命令,一般取值为休眠(sleep),查询(query),连接。7) state列,显示使用当前连接的sql语句的状态,是一个很重要的列。id 字段是 select查询的序列号,是一组数字,表示的是查询中执行select子句或者是操作表的顺。3) host列,显示这个语句是从哪个ip的哪个端口上发的,可以用来跟踪出现问题语句的用户。原创 2023-05-25 17:08:59 · 1812 阅读 · 0 评论 -
MySQL---日志(错误日志、二进制日志、查询日志、慢查询日志)
在日志文件中记录的是每一行的数据变更,而不是记录SQL语句。此日志对于灾难时的数据恢复起着极其重要的作用,当数据库出现任何故障导致无法正常使用时,可以首先查看此日志。启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信。,由于是对全表进行更新,也就是每一行记录都会发生变更,该日志是默认开启的 , 默认存放目录为 mysql。工具,可以清晰的查看到每条语句的文本。)会将日志解析为原文本,并在从库重新执行一次。日志格式,在日志中会记录一行。),每一条对数据进行修改的。在日志文件中记录的都是。原创 2023-05-24 16:54:18 · 928 阅读 · 0 评论 -
MySQL---锁机制
共享锁(S):又称为读锁,简称S锁,共享锁就是多个事务对于同一数据可以共享一把锁,都能。排他锁(X):又称为写锁,简称X锁,排他锁就是不能与其他锁并存,如一个事务获取了一个数。据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获取排他锁的事。因为写锁后,其他线程不能做任何操作,大量的更新会使查询很难得到锁,从而造成永远阻塞。而写锁,则既会阻塞读,又会阻塞写。表的读操作,不会阻塞其他用户对同一表的读请求,但会阻塞对同一表的写请求;表的写操作,则会阻塞其他用户对同一表的读和写操作;原创 2023-05-23 17:10:33 · 454 阅读 · 0 评论 -
MySQL---事务
标志事务的开启命令:BEGIN 或 START TRANSACTION。任何一条DML语句(insert、update、delete)执行,成功的结束,将所有的DML语句操作历史记录和底层硬盘数据来一次同步。回滚事务:Rollback Transaction。失败的结束,将所有的DML语句操作历史记录全部清空。务,因此如果想要手动控制事务,则必须关闭MySQL。提交事务:Commit Transaction。开启事务:Start Transaction。命令:ROLLBACK。自动帮完成的,每执行一条。转载 2023-05-22 17:01:26 · 639 阅读 · 0 评论 -
MySQL---存储引擎
可以使用 SHOW ENGINES 命令查看Mysql的所有执行引擎,默认的执行引擎是innoDB 支持事。Memory: 所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。数据库存储引擎是数据库底层软件组织,数据库管理系统使用数据引擎进行创建、查询、更新和删。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。Archive :非常适合存储大量的独立的,作为历史记录的数据。用户可以根据不同的需求为数据表选择不同的存储引擎。拥有高效的插入速度,但其对查询的支持相对较差。原创 2023-05-21 16:33:44 · 680 阅读 · 0 评论 -
MySQL---空间索引、验证索引、索引特点、索引原理
重复数据多的字段不应设为索引(比如性别,只有男和女,一般来说:重复的数据超过百分之15就。一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁。对数据表中的数据进行增加,修改,删除时,索引也要动态的维护,降低了维护的速度。创建索引和维护索引需要消耗时间,并且随着数据量的增加,时间也会增加;但是不能进行范围查找,因为散列表中的值是无序的,无法进行大小的比较。关键字进行扩展,使得能够用于创建正规索引类型的语法创建空间索引。空间索引是对空间数据类型的字段建立的索引,MYSQL。原创 2023-05-20 17:17:11 · 1009 阅读 · 0 评论 -
MySQL---单列索引(包括普通索引、唯一索引、主键索引)、组合索引、全文索引。
MySQL---约束(主键约束,自增长约束,非空约束,唯一约束,默认约束、零填充约束)_python(爱看动漫的程序猿)的博客-CSDN博客。组合索引也叫复合索引,指的是在建立索引的时候使用多个字段,例如同时使用身份证和手机号建。按照功能划分,索引分为单列索引(包括普通索引、唯一索引、主键索引)、组合索引、全文索。与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,按照实现的方式类分,主要有Hash索引和B+Tree索引。原创 2023-05-19 18:47:22 · 2100 阅读 · 0 评论 -
MySQL---存储函数、触发器
触发器,是一种特殊的存储过程,能够完成特定功能、存储在数据库服务器上的SQL片段,但是触。存储过程中的语句功能更强大,存储过程可以实现很复杂的业务逻辑,而函数有很多限制,如不能。存储函数只完成查询的工作,可接受输入参数并返回一个结果,函数实现的功能针对性比较强。存储函数(自定义函数),函数一般用于计算和返回一个值,可以将经常需要使用的计算。存储函数有且只有一个返回值,而存储过程可以有多个返回值,也可以没有返回值。,用来表示触发器的所在表中,触发了触发器的哪一行数据,来引用触发器中发生变。原创 2023-05-18 16:44:39 · 1532 阅读 · 0 评论 -
MySQL---游标,异常处理,循环构建表
思路:循环构建表名 user_2021_11_01 到 user_2020_11_30;注意:在语法中,变量声明、游标声明、handler声明是必须按照先后顺序书写的,否则创建存储。用数据库保存),当每天记录较多时,如果把所有数据都记录到一张表中太庞大,需要分表,需求。是,每天一张表,存当天的统计数据,就要求提前生产这些表——每月月底创建下一个月每天的。我们需要用某个表记录很多数据,比如记录某某用户的搜索、购买行为(注意,此处是假设。存储过程也提供了对异常处理的功能:通过定义。光标的使用包括光标的声明、原创 2023-05-17 16:45:45 · 567 阅读 · 0 评论 -
MySQL---存储过程流程控制(判断(if、case)、循环(while、repeat、loop))
循环中的代码会运行特定的次数,或者是运行到特定条件成立时结束循环。是另一个条件判断的语句,类似于编程语言中的。IF语句包含多个条件判断,根据结果为。,继续,结束本次循环,继续下一次。循环是一段在程序中只出现一次,但可能会连续运行多次的代码。,跳出,结束当前所在的循环。执行语句,与编程语言中的。iterate类似于。原创 2023-05-16 16:29:00 · 2498 阅读 · 0 评论 -
MySQL---存储过程(局部变量、用户变量、系统变量(全局变量、会话变量)、传参(in、out、inout))
局部变量:用户自定义,在begin/end块中有效--语法: 声明变量 declare var_name type [default var_value];begin-- 定义局部变量end $$delimiter;-- 调用存储过程MySQL中还可以使用col_name参数表示查询的字段名称;var_name参数是变量的名称;table_name参数指表的名称;condition参数指查询条件。原创 2023-05-15 16:42:37 · 1520 阅读 · 0 评论 -
MySQL---视图(定义、修改、更新、重命名、删除)
视图(view)是一个虚拟表,非真实存在,其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用视图名称即可获取结果集,并可以将其当作表来使用。数据库中只存放了视图的定义,而并没有存放视图中的数据。这些数据存放在原来的表中。使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。因此,视图中的数据是依赖于原来的表中的数据的。一旦表中的数据发生改变,显示在视图中的数据也会发生改变。-- 语法;repalce:替换重复视图algorithm:可选项,表示视图选择的算法。原创 2023-05-14 17:42:44 · 3602 阅读 · 0 评论 -
MySQL---控制流函数、窗口函数(序号函数、开窗聚合函数、分布函数、前后函数、头尾函数、其他函数)
非聚合窗口函数是相对于聚合函数来说的。聚合函数是对一组数据计算后返回单个值(即分组),非聚合函数一次只会处理一行数据。窗口聚合函数在行记录上计算某个字段的结果时,可将窗口范围内的数据输入到聚合函数中,并不改变行数。返回第一个(FIRST_VALUE(expr))或最后一个(LAST_VALUE(expr))expr的值。应用场景:截止到当前,按照日期排序查询第1个入职和最后1个入职员工的薪资。应用场景:截止到当前薪资,显示每个员工的薪资中排名第2。,而当有一个成立之后,后面的就不执行了。原创 2023-05-13 16:29:01 · 619 阅读 · 0 评论 -
MySQL---聚合函数、字符串函数、数学函数、日期函数
如果需要对结果中的值进行排序,可以使用order by。指定的列进行分组,并且用分隔符分隔,将同一个分组中的。separator是一个字符串值,默认为逗号。返回指定位数的小数(遵循四舍五入)从日期或日期时间表达式中提取日期值。返回给给定日期的那一月份的最后一天。值连接起来,返回一个字符串结果。函数,但是每个字符串之间要加上。最大的区别是不会进行四舍五入)将毫秒值时间戳转为指定格式日期。函数从日期减去指定的时间间隔。等多个字符串合并为一个字符串。最近的整数(遵循四舍五入)将制定日期转为毫秒值时间戳。原创 2023-05-12 17:14:53 · 1263 阅读 · 0 评论 -
MySQL---多表联合查询(下)(内连接查询、外连接查询、子查询(ALL/ANY/SOME/IN/EXISTS关键字)、自关联查询)
子查询就是指的在一个完整的查询语句之中,嵌套若干个不同功能的小查询。子查询如果“没有数据结果”(没有任何数据返回),则该EXISTS()的结果为“有时在信息查询时需要进行对表自身进行关联查询,即一张表自己和自己关联,一张表当。列中的值必须要大于子查询集的每一个值,即必须要大于子查询集的最大值;小于号即小于子查询集的最小值。关键字的运算效率高,因此,在实际开发中,特别是大数据量时,推。后面的子查询不返回任何实际数据,只返回真或假,当返回真时。IN关键字,用于判断某个记录的值,是否在指定的集合中。原创 2023-05-11 16:53:05 · 1857 阅读 · 0 评论 -
MySQL---多表联合查询(上)(多表关系、外键约束、学生成绩多表关系、交叉连接查询)
也就是说,只要外键的每个非空值出现在指定的主。系,拆成一对多关系,中间表至少要有两个外键,这两个外键分别指向原来的那两张表的主键。这个列或列的组合必须是主表的主键或候选键。笛卡尔积会产生很多冗余的数据,后期的其他查询可以在该集合的基础上进行条件筛选。实现原则:在多的一方建立外键,指向一的一方的主键。笛卡尔积可以理解为一张表的每一行去和另外一张表的任意一行进行匹配。外键中列的数据类型必须和主表主键中对应列的数据类型相同。外键中列的数目必须和主表的主键中列的数目相同。键中,这个外键的内容就是正确的。原创 2023-05-10 16:52:01 · 1259 阅读 · 2 评论 -
MySQL---基本查询DQL(下)(排序查询、聚合查询、分组查询、分页查询、正则表达式)
之前做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个单一的值;如果要进行分组的话,则SELECT子句之后,只能出现分组的字段和统计函数,其他的字段不能出现。计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为。计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为。原创 2023-05-09 17:06:39 · 534 阅读 · 0 评论 -
MySQL---基本操作DQL(上)(基本查询语法,算术运算符,比较运算符,逻辑运算符,位运算符)
from [别名], [别名]...[order by [asc|desc]] [别名]... [别名],[having ]][limit ];当有两个或多个参数时,返回最小值。当有两个或多个参数时,返回最大值。[group by [where]判断一个值是否落在两个值之间。按位取反,反转所有比特。原创 2023-05-08 17:47:28 · 498 阅读 · 0 评论 -
MySQL---约束(主键约束,自增长约束,非空约束,唯一约束,默认约束、零填充约束)
MySQL主键约束是一个列或者多个列的组合,其值能唯一地标识表中的每一行,方便在RDBMS中。在 MySQL 中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系。主键约束相当于 唯一约束 + 非空约束 的组合,主键约束列不允许重复,也不允许出现空值。auto_increment约束字段的最大值受该字段的数据类型约束,如果达到上限,当创建主键的约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。统根据定义自动赋值。所谓的联合主键,就是这个主键是由一张表中多个字段组成的。原创 2023-05-07 15:41:57 · 1304 阅读 · 0 评论 -
MySQL---基本操作DML(数据插入,数据删除,数据修改);
insert into 表 (列名1,列名2,列名3...) values (值1,值2,值3...);insert into 表 values (值1,值2,值3...);//向表中插入所有列。update 表名 set 字段名=值,字段名=值... where 条件;truncate table 表名 或者 truncate 表名。update 表名 set 字段名=值,字段名=值...;delete from 表名 [where 条件];原创 2023-05-07 15:10:14 · 84 阅读 · 0 评论 -
MySQL---基本操作DDL(SQL特点,数据类型,对数据库的操作,对表的操作)
注意:创建表是构建一张空表,指定这个表的名字,这个表有几列,每一列叫什么名字,以及每一列存储的数据类型。具有综合统一性,不同数据库的支持的。以一种语法结构提供两种使用方式。2. 对数据库的常用操作。语言简捷,用户容易接受。原创 2023-05-06 18:53:08 · 519 阅读 · 0 评论 -
MySQL---MySQL的安装、sql分类、语法特征、DDL、DML、DQL
数据操纵:DML(Data Manipulation Language)新增用户、删除用户、密码修改、权限管理。SQL可以单行或多行书写,最后以。新增数据、删除数据、修改数据等。库的创建删除、表的创建删除等。后面可以不加空格,推荐加上)SQL语言,大小写不敏感。基于需求查询和计算数据。后面一定要有一个空格)原创 2023-04-25 15:04:35 · 72 阅读 · 0 评论