MySQL基础

select列相加时候, 默认是将列的值强制转换成double类型后相加, 若强转失败就会报错

使用distinct去重时候, 假如选定了多个列, 只有多个列值都相同时候整体才判断为重复

where: 

 like: 模糊查询, 依赖通配符. '%'可以表示任意个字符, '_'可以表示一个任意字符.

特点: 对查询字符用的比较多, 查询数字的话用between...and或者比较符会高效的多

用例:

select * from students where name like "_atty%";

使用group by进行聚合查询时候可以使用条件where也可以使用having, 两者的区别是一个是分组前过滤, 一个是分组后过滤

有一张员工表emp,字段:姓名name,性别sex,部门depart,工资salary。查询数据:各部门薪水大于10000的男性员工的平均薪水, 代码应该是

SELECT
    depart as '部门',
    AVG(salary) as '男性员工平均薪水'
FROM
    emp
WHERE
    sex = '男' AND
    salary > 10000
GROUP BY
    depart;

 因为AVG需要算的是男的并且salary > 10000的, 需要再group by 前就筛选好参与聚合查询的数据,而非先group by depart 然后再having.

事务的特性

原子性: 将多个SQL打包成一个整体, 全部都完成才commit, 不然就是rollback

一致性: 事务执行前后, 数据要不改变要不不改变, 都能对的上.

持久性: 事务完成后的改动会写入硬盘, 不会随着程序的关闭等丢失

隔离性: 事务之间并发执行时候, 互不干扰互不影响

并发执行事务中可能带来的影响

        脏读 \ 不可重复读 \ 幻读

脏读: 在修改信息的时候就读取了信息, 导致读取的临时信息

不可重复读: 

幻读: 

解决上述不良影响的方法

MySQL提供挂了四个隔离级别, 通过实际需求来选择不同挡位, 在my.ini中设置

1.read uncommitted 

2.read committed 

3.repeatable read (default) 

4.serializable 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值