MySQL(2/3)

select和别名的使用

主要是用以查询数据

语法:select 字段 from 库名

-- *代表全部字段
select * from `student`;
-- 可以查询多个字段,并使用as起别名,as可以省略
select `id` as bbb ,`name` as hhh from `student`;
-- 可以使用函数concat(a,b)
-- 列名为as后的新名字,若没有起别名就是concat(a,b)的形式,concat连接显示ab
select concat('姓名:',name) as 新名字 from `student`;

除此之外还有以下功能

select version();  -- 查询版本  对应函数
select 100-1 as result;  -- 查询计算结果  对应表达式
select @@auto_increment_increment;  --查询自增步长  对应变量

去重及据库的表达式

作用:去除select结果中重复的数据,重复数据只显示一条

语法:select distinct 字段 from 库名


where子句之逻辑运算符

其中还有between....and...区间查询

where子句可以跟随在select等语句之后作为约束条件


联表查询join..on

引出三种联表方法(理论上有七种)

语法:select 

1.leftJoin

左表有的必须呈现,左表没有的不呈现

2.innerjoin

二者都有的才呈现

3.rightjoin

右表有的必须呈现,右表没有的不呈现

select s.id,name,class,stugrade
from student as s
inner join result as r
on s.id=r.idselect s.id,name,class,stugrade
from student as s
left join result as r
on s.id=r.idselect s.id,name,class,stugrade
from student as s
right join result as r
on s.id=r.id

两个表有相同字段要区别名来标注使用谁的字段

join...on...            on后面是限制条件与where相似


分页和排序

分页limit

排序order by

语法

升序asc

降序desc

排序

在查询记录中进行排序

语法:order by 表名 asc/desc

分页

在查询记录中进行分页

语法:limit  起始值,页面大小

第n页:limit   (n-1)*pageSize,pagesize

子查询和嵌套查询

子查询指在一个查询语句中嵌套一个查询语句,可以多层嵌套

一般是在where后进行

以下是inner join与子查询处理方法对比

-- 连表查询 高等数学分数大于80的学生
select s.id,`name`,class from student s
inner join result res
on s.id = res.id
inner join object obj
on res.objectNo = obj.objectNo
where objectName = '高等数学'
order by stugrade desc-- 子查询 高等数学分数大于80的学生
select id,`name`,class from student where id in(select id from result where stugrade>80 and objectNo = (select objectNo from object where objectName = '高等数学')
)

MySQL常用函数

-- ====== 常用函数 ======
-- 数学运算
select ABS(-8)  -- 取绝对值
select CEILING(9.4)  -- 向上取整
select FLOOR(9.4)  -- 向下取整
select RAND()  -- 返回一个0-1之间的随机数
select SIGN(10)  -- 返回一个数字判断数字符号  -1为负数,1为正数,0为0-- 字符串函数
select CHAR_LENGTH('欲买桂花同载酒')  -- 返回字符串长度
select CONCAT('终不','似','少年游')  -- 连接字符串
select INSERT('我爱编程helloworld',1,2,'超级热爱')  -- 从1到2替换成语句2
select LOWER('WuYu')  -- 转换小写
select UPPER('WuYu')  -- 转换大写
select INSTR('wuyu','y')  -- 返回第一次出现字符的索引
select REPLACE('狂神说坚持就能成功','坚持','努力')  -- 替换指定的字符串
select SUBSTR('狂神说坚持就能成功',4,6)  -- 返回指定的字符串(原字符串,截取位置,截取长度)
select REVERSE('上马')  -- 反转字符串-- 查询姓 周的学生 将周替换成州
select REPLACE(`name`,'周','州') from student
where `name` like '周%'-- 时间和日期函数
select current_date()  -- 获取当前日期
select curdate()  -- 获取当前日期
select now()  -- 获取当前时间
select localtime  -- 获取本地时间
select sysdate()  -- 系统时间select year(now())
select month(now())
select day(now())
select hour(now())
select minute(now())
select second(now())-- 获取使用系统使用者
select system_user()
select user()
-- 获取版本
select version()

聚合函数及分组(group by)过滤(having)

分组:

语法:group by 列名     通过某列进行分组展示

如果有group by 就

过滤:

语法:having 过滤条件

having   -- 过滤分组的记录必须满足的次要条件

必须在group by 后方

where必须在group by前方

注意:where后面语句不能使用聚合函数,而having可以


拓展之数据库级别的MD5加密

函数:MD5(加密内容)

语句:update into 表名 set 列名=MD5('列名') -- 加密所有密码

可以在插入信息的时候加密保证信息的安全

如何校验?

        --  比对加密后的值是否相同


事务ACID原则、脏读、不可重复读、幻读

两个相关的SQL语句如果一个执行失败,那么会导致数据错误‘

事务原则:ACID原则  原子性、一致性、隔离性、持久性

1.原子性(Atomicity)

要么都成功,要么都失败

2.一致性(Consistency)

事务前后的数据完整性要保证一直

3.持久性(Durability)

事务一旦提交就不可逆,被持久化到数据库中,未被提交数据不会变化

4.隔离性(lsolation)

事务的隔离性是多个用户同时访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,事务之间要相互隔离。

-----  隔离所导致的一些问题

1.脏读

指一个事务读取了另外一个事务未提交的数据

2.不可重复读

在一个事务内读取表中的某一行数据,多次读取结果不同。(不一定是错误的,只是某些场合不对)

3.虚读(幻读)

指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致


测试事务实现转账

---  mysql是默认开启事务自动提交的

set autocommit = 0     ----        关闭

set autocommit = 1     ----        开启(默认)

-- 模拟银行转账
create database bank character set utf8 collate utf8_general_cicreate table `account`(`id` int(3) not null auto_increment,`name` varchar(20) not null,`money` decimal(9,2) not null,primary key(`id`)
)engine=innodb default charset=utf8   -- 创建表insert into account(`name`,`money`) values ('A',1000.00),('B',500.00)set autocommit = 0  -- 关闭mysql事务自动提交
start transaction -- 开启一个事务(一组事务)
update account set money=money-500 where `name` = 'B'  -- B减500
update account set money=money+500 where `name` = 'A'  -- A加500commit;   -- 提交事务,被持久化
rollback;  -- 回滚set autocommit = 1;  -- 恢复默认提交

回滚

        -- 当一组事务有一个执行失败时进行回滚,将数据保持原样

执行成功则提交

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

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

相关文章

新版Java面试专题视频教程——虚拟机篇②

新版Java面试专题视频教程——虚拟机篇② 3 垃圾收回3.1 简述Java垃圾回收机制?(GC是什么?为什么要GC)3.2 对象什么时候可以被垃圾器回收3.2.1 引用计数法3.2.2 可达性分析算法 3.3 JVM 垃圾回收算法有哪些?——4种3.3…

Python实现DAS单点登录

❇️ 流程 进入登录页面 (DAS验证的登录页面) 获取验证码图像,百度OCR识别 登录 🏞️ 环境 Windows 11 Python 3.12 PyCharm 2023 🧵 准备工作 安装必要依赖库 bs4 Jupyter 推荐安装 Jupyter(Anaco…

数学建模【相关性模型】

一、相关性模型简介 相关性模型并不是指一个具体的模型,而是一类模型,这一类模型用来判断变量之间是否具有相关性。一般来说,分析两个变量之间是否具有相关性,我们根据数据服从的分布和数据所具有的特点选择使用pearson&#xff…

Linux系统——Nginx小总结

目录 一、影响用户体验的因素 二、网络连接——Apache/Nginx服务请求过程 三、I/O模型——Input/Output模型 1.同步/异步 2.阻塞/非阻塞 3.同步异步/阻塞非阻塞组合 四、Nginx用法 一、影响用户体验的因素 客户端硬件配置客户端网络速率客户端与服务端距离服务端网络速…

容器库(12)-std::unordered_multiset

unordered_multiset是以key为元素无序的关联容器,搜索、移除和插入操作是平均常数的时间复杂度。unordered_multiset在内部没有按任何顺序排列,而是放在桶当中的,放进哪个桶是通过计算key的hash值来决定的。和unordered_set不同的是&#xff…

【JS】事件绑定方法自带一个形参e“function(e)”,what is e?

在学习js的时候 我跳过了一部分章节的内容,导致现在学习react的时候很多内容都不知所措,因为这些教程都是建立在它认为你js所有内容都掌握的前提下,当然这是我自身的原因。需要反省。 下面是正题: 我们知道js有很多事件&#…

学习 Python operator 模块的 itemgetter

学习 Python operator 模块的 itemgetter 0. 引言1. itemgetter函数说明1-1. 示例代码1-2. 多级排序 0. 引言 operator模块提供了一系列对操作符的函数化接口,例如:加法、乘法、比较操作等。 itemgetter函数是operator模块中的一个功能,它用…

【一】【SQL】表的增删查改(部分)

表之“增”操作 建表的操作 mysql> create table students(-> id int unsigned primary key auto_increment,-> sn int unsigned unique key,-> name varchar(20) not null,-> qq varchar(32) unique key-> ); Query OK, 0 rows affected (0.03 sec)mysql&g…

v-rep--addon--附加组件

附加组件汉化文档 官网 什么是addon 就是一个lua语言文件; 用户通过编写的lua文件来增加coppeliasim的功能。 addon的作用 通过用户编写的lua语言实现添加coppliasim功能。

Day01:Web应用架构搭建站库分离路由访问配置受限DNS解析

目录 常规的Web应用搭建 三种常规网站搭建模式 程序源码 中间件配置 数据库类型 文件访问路径 总结 章节知识点: 应用架构:Web/APP/云应用/三方服务/负载均衡等 安全产品:CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗透命令:文件…

Pytorch添加自定义算子之(1)-安装配置Eigen库

一、安装对应的ubuntu环境 推荐使用Docker FROM nvcr.io/nvidia/pytorch:23.01-py3 RUN pip install tensorboardX RUN pip install pyyaml RUN pip install yacs RUN pip install termcolor RUN pip install opencv-python RUN pip install timm0.6.12 WORKDIR /app COPY . …

Python入门必学:print函数--从基础语法到高级用法

Python入门必学:print函数–从基础语法到高级用法 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得到您…

2024 春招市场行情报告:鸿蒙人才遭“爆抢”

前言 2024年可以说是布道鸿蒙开发行业的最佳时机,华为在千帆启航仪式会中发布会中表示,已有200家头部企业加入原生开发当中,并且一直有高薪抢人的局面,这一信息已经引起业界很大关注。 因此有很多公司开始准备要招聘鸿蒙工程师&…

机器学习YOLO操作全流程​​编

YOLO介绍 Ultralytics YOLOv8,是最新的著名实时目标检测和图像分割模型。它基于深度学习和计算机视觉的最新进展,提供了无与伦比的速度和精度性能。由于其精简的设计,适用于各种应用,并且可以轻松适配不同的硬件平台,从边缘设备到云端API。 探索 YOLOv8 文档,这是一个全…

R语言【BIEN】——BIEN_occurrence_genus():从BIEN数据库下载特定属的观察记录。

Package BIEN version 1.2.6 Description BIEN_occurrence_genus() 从BIEN数据库下载特定属的观察记录。 Usage BIEN_occurrence_genus(genus,cultivated FALSE,new.world NULL,all.taxonomy FALSE,native.status FALSE,natives.only TRUE,observation.type FALSE,poli…

【MySQL】探索表结构、数据类型和基本操作

表、记录、字段 数据库的E-R(entity-relationship,实体-关系)模型中有三个主要概念: 实体集 、 属性 、 关系集 。 一个实体集对应于数据库中的一个表,一个实体则对应于数据库表 中的一行,也称为一条记录。…

【Linux基础】Linux自动化构建工具make/makefile

背景 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后…

ubuntu 安装jdk8

在Ubuntu上安装Java Development Kit (JDK) 8,可以通过以下两种方法进行: 方法一:通过PPA源安装Oracle JDK 8(不推荐,因为Oracle已停止对JDK 8的公开更新支持) 由于Oracle自2019年起对JDK 8的公共更新仅限…

2/26作业

1.link_stack.c #include "link_stack.h" //申请栈顶指针 top_p creat_top() { top_p top (top_p)malloc(sizeof(top_t)); if(topNULL) { printf("空间申请不成功\n"); return NULL; } top->len 0; top->…

18.openeuler OECA认证模拟题1

单选 1。openEuler 操作系统中,通过什么命令可以查看操作系统的版本信息() B A、uname B、cat /etc/os-release C、cat /etc/.kyinfo D、lscpu 2.系统启动的过程顺序正确的是() A A、BIOS自检-MBR中的引导装载程序启动-Linux内核运行-用户登录 B、BIOS自检-MBR中…