MySQL
生有涯,知无涯
登高而招,臂非加长也,而见者远;顺风而呼,声非加疾也,而闻者彰。假舆马者,非利足也,而致千里;假舟楫者,非能水也,而绝江河。君子生非异也,善假于物也。
展开
-
Mysql的四种事务隔离级别及脏读、不可重复读、幻读问题
1、事务的基本要素(ACID)原子性(Atomicity):一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。一致性(Consistency):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。隔离性(Isolatio原创 2020-12-04 14:54:34 · 608 阅读 · 0 评论 -
mysql存储引擎之MyISAM与InnoDB 的区别
区别:InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务;InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;InnoDB是聚集索引,使用B+Tree作为索引结构,数据文件是和(主键)索引绑在一起的...原创 2019-11-11 14:30:28 · 105 阅读 · 0 评论 -
unsupported format character 'Y'报错问题解决
1.原始sql语句query_sql = """ SELECT a.plateform_type, DATE_FORMAT(a.create_date, '%Y-%m-%d') the_date, COUNT(*) the_count FROM ( SELECT DISTINCT n.plateform_type, DATE_FOR...原创 2019-11-01 10:31:23 · 6864 阅读 · 1 评论 -
mysql查询结果行转列——case when用法
1.准备数据首先建表,主要有四个表,学生表(Student),课程表(Course),教师表(Teacher),以及成绩表(SC)在分别介绍一下每个表的字段 学生表(Student )有四个字段 sid–学生id,sname–学生姓名,sage–学生年龄,ssex–学生性别课程表(Course)有三个字段,cid–课程id,cname–课程名,tid–教师id教师表(Teacher)有两个...原创 2019-10-21 15:21:30 · 1549 阅读 · 0 评论 -
MYSQL 调优
1.mysql索引注意事项1.最左前缀匹配原则。mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配。所以要尽量把“=”条件放在前面,把这些条件放在最后。不会用到b的索引:where a=1 and c>0 and b=2会用到b的索引:where a=1 and b=2 and c>02.尽量选择区分度高的列作为索引,区...原创 2019-10-08 15:53:29 · 295 阅读 · 0 评论 -
数据库设计中“多选状态标识”的处理
1.基础版:表示某个商家是否支持多种会员卡打折(如有金卡、银卡、其他卡等),具体做法是:在每条商家记录中为每种会员卡建立一个标志位字段。如图:其中蓝色区域的三个整形字段分别表示三种会员卡。当值为“1”时表示当前商家支持这种会员卡打折,反之“0”则表示不支持。2.改进版:表示系统字典表中某种类型方式,会在哪个功能模块中调用。如某种“支付方式”可能在“收银模块”中会用到,在“结算模块”中也会...原创 2019-09-02 15:56:20 · 561 阅读 · 0 评论 -
Mysql数据库查询练习三-【从不订购的客户】【各部门工资最高的员工】【部门工资前三高的员工】
1.从不订购的客户某网站包含两个表,Customers 表和 Orders 表。编写一个 SQL 查询,找出所有从不订购任何东西的客户。Customers 表:+----+-------+| Id | Name |+----+-------+| 1 | Joe || 2 | Henry || 3 | Sam || 4 | Max |+----+------...原创 2019-07-12 00:35:10 · 272 阅读 · 0 评论 -
mysql数据库查询练习二-【比经理工资还高员工姓名】【查找重复的邮箱】
1.查询工资比他经理的工资还高的员工的姓名Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。+----+-------+--------+-----------+| Id | Name | Salary | ManagerId |+----+-------+--------+-----------+| 1 | Joe ...原创 2019-07-11 22:00:38 · 3307 阅读 · 0 评论 -
mysql数据库查询练习五-【交换工资】【寻找用户推荐人】
1.交换工资给定一个 salary 表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没有中间的临时表。注意,您必只能写一个 Update 语句,请不要编写任何 Select 语句。例如:| id | name | sex | salary ||----|------...原创 2019-07-15 20:51:52 · 441 阅读 · 0 评论 -
mysql数据库查询练习一-【组合两个表】【第二高的薪水】【分数排名】【至少出现3次的数字】
1.联表查询表1: Person+-------------+---------+| 列名 | 类型 |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varchar |+-------------+---------+P...原创 2019-07-11 00:56:37 · 385 阅读 · 0 评论 -
mysql查询练习四-【上升的温度】【大的国家】【超过5名学生的课】【体育馆的人流量】
1.上升的温度给定一个 Weather 表,编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 Id。+---------+------------------+------------------+| Id(INT) | RecordDate(DATE) | Temperature(INT) |+---------+------------------+-----...原创 2019-07-15 00:37:01 · 364 阅读 · 0 评论 -
【转载】mysql快速保存插入大量数据一些方法总结
来源:http://www.111cn.net/database/mysql/53274.htm1. 问题引入:面试或者未来实际工作中,有可能出现这样的场景:mysql快速保存插入大量数据。这几天尝试了查阅不同的技术博客,对于使用不同的存储引擎大量插入MySQL表数据,主要是MyISAM存储引擎和InnoDB两类。2.InnoDB存储引擎一、InnoDB存储引擎。创建数据库和表代码如...转载 2019-07-14 20:13:23 · 395 阅读 · 0 评论 -
mysql数据库删除重复的数据保留一条
1.问题引入假设一个场景,一张用户表,包含3个字段。id,identity_id,name。现在身份证号identity_id和姓名name有很多重复的数据,需要删除只保留一条有效数据。2.模拟环境1.等入mysql数据库,创建一个单独的测试数据库mysql_exercisecreate database mysql_exercise charset utf8;2.创建用户表us...原创 2019-07-09 22:15:13 · 64758 阅读 · 18 评论 -
执行mysql数据库迁移时报错问题记录-django.db.utils.InternalError: (1060, "Duplicate column name 'desc_detail'")
执行数据库迁移时,报错提示如下:django.db.utils.InternalError: (1060, "Duplicate column name 'desc_detail'")第一步:删除子应用目下migrations迁移目录下迁移文件记录。如下图0001_initial.py2.此时又报另一张数据库表相关的错。django.db.utils.InternalError: (...原创 2019-06-17 20:19:14 · 3458 阅读 · 0 评论 -
Django中定义mysql事务的方法
问题引入在保存订单数据中,涉及到多张表(OrderInfo(订单信息)、OrderGoods(订单商品)、SKU(商品详情))的数据修改,对这些数据的修改应该是一个整体事务,即要么一起成功,要么一起失败。mysql中的事务MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这...原创 2019-06-17 21:45:19 · 543 阅读 · 0 评论 -
MySQL数据库查询操作强化(条件-排序-分组-聚合函数-限制-子查询)
1.查询操作——条件查询使用where子句对表中的数据筛选,结果为true的行会出现在结果集中语法如下:select * from 表名 where 条件;例:select * from students where id=1;where后面支持多种运算符,进行条件的处理比较运算符: 等于: = select * from students where is_de...原创 2019-06-20 21:57:57 · 558 阅读 · 0 评论 -
MySQL数据库表字段的类型、约束及表内容的增删改查
1.数据类型数据类型使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间常用数据类型如下: 整数:int,bit 小数:decimal 字符串:varchar,char 日期时间: date, time, datetime 枚举类型(enum)特别说明的类型如下:decimal表示浮点数,如deci...原创 2019-06-20 21:13:54 · 596 阅读 · 0 评论 -
Ubuntu16.04下MySQL数据库的安装和基本操作(备份还原)
1.安装1.1 安装服务器端:在终端中输入如下命令,回车后,然后按照提示输入管理员密码sudo apt-get install mysql-server1.2 启动服务sudo service mysql start1.3 查看进程中是否存在mysql服务ps aux|grep mysql1.4停止服务sudo service mysql stop1....原创 2019-06-20 20:49:04 · 651 阅读 · 0 评论