MySQL— 基础语法大全及操作演示!!!(下)

MySQL—— 基础语法大全及操作演示(下)—— 持续更新

    • 三、函数
      • 3.1 字符串函数
      • 3.2 数值函数
      • 3.3 日期函数
      • 3.4 流程函数
    • 四、约束
      • 4.1 概述
      • 4.2 约束演示
      • 4.3 外键约束
          • 4.3.1 介绍
          • 4.3.2 语法
          • 4.3.3 删除/更新行为
    • 五、多表查询
      • 5.1 多表关系
          • 5.1.1 一对多
          • 5.1.2 多对多
          • 5.1.3 一对一
      • 5.2 多表查询概述
          • 5.2.1 数据准备
          • 5.2.2 概述
          • 5.2.3 分类
      • 5.3 内连接
      • 5.4 外连接
      • 5.5 自连接
          • 5.5.1 自连接查询
          • 5.5.2 联合查询
      • 5.6 子查询
          • 5.6.1 概述
          • 5.6.2 标量子查询
          • 5.6.3 列子查询
          • 5.6.4 行子查询
          • 5.6.5 表子查询
    • 六、事务
      • 6.1 事务简介
      • 6.2 事务操作
          • 6.2.1 未控制事务
          • 6.2.2 控制事务一
          • 6.2.3 控制事务二
      • 6.3 事务四大特性
      • 6.4 并发事务问题
      • 6.5 事务隔离级别

【MySQL— 基础语法大全及操作演示!!!(上)】

三、函数

函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在MySQL中
已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。

那么,函数到底在哪儿使用呢?

我们先来看两个场景:
在这里插入图片描述

  1. 在企业的OA或其他的人力系统中,经常会提供的有这样一个功能,每一个员工登录上来之后都能够看到当前员工入职的天数。 而在数据库中,存储的都是入职日期,如 2017-11-12,那如果快速计算出天数呢?
  2. 在做报表这类的业务需求中,我们要展示出学员的分数等级分布。而在数据库中,存储的是学生的分数值,如98/75,如何快速判定分数的等级呢?

其实,上述的这一类的需求呢,我们通过MySQL中的函数都可以很方便的实现 。

MySQL中的函数主要分为以下四类: 字符串函数数值函数日期函数流程函数

3.1 字符串函数

MySQL中内置了很多字符串函数,常用的几个如下:

在这里插入图片描述

举个栗子: 由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0。比如: 1号员工的工号应该为00001。

update emp set workno = lpad(workno, 5, '0');

在这里插入图片描述

3.2 数值函数

常见的数值函数如下:

在这里插入图片描述
举个栗子: 通过数据库的函数,生成一个六位数的随机验证码。

  • 思路: 获取随机数可以通过rand()函数,但是获取出来的随机数是在0-1之间的,所以可以在其基础
    上乘以1000000,然后舍弃小数部分,如果长度不足6位,补0
select lpad(round(rand()*1000000 , 0), 6, '0');

在这里插入图片描述

3.3 日期函数

常见的日期函数如下:

在这里插入图片描述

举个栗子: 查询所有员工的入职天数,并根据入职天数倒序排序。

  • 思路: 入职天数,就是通过当前日期 - 入职日期,所以需要使用 datediff 函数来完成。
select name, datediff(curdate(), entrydate) as 'entrydays' from emp order by entrydays desc;

在这里插入图片描述

3.4 流程函数

流程函数也是很常用的一类函数,可以在SQL语句中实现 条件筛选,从而提高语句的效率。

在这里插入图片描述
举个栗子: 需求: 查询emp表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)

selectname,( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else'二线城市' end ) as '工作地址'
from emp;

在这里插入图片描述

🚀🚀🚀 函数操作 快速食用:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------->

## 3.1 字符串函数-----------------------------------------------------
# 1. concat : 字符串拼接
select concat('1 Hello', ' MySQL');
# 2. lower : 全部转小写
select lower('Hello');
# 3. upper : 全部转大写
select upper('Hello');
# 4. lpad : 左填充,达到5个字符
select lpad('01', 5, '-');
# 5. rpad : 右填充,达到5个字符
select rpad('01', 5, '-');
# 6. trim : 去除头尾空格
select trim(' Hello MySQL ');
# 7. substring : 截取子字符串,从第一个截取5个字符
select substring('r Hello MySQL', 1, 5);## 3.2 数值函数-------------------------------------------------------
# 1. ceil:向上取整,值为2
select ceil(1.1);
# 2. floor:向下取整,值为1
select floor(1.9);
# 3. mod:取模,值为3
select mod(7, 4);
# 4. rand:获取随机数
select rand();
# round:四舍五入,值为2.34
select round(2.344, 2);## 3.3 日期函数-------------------------------------------------------
# 1. curdate:当前日期
select curdate();
# 2. curtime:当前时间
select curtime();
# 3. now:当前日期和时间
select now();
# 4. YEAR , MONTH , DAY:当前年、月、日
select year(now());
select month(now());
select day(now());
# 5. date_add:增加指定的时间间隔
select date_add(now(), interval 70 year );
# 6. datediff:获取两个日期相差的天数
select datediff('2021-10-01', '2021-12-01');## 3.4 流程函数-------------------------------------------------------
# 1. if,返回 Error
select if(false, 'Ok', 'Error');
# 2. ifnull
select ifnull('Ok','Default'); 	# 返回 Ok
select ifnull('','Default');	# 返回 ‘’ 
select ifnull(null,'Default');	# 返回 Default
# 3. case when then else end
selectname,( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else'二线城市' end ) as '工作地址'
from emp;

四、约束

4.1 概述

  • 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。
  • 目的:保证数据库中数据的正确、有效性和完整性。
  • 分类:
    在这里插入图片描述

注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。

4.2 约束演示

4.3 外键约束

4.3.1 介绍
4.3.2 语法
4.3.3 删除/更新行为

五、多表查询

5.1 多表关系

5.1.1 一对多
5.1.2 多对多
5.1.3 一对一

5.2 多表查询概述

5.2.1 数据准备
5.2.2 概述
5.2.3 分类

5.3 内连接

5.4 外连接

5.5 自连接

5.5.1 自连接查询
5.5.2 联合查询

5.6 子查询

5.6.1 概述
5.6.2 标量子查询
5.6.3 列子查询
5.6.4 行子查询
5.6.5 表子查询

六、事务

6.1 事务简介

6.2 事务操作

6.2.1 未控制事务
6.2.2 控制事务一
6.2.3 控制事务二

6.3 事务四大特性

6.4 并发事务问题

6.5 事务隔离级别

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

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

相关文章

【数据结构系列】链表

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

SwiftUI 动画进阶:实现行星绕圆周轨道运动

0. 概览 SwiftUI 动画对于优秀 App 可以说是布帛菽粟。利用美妙的动画我们不仅可以活跃界面元素,更可以单独打造出一整套生动有机的世界,激活无限可能。 如上图所示,我们用动画粗略实现了一个小太阳系:8大行星围绕太阳旋转,而卫星们围绕各个行星旋转。 在本篇博文中,您将…

CSDN编程题-每日一练(2023-08-17)

CSDN编程题-每日一练(2023-08-17) 一、题目名称:计算公式二、题目名称:计算逆波兰表达式的结果三、题目名称:争抢糖豆 一、题目名称:计算公式 时间限制:1000ms内存限制:256M 题目描述…

Linux MQTT智能家居(温度,湿度,环境监测,摄像头等界面布局设置)

文章目录 前言一、温度湿度曲线布局二、环境监测界面布局三、摄像头界面布局总结 前言 本篇文章来完成另外三个界面的布局设置。 这里会使用到 feiyangqingyun的一些控件库。 一、温度湿度曲线布局 TempHumtiy.h: #ifndef TEMPHUMTIY_H #define TEMPHUMTIY_H#include <…

第十三课:QtCmd 命令行终端应用程序开发

功能描述&#xff1a;开发一个类似于 Windows 命令行提示符或 Linux 命令行终端的应用程序 一、最终演示效果 QtCmd 不是因为它是 Qt 的组件&#xff0c;而是采用 Qt 开发了一个类似 Windows 命令提示符或者 Linux 命令行终端的应用程序&#xff0c;故取名为 QtCmd。 上述演示…

船舶法兰盘法兰管件3D扫描尺寸测量|三维扫描检测|CAV测量-CASAIM

第一章 服务背景 船舶建造多采用分段建造法&#xff0c;即将零件、预装好的部件在胎架上组合焊接成分段或总段&#xff0c;然后由船台装配成整船的建造方法。而当船体合拢组装时&#xff0c;在船体上遍布着各种各样的管道&#xff0c;这些管道都需要互相完全适配以确保船体安装…

基于SSM的超市管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测

分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测 目录 分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.分类预测 | MATLAB实现GAPSO-LSSVM多输入分类预测 2.代码说明&#xff1a;要求于Matlab 2021版及以上版本。 程序…

插槽Slot的作用和基本使用;具名插槽的使用;作用域插槽Slot使用;全局事件总线使用;依赖注入Provide/Inject

目录 1_插槽Slot的作用1.1_认识插槽Slot1.2_如何使用插槽slot1.3_插槽的默认内容1.4_多个插槽的效果 2_插槽Slot基本使用3_具名插槽的使用4_作用域插槽Slot使用4.1_渲染作用域4.2_认识作用域插槽4.3_独占默认插槽的缩写 5_全局事件总线使用5.1_全局事件总线mitt库5.2_使用事件总…

C++QT教程3——手册4.11.1自带教程(笔记)——创建一个基于Qt Widget的应用程序

文章目录 创建一个基于Qt Widget的应用程序创建Text Finder项目素材文件 填补缺失的部分设计用户界面完成头文件完成源文件创建资源文件 编译和运行程序 参考文章 创建一个基于Qt Widget的应用程序 本教程介绍如何使用Qt Creator创建一个小型Qt应用程序&#xff0c;名为Text F…

JVM中判定对象是否回收的的方法

引用计数法 引用计数法是一种垃圾回收&#xff08;Garbage Collection&#xff09;算法&#xff0c;用于自动管理内存中的对象。在引用计数法中&#xff0c;每个对象都有一个关联的引用计数器&#xff0c;用于记录对该对象的引用数量。 当一个新的引用指向对象时&#xff0c;…

网工内推 | 外企网工,带专业培训,NP认证优先

01 广州开讯通信技术有限公司 &#x1f537;招聘岗位&#xff1a;网络工程师 &#x1f537;职责描述&#xff1a; 1、负责组织制定系统集成项目的技术方案编写、标书的准备、讲解及用户答疑等工作; 2、配合客户经理完成与用户的技术交流、技术方案宣讲、系统演示等工作; 3、配…

关于Neo4j的使用及其基本命令

关于Neo4j的使用 文章目录 关于Neo4j的使用1、启动方式2、创建新节点&#xff0c;节点内有属性3、创建关系4、查询节点5、查询关系6、删除两个节点的关系7、删除节点8、删除某个标签的全部关系9、某个节点添加属性10、删除节点某个属性 1、启动方式 进入bin目录&#xff1a; …

进程|详解~什么是进程 以及 进程创建原理和过程

1.什么是进程 进程是正在运行的程序。 UNIX标准将进程定义为&#xff1a;其中运行着一个或者多个线程的地址空间和这些线程所需要的系统资源(分配给线程线程共享系统资源)。 组成&#xff1a;进程由程序代码、数据、变量(占用着系统内存)、打开的文件(文件描述符)、环境组成…

Java Persistence APl(JPA)——JPA是啥? SpringBoot整合JPA JPA的增删改查 条件模糊查询 多对一查询

目录 引出Jpa是啥&#xff1f;Jpa的使用创建实体类写dao接口类写服务类 crud增删改查增加修改根据id删除全查询分页查询 条件查询模糊查询单条件查询多条件查询模糊查询排序查询 多对一查询定义实体类auto主键策略下新增进行全查询测试 全部代码application.yml配置类pom配置文…

易服客工作室:UberMenu WordPress插件 - 网站超级菜单插件

UberMenu WordPress插件是一个用户友好、高度可定制、响应迅速的 Mega Menu WordPress 插件。它与 WordPress 3 菜单系统一起开箱即用&#xff0c;易于上手&#xff0c;但功能强大&#xff0c;足以创建高度定制化和创意的大型菜单配置。 网址: UberMenu WordPress插件 - 网站超…

【hive】hive分桶表的学习

hive分桶表的学习 前言&#xff1a; 每一个表或者分区&#xff0c;hive都可以进一步组织成桶&#xff0c;桶是更细粒度的数据划分&#xff0c;他本质不会改变表或分区的目录组织方式&#xff0c;他会改变数据在文件中的分布方式。 分桶规则&#xff1a; 对分桶字段值进行哈…

Linux apt 命令

Linux apt 命令 apt&#xff08;Advanced Packaging Tool&#xff09;是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。 apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令&#xff0c;而且命令简洁而又好记。 apt 命令执行需要超级管理员权限…

爬虫逆向实战(十六)--某建筑市场平台

一、数据接口分析 主页地址&#xff1a;某建筑市场平台 1、抓包 通过抓包可以发现数据接口是list 2、判断是否有加密参数 请求参数是否加密&#xff1f; 无请求头是否加密&#xff1f; 无响应是否加密&#xff1f; 通过查看“响应”模块可以发现&#xff0c;返回的响应是…

Docker容器与虚拟化技术:Docker容器操作、网络模式

目录 一、理论 1.Docker 容器操作 2.Docker 网络 二、实验 1.Docker 容器操作 2.Docker 网络 2.Docker 的网络模式 三、问题 1. 批量删除所有容器未生效 2.使用bridge模式指定IP运行docker报错 3.未显示bridge网络模式名称 四、总结 一、理论 1.Docker 容器操作 &a…