mysql数据库02292_MySQL进入

mysql数据库02292_MySQL进入MySQL数据库 前言: 前面我们了解了什么是数据库,什么是MySQL数据库以及如何运用,接下来我们接着深入学习MySQL。 (提前声明,以下所提供的事例不标准,仅供参考) 数据库的备份与还原: 备份

MySQL数据库02

mysql数据库02292_MySQL进入

MySQL数据库 

前言:

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

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

 

数据库的备份与还原:

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

mysql数据库02292_MySQL进入

  还原:两种方法

  ①: mysql -u root -p 数据库名称 < 备份路径

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

mysql数据库02292_MySQL进入

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

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

mysql数据库02292_MySQL进入

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

 

多表设计之外键的约束:

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

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

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

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

 

具体示例:

mysql数据库02292_MySQL进入

 

mysql数据库02292_MySQL进入

 

mysql数据库02292_MySQL进入

 

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

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

mysql数据库02292_MySQL进入

 

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

mysql数据库02292_MySQL进入

 

 

一对一:两种方式:

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

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

 

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

①连接查询:

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

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

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

 mysql数据库02292_MySQL进入

 

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

  • 显示内连接:

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

mysql数据库02292_MySQL进入

 

 

  • 隐式内连接:

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

mysql数据库02292_MySQL进入

 

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

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

  • 左外连接:

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

mysql数据库02292_MySQL进入

 

 

  • 右外连接:

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

mysql数据库02292_MySQL进入

 

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

  • 带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”

mysql数据库02292_MySQL进入

 

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

 

小结:

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

                            加油

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

mysql数据库02292_MySQL进入

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9320.html

(0)
上一篇 2023-02-11 09:00
下一篇 2023-02-11

相关推荐

  • Python:优雅地解决嵌套条件判断的技巧

    Python:优雅地解决嵌套条件判断的技巧在Python中,单条件语句的表达式和其他语言一样:在if、elif或else关键字后面加上述语句部分。该部分的值解释为一个布尔值,如果为True,则执行该语句。例如:

    2024-03-07
    87
  • 颜值超高的4款可视化大屏类工具[亲测有效]

    颜值超高的4款可视化大屏类工具[亲测有效]数据可视化工具数不胜数,只看颜值的话,这4款才是我的心头好。

    2023-05-31
    149
  • Python读取JSON文件并生成标题

    Python读取JSON文件并生成标题在Python开发中,读取JSON文件并且生成可视化的标题是常见的需求。JSON文件作为一种轻量级的数据交换格式,它易于人们理解和编写,同时易于计算机解析和生成,因此在很多场景下,JSON文件得到了广泛的应用。Python是一种功能强大且易学易用的编程语言,它提供了强大的JSON解析功能,并且支持生成各种可视化效果,本文将介绍如何使用Python读取JSON文件,并生成h1标题的方法。

    2024-04-22
    56
  • baiduwenku简介

    baiduwenku简介随着数字化时代的到来,传统的纸质文献已经逐渐被电子文献所替代。我们可以更加便捷快速地获取各种文献资料、阅读、编辑和分享文献。其中,百度文库(Baidu Wenku)是一个非常受欢迎的在线文献分享和编辑平台,致力于为广大用户提供高质量的文献资源和协同编辑服务。

    2024-07-12
    43
  • HDFS/HBase技术报告·分布式数据库设计架构的全面解析「终于解决」

    HDFS/HBase技术报告·分布式数据库设计架构的全面解析「终于解决」Hadoop生态的分布式数据库 1、什么是分布式数据库? 从狭义的理解就是分布式关系型数据库,主要特指目前热门的NewSQL。 从广义的理解,分库分表的传统关系型数据库,传统关系型数据库集群,关系型数

    2023-04-14
    145
  • Redis 定长队列的探索和实践「终于解决」

    Redis 定长队列的探索和实践「终于解决」通过组合使用Redis的List等数据结构,结合Lua脚本,完成类消息队列功能,解决分组批量读取等功能。

    2023-05-30
    149
  • hdfs读写流程_hdfs读写文件的基本原理

    hdfs读写流程_hdfs读写文件的基本原理HDFS采用的是master/slaves这种主从的结构模型管理数据,这种结构模型主要由四个部分组成,分别是Client(客户端)、Namenode(名称节点)、Datanode(数据节点)和Seco

    2023-02-03
    146
  • 启动PHP环境时,80端口被占用怎么办?「建议收藏」

    启动PHP环境时,80端口被占用怎么办?「建议收藏」原来正常运行过PHP环境即apache和nginx,后来因为工作需要安装了IIS和Sql Server。今天再启动PHP环境时,提示80端口被占用。我的第一个反应是IIS问题,可是IIS并没有启动;…

    2023-01-27
    153

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注