MySQL的函数,约束,多表查询,事务

1.函数

1.1.字符串函数

1.2.数值函数

1.3.日期函数

1.4.流程函数

 2.约束

 3.多表查询

3.1、多表关系一般分为三种:一对一,一对多,多对多

3.1.1、一对多

实现方式:在多的一方建立外键,指向一的一方的主键。

例子:班级-学生关系 ;一个班级有多个学生,一个学生属于一个班级;在学生表建立外键,指向班级表

3.1.2、多对多

实现方式:建立中间表,中间表维护双方的关系

例子:学生-课程关系;一个学生可以选择多门课程,一门课程可以被多位学生选择。

3.1.3、一对一

实现方式:在任意一方加一个外键,关联另一方的主键,外键设置唯一约束

例子:学生-学生信息;一般设计上,一个学生对应一条学生信息

3.2、多表查询分类

3.2.1、连接查询

3.2.1.1、内连接:查询A,B表交集的数据

3.2.1.1.1、隐式内连接

select 字段列表 from 表1,表2 where 条件;

3.2.1.1.2、显式内连接

select 字段列表 from 表1 [inner] join 表2 on 连接条件;

3.2.1.2、外连接

3.2.1.2.1、左外连接

select 字段列表 from 表1 left join 表2 on 条件;

3.2.1.2.2、右外连接

select 字段列表 from 表1 right join 表2 on 条件;

3.2.1.3、自连接

select 字段列表 from 表1 别名a join 表1 别名b on 条件;
--自连接一定要指定别名,可以是左外连接,也可以是右外连接

3.2.2、联合查询

3.2.2、union ; union all把多次查询结果合并成一个新的结果集

select 字段列表 from 表1
union [all]
select 字段列表 from 表2
--union 查询结果去重;union all 查询结果不去重
--union 要求两部分的查询的结果字段类型必须保持一致并且列数也必须保持一致

3.2.3、子查询:SQL语句中嵌套select语句

select 列表字段 from 表名 where column1=(select column1 from 表名);
--查询的条件是另一个查询的结果

3.2.3.1、标量子查询:子查询结果是单个值

3.2.3.2、列子查询:子查询结果是一列(可以是多行),常用操作符:in /not in /any/some/all

3.2.3.3、行子查询:子查询结果是一行(可以是多列)

select 字段列表 from 表1 where (字段1,字段2,...)=(值1,值2,...)

3.2.3.4、表子查询:子查询返回的结果是多行多列,常用操作符in。

4.事务

4. 1、什么是事务?

事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或者撤销操作请求,要么同时成功,要么同时失败。

事务的四大特性(ACID):原子性、一致性、持久性、隔离性

4.2.并发事务问题

4.3.事务的隔离级别

repeatable read 是MySQL默认的事务隔离级别;而oracle默认的事务隔离级别是read committed。

4.3.1、查看事务隔离级别

select @@TRANSACTION_ISOLATION;

4.3.2、设置事务隔离级别

set [session|global] transaction isolation level {read uncommitted|
read committed|repeatable read|serializable}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值