Mysql易错知识点

  一.mysql书写顺序和执行顺序都清楚了吗?

   大家学了mysql应该都会写sql,但是sql运行执行顺序还时有一部分人比较陌生,内部运行不是按照书写顺序的,而是有一套规则,如下. 

sql执行顺序     括号数字代表执行顺序

(1)from 
(3) join 
(2) on 
(4) where
(5)group by

(6) avg,sum 
(7)having 
(8) select 
(9) distinct 
(10) order by

  二.where 与 having的区别?

     1.where后不能有聚合函数,having后可以有

     2.where分组前过滤,having用于分组后的筛选。  

  三.alter,modify,change 区别与联系?

    只更改列类型,选modify。例如:   学号原来varchar(10) 修改为20。

Alter table  studentinfo  modify column  studentid varchar(20)

    更改列,更改列类型(列类型可更改也可不更改)

Alter table studentinfo  change column sudentid  studentnumber  varchar(30)

(注: studentinfo 表名,sudentid原来学号,studentnumber修改后的学号 ) 

  四.并发访问数据库容易产生哪些问题?

事务在操作时的理想状态: 所有的事务之间保持隔离,互不影响。因为并发操作,多个用户同时访问 同一个 数据。可能引发并发访问的问题。

并发访问的问题

说明

脏读

一个事务读取到了另一个事务中尚未提交的数据

不可重复读

一个事务中两次读取的数据内容不一致, 要求的是在一个事务中多次读取时数据是一 致的. 这是进行 update 操作时引发的问题

幻读

一个事务中,某一次的 select 操作得到的结果所表征的数据状态, 无法支撑后续的业务 操作. 查询得到的数据状态不准确,导致幻读.

  五.什么隔离级别,可以防止脏读和不可重复读?

   通过设置隔离级别,可以防止上面的三种并发问题。

   mysql数据库有四种隔离级别如下:

   (上面级别最低,下面级别最高, 会出现问题, 不会出现问题)

级别

名字

隔离级别

脏读

不可重复读

幻读

数据库的默认隔离级 别

1

读未提 交

read uncommitted

 

2

读已提 交

read committed

Oracle和SQLServer

3

可重复 读

repeatable read

MySql

4

串行化

serializable

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值