目录

一、函数

1. 字符串函数 

2. 数值函数

3. 日期函数

4. 流程函数

5. 总结 

二、约束 

1. 概述

2. 约束演示

3. 外键约束

3.1 添加外键

3.2 删除外键 

3.3 外键删除更新行为

4. 总结 

一、函数

1. 字符串函数 

命令如下所示:

-- concat
select concat("Hello" , " MySQL");//Hello MySQL-- lower
select lower("Hello");//hello-- upper
select upper("Hello");//HELLO-- lpad
select lpad('01",5,"-");//---01-- rpad
select rpad('01",5,"-");//01----- trim
select trim(" Hello  MySQL ");//Hello  MySQL-- substring
select substring("Hello MySQL",1,5);//Hello;首位索引为1

案例练习: 

命令如下所示: 

-- 1.由于业务需求变更,企业员工的工号,统一5位数,目前不足5位数的全部在前面补0。比如:1号员工的工号应该为00001,
update emp set workno = lpad(workno,5,"0");

输出如下所示:

2. 数值函数

命令如下所示:  

-- ceil
select ceil(1.1);//2-- floor
select floor(1.9);//1-- mod
seLect mod(3,4);//3%4=3-- rond
select rand();-- round
select round(2.345,2);//2.35

案例练习:  

命令如下所示: 

--若rand生成的数为0.0135566则需要右边补零
select lpad(round(rand()*1000000 , 0),6,"0');

3. 日期函数

命令如下所示:  

-- curdate()
select curdate();-- curtime()
select curtime();-- now ()
select now();-- YEAR MONTH DAY
select YEAR(now());select MONTH(now());seleet DAY(now());-- date_add
select date_add(now(),INTERVAL 70 DAY);
select date_add(now(),INTERVAL 70 MONTH);
select date_add(now(),INTERVAL 70 YEAR);-- datediff
select datediff("2021-12-01", "2021-10-01");//60;前减后

 案例练习:  

 命令如下所示: 

select name,datediff(curdate(),entrydate) as 'entrydays' from emp order by entrydays desc;

 输出如下所示:

4. 流程函数

命令如下所示:  

-- if
select if(true,'Ok','Error');//OK-- ifnull
select ifnull('Ok','Default');//OKselect ifnull(' ','Default');//空select ifnull(null, 'Default');//Default-- case when then else end
--需求:查bemp表的员工姓名和工作地址〔北京/上海---->一线城市,其他---->二线城市)
selectname,( case workaddress when'北京' then '一线城市' when ' 上海' then '一线城市' else '二线城市' end ) as '工作地址 
from emp;

 案例练习:   

生成表:

如下所示: 

命令如下所示:  

selectid,name,(case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end)'数学",(case when english >= 85 then '优秀' when english >=60 then‘及格' else '不及格' end)'英语',(case when chinese >= 85 then '优秀' when chinese >=60 then‘及格'else '不及格' end)'语文
from score;

  输出如下所示:

5. 总结 

二、约束 

1. 概述

2. 约束演示

 案例练习:   

命令如下所示:  

create table user(id int primary key auto_increment comment "主键",name varchar(10) not null unique conment"姓名",age int check ( age > 0 && age c= 120 ) comment"年龄",status char(1]default "1"comment"状态",gender char(1) comment"性别"
)comment '用户表';    --插入数据
insert into user(name ,age,status,gender) values ('Tom1',19,'1','男'),('Tom2',25,0','男');
insert into user(name,age,status,gender) values ('Tom3',19,'1','男');insert into user(name,age,status,gender) values (null,19,'1','男');
insert into user(name,age,status,gender) values ('Tom5',19,'1','男');insert into user(name,age,status,gender) values ('Tom4',80,"1','男');
insert into user(name,age,status,gender) values ('Tom5',-1,'1','男');
insert into user(name,age,status,gender) values ('Tom5',121,'1','男');insert into user(name,age,gender) values ('Tom5',120,'男');

输出如下所示: 

 

图形化界面创建如下所示:

补充: 

3. 外键约束

 命令如下所示:  

--准备数据
create table dept(id int auto_increment comment 'ID' primary key,name varchar(50) not null comment '部门名称',
)comment '部门表';
INSERT INTO dept (id,name) VALUES (1,'研发部'),(2,'市场部'),(3,'财务部'),(6,'销售部'),(5,'总经办');create table emp(id int auto_increment conment 'ID' primary key,name varchar(50) not null comment '姓名',age int comment '年龄',job varchar(20) comment '职位',salary int comment '薪资',entrydate date comment '入职时间',managerid int comment '直属领导ID',ept_id int comment '部门ID'
)comment '员工表';INSERT INTo emp (id,name,age,job, salary,entrydate,managerid,dept_id) VALUES(1,'金庸',66,'总裁' ,2000,'280-01-01',null,5),(2,'张无忌',20,'项目经理',12500,'2005-12-05',1,1),(3,‘杨道',33,'开发',8400, '2000-11-03',2,1),(4,'韦一笑',48,'开发' ,11000,'2682-82-85',2,1),(5,'常遇春',4,'开发' ,10500,'2004-09-87',3,1),(6,'小昭',19,'程序员鼓励师' ,6600,'2004-10-12',2,1);

上述两表并未建立关联 

3.1 添加外键

 命令如下所示:   

--准备数据
create table dept(id int auto_increment comment 'ID' primary key,name varchar(50) not null comment '部门名称',
)comment '部门表';
INSERT INTO dept (id,name) VALUES (1,'研发部'),(2,'市场部'),(3,'财务部'),(6,'销售部'),(5,'总经办');create table emp(id int auto_increment conment 'ID' primary key,name varchar(50) not null comment '姓名',age int comment '年龄',job varchar(20) comment '职位',salary int comment '薪资',entrydate date comment '入职时间',managerid int comment '直属领导ID',ept_id int comment '部门ID'
)comment '员工表';INSERT INTo emp (id,name,age,job, salary,entrydate,managerid,dept_id) VALUES(1,'金庸',66,'总裁' ,2000,'280-01-01',null,5),(2,'张无忌',20,'项目经理',12500,'2005-12-05',1,1),(3,‘杨道',33,'开发',8400, '2000-11-03',2,1),(4,'韦一笑',48,'开发' ,11000,'2682-82-85',2,1),(5,'常遇春',4,'开发' ,10500,'2004-09-87',3,1),(6,'小昭',19,'程序员鼓励师' ,6600,'2004-10-12',2,1);--添加外键
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);

输出如下所示: 

3.2 删除外键 

 命令如下所示:   

--准备数据
create table dept(id int auto_increment comment 'ID' primary key,name varchar(50) not null comment '部门名称',
)comment '部门表';
INSERT INTO dept (id,name) VALUES (1,'研发部'),(2,'市场部'),(3,'财务部'),(6,'销售部'),(5,'总经办');create table emp(id int auto_increment conment 'ID' primary key,name varchar(50) not null comment '姓名',age int comment '年龄',job varchar(20) comment '职位',salary int comment '薪资',entrydate date comment '入职时间',managerid int comment '直属领导ID',ept_id int comment '部门ID'
)comment '员工表';INSERT INTo emp (id,name,age,job, salary,entrydate,managerid,dept_id) VALUES(1,'金庸',66,'总裁' ,2000,'280-01-01',null,5),(2,'张无忌',20,'项目经理',12500,'2005-12-05',1,1),(3,'杨逍',33,'开发',8400, '2000-11-03',2,1),(4,'韦一笑',48,'开发' ,11000,'2682-82-85',2,1),(5,'常遇春',4,'开发' ,10500,'2004-09-87',3,1),(6,'小昭',19,'程序员鼓励师' ,6600,'2004-10-12',2,1);--添加外键
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);--删除外键
hlter table emp drop foreign key fk_emp_dept_id;

 输出如下所示: 

3.3 外键删除更新行为

 命令如下所示:    

--准备数据
create table dept(id int auto_increment comment 'ID' primary key,name varchar(50) not null comment '部门名称',
)comment '部门表';
INSERT INTO dept (id,name) VALUES (1,'研发部'),(2,'市场部'),(3,'财务部'),(6,'销售部'),(5,'总经办');create table emp(id int auto_increment conment 'ID' primary key,name varchar(50) not null comment '姓名',age int comment '年龄',job varchar(20) comment '职位',salary int comment '薪资',entrydate date comment '入职时间',managerid int comment '直属领导ID',ept_id int comment '部门ID'
)comment '员工表';INSERT INTo emp (id,name,age,job, salary,entrydate,managerid,dept_id) VALUES(1,'金庸',66,'总裁' ,2000,'280-01-01',null,5),(2,'张无忌',20,'项目经理',12500,'2005-12-05',1,1),(3,'杨逍',33,'开发',8400, '2000-11-03',2,1),(4,'韦一笑',48,'开发' ,11000,'2682-82-85',2,1),(5,'常遇春',4,'开发' ,10500,'2004-09-87',3,1),(6,'小昭',19,'程序员鼓励师' ,6600,'2004-10-12',2,1);--添加外键
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);--删除外键
hlter table emp drop foreign key fk_emp_dept_id;--外键的删除和更新行为
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on update cascade on delete cascade;

 输出如下所示:  

图形化界面设置如下所示:

4. 总结 

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

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

相关文章

苹果CMS:如何去掉首页帮助提示信息

首先我们安装好苹果CMS,未安装的可以参考苹果cms:介绍及安装 安装好之后我们需要进入模版设置,可能对于刚刚接触CMS框架的朋友是不清楚地址的: https://www.yourweb.com/admin_login.php/admin/mxpro/mxproset 其中【yourweb】…

爱设计AiPPT.cn赵充:营销工作的AI进化

爱设计&AiPPT.cn是一家 AIGC 数字科技企业,致力于打造「下一代个人与组织的 Ai 工作站」 。目前旗下产品包括AiPPT.cn、爱设计AIGC 内容中台、365 编辑器、爱设计在线设计工具、AiH5 等超过 10 余款应用 AI 能力的内容创作工具。日前,爱设计&AiP…

python的协程异步

参考资料 https://blog.csdn.net/qq_43380180/article/details/111573642?spm1001.2014.3001.5506 协程的概念 指的是在一个线程中,可以在某个地方挂起的特殊函数,并且可以重新在挂起处继续运行。协程不是进程,也不是线程。 进程 VS 线程…

dcache-android框架中的设计模式详解

引言:孤独的人喜欢深夜,多情的人喜欢黄昏。幸福的人喜欢阳光,伤心的人偏爱风雨。 众所周知,dcache-android是本人一行一行代码手写出来的Android数据缓存框架,写了好几年了,虽然不是每天写,但一…

【go从入门到精通】精通并发编程-使用扇入扇出提升多个通道之间传递数据的效率

在并发编程领域,Golang 作为一种擅长处理并发的编程语言而脱颖而出。 Go 并发模型的一个关键组件是通道,它允许 goroutine 进行通信并同步其工作。在这里,我们将探讨在 Go 中的多个通道之间传递数据的技术。当需要协调不同 goroutine 之间的工作并管理数据流时,这非常有用。…

TypeScript-类型断言

类型断言 当开发者比TS本身更清楚当前的类型是什么,可以使用断言(as)让类型更加精确和具体 const _link document.getElementById(link) console.log(_link.href) // 出错了,如下图 const _link document.getElementById(link) as HTMLAnchorElement…

【三数之和】python,排序+双指针

暴力搜索3次方的时间复杂度,大抵超时 遇到不会先排序 排序双指针 上题解 照做 class Solution:def threeSum(self, nums: List[int]) -> List[List[int]]:res[]nlen(nums)#排序降低复杂度nums.sort()k0#留两个位置给双指针i,jfor k in range(n-2):if nums[k]…

【再探】Java—泛型

Java 泛型本质是参数化类型,可以用在类、接口和方法的创建中。 1 “擦除式”泛型 Java的“擦除式”的泛型实现一直受到开发者的诟病。 “擦除式”的实现几乎只需要在Javac编译器上做出改进即可,不要改动字节码、虚拟机,也保证了以前没有使…

光伏电站在线监测智能诊断系统:开启无人值守新纪元

光伏电站在线监测智能诊断系统:开启无人值守新纪元 大家都知道光伏电站是通过汲取着太阳的光芒,为人类提供源源不断的电能源。然而,随着光伏电站规模的扩大和复杂性的增加,如何有效提高发电效率、减少人工维护成本,实…

YOLOV5算法多目标检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 随着计算机视觉技术的飞速发展,目标检测已成为许多实际应用场景中的关键技术&…

AWS存储之 Storage Gateway

AWS Storage Gateway是一项混合存储服务,它允许您在本地环境和AWS云之间无缝地集成存储解决方案。它提供了一种简单、安全地方式,让您可以将本地应用程序连接到云存储服务,如Amazon S3、Amazon Glacier、Amazon EBS等。 比如一个公司如果想将…

数据结构之二叉树的超详细讲解(2)--(堆的概念和结构的实现,堆排序和堆排序的应用)

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 数据结构之二叉树的超详细讲解(2)--(堆的概念和结构的实现,堆排序和堆排序的应用) 收录于专栏【数据结构初阶】 本专栏旨在分享学习数据结构学习的一点学习笔记…

电脑卸载linux安装windows后每次开机都出现grub

原因分析 这是因为电脑硬盘中还存在linux系统的引导程序,并且启动顺序还在windows之前,有时候通过bios根本找不到它的存在,以至于每次windows开机出现grub之后都要输入exit退出linux的引导之后才能使得电脑进入windows,这个有时会…

算法训练营第三十六天 | LeetCode 1005 K次取反后最大化的数组、LeetCode 134 加油站

LeetCode 1005 K次组饭后最大化的数组 这题贪的主要是数值最大化。如果K > 负数个数,我们就先将负数全部转换成它的相反数,并将K--,之后K剩余的值可以对2取模,为0的话直接得出最后结果,为的话我们要在当前所有值里…

Python | Leetcode Python题解之第108题将有序数组转换为二叉搜索树

题目: 题解: class Solution:def sortedArrayToBST(self, nums: List[int]) -> TreeNode:def helper(left, right):if left > right:return None# 选择任意一个中间位置数字作为根节点mid (left right randint(0, 1)) // 2root TreeNode(nums…

纯血鸿蒙APP实战开发——边缓存边播放案例

介绍 OhosVideoCache是一个支持边播放边缓存的库,只需要将音视频的url传递给OhosVideoCache处理之后再设置给播放器, OhosVideoCache就可以一边下载音视频数据并保存在本地,一边读取本地缓存返回给播放器,使用者无需进行其他操作…

NDIS小端口驱动(五)

在需要的时候,我们也许需要NDIS微型端口程序信息,下面会从多个方面来讨论如何查询NDIS微型端口驱动。 查询无连接微型端口驱动程序 若要查询无连接微型端口驱动程序维护的 OID,绑定协议调用 NdisOidRequest 并传递 一个NDIS_OID_REQUEST 结…

Mac 安装 git

文章目录 前言一、介绍二、下载三、验证四、配置五、Git常用命令六、git提交和撤销工作流程代码提交和提交同步代码撤销和撤销同步 FAQ1.homebrew 下载解决方法一(强烈推荐):解决方法二: 总结 前言 Git 是一个开源的分布式版本控…

Java - Stream流式编程

Stream流式操作 Stream流式操作,就是学习java.util.stream包下的API,Stream不同于java的输入输出流,是实现对集合(Collection)的复杂操作,例如查找、替换、过滤和映射数据等,集合是一种静态的数…

LeetCode547省份数量

题目描述 有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给…