Mysql (五)

create table info (
id int primary key,
name varchar(10),
score decimal(5,2),
address varchar(20),
hobbid int(5));

SELECT * FROM info;

排序语法:关键字排序
升序ASC     降序DESC
默认排序方式 升序
配合order by语法使用

SELECT * FROM info ORDER BY name DESC;

多列关键字排序,第一个参数有相同的值,第二个字段才有意义(才会排序) 
SELECT * FROM info ORDER BY hobbid DESC,id;#第一个有相同值,第二个字段升序排
SELECT * FROM info ORDER BY score DESC,id;  #第一个没有相同值,第二个没有升序排


where 条件的筛选(比较符 > < =  区间判断)
and     or
 

嵌套多条件
SELECT * from info where score > 70 or ( score > 0 and score < 60);
分组查询 对查询结果进行分组  使用group by语句
group by 只能配合 聚合函数一起使用
聚合函数类型 :
统计 count()  求和 sum()  求平均数 avg()  最大值max() 最小值min()
聚合函数分组语句中,所有非聚合函数列只要出现在函数后面 ,后面也要在grop by语句中
SELECT count(name),hobbid,name from info group by hobbid,name;
where条件不能放在group by里面  要放条件只能写 having xxx
SELECT count(name),hobbid,score from info group by hobbid,score having score>=80;
 

limit1,3        1是位置偏移量 可选参数 可以不写  不写 默从是0, 即从第一行开始
SELECT * from info limit 1,3;

表和列的别名  在实际工作中,表和列名可能很长,写起来不方便,如果需要多次声明表和列时,全部展示太复杂,设置别名使书写简化
#可读性增加,更简洁明了
SELECT name as 姓名,score as 成绩 from info;
SELECT name  姓名,score  成绩 from info;
表的别名
SELECT i.name 姓名,i.score 成绩 from info as i;
SELECT i.name 姓名,i.score 成绩 from info i;

复制表  
只能复制数据,不能复制结构  约束 索引
create table test as select * from info;

复制筛选的数据到新表
create table test1 as select * from info where score >= 60;

通配符:
配合like 模糊查询 使用  
 %表示 0个,1个或者多个字符    x%以x为开头     %x以x结尾
  _ 表示单个字符 
select * from info where address like 's%';
select * from info where address like 's_';
 

子查询   内查询  嵌套查询 select(select)  select语句中又嵌套了一个select
先查询里面 再查询外面,先执行子查询,外面再根据子查询条件的结果进行查找
子查询可以说多个表,也可以是同一张表
关联语句 in     not in        exists
子查询的结果只能有一个列
update info set score=80 where id in(select id from test where id=4);
exists 判断子查询的结果是否为空  空 false   不为空 true
select count(*) from info where exists(  select id from test where score >80  );
这里不是 in  或not in 值没有传递给主表
这里只是判断,结果为空 则不执行  ,如果不为空则执行前面的 结果是7 只要不为空就是7 执行的是count(*)

查询分数 ,如果分数小于50  则统计info的总字段数
count 如果加了特定字段必须用group by
select count(*) from info where exists(  select score from test where score <50  );
select count(*) from info where score <50;

子查询中  多表查询和别名
多表查询不超过3个,超过会降低速度

视图
视图是一个虚拟表 表的数据基于查询的结果生成
视图可以简化复杂的查询,隐藏复杂的细节。访问数据更安全。
视图是多表数据的集合体

视图和表之间的区别
1.存储方式:表是实际数据行,视图不存储数据,仅仅是查询结果的虚拟表
2.数据更新:更新表,视图数据也更新  
3.占用空间:表实际占用空间,视图表不占用空间,只是动态结果的展示
视图表的数据可能是一张表的部分查询数据,也可能是多个表的部分查询数据


查询库中所有视图
show full tables in xy102 where table_type like 'VIEW';

创建视图
create view test2 as select * from info where score >=80;
select * from test2;  #  等于select * from info where score >=80
5.7之后更新视图原表也变化
update test2 set score=90 where id=2;
没有原表的索引 约束
desc test2;
删除视图
drop view test2;

视图表就是查询语句的别名,有了视图表可以简化查询语句
表的权限不一样 因为库的权限有控制   查询视图表的权限相对低 既保证原表数据安全,也简化查询过程

连接查询
两张表或多个表的记录结合起来,基于这些表的共同字段,进行数据拼接
首先要确定一个主表作为结果集,然后把其他表的行有选择性的选到主表的结果上

内连接:两表或多表之间符合条件的数据记录的集合 取交集  
INNER JOIN 

左连接 左外连接 left join  或 left outer join
以左边的表为基础,接收左表的所有行,以左表的记录与右表的记录进行匹配,匹配左表的所有,以及右表中符合条件的行,不符合的显示null值
SELECT * from test1 a left join test2 b on a.a_name=b.b_name;
#以比较条件为标准 只要条件符合就展示结果

#右连接 右外连接 right join  或 right outer join 同左连接
SELECT * from test1 a right join test2 b on a.a_name=b.b_name;

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

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

相关文章

河南萌新联赛2024第(二)场:南阳理工学院

A 国际旅行Ⅰ D A*BBBB F 水灵灵的小学弟 H 狼狼的备忘录 I 重生之zbk要拿回属于他的一切 J 这是签到 ##A 国际旅行Ⅰ 链接&#xff1a;https://ac.nowcoder.com/acm/contest/87255/A 来源&#xff1a;牛客网 题目描述 很久很久以前&#xff0c;有 n n n 个国家&#xff0c;第…

【ffmpeg命令入门】一篇学会ffmpeg音频选项

文章目录 前言设置音频帧使用方法基本用法 示例示例1&#xff1a;提取前200帧音频示例2&#xff1a;结合其他选项使用 注意事项 设置音频采样率基本用法 示例示例1&#xff1a;调整采样率为48000 Hz示例2&#xff1a;降低采样率为22050 Hz示例3&#xff1a;转换视频文件中的音频…

首发!中科融合3D相机点云转halcon点云 C++代码

中科融合是国内第一家专注于“AI+3D”芯片技术的科技创新型企业。‌拥有完全自主研发的MEMS感知芯片和新一代低功耗AI芯片,‌致力于在5G时代推动具有边缘智能的3D感知设备的发展,‌从而促进智能3D产业链的爆发。‌中科融合的MEMS激光投射模组具有较大的视野和景深,‌以及较强…

字符的统计——423、657、551、696、467、535

423. 从英文中重建数字 最初思路 首先要有一个指针&#xff0c;对于3/4/5为一组地跳跃。起初想的是后瞻性&#xff0c;如果符合0-9任意&#xff0c;则更换index、跳跃。此时写了一个函数&#xff0c;用来判断s的截取段和0-9中有无符合。这个思路并没有进行下去&#xff0c;虽然…

昇思25天学习打卡营第九天|本地安装mindspore之一|Linux的系统在vmware上的安装以及mindspore的安装

课程已经学完了&#xff0c;打算再深入一些。初步的想法是&#xff0c;在本地安装&#xff0c;本地执行。 根据老师的指引&#xff0c;MindSpore官网&#xff0c;“https ://www.mindspore.cn/install/”&#xff0c;注意&#xff0c;因为csdn博客编辑器的原因&#xff0c;当我…

软考:软件设计师 — 6.信息安全

六. 信息安全 1. 加密技术与认证技术 &#xff08;1&#xff09;对称与非对称加密 关于对称与非对称加密算法的详细内容&#xff0c;可以参考文章&#xff1a;信息安全基础技术与原理 对称加密 对称加密也称为共享密钥加密。 对称加密中&#xff0c;加密和解密的密钥是同一…

【保姆级教程】跑通YOLOv8-multi-task多任务模型

一、YOLOV8多任务环境准备 1.1 下载安装最新的YOLOv8-multi-task代码 仓库地址: https://github.com/JiayuanWang-JW/YOLOv8-multi-task克隆指令:git clone https://githubfast.com/JiayuanWang-JW/YOLOv8-multi-task.git1.2 配置环境 pip install -r requirements.txt -i h…

IPython的捕获魔术:%%capture命令全攻略

IPython的捕获魔术&#xff1a;%%capture命令全攻略 在IPython和Jupyter Notebook中&#xff0c;%%capture是一个强大的魔术命令&#xff0c;它允许用户捕获并保存单元格的输出&#xff0c;包括stdout&#xff08;标准输出&#xff09;和stderr&#xff08;标准错误&#xff0…

laravel 8 、thinkphp数据库锁机制

lockForUpdate() 在使用时&#xff0c;如果只需要阻止另外程序对其进行修改&#xff0c;可以只使用 1 个lockForUpdate()&#xff1b; 当某个程序需要对其进行修改时&#xff0c;可以使用 lockForUpdate()&#xff0c;避免并发进行修改&#xff0c; 当其他程序也会需要对相同…

vivado IODELAY_GROUP

IODELAY_GROUP将IDELAYCTRL单元格及其关联的IDELAY和 ODELAY细胞允许正确放置和复制。 如果使用IODELAY_GROUP为IDELAYCTRL分配组名&#xff0c;还需要 使用相同的IODELAY_group属性将IDELAY或ODELAY单元格与组相关联。 重要提示&#xff1a;虽然IODELAY_GROUP可以包含多个单元…

【豆包Marscode体验官】揭秘MarsCode AI编辑助手:高效智能编辑新纪元之入门指导与最佳实践

文章目录 1. 概述2. 工具使用过程2.1 MarsCode插件简介2.2 安装和配置2.2.1 安装MarsCode插件2.2.2 配置MarsCode插件 2.3 各个功能的使用2.3.1 代码补全2.3.2 代码补全 Pro【操作提示&#xff0c;No suggestion from Model&#xff0c;不知道是不是版本的问题】2.3.3 代码生成…

sqlalchemy定期保持mysql连接活跃

sqlalchemy定期保持mysql连接活跃 在使用SQLAlchemy连接MySQL数据库时,确保保持活跃连接是很重要的,特别是在长时间不使用数据库连接时。以下是一些建议来定期保持活跃连接: 1、连接池设置: SQLAlchemy使用连接池管理数据库连接。通过配置合适的连接池参数可以有效地保持…

从零开始构建你的第一个Python Web应用

在本文中&#xff0c;我们将带领你从零开始构建一个简单的Python Web应用。不需要任何先验知识&#xff0c;我们会一步步地指导你完成设置、框架选择、代码编写到部署的整个过程。无论你是Web开发新手还是希望扩展技能的老手&#xff0c;这篇文章都将为你提供一个实践操作的起点…

C语言 | Leetcode C语言题解之第278题第一个错误的版本

题目&#xff1a; 题解&#xff1a; int firstBadVersion(int n) {int left 1, right n;while (left < right) { // 循环直至区间左右端点相同int mid left (right - left) / 2; // 防止计算时溢出if (isBadVersion(mid)) {right mid; // 答案在区间 [left, mid] 中…

abc363+cf960div.2+牛客周赛49轮

C - Avoid K Palindrome 2 (atcoder.jp) 思路&#xff1a; 罗列出排列的每一种情况&#xff0c;再根据题目要求进行判断 代码&#xff1a; void solve() {ll n, k;cin >> n >> k;string s;vector<char>a;cin >> s;for (int i 0; i < n; i)a.pus…

C++与lua联合编程

C与lua联合编程 一、环境配置二、lua基本语法1.第一个lua和C程序2.基本数据类型和变量2.1 Nil2.2 Booleans2.3 Numbers2.4 String(最常用) 3. 字符串处理3.1 错误处理3.2 字符串长度:string.len3.3 字符串子串 :string.sub3.4 字符串查找: string.find3.5字符串替换: string.gs…

sortablejs使用filter属性后,元素的默认事件失效了

在使用vue-draggable-plus或者sortablejs时。为了防止某个元素可以拖拽&#xff0c;一般会加上filter属性 但是加上后&#xff0c;会发现这个元素不能点击了&#xff0c;像我这里的滑块也不能滑动了。 查了很久才发现&#xff0c;还有一个属性是 preventOnFilter: true, // 在触…

安宝特方案|解放双手,解决死角,AR带来质量监督新体验

AR质量监督 解放双手&#xff0c;解决死角 在当今制造业快速发展的背景下&#xff0c;质量监督成为确保产品高质量和完善的管理制度的关键环节。然而&#xff0c;传统的质量监督方式存在诸多挑战&#xff0c;如人工操作带来的效率低下、查岗不及时、摄像头死角等问题。 为了解…

浅谈C语言整型类数据在内存中的存储

1、整型类数据 C语言中的整型类数据都归类在整型家族中&#xff0c;其中包括&#xff1a;char、short、int、long、long long这5个大类&#xff0c;而每个大类中又分为两类signed和unsigned,这些都是C语言中的内置类型。以下重点基于char和int这两种类型的数据进行阐述&#x…

C++学习笔记-C++11中的智能指针

1.智能指针介绍 智能指针是C的特性用法&#xff0c;是一个类似指针功能的类对象&#xff0c;其目的是为了更好的管理动态分配的内存&#xff0c;避免出现内存泄漏、悬空指针等问题。C11的标准库里提供了三种智能指针模板类&#xff0c;分别是std::unique_ptr、std::shared_ptr…