黑马程序员 MySQL数据库笔记,个人学习用
目录
一、基础
1.SQL
1)MySQL数据库介绍
2)SQL分类
3)DQL
-基础查询
①查询多个字段
SELECT 字段1,字段2,字段3,... FROM 表名; -查询该表指定字段
SELECT * FROM 表名; -查询该表全部字段
注意:尽量不使用*,原因:不直观、影响效率
②字段设置别名
SELECT 字段1 [AS 别名1], 字段2 [AS 别名2]... FROM 表名;
-AS也可省略
③去重记录
SELECT DISTINCT 字段列表 FROM 表名;
-条件查询
①不等于
select * from emp where age != 88;
select * from emp where age <> 88;
②在15岁(包含) 到 20岁(包含)之间
select * from emp where age >= 15 && age = 15 and age <= 20;
select * from emp where age between 15 and 20;
③等于18 或 20 或 40 的员工信息
select * from emp where age = 18 or age = 20 or age =40;
select * from emp where age in(18,20,40);
④模糊查询 _ %
select * from emp where name like '_ _'; -两个下划线,匹配名字有两个字
select * from emp where idcard like '%X';-查询身份证号最后一位是X的员工信息
-聚合函数
-分组查询
-排序查询
-分页查询
-执行顺序
4)DCL
-用户管理
-权限控制
2.函数
函数:指一段可以被另一段程序调用的程序或代码。
1)字符串函数
2)数值函数
3)日期函数
4)流程控制函数
3.约束
1)外键约束
-概念
-添加外键
-删除外键
-例子
-- 添加外键
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);
-- 删除外键
alter table emp drop foreign key fk_emp_dept_id;
2)外键删除更新行为
-行为
-语法
-- 外键删除更新行为
-- cascade 级联行为:父表字段删除/更新,关联的子表字段也删除/更新
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id)
on update cascade on delete cascade ;
-- set null:父表字段删除,对应子表该外键值设为 null
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id)
on update set null on delete set null ;
4.多表查询
1)多表关系
-
一对多(多对一)
-
多对多
-
一对一
2)多表查询概述
-概念
-分类
3)连接查询
-内连接
-外连接
-自连接
4)联合查询
5)子查询
-标量子查询
-列子查询
-行子查询
select * from emp where (salary, managerid) = (12500, 1);
-- 等同于
select * from emp where salary = 12500 and managerid = 1;
-表子查询
5.事务
1)事务简介
2)事务操作和四大特性
手动提交:执行SQL语句后,只是暂存了,并没有真正改变数据
commit提交才是真正改变数据(相当于保存
若执行SQL语句报错,可不commit,而是rollback回滚事务(相当于撤销
3)并发事务问题
4)事务的隔离级别
-- 查看事务隔离级别
SELECT @@TRANSACTION_ISOLATION;
-- 设置事务隔离级别
-- SESSION:只对当前会话有效
-- GLOBAL:对全部会话有效
SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED |READ COMMITED |REPEATABLE READ | SERALZABLE}