MySQL入门与实战
文章平均质量分 92
SQL语言入门
深入理解MySQL
Alan-zzx
燕雀安知鸿鹄之志哉
展开
-
十三、MySQL数据库的锁,全局锁、表锁和行锁的应用
锁是在处理并发访问数据时,用于定义访问规则的数据结构。MySQL 中的锁根据作用范围分类有全局锁,表级锁和行锁。 全局锁 当你需要对数据库进行整库备份时,为了保证备份时刻的所有数据一致性,需要确保数据库在备份期间不进行数据更改操作。 考虑一般情况做数据备份时,正在进行下单的业务,假设有一个下单完成商品表和已付款金额表,下单完成的操作包含在商品表添加商品和在金额表记录是否付款。 此时,操作的顺序是:①备份下单商品表,②下单付款,③备份已付款金额表。若数据库崩溃恢复数据,则导致数据不完整,也就是商品已经下单完成原创 2020-06-04 17:30:28 · 384 阅读 · 0 评论 -
一、MySQL数据库入门
数据库概述 数据库(DataBase) 是按照数据结构来组织、存储和管理数据的仓库。 数据结构化:在数据库中的数据不只是针对某个应用,而是面向全组织,面向整体的。 实现数据共享:可以被多个应用程序,多个用户共享使用,大大减少数据冗余,节约存储空间 数据独立性高:包括逻辑独立性和物理独立性,前者是指数据的逻辑结构和应用程序相互独立,后者是指数据的物理结构变化不影响数据的逻辑结构 数据统一管理与控制...原创 2019-07-09 15:37:47 · 166 阅读 · 0 评论 -
二、数据库和表的基本操作
操作数据库 创建数据库 //创建数据库,并先检查是否已经存在,可省略不检查 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,...]] //创建的条件 create_specification: [DEFAULT]CHARACTER SET charset_name指定数据库采用的字符集 [DEFAU...原创 2019-07-09 22:15:33 · 369 阅读 · 0 评论 -
三、数据的增删改操作
添加数据 --语法 INSERT INTO table_name [(column [,column...])] VALUES (value [,value...]); 例一:在员工表中插入一条数据(id,name,gender,birthday) insert into employee (id,name,gender,birthday) values (null,'张飞','m','1999...原创 2019-07-11 15:40:46 · 355 阅读 · 0 评论 -
四、SQL单表查询语法
简单查询 SELECT语句 SELECT [DISTINCT] *或者{column1,column2...} FROM table_name; //DISTINCT表示去除重复项,*表示查询所有记录或者指定查询的列名 --例一:查询学生表中的数据(学生表:id,name,math,chinese,english) select * from student; --例二:查询表中所有学生姓名和...原创 2019-07-12 16:52:58 · 446 阅读 · 0 评论 -
五、SQL多表查询语法
外键 可以明确的声明表和表之间的字段的关系,使数据库帮我们维护这种关系,这就是外键。如果一个操作破坏这种外键约束,则数据库会阻止这个操作。 为表添加外键 创建表的时候声明外键 FOREIGN KEY(ordersid) REFERENCES ORDERS(id); --例如:为职员表添加外键关联部门表 create table dep( id int primary key auto_i...原创 2019-07-16 09:43:16 · 1081 阅读 · 0 评论 -
六、MySQL事务与存储过程
JDBC事务控制 事务概述:指逻辑上的一组操作,组成这组操作的各个单元,要么全成功,要么全部不成功。 举例说明:银行中要将A账户中转100元到B账户,这两步操作必须都成功或都不成功 update account set money = money-100 where name='A'; update account set money = money+100 where name='B'; 控制...原创 2019-07-17 14:00:31 · 448 阅读 · 0 评论 -
七、MySQL视图语法基础
视图是从一个或多个表中导出来的表,是一种虚拟存在的表,并且表的结构和数据都依赖于基本表。通过视图可以看到基本表中的数据,也可以像操作基本表一样操作视图,进行增删改查。可以简化查询语句,具有更高的安全性,逻辑数据独立性。 视图管理 创建视图语法格式 CREATE [OR REPLACE] [ALGORITHM] = {UNDEFINED或者MERGE或者TEMPTABLE} VIEW view_na...原创 2019-07-18 17:03:48 · 674 阅读 · 0 评论 -
八、MySQL数据库高级操作
数据库的备份与还原 数据的备份:mysqldump命令 mysqldump -u username -p password dbname [tbname1 [tbname2...]] > filename.sql 还原数据库:mysql命令或者source命令 mysql -u username -p password [dbname]<filename.sql //注意:应先新建空...原创 2019-07-20 23:30:44 · 306 阅读 · 0 评论 -
九、MySQL基础架构概述
MySQL基础架构 SELECT * FROM student WHERE stu_id = 007; 这样一条简单的 SQL 语句,可以从 student 表中查询得到 stu_id 为 007 的数据,学会写 SQL 语句后,在使用数据库时,只能观察到数据库执行了 SQL 语句,并且返回了所需要的数据。那么,MySQL 在拿到 SQL 语句之后做了哪些操作呢? 这涉及到 MySQL 的基础架...原创 2019-07-22 16:29:44 · 508 阅读 · 0 评论 -
十、MySQL redo log 和 bin log 概述
UPDATE test SET name = 'abc' WHERE id = 1; 更新语句的执行流程与查询语句类似,同样是需要经过下图的流程。首先清空对应表的缓存,经过分析器,优化器,执行器最终操作存储引擎修改表中数据。 除此之外,MySQL为了保证在高并发更新数据时的效率以及数据的恢复能力,引入了两个日志模块,redo log和bin log。 redo log redo log实际上是...原创 2019-07-29 13:51:04 · 492 阅读 · 0 评论 -
十一、MySQL实现事务的隔离:回滚日志(undo log)
事务的隔离级别 事务(Transaction)的存在是要保证一组数据库的操作全部成功或全部失败。例如在转账的时候,简单的说存在多步操作,查询余额,自己账户做减法,对方账户做加法,这几步操作必须全部成功或者全部失败,并且在事务的执行过程中数据被锁住,不会让其他事务再对数据进行更改。 MySQL 是一个支持多引擎的数据库系统,并且事务都在引擎中实现。其中 MyISAM 引擎不支持事务,我们以 Inno...原创 2019-08-24 21:37:29 · 1690 阅读 · 0 评论 -
十二、MySQL索引模型和存储、运作规则
在日常开发过程中,一条查询语句面对的数据量过大时,查询的时间就会很长,通常这个时候最方便也最有效的做法就是根据查询语句给表建一个索引,查询效率则会成倍的提高。 数据库的索引,类似新华字典的目录,新华字典有不止一个目录,有拼音目录和笔画目录等,查找某个字的时候,根据实际情况选择不同的一个或多个目录可以快速找到该字的位置,如果没有目录,那查找效率是无法想象的。同样的,数据库表也是同新华字典一样的存在,...原创 2019-09-07 22:33:54 · 242 阅读 · 0 评论