MySQL-基础

1.DQL语句完整语法和执行顺序
select … from … where … group by … having … order by … limit …
顺序:5123467

2.添加外键
alter table emp add constraint f_key foreign key (dept_id) references dept(id) on update cascade on delete cascade;
dept为父表,id为主键字段;emp为子表,dept_id为外键字段;f_key为外键名称;cascade是一种同步跟新的级联行为
删除外键:alter table emp drop foreign key f_key;

3.多表查询
(1)一对多
案例:部门与员工的关系
关系:一个部门对应多个员工,一个员工对应一个部门。实现:在多的一方建立外键,指向一的一方的主键
(2)多对多
案例:学生与课程的关系
关系:一个学生可以选修多门课程,一门课程也可以供多个学生选择实现:建立第三张中间表,中间表至少包含两个外键,分别关联两方主键

(3)一对一
案例:用户与用户详情的关系
关系:一对一关系,多用于单表拆分,将一张表的基础字段放在一张表中,其他详情字段放在另一张表中,以提升操作效率
实现:在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的(UNIQUE)

4.内连接
隐式:select * from emp, dept where emp.dept_id=dept.id;
显式:select * from emp inner join dept on emp.dept_id=dept.id;

5.左/右外连接
select * from emp e, dept d left/right join on e.dept_id=d.id;

6.自连接(必须取表的别名)
案例:查询员工及其所属领导的名字
select a.name, b.name from emp a, emp b where a.id=b.managerid;
a查领导名字,b查员工名字

7.联合查询
案例:将薪资低于5000的员工,和年龄大于50 岁的员工全部查询出来
select * from emp where salary<5000
union all
select * from emp where age>50;

8.子查询(嵌套查询)
SELECT * FROM t1 WHERE column1 = ( SELECT column1 FROM t2 );

9.事务 :
(1)概念
事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。
就比如:张三给李四转账10oo块钱,张三银行账户的钱减少1000,而李四银行账户的钱要增加1000。这一组操作就必须在一个事务的范围内,要么都成功,要么都失败。

(2)事务操作
查看事务:select @@autocommit;
关闭事务自动提交:set @@autocommnit=0;
开启事务:start transaction/begin;
提交事务:commit;
回滚事务:rollback;
(3)事务四大特性(ACID)
原子性(Atomicity)︰事务是不可分割的最小操作单元,要么全部成功,要么全部失败。
一致性(consistency)︰事务完成时,必须使所有的数据都保持一致状态。
隔离性(Isolation)︰数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。
持久性(Durability)︰事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。

10.并发事务问题
(1)赃读:一个事务读到另外一个事务还没有提交的数据。
(2)不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读。
(3)幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了 “幻影”。

11.事务隔离级别

查询事务隔离级别:select @@transaction_isolation;
设置事务隔离级别:set session/global transaction isolation level 级别;

12.数值类型及其大小
tinyint 1 字节
smallint 2
mediumint 3
int 4
bigint 8
float 4
double 8
char 0-255
varchar 0-65535

13.对表的增删改操作
(1)增
insert into 表名 (字段名1,字段名2…) values (值1,值2…);
(2)删
delete from 表名 where 条件;
(3)改
update 表名 set 字段名1=值1, 字段名2=值2… where 条件;

参考B站课程:MySQL数据库入门到精通

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值