MySQL中的函数、约束、查询和事务

一.函数

1.字符串函数:

 2.数值函数:

3.日期函数:

 

 

 

4.流程函数:

 

 

二.约束

 

 当要使两张表之间存在关联,就必须建立外键关联约束,添加后就不能顺便的删除表中的数据啦

 实例解析:

添加操作:
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);//本句的意思为dept表与emp表关联,主表是emp表,辅助表是dept表。关联的是id。

删除操作:
alter table emp drop foreign key fk_emp_dept_id;

 

 

 多表查询:

笛卡尔积

select * from emp,dept where emp.dept_id=dept.id;这个语句就可以实现两个表一起对应出现并查询的情况。后面的where语句只是对应的衔接点。注意的是若衔接不上就不会出现在多表查询的结果。

连接查询——内连接

 隐式内连接:select * from emp,dept where emp.dept_id=dept.id;

显式内连接select * from emp inner join dept on emp.dept_id = dept.id;(inner这个关键字可以省略。)

外连接:

 左外连接:select * from emp left outer join dept on emp.dept_id=dept.id;注意左表的全部会呈现回来,即使有信息没有连接上。outer这个关键字可以省略。

select dept.*,emp.* from emp right outer join dept on emp.dept_id=dept.id;

在实践中,左外连接用的比较多。

自连接:(注意一定要起别名,不然会混淆的)

 举例:select a.name, b.name from emp a , emp b where a.nanagerid=b.id;

联合查询:

 举例:

select * from emp where age<20
union all
select * from emp where salary<20000;

 

 举例说明:

select * from emp where dept_id=(select id from dept where name='总经办');(括号里的就是子查询,放回一条结果,也叫做标量子查询) 
select * from emp where entrydate>(select entrydate from emp where name='金庸');

列子查询:

in:
select * from emp where dept_id in (select id from dept where name='总经办' or name='市场部');

 all:

any:

 行子查询:

 实例:

 表子查询:

 四。事务:

开启事务:

用start transaction,事务执行事务再执行rollback 

设置异常:

设置手动提交的过程:

 但出现异常后,可是使用回滚事务,用rollback;保证数据准确性和完整性

 事务的四大特性ACID(了解一下即可)

 

 第四种隔离级别几种问题可以解决。隔离级别最高,性能最差。其他的√表示可以解决。

 系统默认的事务隔离级别是repeatbale read

事务的隔离级别越高,数据越安全,但是性能越低。

好啦,关于MySQL基础篇就分享到这啦,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值