![](https://img-blog.csdnimg.cn/20191207162703741.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
MySQL学习
爱喝水的qdy
No sacrifice, No victory!
展开
-
MySql事务开始begin和start transcation的区别
目录事务的开始事务的提交事务回滚事务的开始begin或 start transaction 都是显式开启一个事务;事务的提交commit 或 commit work 都是等价的;事务回滚rollback 或 rollback work 也是等价的;...原创 2019-12-18 17:16:00 · 11757 阅读 · 3 评论 -
mysql子句在Python3中的使用(sqlalchemy)
目录起步where子句filter_byfilter操作符between ... and ...innotand / orlike和通配符is / is notexistsgroup by 子句聚合函数having子句order by 子句limit 子句别名子查询连表uniondistinctcountfirstoneone_or_nonescalarfrom_self整体代码起步#!/us...原创 2019-12-17 15:24:18 · 314 阅读 · 0 评论 -
mysql语句在Python3中的使用(sqlalchemy)
目录安装导入sqlalchemy执行流程创建引擎执行sql方式一方式二两种方式的区别增删改查获取结果fetchonefetchmanyfetchall安装pip3 install -i http://pypi.douban.com/simple pymysql sqlalchemy --trusted-host pypi.douban.com导入import sqlalchemysql...原创 2019-12-17 15:23:24 · 307 阅读 · 0 评论 -
mysql表创建在Python3中的使用(sqlalchemy)
目录起步创建单表一对多 or 多对一一对一多对多联合外键初始化表删除表整体代码起步#!/usr/bin/python3# -*- coding: utf-8 -*-"""sqlalchemy创建表四张表:业务线,服务,用户,角色,利用ORM创建出它们,并建立好它们直接的关系"""from sqlalchemy import create_enginefrom sqlalchem...原创 2019-12-17 15:22:04 · 127 阅读 · 0 评论 -
mysql增删改查操作在Python3中的使用(sqlalchemy)
目录增操作删操作改操作查询操作增操作https://blog.csdn.net/qq_32617703/article/details/103579890删操作https://blog.csdn.net/qq_32617703/article/details/103579969改操作https://blog.csdn.net/qq_32617703/article/detai...原创 2019-12-17 15:20:56 · 83 阅读 · 1 评论 -
mysql终端在Python3中的简单实现
目录整体代码整体代码#!/usr/bin/python3# -*- coding: utf-8 -*-"""pymysql模拟MySQL命令行use db;show tablesshow databases;select;等一些操作实验并未实现增删改查等操作"""import pymysqlimport tabulateconn = pymysql.connec...原创 2019-12-17 11:11:40 · 122 阅读 · 0 评论 -
mysql存储过程在Python3中的使用(pymysql)
目录起步存储过程无参调用有参调用示例代码起步#!/usr/bin/python3# -*- coding: utf-8 -*-"""pymysql中使用存储过程"""import pymysqlconn = pymysql.connect( user='root', password='', host='localhost', port=330...原创 2019-12-17 11:08:49 · 856 阅读 · 0 评论 -
Python3中获取mysql的结果集
目录起步查获取结果fetchone情况一情况二情况三fetchmany情况一情况二情况三fetchall情况一情况二情况三scroll移动相对移动绝对移动示例代码起步#!/usr/bin/python3# -*- coding: utf-8 -*-"""pymysql查询"""import pymysqlconn = pymysql.connect( user='roo...原创 2019-12-17 11:03:10 · 1670 阅读 · 0 评论 -
mysql增删改查操作在Python3中的使用(pymysql)
目录起步增增一条增多条查看自增id提交删改示例代码起步#!/usr/bin/python3# -*- coding: utf-8 -*-"""pymysql增删改"""import pymysqlconn = pymysql.connect( user='root', password='', host='localhost', port=3306,...原创 2019-12-17 10:42:24 · 425 阅读 · 0 评论 -
mysql在Python3中的基本使用(pymysql)
目录安装导入创建连接创建游标执行sql语句获取结果异常信息语法错误逻辑错误关闭游标关闭连接示例代码安装pip3 install -i http://pypi.douban.com/simple pymysql --trusted-host pypi.douban.com导入import pymysql创建连接# 连接conn = pymysql.connect( user=...原创 2019-12-17 10:28:17 · 310 阅读 · 0 评论 -
MySQL拾遗之distinct用法
目录阅读源阅读源记不住的 MySQL DISTINCT 的用法 ( 上 )https://www.twle.cn/c/yufei/mysqlfav/mysqlfav-basic-distinct.html记不住的 MySQL DISTINCT 的用法 ( 下 )https://www.twle.cn/c/yufei/mysqlfav/mysqlfav-basic-distinc...原创 2019-12-17 09:06:35 · 176 阅读 · 0 评论 -
MySQL拾遗之sql_mode
目录阅读源阅读源被 MySQL sql_mode 深深伤害( 上 )https://www.twle.cn/c/yufei/mysqlfav/mysqlfav-basic-sql_mode.html被 MySQL sql_mode 深深伤害( 中 )https://www.twle.cn/c/yufei/mysqlfav/mysqlfav-basic-sql_mode2.htm...原创 2019-12-17 09:05:25 · 138 阅读 · 0 评论 -
MySQL拾遗之date、datetime和timestamp
目录阅读源阅读源傻傻分不清的 DATE、DATETIME 和 TIMESTAMP ( 上 )https://www.twle.cn/c/yufei/mysqlfav/mysqlfav-basic-datetime-and-timestamp.html傻傻分不清的 DATE、DATETIME 和 TIMESTAMP ( 中 )https://www.twle.cn/c/yufei...原创 2019-12-17 09:03:41 · 123 阅读 · 0 评论 -
MySQL拾遗之enum类型
目录阅读源阅读源臭名昭著的 MySQL ENUM 类型 ( 上 )https://www.twle.cn/c/yufei/mysqlfav/mysqlfav-basic-enum1.html臭名昭著的 MySQL ENUM 类型 ( 下 )https://www.twle.cn/c/yufei/mysqlfav/mysqlfav-basic-enum2.html...原创 2019-12-17 09:01:38 · 112 阅读 · 0 评论 -
MySQL拾遗之int(10)与int(11)的区别
不知道大家是不是和我一样,每次给有个列添加 int(11) 的时候都会想,会不会是 int(10) ,偶尔也会发神经的想,如果 int(32) 这样的可否?这个纠结,恐怕我写完读完这篇文章时还会继续索性,我们就先来解决这个问题吧。在前面一章节中我们有提到,int 类型的底层存储采用的是 4 字节,也就是 32 位,这样能够存储的实际最大值为 4 294 967 296,大家数数一下这个数字,...转载 2019-12-17 08:59:05 · 241 阅读 · 0 评论 -
MySQL拾遗之数值类型溢出
来,考考大家一个问题,在 MySQL 中当某一列设置为 int(0) 时会发生什么 ?为了演示这个问题,我们先要创建一个表DROP TABLE IF EXISTS `na`;CREATE TABLE `na` ( n1 INT(0) NOT NULL DEFAULT '0', n2 INT(11) NOT NULL DEFAULT '0');然后我们使用下面的语句往 na ...转载 2019-12-17 08:56:29 · 148 阅读 · 0 评论 -
MySQL拾遗之浮点类型(float和double)
在 MySQL 中,有一条忠告,就是 「 不要使用浮点类型,不要使用浮点类型,不要使用浮点类型 」,如果真要使用,那么也请使用 DECIMAL 类型。为什么呢 ?因为浮点类型的值是 「 近似 」精度,而且,因为它们都有使用 4 或 8 字节存储,而会带来另一些往往想不到的雪上加霜的问题。近似值的浮点类型浮点数有时会引起混淆,因为它们存储的是近似值而不是精确值,这就可能直接导致了在 SQL...转载 2019-12-17 08:51:37 · 300 阅读 · 0 评论 -
MySQL拾遗之位类型(bit)
MySQL 中的位模式字面量一般使用 b'val' 或 0bval 语法,val 是只包含 0 和 1 的二进制值,字符 b 之前有无 0 都无关紧要,但要注意的是 0b 是区分大小写的,0b 不能写为 0B ,但 b 由不限大小写。b001 和 B001 是一个意思。这也是匪夷所思了。以下这些是合法的位类型字面量b'01'B'01'0b01而下面这些,则是非法的位类型字面量b'...转载 2019-12-17 08:28:08 · 180 阅读 · 0 评论 -
MySQL拾遗之数据类型的默认值-default
MySQL 中,所有的数据类型,都可以显式或隐式的拥有默认值。我们可以使用 DEFAULT 约束显式的为列指定一个默认值。比如CREATE TABLE t1 ( i INT DEFAULT -1, c VARCHAR(10) DEFAULT '', price DOUBLE(16,2) DEFAULT 0.00);在上面这条语句中,我们为 int 类型的 i...转载 2019-12-17 08:23:10 · 1695 阅读 · 0 评论 -
MySQL学习历程学习笔记
# 数据库管理软件的由来:# 数据想要永久保存,都是保存在文件中的,毋庸置疑,一个文件只能存放在一台机器上,# 如果我们忽略掉直接基于文件来存取数据带来的效率问题,假设程序的所有组件都是运行在一台机器上,# 则上述假设存在以下问题:# 1. 整个程序的所有组件不可能运行在一台机器上# 因为这台机器一旦宕机则意味着整个软件的崩溃;# 一台机器的性能总归是有限的# 对一...原创 2019-12-16 21:17:45 · 1277 阅读 · 1 评论 -
MySQL知识点复习大纲
记录一份数据库管理系统数据库管理系统分类MySQL是什么什么是数据库什么是数据表什么是表记录什么是字段什么是数据MySQL在Windows下的安装MySQL在Windows下的启动MySQL在Windows下的服务方式MySQL在Linux下的安装MySQL在Linux下的启动MySQL客户端选项MySQL设置密码MySQL数据库导入导出MySQL注释...原创 2019-12-16 21:16:15 · 500 阅读 · 0 评论 -
MySQL学习之分页方案
分页方案# 分页性能相关方案# 方案一:(O(∩_∩)O)不让看,例如博客园# 方案二:# 运用覆盖索引的方式去索引表进行扫描:(这种方式并没有快多少)select *from userinfowhere userinfo.uidin(select uid from userinfo limit 700000, 10);# 方案三:(如果想实现跳...原创 2019-12-16 21:15:16 · 79 阅读 · 0 评论 -
MySQL学习之分页方案
分页方案# 分页性能相关方案# 方案一:(O(∩_∩)O)不让看,例如博客园# 方案二:# 运用覆盖索引的方式去索引表进行扫描:(这种方式并没有快多少)select *from userinfowhere userinfo.uidin(select uid from userinfo limit 700000, 10);# 方案三:(如果想实现跳...原创 2019-12-16 21:19:02 · 73 阅读 · 0 评论 -
MySQL学习之慢日志记录
目录慢日志记录慢日志记录# 慢日志记录# 让MySQL自动记录慢查询# 配置方法一:# 内存级别的修改1,开启慢查询日志slow_query_log2,配置时间限制,超过此时间,则记录long_query_time3,开启记录没有使用索引的查询的选项show variables like '%queries%';log_queries_not_using_indexes...原创 2019-12-16 21:11:33 · 64 阅读 · 0 评论 -
MySQL学习之执行计划
目录执行计划执行计划# 执行计划:一个预估SQL语句执行的时间的操作# 关键字:explain# 虽然有MySQL优化的措施避免一些不能命中索引的方式,# 但是最后还是要看SQL语句的运行时间,时间短就是好的。# 执行计划是以最坏的打算进行预估SQL语句执行的时间,所以只能作为参考。# 以后拿到一个SQL语句的时候,先进行执行计划。# explain select * fro...原创 2019-12-16 21:07:00 · 128 阅读 · 0 评论 -
MySQL学习之慢查询优化
目录慢查询优化基本步骤慢查询优化基本步骤 0.先运行看看是否真的很慢,注意设置SQL_NO_CACHE 1.where条件单表查,锁定最小返回记录表。 这句话的意思是把查询语句的where都应用到表中返回的记录数最小的表开始查起, 单表每个字段分别查询,看哪个字段的区分度最高 2.explain查看执行计划,是否与1预期一致(从锁定记录较少...原创 2019-12-16 21:05:57 · 139 阅读 · 0 评论 -
MySQL学习之提高SQL查询的效率
目录建索引时查询时建索引时 1. 首先应考虑在常常用于条件判断的字段上创建索引 2. 尽量选择区分度高的列建立索引 如果为区分度低的列建立索引,会导致索引树很高 一般在2 ~ 4层 区分度公式:count(distinct col) / count(*) 数值越大表示...原创 2019-12-16 21:02:56 · 113 阅读 · 0 评论 -
MySQL学习之编写高性能的SQL语句
目录建表时连表时删除表记录建表时# 建表时 1. 能用数字类型就不用字符类型 2. char代替varchar 3. 固定长度的放在前面 4. 能用varchar就不用text 5. 避免将列设为NULL 6. 用索引提高查询效率 7. 可以的话,将SQL转成大写执行 8. 查看执行计划连表时 1. 连表...原创 2019-12-16 21:01:23 · 94 阅读 · 0 评论 -
MySQL学习之主键索引
目录主键索引创建表时指定创建表后指定查看索引删除索引主键索引主键有两个功能:加速查询 和 唯一约束(不可含null)创建表时指定创建表 + 索引create table in1( nid int not null auto_increment [primary] key, name varchar(32) not null, email varchar(64) n...原创 2019-12-16 20:59:09 · 73 阅读 · 0 评论 -
MySQL学习之唯一索引
目录唯一索引创建表时指定创建表后指定查看索引删除索引唯一索引唯一索引有两个功能:加速查询 和 唯一约束(可含null)创建表时指定创建表 + 索引create table in1( nid int not null auto_increment primary key, name varchar(32) not null, email varchar(64) no...原创 2019-12-16 20:57:26 · 78 阅读 · 0 评论 -
MySQL学习之普通索引
目录普通索引创建表时指定创建表后指定查看索引删除索引普通索引普通索引仅有一个功能:加速查询创建表时指定创建表 + 索引create table in1( nid int not null auto_increment [primary] key, name varchar(32) not null, email varchar(64) not null, ...原创 2019-12-16 20:55:58 · 74 阅读 · 0 评论 -
MySQL学习之索引
目录为什么需要索引索引是什么索引的本质索引的目的索引的副作用索引的多与少预读索引的两大类型索引的实现方式b+树索引的分类索引的种类为什么需要索引在平常的应用系统中,一般的插入和修改操作很少出现性能方面的问题,平时我们常遇到的、也是最容易出现问题的还是查询操作,所以对查询语句的优化是非常重要的。索引可以在不读取整个表的情况下,使数据库应用程序可以更快地查找数据。索引是什么索引在MySQ...原创 2019-12-16 20:53:16 · 87 阅读 · 0 评论 -
MySQL学习之触发器
目录触发器创建删除触发器如果你想在对表进行增(insert)、删(delete)、改(update)操作的前(before)后(after)触发某种特定的行为的时候,就可以使用触发器 (没有查select)创建# 创建:# 插入前 CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EA...原创 2019-12-16 20:48:12 · 62 阅读 · 0 评论 -
MySQL学习之存储过程
目录存储过程存储过程优点存储过程缺点存储过程和视图的区别创建使用删除存储过程之事务操作存储过程之游标操作存储过程之防SQL注入存储过程是存储在数据库中的一个别名,这个别名对应着一个SQL语句集合存储过程优点1. 用于替代程序写的SQL语句,实现程序与sql解耦2. 基于网络传输,传别名的数据量小,而直接传sql数据量大存储过程缺点1. 程序员扩展功能不方便存储过程和视图的区别...原创 2019-12-16 20:46:29 · 123 阅读 · 0 评论 -
MySQL学习之视图
目录视图创建视图修改视图删除视图说明视图 SQL 视图 ( Views ) 其本质是【根据SQL语句获取动态的数据集,并为其命名】, 用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 视图的特征: 1. 视图总是显示最新的数据 2. 每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句...原创 2019-12-16 20:40:03 · 100 阅读 · 0 评论 -
MySQL学习之SQL自定义函数
目录自定义函数自定义函数################################################################### 自定义函数,不能进行select 等操作# !!!注意!!!# 函数中不要写sql语句(否则会报错),函数仅仅只是一个功能,是一个在sql中被应用的功能# 若要想在begin...end...中写sql,请用存储过...原创 2019-12-16 20:36:55 · 274 阅读 · 0 评论 -
MySQL学习之判断null值
判断null值is or is not 操作符函数:# if(isnull(), t, f) 如果test是真,返回t;否则返回f 例如: select lession_name, if(isnull(views), 1, 0) from lession_views;# IFNULL(arg1,arg2) 如果arg1不是空值,返回arg1,否则返回arg2 ...原创 2019-12-16 20:35:15 · 106 阅读 · 0 评论 -
MySQL学习之流程控制
流程控制# 流程控制# case when .. then ... else ... end# CASE [test] WHEN[val1] THEN [result]...ELSE [default] END 如果test和valN相等,则返回resultN,否则返回default# if(isnull(), t, f) 如果test是真,返回t;否则返回f ...原创 2019-12-16 20:33:00 · 83 阅读 · 0 评论 -
MySQL学习之SQL函数
目录SQL函数Aggregate函数Scalar函数执行函数获取函数返回值SQL函数SQL 函数任何一个数据库系统都内置了数量相当可观的又非常实用的小函数这些函数可以根据实现功能的不同划分为不同的类,当然,除了很明显的日期时间和字符串函数两大类外可以把这些函数归纳为两大类: Aggregate 函数 和 Scalar 函数Aggregate函数avg()count()max()...原创 2019-12-16 20:31:23 · 411 阅读 · 0 评论 -
MySQL学习之连表
目录SELECT语句关键字的定义顺序SELECT语句关键字的执行顺序连表交叉连接内连接外连接之左连接外连接之右连接全外连接union操作符SELECT语句关键字的定义顺序SELECT DISTINCT <select_list>FROM <left_table><join_type> JOIN <right_table>ON <joi...原创 2019-12-16 20:24:28 · 110 阅读 · 0 评论