![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 82
谈笑江湖
井中之蛙,不识大海
弱者也有志气不可轻辱,
匹夫不可多其志!!!
展开
-
回答mysql 10个问题
1.事务的概念是什么?事务是对数据库中数据操作的保证数据逻辑一致的最小操作单位。2.mysql的事务隔离级别读未提交, 读已提交, 可重复读, 串行各是什么意思?读未提交:一个事务读取到了其他事务未提交的操作。读已提交:一个事务读取到了其他事务已经提交的操作。可重复读:一个事务从它开始到结束整个生命周期中,所能读取到的数据内容和它启动的时候所能读到的数据内容是相同的。不会出现在事务运行的整个过程中,不同的时间点读取到的数据不一样的情况。串行化:所有的事务都进行排队执行,事务之间不存才并发的情况。原创 2021-05-07 23:18:24 · 116 阅读 · 0 评论 -
数据库的数据导入和导出
win系统:1.将数据库中的数据导出在dos命令窗口中执行导出数据库中的某一张表mysqldump km_mn book>D:\km_book.sql -uroot -p1232.导入数据登录mysql 数据库管理系统之后执行:1.进入数据库2.创建km_book库3.use km_book4.创建表book表5.导入数据:source D:\km_book.sql...原创 2020-10-23 10:39:50 · 636 阅读 · 0 评论 -
主从复制
概述:保证数据的安全性。mysql 中提供了主从复制功能以提高服务的可用性和数据的安全性主从复制是指服务器分为主服务器和从服务器,主服务器负责读和写,从服务器只负责读,主从复制也叫master/slave, master是主,slave是从,但是并没有强制,也就是说从可以写的。主也可以读,但是我一般不这样做。架构设计一主多从:(保证读的高可用)缺点:一但主库奔溃,不能写,但是从库可以读有点:一但主库奔溃,不能写[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(im原创 2020-10-15 20:08:35 · 118 阅读 · 1 评论 -
完整的DQL 语句
select 5...from 1...where 2...group by 3...having 4... order by 6...原创 2020-10-14 19:35:47 · 194 阅读 · 0 评论 -
数据库表设计
什么是设计三范式: 1.1 设计表的依据:按照这个三范式设计的表不会出现数据冗余三范式都有哪些:第一范式: 第一范式:任何一张表都有一个主键,并且每一个字段原子性不可以再分例子不满足第一范式:学生标号学生姓名联系方式001jadenzjl@123.com, 13029199039002haoyuewhy@139.com, 13000009999001jalenjjl@126.com, 12911110000存在的问题最后一条数据和第二条原创 2020-10-14 16:09:51 · 1887 阅读 · 0 评论 -
Mysql存储引擎——MyISAM
存储引擎这个名词只有在MySQL 中存在,(oracle中有对应的机制,但是不叫存储引擎,Oracle 中只叫:表的存储方式)常见的存储引擎:Engine:特点InnDB字符集大都 utf-8支持事务这种存储数据安全性。支持行级锁,外键不支持压缩1.每个InnoDB表在数据库目录中.frm格式文件表示2.InnoDB表空间tablespace被用于存储表的内容,无转换为只读3.提供一组用来记录事务性活动的日志文件4.用commit,rollback, save point 支原创 2020-10-07 16:16:50 · 198 阅读 · 1 评论 -
mysql---外连接
定义:外连接: 假设A和B表进行连接,使用外连接的话,AB两表中的一张表为主表,一张为副表,主要查询的主表中的数据,捎带查询一下副表,当副表中的数据没有和主表中的数据匹配上,副表自动模拟出Null与之匹配。内连接: 假设A和B表进行连接,使用内连接的话,凡是A表和B表能够匹配上的记录查询出来,这就是内连接。 AB两表没有主次之分分类:左外连接:表示左边的表为主表右外连接:表示右边的表为主表左连接有右连接的写法,右连接又有左连接的写法。CREATE TABLE `course` ( `原创 2020-10-04 16:47:32 · 101 阅读 · 0 评论 -
MySQL 四种隔离级别
Mysql的四种隔离级别SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容)在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。Read Committed(读取提交内容)这是大多数数据库系统的默认隔离级别(但不是M原创 2020-10-02 16:13:27 · 672 阅读 · 0 评论 -
SQL DQL, DML, DDL, DCL, TCL
原创 2020-09-30 18:37:13 · 80 阅读 · 0 评论 -
MySQL 事务 脏读,不可重复读,幻读
MySQL 事务: 一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元) 一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成事务只和DML语句有关,或者说DML语句才有事务。这个和业务逻辑有关,业务逻辑不同,DML语句的个数不同事务的四大特性: 原子性:指处于同一个事务中的多条语句是不可分割的。 一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。比如转账,转账前两个账户余额转载 2020-09-27 22:30:06 · 150 阅读 · 0 评论 -
联合索引的底层存储结构长什么样子
联合索引:原创 2020-09-27 08:07:33 · 1182 阅读 · 1 评论 -
为什么InnoDB表需要有主键
1.如果在innoDB 数据表的创建过程中,没有新建主键的话。自己会创建一个主键。2. innoDB 的主键推荐为整型,自增id3. 为啥不使用uuid3.1 uuid 既不是整形,也不是自增3.2 字符串比int 难比较3.3 ssd 整型占据空间比较小3.4 如果不是自增的话,需要下图平衡,对于insert不利4.自增idd的讲述哈希查询;不适用于范围索引。B+ 数; 所有的叶子节点是排好序的。叶子节点存储了相邻节点的位置,双向指针。进行范围索引时:通过叶点之间的指针进行索引。原创 2020-09-27 00:11:19 · 1127 阅读 · 0 评论 -
MySQL 数据结构的温习
MySQL 高效的获取数据排序好 的 数据结构索引数据结构;1.二叉树2.红黑树3.Hash表4.B_treeB-树B+数B+ 树可以设置自己层级,但是可以每个层级的大小是有要求的,大约为16多KB第一行的空白位置,存储时下一行的索引的地址,大小为6个字节,绿色方块,占据的是8位字节第三层叶子节点位置大约放的是1170 * 1170* 16 = 2100多万而且数据第一层索引放在RAM(内容) 中 ,B...原创 2020-09-26 22:43:42 · 153 阅读 · 0 评论 -
MySQL json 数据的提取。
SELECT s.id,u.user_name,t.category_name, JSON_UNQUOTE ( t.category_name -> '$.cn' ) as cnFROM mydb3.user_info AS u INNER JOIN mydb3.user_shop AS s INNER JOIN mydb3.t_shop_category AS t ON u.id = s.user_id AND ..原创 2020-09-25 11:33:06 · 1087 阅读 · 0 评论 -
SQL 中left join、inner join和right join的区别
学生表: strdentINSERT INTO book.student VALUES ('1','张三', '66', '3');INSERT INTO book.student VALUES(2,'李四','88','3');insert into book.student values(3,'王五','89','2');课程表:courseinsert into book.course values('1','语文');…左连接:以student 为基础表select * fr原创 2020-09-24 22:38:06 · 101 阅读 · 0 评论 -
mysql workbench 导出表格式和数据
第一步:数据导出第二步: 点击第三步:最后的结果原创 2020-07-08 16:56:52 · 680 阅读 · 0 评论 -
mysql—workbench创建表 字段说明
原创 2020-07-08 12:51:34 · 1115 阅读 · 0 评论 -
mysql 复制表
– 复制表结构CREATE TABLE mydb2.stu_01(新表) LIKE mydb2.stu (旧表);– 创建新表并且复制旧表中的数据create table mydb2.stu_03(新表) (select * from mydb2.stu) (旧表);原创 2020-07-08 12:24:32 · 99 阅读 · 0 评论 -
MySQL插入中文时出现ERROR 1406 (22001): Data too long for column 'name' at row 1
前提:查看一下自己数据库表中的对应字段的数据类型。我遇到这种1406问题情境:1、我想在表中插入josn格式的数据:如图1.1插入的是中文时报了1406的错误,2.解决方法:2.1 查看自己表的数据结构:是否json格式,如果不是,请修改,修改后插入即可。...原创 2020-03-04 00:08:48 · 935 阅读 · 0 评论 -
SQLAlchemy 初始化数据库报错
连接数据库出现:**问题:**使用sqlalchemy初始化数据库报错ModuleNotFoundError: No module named ‘mysql’解决方案:pip install mysql-connector即可原创 2020-01-08 10:41:37 · 262 阅读 · 0 评论