【数据库-黑马笔记】基础-函数和约束

本文参考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等 

 5、小结:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/526358.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库-第十一章 并发控制【期末复习|考研复习】

前言 总结整理不易,希望大家点赞收藏。 给大家整理了一下数据库系统概论中的重点概念,以供大家期末复习和考研复习的时候使用。 参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。 数据库系统概论系列文章传送门: 第一章 绪论 第二/…

微信私信短剧机器人源码

本源码仅提供参考,有能力的继续开发 接口为api调用 云端同步 https://ys.110t.cn/api/ajax.php?actyingshilist 影视搜索 https://ys.110t.cn/api/ajax.php?actsearch&name剧名 每日更新 https://ys.110t.cn/api/ajax.php?actDaily 反馈接口 https://ys.11…

在线部署ubuntu20.04服务器,安装jdk、mysql、redis、nginx、minio、开机自启微服务jar包

一、服务器 1、查看服务器版本 查看服务器版本为20.04 lsb_release -a2、服务器信息 服务器初始账号密码 sxd / 123456 首先,更改自身密码都输入123456 sudo passwd 创建最高权限root账号,密码为 123456 su root 3、更新服务器源 1、更新源列表 sudo apt-g…

【零基础学习01】嵌入式linux驱动中pinctrl和gpio子系统实现

大家好,为了进一步提升大家对实验的认识程度,每个控制实验将加入详细控制思路与流程,欢迎交流学习。 今天给大家分享一下,linux系统里面pinctrl和gpio子系统控制实验,操作硬件为I.MX6ULL开发板。 第一:pinctrl和gpio子系统简介 Linux系统是一个庞大又完善的系统,如果采用…

Day19:信息打点-红蓝队自动化项目资产侦察武器库部署企查产权网络空间

目录 各类红蓝队优秀工具项目集合 自动化-武器库部署-F8x 自动化-网络空间-AsamF 自动化-企查信息-ENScan 自动化-综合架构-ARL&Nemo 思维导图 章节知识点 Web:语言/CMS/中间件/数据库/系统/WAF等 系统:操作系统/端口服务/网络环境/防火墙等 应…

DataFunSummit 2023:洞察现代数据栈技术的创新与发展(附大会核心PPT下载)

随着数字化浪潮的推进,数据已成为企业竞争的核心要素。为了应对日益增长的数据挑战,现代数据栈技术日益受到业界的关注。DataFunSummit 2023年现代数据栈技术峰会正是在这样的背景下应运而生,汇聚了全球数据领域的精英,共同探讨现…

多维时序 | Matlab实现BiGRU-Mutilhead-Attention双向门控循环单元融合多头注意力机制多变量时序预测

多维时序 | Matlab实现BiGRU-Mutilhead-Attention双向门控循环单元融合多头注意力机制多变量时序预测 目录 多维时序 | Matlab实现BiGRU-Mutilhead-Attention双向门控循环单元融合多头注意力机制多变量时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.多维时序 …

JVM的工作流程

目录 1.JVM 简介 2.JVM 执行流程 3. JVM 运行时数据区 3.1 堆(线程共享) 3.3 本地方法栈(线程私有) 3.4 程序计数器(线程私有) 3.5 方法区(线程共享) 4.JVM 类加载 ① 类…

蓝桥杯大赛软件python赛道真题:蛇形填数

真题链接:https://www.lanqiao.cn/problems/594/learning/ 题目描述: 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 如下图所示,小明用从1开始的正整数“蛇形”填充无限大的矩阵。 1 2 6 …

最简单的基于 FFmpeg 的内存读写的例子:内存转码器

最简单的基于 FFmpeg 的内存读写的例子:内存转码器 最简单的基于 FFmpeg 的内存读写的例子:内存转码器正文源程序结果工程文件下载参考链接 最简单的基于 FFmpeg 的内存读写的例子:内存转码器 参考雷霄骅博士的文章,链接&#xf…

【脚本玩漆黑的魅影】全自动丢球

文章目录 原理全部代码 原理 启动后截图。 丢球以后再截图。 如果两图一致,说明没成功,读档重来。 如果两图不一致,说明成功了。 while True:press(A)time.sleep(2)if is_same_img(ImageGrab.grab(), data_img):press(save2)else:break全部…

让Putty支持Tab页(多连接管理)

让Putty支持Tab页(多连接管理) 1 介绍2 PuTTY缺陷3 支持Tab页4 支持用户名和密码保存 1 介绍 PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。PuTTY为一开放源代码软件,主要由Simon Tatham维护,使用MIT licence授权…