MySQL
Will Jay
这个作者很懒,什么都没留下…
展开
-
数据库常见问题(2) —— MySQL
使用B树和B+树的比较InnoDB的索引使用的是B+树实现,B+树对比B树的好处:IO次数少:B+树的中间结点只存放索引,数据都存在叶结点中,因此中间结点可以存更多的数据,让索引树更加矮胖;范围查询效率更高:B树需要中序遍历整个树,只B+树需要遍历叶结点中的链表;查询效率更加稳定:每次查询都需要从根结点到叶结点,路径长度相同,所以每次查询的效率都差不多使用B树索引和哈希索引的比较哈希索引能以 O(1) 时间进行查找,但是只支持精确查找,无法用于部分查找和范围查找,无法用于排序与分组;B树索引原创 2020-05-28 20:39:40 · 125 阅读 · 0 评论 -
数据库常见问题(1) —— 数据库基础
事务的概念和特性?概念:事务(Transaction)是一个操作序列,不可分割的工作单位,以BEGIN TRANSACTION开始,以ROLLBACK/COMMIT结束特性(ACID):原子性(Atomicity):逻辑上是不可分割的操作单元,事务的所有操作要么全部提交成功,要么全部失败回滚(用回滚日志实现,反向执行日志中的操作);一致性(Consistency):事务的执行必须使数据库保持一致性状态。在一致性状态下,所有事务对一个数据的读取结果都是相同的;隔离性(Isolation):一个事务原创 2020-05-28 20:36:38 · 678 阅读 · 0 评论 -
MySQL(6)——MySQL超级脑图
这个MySQL的脑图是我在学习过程中收集到的,具体出处已经不详,还有一些内容因为一些原因没办法展示出来,如果有比较需要的可以私信我,我给下载链接,可以的话麻烦给我的文章点个赞!...原创 2020-05-28 19:15:27 · 142 阅读 · 0 评论 -
MySQL(5)—— 事务的性质与使用
事务在 MySQL 中,事务其实是一个最小的不可分割的工作单元。事务能够保证一个业务的完整性。比如我们的银行转账:-- a -> -100UPDATE user set money = money - 100 WHERE name = 'a';-- b -> +100UPDATE user set money = money + 100 WHERE name = 'b';在实际项目中,假设只有一条 SQL 语句执行成功,而另外一条执行失败了,就会出现数据前后不一致。因此,在执原创 2020-05-28 16:47:10 · 83 阅读 · 0 评论 -
MySQL(4)—— 查询练习
事务在 MySQL 中,事务其实是一个最小的不可分割的工作单元。事务能够保证一个业务的完整性。比如我们的银行转账:-- a -> -100UPDATE user set money = money - 100 WHERE name = 'a';-- b -> +100UPDATE user set money = money + 100 WHERE name = 'b';在实际项目中,假设只有一条 SQL 语句执行成功,而另外一条执行失败了,就会出现数据前后不一致。因此,在执原创 2020-05-28 16:42:59 · 106 阅读 · 0 评论 -
MySQL(3)—— 数据库的三大设计范式
数据库的三大设计范式1NF只要字段值还可以继续拆分,就不满足第一范式。范式设计得越详细,对某些实际操作可能会更好,但并非都有好处,需要对项目的实际情况进行设定。2NF在满足第一范式的前提下,其他列都必须完全依赖于主键列。如果出现不完全依赖,只可能发生在联合主键的情况下:-- 订单表CREATE TABLE myorder ( product_id INT, customer_id INT, product_name VARCHAR(20), customer_n原创 2020-05-28 16:27:32 · 107 阅读 · 0 评论 -
MySQL(2)—— MySQL基本操作
建表约束主键约束-- 主键约束-- 使某个字段不重复且不得为空,确保表内所有数据的唯一性。CREATE TABLE user ( id INT PRIMARY KEY, name VARCHAR(20));-- 联合主键-- 联合主键中的每个字段都不能为空,并且加起来不能和已设置的联合主键重复。CREATE TABLE user ( id INT, name VARCHAR(20), password VARCHAR(20), PRIMARY原创 2020-05-28 16:26:55 · 165 阅读 · 0 评论 -
MySQL(1)—— MySQL基本操作
登录和退出MySQL服务器# 登录MySQL$ mysql -u root -p12345612# 退出MySQL数据库服务器exit;基本语法-- 显示所有数据库show databases;-- 创建数据库CREATE DATABASE test;-- 切换数据库use test;-- 显示数据库中的所有表show tables;-- 创建数据表CREATE TABLE pet ( name VARCHAR(20), owner VARCHAR(原创 2020-05-28 16:25:48 · 120 阅读 · 0 评论