一.函数
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基础篇就分享到这啦,
版权声明:本文为m0_63932570原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。