文档章节

MySQL操作数据-面试题

R-这个程序员有纹身
 R-这个程序员有纹身
发布于 2017/03/20 13:25
字数 1277
阅读 24
收藏 0

1、内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连 接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。所以外连接数据一般比内连接结果集要多。语法上on是可选语句。

2、用AS取别名,AS可以省略;DISTINCT去除重复数据,后面不需加()。

3、当一个成功的事务完成后,发出COMMIT命令应使所有参与表的更改才会有效。COMMIT(提交)

4、如果发生故障时,应发出一个ROLLBACK命令返回的事务中引用的每一个表到以前的状态。ROLLBACK(回滚)

5、数据库事务是指作为单个逻辑工作单元执行的一系列操作。它必须同时满足四个特性:原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)和持久性(Durabiliy)。

事务的特性( ACID )
(1)Atomicity 原子性
一个事务是一个不可分割的工作单位.要么所有的语句都执行成功,要么所有的语句都不执行.
(2)Consistency 一致性
事务必须是使数据库从一个一致性状态变到另一个一致性状态.
(3)Isolation 隔离性
一个事务的执行不能被其他事务干扰,在一个事务中添加修改的数据,不能被令一个事务读取或者修改.
(4)Durability 持久性
指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

6、事务开启,除了START TRANSACTION之外,DML语句中增加、修改、删除都会开启事务。

7、在缺省状态下处于autoCommit,每条SQL语句为一个事务,即此时Mysql是不支持事务的。

8、mysql的数据库事务隔离级别是:
Read Uncommitted(读取未提交内容)
       在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。
Read Committed(读取提交内容)
       这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一个事务只能看见已经提交事务所做的改变。这种隔离级别也支持所谓的不可重复读(Nonrepeatable Read),因为同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。
Repeatable Read(可重读)
       这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。不过理论上,这会导致另一个棘手的问题:幻读(Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。InnoDB和Falcon存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control)机制解决了该问题。
Serializable(可串行化)
       这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争。

9、set autocommit = 0 禁止自动提交; set autocommit = 1 开启自动提交; 当用set autocommit = 0 的时候,你以后所有的sql都将作为事务处理,直到你用commit确认或 rollback结束。

10、MYSQL默认的表类型就是InnoDB ,InnoDB是把表的主键最大值放到内存里面,所以MYSQL重启之后就会丢失。MyISAM是把表的主键最大值放到文件里面,所以MYSQL重启之后不会丢失。因此:如果表的类型是MyISAM,那么是18。 因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启MySQL自增主键的最大ID也不会丢失。 如果表的类型是InnoDB,那么是15。 InnoDB表只是把自增主键的最大ID记录到内存中,所以重启数据库或者是对表进行OPTIMIZE操作,都会导致最大ID丢失。

11、where 的条件不单只用在对字段里的数据进行比对,还可以用在其他的条件比对中。1=1的结果为true,所有记录都满足该条件,因此全部更新。

12、删除语句语法为:DELETE FROM ....WHERE 。

 

© 著作权归作者所有

上一篇: MySQL基础-面试题
下一篇: MySQL索引-面试题
R-这个程序员有纹身
粉丝 1
博文 21
码字总数 10567
作品 0
广州
程序员
私信 提问
关系型数据的分布式处理系统:Cobar

Cobar简介 Cobar是关系型数据的分布式处理系统,它可以在分布式的环境下像传统数据库一样为您提供海量数据服务。 Github:https://github.com/alibaba/cobar 整体架构图: image 快速启动场景...

架构之路
2017/12/19
0
0
Linux运维MySQL必会面试题100道

老男孩教育Linux运维班MySQL必会面试题100道 (1)基础笔试命令考察 (要求:每两个同学一组,一个口头考,一个上机实战作答,每5个题为一组,完成后换位) 1.开启MySQL服务 2.检测端口是否运...

老男孩oldboy
2017/08/25
0
0
Git文件操作命令

添加文件 git add 添加指定文件: 添加所有文件: 取消添加文件 git reset HEAD -- filename 这样Test.java将不会被提交到仓库中。 删除文件 git rm [--cached] fileName 默认会取消并删除文...

架构之路
2017/11/27
0
0
Git仓库操作命令

创建仓库 在当前目录执行,会生成目录文件,这个和SVN一致。 提交到仓库 :表示提交描述,必须要填。 添加到远端仓库 推送到远端仓库 克隆仓库 直接从远端把代码克隆下来。 仓库状态 仓库更新...

架构之路
2017/11/27
0
0
一个 16年毕业生所经历的 PHP 面试

前言:有收获的话请加颗小星星,没有收获的话可以 反对 没有帮助 举报三连 有心的同学应该会看到我这个noteBook下面的其它知识,希望对你们有些许帮助。 本文地址 时间点:2017-11 一个16年毕...

醉大侠
2017/12/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
4
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
6
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
4
0
OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
989
11
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
40
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部