MySQL数据库

前言:

前面我们了解了什么是数据库,什么是MySQL数据库以及如何运用,接下来我们接着深入学习MySQL。

(提前声明,以下所提供的事例不标准,仅供参考)

数据库的备份与还原:

备份:在cmd中输入 mysqldump -u root -p 数据库名称 > 备份路径

还原:两种方法

①:mysql -u root -p 数据库名称

(这个实例,我事先删除了smbms的数据库并重新导入)

②:第一步:在服务器内创建一个数据库

第二步:source 还原数据库的地址

当然你也可以更简单,使用可视化工具直接备份和还原。

多表设计之外键的约束:

约束的作用:保证数据的完整性

单标约束:主键、唯一、非空

外键约束:用来保证数据完整性(多表之间)

添加外键约束:alter table 指向的表名 add foreign key (指向的键) references 被指向的表名(被指向的键);

具体示例:

表与表的关系:一对多、多对多、一对一

一对多:在多的一方创建外键指向一的一方主键。

多对多:需要创建第三张表(中间表),在中间表中至少两个字段分别作为外键,指向多对多双方的主键。

一对一:两种方式:

①唯一外键对应的方式:假设一对一是一个一对多关系,需要在多的一方创建外键指向一的一方的主键,将外键设置为唯一。

②主键对应方式:将两个表的主键建立对应关系即可。

多表查询的分类:连接查询、子查询

①连接查询:

(1)交叉查询:查询到的是两个表的笛卡尔积。

select * from 表1 cross join 表2; select * from 表1,表2;

(这里主要看id,这个事例不标准,仅供参考)

(2)内连接:inner join  (inner 可以省略)

显示内连接:

select * from 表1 inner join 表2 on 关联条件;

隐式内连接:

select * from 表1,表2 where 关联条件;

(3)外连接:outer join (outer可有省略)

【这里注意看左外连接和右外连接的事例区别】

左外连接:

select * from 表1 left outer join 表2 on 关联条件;

右外连接:

select * from 表1 right outer join 表2 on 关联条件

②子查询:一个查询语句条件需要依赖另一个查询语句的结果。

带in的子查询

带exists的子查询

带any的子查询

带all的子查询

事务:指的是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么全都成功,要么全都失败

开启事务: start transaction;

提交事务: commit;

回滚事务: rollback;

事务的四大特性:

原子性:事务的不可分割,组成事务的各个逻辑单元不可分割

一致性:事务执行的前后,数据完整性保持一致

隔离性:事务执行不应该受到其他事务的干扰

持久性:事务一旦结束,数据就持久化到数据库中

事务的隔离级别:

安全问题主要体现在读取数据上:脏读、不可重复读、虚读/幻读

脏读:一个事务读到了另一个事务未提交的数据,导致查询结果不一致。

不可重复读:一个事务读到了另一个事务已经提交的update的数据,导致多次查询结果不一致。

虚读/幻读:一个事务读到了另一个事务已经提交的insert的数据,导致多次查询结果不一致。

解决方法:设置事务的隔离级别: 级别由上到下依次增强,但是读取速度依次下降。

read uncommitted:脏读,不可重复读,虚读都有可能发生。

read committed:避免脏读。但是不可重复读和虚读是有可能发生的

repeatable read:避免脏读和不可重复读,但是虚读有可能发生。

serializable:避免脏读,不可重复读,虚读。

设置事务的隔离级别: SET SESSION TRANSACTION ISOLATION LEVEL 隔离级别;

查看当前的隔离级别: SELECT @@tx_isolation;

注意:不同版本的mysql,查看隔离级别语法不同!

上面那个是旧版的,新版的:SELECT @@transaction_isolation;

否则会报错:ERROR 1193 (HY000): Unknown system variable 'tx_isolation'

(关于事务可以自己去尝试)

小结:

以上就是多表和事务的介绍了,希望能对各位有所帮助。

加油

时间:2020-03-28 15:39:33

mysql 脏数据查询_MySQL数据库02相关推荐

  1. mysql gps数据查询_Mysql数据库中计算两GPS坐标的距离

    Mysql数据库中计算两GPS坐标的距离有两种方式: 1.直接使用SQL语句:#lat为纬度, lng为经度, 一定不要弄错 declare @lng1 float; declare @lat1 fl ...

  2. mysql 查找数据过程_mysql数据库查询过程探究和优化建议

    查询过程探究 我们先看一下向mysql发送一个查询请求时,mysql做了什么? 如上图所示,查询执行的过程大概可分为6个步骤: 客户端向MySQL服务器发送一条查询请求 服务器首先检查查询缓存,如果命 ...

  3. mysql 查看数据库函数_MySQL数据库中常用查询函数简介

    MYSQL中的常用函数 count(*)--- 相当于统计表的行数,在统计结果的时候,不会忽略列值为NULL的记录. select count(*) from yinxiong; Count(列名) ...

  4. mysql锁表查询_Mysql数据库锁情况下开启备份导致数据库无法访问处理分享

    [背景简介] MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),因为其速度.可靠性和适应性而备受关注.大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择.mysql ...

  5. mysql 大批量数据查询_mysql 处理 多条件 大批量数据 查询

    2013-04-27 回答 在我们使用mysql数据库时,比较常用也是查询,包括基本查询,关联查询,条件查询等等,对于同一个操作,sql语句的实现有很多种写法,但是不同的写法查询的性能可能会有很大的差 ...

  6. mysql 复制数据文件_mysql数据库搬家,可以直接复制数据库文件吗

    诶?这项技术又是什么玩意(What)? 这项技术为什么会存在?我们已经有那么多解决方案(Method)了,我们为什么要用它(Why)? 如果这项技术那么好且我们正好有场景可以用到这项技术,且能使我们的 ...

  7. mysql进入数据库命令_mysql 数据库基础命令

    数据库命令: 进入 mysql 库; use mysql; 查看用户权限 select * from user where user='root' \G; 创建数据库 create database ...

  8. mysql 性能 数据 指标_MySQL数据库:三个关键性能指标

    今天主要介绍MySQL数据库,或者说所有数据库的三个关键性能指标: qps 每秒处理的查询数 tps 每秒处理的事务数 IOPS 每秒磁盘进行的I/O操作次数 一.TPS(适用innodb) 1. 概 ...

  9. mysql修改数据列_MySQL数据库修改一列内容

    匿名用户 1级 2018-07-05 回答 下面列出: 1.增加一个字段 alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL; //增加 ...

最新文章

  1. js异步提交form表单的解决方案
  2. 无人驾驶——对frenet坐标的理解
  3. docker容器的重启策略:通过--restart来指定
  4. 针对“来用”团队项目之NABC分析
  5. Hotstar赛事直播编码组合优化
  6. 检查虚ip跟实ip之间网络问题_虚电路有哪些特点 虚电路原理介绍【详解】
  7. Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'userinfo.
  8. Atitit 把项目外包的面临的风险attilax总结
  9. 机器学习之旅:支持向量机通俗导论(理解SVM的三层境界)
  10. AllenNLP2.2.0:入门篇
  11. 安卓版AWZ爱伪装一键新机说明
  12. 凤凰架构4——透明多级分流系统
  13. 直流电机+L298N电机驱动模块
  14. Udacity数据分析(入门)-探索美国共享单车数据
  15. 百度世界2020再曝语义理解领域新进展:文心ERNIE全景图亮相
  16. 专硕计算机考研英语一还是二,学硕只会考英语一?专硕只会考英语二?
  17. 查看mysql宕机原因_记录一次mysql宕机的解决办法
  18. openssl 1.0.2k-fips 升级到 openssl-3.0.3
  19. 人工智能将从5大方面改变企业IT
  20. 18个Python高效编程技巧!

热门文章

  1. 《成语玩命猜》两个弓
  2. GNU make manual 翻译( 一百五十五)
  3. 解决在全文搜索中搜索中文字符
  4. JavaEE实战班第六天
  5. 求你了,听我一句劝吧,这几个玩意就别学了!
  6. 推荐几个来自北大、南开的大神的公众号!
  7. 技术管理者必备管理模板
  8. 专访《程序员的三门课》李伟山:从程序员到技术总监的修炼秘籍!
  9. Java内存不足之PermGen space错误探究
  10. Java描述设计模式(08):桥接模式