本文参考b站黑马数据库视频,总结详细全面的笔记 ,可结合视频观看27~36集
MYSQL 的基础知识框架如下
目录
一、 函数
1、字符串函数
2、数值函数
3、日期函数
4、流程函数
5、小结:
二、约束
1、概述
2、 约束演示
3、外键约束
4、外键删除更新行为
5、小结:
一、 函数
1、字符串函数
换主题颜色【即背景颜色】-File-Settings-Appearance&&Behavior-Appearance-Theme-然后自己喜欢的即可
update emp set workno = lpad(workno, 5, '0');
2、数值函数
-- 数值函数
select ceil(1.2); #2
select floor(1.22); #1
select mod(7, 2); #1
select rand(); #0.37482783828362115
select round(1.245, 2);#1.25
运行结果之一:
3、日期函数
-- 日期函数
select curdate(); #2024-03-06
select curtime(); #13:48:44
select now(); #2024-03-06 13:49:07
select year(now()); #2024
select month(now()); #3
select day(now()); #6
-- 往后推70天、15个月、20年
select date_add(now(), interval 70 day ); #2024-05-15 13:52:19
select date_add(now(), interval 15 month ); #2025-06-06 13:53:23
select date_add(now(), interval 20 year ); #2044-03-06 13:54:18
-- datediff【用第一个日期-第二个日期得到的天数】
select datediff('2024-03-06', '2024-07-11'); #-127
select datediff('2024-07-11', '2024-03-06'); #127
4、流程函数
-- 流程函数
select if(true, 'OK', 'Error'); #OK
select if(false, 'OK', 'Error'); #Error
select ifnull('ok', 'error'); #ok
select ifnull('', 'error'); #空【不是汉字,是什么都没返回】
select ifnull(null, 'error'); #error-- case when then else end
-- 需求:查询emp表的员工姓名和工作地址(将成都市武侯区 和 北京市朝阳区 显示为 一线城市, 其他城市 显示为 二线城市)
selectname,(case workaddress when '成都市武侯区' then '一线城市' when '北京市朝阳区' then '一线城市' else '二线城市' end) as '工作地址'
from emp;
-- 案例:统计班级各个学员的成绩,显示的规则如下:
-- >=85,显示优秀 >= 60,显示及格 否则显示不及格
create table score(id int comment 'ID',name varchar(20) comment '姓名',math int comment '数学',english int comment '英语',chinese int comment '语文'
) comment '学员成绩表';
insert into score(id, name, math, english, chinese) values(1,'Tom',67,88,95),(2,'Rose',23,66,90),(3,'Jack',56,98,76);
5、小结:
二、约束
1、概述
2、 约束演示
非空约束:
唯一约束:
检查约束:
补充:
默认约束:
默认情况下会用字符'1'
最后,我们可以用图形化界面建表实现对字段的约束【更简单】
3、外键约束
先创建两张表:
如果此时删除1号研发部,可以按下面①②两个步骤删除
那么如何添加外键?语法如下:
我们先补齐刚才删的数据:
添加外键:
注:添加外键后两个表中的数据是没变化的
4、外键删除更新行为
①、更新和删除时均cascate:
同理,如果修改dept表中的1号为6号【还没删除的话】,emp表中对应原来dept_id为1的都将变成6号
②、更新和删除时均set null:
因为dept和emp表数据变化了,所以我们借助最开始的建表语句,再次创建两个表
当然,也可以不用sql语句,通过图形化界面来set null和cascade等