二、SQL基础学习(函数、约束、事务)

目录

  • 1、函数
    • 1.1、字符串函数
    • 1.2、数值函数
    • 1.3、日期函数
    • 1.4 、流程函数
  • 2、约束
    • 2.1、外键约束
    • 2.2、删除/更新行为
  • 3、事务
    • 3.1、事务的四大特性
    • 3.2、并发事务问题
    • 3.2、事务的隔离级别

1、函数

1.1、字符串函数

在这里插入图片描述

# concat
select concat('Hello', ' MySql');# lower
select lower('Hello');
# upper
select upper('Hello');# lpad
select lpad('01', 5, '-');
# rpad
select rpad('01', 5, '-');# trim
select trim(' Hello MySql ');# substring
select substring('Hello MySql', 1, 5);

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

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

在这里插入图片描述

1.2、数值函数

在这里插入图片描述

# ceil
select ceil(1.1);# floor
select floor(1.9);# mod
select mod(2,4);
select mod(6,4);# rand
select rand();# round
select round(2.345, 2);
select round(2.344, 2);

eg:# 通过数据库的数据,生成一个六位数的随机验证码

select lpad(round(rand() * 1000000,0), 6, '0');

1.3、日期函数

在这里插入图片描述

# curdate
select curdate();# curtime
select curtime();# now
select now();# year(date)
select year(curtime());# month(date)
select month(curtime());# day(date)
select day(curtime());# data_add(date, interval expr type)
select date_add(curtime(), interval 70 year);
select date_add(curtime(), interval 70 month);
select date_add(curtime(), interval 70 day);# datediff(date1, date2)
select datediff('2020-12-01','2020-11-01');

eg:查询所有员工的入职天数,并根据入职天数倒叙排序

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

1.4 、流程函数

在这里插入图片描述

# if
select if(true, 'ok', 'error');
select if(false, 'ok', 'error');# ifnull
select ifnull('ok', 'default');
select ifnull('', 'default');
select ifnull(null, 'default');# case when then else end
# 查询emp表的员工姓名和工作地址(北京/上海--->一线城市,其他 ----> 二线城市)
selectname,(case workadderss when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end) as '工作地址'
from emp;

在这里插入图片描述

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

2、约束

  1. 概念:约束是作用于表字段上的规则,用于限制存储在表中的数据。

  2. 目的:保证数据库中数据的正确、有效性和完整性。

  3. 分类:
    在这里插入图片描述
    注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。

举例:
在这里插入图片描述

create table user(id int primary key auto_increment comment '主键',name varchar(10) not null unique comment '姓名',age int check ( age > 0 and age <= 120 ) comment '年龄',status char(1) default '1' comment '状态',gender char(1) comment '性别'
)comment '用户表';insert into user(name, age, status, gender) values ('Tom', 19, '1', '男'), ('Jack', 25, '0', '男');
insert into user(name, age, status, gender) values ('Anson',19, '1', '男');
select * from user;-- insert into user(name, age, status, gender) values (null, 19, '1', '男');  # name不为空
-- insert into user(name, age, status, gender) values ('Anson',19, '1', '男'); # 已经存在insert into user(name, age, status, gender) values ('Tom4', 80, '1', '男');
-- insert into user(name, age, status, gender) values ('Tom5', -1, '1', '男');  # check检查
insert into user(name, age, status, gender) values ('Tom4', 121, '1', '男');     #check检查insert into user(name, age, gender) values ('Tom5', 80, '男');       # default语句

2.1、外键约束

外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。

---添加外键
alter table 表名 add constraint 外键名称 foreign key(外键字段名) references 主表(主表列名);
---举例
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);---删除外键
alter table 表名 drop foreign key 外键名称;
---举例
alter table emp drop foreign key fk_emp_dept_id;

在这里插入图片描述

在这里插入图片描述

2.2、删除/更新行为

在这里插入图片描述

alter table 表名 add constraint 外键名称 foreign key (外键字段) references 主表名(主表字段名) on update cascade on delete cascade;
---举例(级联更新)
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on update cascade on delete cascade ;

在这里插入图片描述
在这里插入图片描述

alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on update set null on delete set null;

在这里插入图片描述

3、事务

一组操作的集合,是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。
默认MySQL的事务时自动提交的,也就是说,当执行一条 DML语句马,MySQL会立即隐式的提交事务。

举例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时执行完语句,数据没有发生变化。需要执行commit语句
在这里插入图片描述
执行错误,执行回滚事务。(rollback)

在这里插入图片描述

3.1、事务的四大特性

在这里插入图片描述

3.2、并发事务问题

在这里插入图片描述

3.2、事务的隔离级别

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Linux操作系统的安全相关介绍

Linux操作系统的安全模型、访问控制、安全策略和加密机制是确保系统安全的重要组成部分。下面将详细介绍这些方面。 安全模型 Linux操作系统的安全模型基于传统的Unix安全模型&#xff0c;主要包括以下核心概念&#xff1a; 1. **用户和组**&#xff1a;Linux系统中的每…

外贸网站文章批量生成器

随着全球贸易的不断发展&#xff0c;越来越多的企业开始关注外贸市场&#xff0c;而拥有高质量的内容是吸引潜在客户的关键之一。然而&#xff0c;为外贸网站生产大量优质的文章内容可能是一项耗时且繁琐的任务。因此&#xff0c;外贸网站文章批量生成软件成为了解决这一难题的…

elk收集k8s微服务日志

一、前言 使用filebeat自动发现收集k8s的pod日志&#xff0c;这里分别收集前端的nginx日志&#xff0c;还有后端的服务java日志&#xff0c;所有格式都是用json格式&#xff0c;建议还是需要让开发人员去输出java的日志为json&#xff0c;logstash分割java日志为json格式&#…

如何选择合适的数据可视化工具?

如果是入门级的数据可视化工具&#xff0c;使用Excel插件就足够了&#xff01; Excel插件&#xff0c;tusimpleBI 是一款 Excel 图表插件&#xff0c;提供超过120项图表功能&#xff0c;帮助用户制作各种 Excel 所没有的高级图表&#xff0c;轻轻松松一键出图。 它能够制作10…

Apache FtpServer在Windows上下载安装与使用

Apache FtpServer在Windows上下载安装与使用 1、Apache Ftp Server下载 进入apache官网 https://mina.apache.org/ftpserver-project/old-downloads.html 下载自己使用的版本。 Apache FtpServer 1.1.1及以下的版本需要JDK1.7的支持 Apache FtpServer 1.1.1以上的版本需要JDK…

【数据挖掘】实验3:常用的数据管理

实验3&#xff1a;常用的数据管理 一&#xff1a;实验目的与要求 1&#xff1a;熟悉和掌握常用的数据管理方法&#xff0c;包括变量重命名、缺失值分析、数据排序、随机抽样、字符串处理、文本分词。 二&#xff1a;实验内容 【创建新变量】 方法1&#xff1a; mydata <…

【nfs报错】rpc mount export: RPC: Unable to receive; errno = No route to host

NFS错误 问题现象解决方法 写在前面 这两天搭建几台服务器&#xff0c;需要使用nfs服务&#xff0c;于是六台选其一做服务端&#xff0c;其余做客户端&#xff0c;搭建过程写在centos7离线搭建NFS共享文件&#xff0c;但是访问共享时出现报错&#xff1a;rpc mount export: RPC…

Linux 文件系统:C语言接口、系统接口

目录 一、文件接口 二、感性理解Linux系统下“一切皆文件” 三、C语言文件接口 1、fopen 2、当前路径 3、fwrite、fprintf、fputs 4、fgets 模拟实现cat命令 五、系统接口 1、open系统调用 2、write系统调用 例&#xff1a;O_WRONLY 例&#xff1a;O_WRONLY|O_CREAT…

Java基础经典10道题

目录 for循环的嵌套 题目一: 求101到200之间的素数的个数,并打印 代码分析: 注意点: 题目二:开发验证码 代码分析: 题目三:数组元素的复制 代码分析: 题目四:评委打分 健壮版代码: 代码分析:看源码 注意点: 题目五:数字加密 优化版代码: 代码分析: 题目六:数字…

MATLAB教程

目录 前言一、MATLAB基本操作1.1 界面简介1.2 搜索路径1.3 交互式命令操作1.4 帮助系统 二、MATLAB语言基础2.1 数据类型2.2 MATLAB运算2.2.1 算数运算2.2.2 关系运算2.2.3 逻辑运算 2.3 常用内部函数2.4 结构数据与单元数据 三、MATLAB程序设计3.1 M文件3.2 函数文件3.3 程序控…

机器学习_聚类(k-means)

文章目录 聚类步骤k-means APIKmeans性能评估指标Kmeans性能评估指标API 聚类步骤 k-means通常被称为劳埃德算法&#xff0c;这在数据聚类中是最经典的&#xff0c;也是相对容易理解的模型。算法执行的过程分为4个阶段。 1.首先&#xff0c;随机设K个特征空间内的点作为初始的…

【机器学习】经典目标检测算法:RCNN、Fast RCNN、 Faster RCNN 基本思想和网络结构介绍

文章目录 三者的比较&#xff1a;RCNN、Fast RCNN、 Faster RCNN一、框架的对比1.三者都是二阶算法&#xff0c;网络框架比较&#xff1a;2.三者的优缺点比较&#xff1a; RCNN一、RCNN系列简介二、RCNN算法流程的4个步骤三、RCNN存在的问题四、论文解析补充1.R-CNN提出了两个问…