MySQL数据库高级语句

news2024/9/27 19:24:10

文章目录

  • MySQL高级语句
    • older by 排序
    • 区间判断查询
    • 或与且(or 与and)
    • 嵌套查询(多条件)
    • 查询不重复记录distinct
    • count 计数
    • 限制结果条目limit
    • 别名as
    • 常用通配符
    • 嵌套查询(子查询)
      • 同表
      • 不同表
      • 嵌套查询还能用于删除
      • 嵌套查询还可以用于修改表格
  • 视图
  • 内连接 左连接 右连接
    • 内连接
    • 左连接
    • 右连接
  • 结语

MySQL高级语句

1构建测试用表

create table test1 (id int primary key,name char(30) not null,gpa decimal(3,2),hobbid int(2));
insert into test1 values(1,'baijiahe',3.3,2);
insert into test1 values(2,)'Hu Zexing',2.9,2);
....

在这里插入图片描述

older by 排序

1.order by 排序默认升序

select * from test1 order by gpa;

在这里插入图片描述
2.添加desc 选线可以降序排序

select * from test1 order by gpa desc;

在这里插入图片描述
3.order by 还可以使用where来过滤数据

select * from test1 where hobbid=4   order by gpa desc;	

在这里插入图片描述
4.order by 还可以多个数值一起排序

select * from test  order by gpa,hobbid,id desc;

上面表示按绩点(gpa)排名,分数相同的按照hobbid来序排序hobbid相同按照 id降序排序
在这里插入图片描述

select * from test order by gpa desc,hobbid desc,id desc; 

在这里插入图片描述

区间判断查询

查询GPA大于2.7的数据

select * from test1 where gpa>2.7;

在这里插入图片描述

或与且(or 与and)

查询GPA>2.7或者id=7的数据

select * from test1 where gpa>2.7 or id=7;

在这里插入图片描述

查询GPA>2.7且GPA<=3.2的数据

select * from test1 where gpa>2.7 and gpa<=3.2;

在这里插入图片描述

嵌套查询(多条件)

查找gpa>2.4且(id大于4或者hobbid=2)的数据

select * from test1 where gpa>2.4 and(id>4 or hobbid=2);

在这里插入图片描述

查询不重复记录distinct

select distinct hobbid from test;

查询test表格中 hobbid项中不重复的数据
在这里插入图片描述

count 计数

统计一个有多少数据(包括空行),count(主键名)则不包括空行

select count(*) from test1;

在这里插入图片描述

统计表中hobbid不同的个数

select count(distinct hobbid) from test1;

在这里插入图片描述

限制结果条目limit

注:本文忽略第0行

显示表至第二行

select * from test1 limit 2;

在这里插入图片描述
从第二行开始显示,至第五行

select * from test1 limit 2,5

在这里插入图片描述
查询前五

select * from test1 order by gpa desc limit 1,5;

在这里插入图片描述

别名as

使用别名显示

select name 名字, gpa 绩点 from test1;

在这里插入图片描述
创建表别名

create table t1 as select * from test1;

在这里插入图片描述
用别名查询

select name,gpa from t1;

在这里插入图片描述

常用通配符

1.% - 通配符,匹配任何数量的字符。
2._ - 通配符,匹配任何单个字符。
例如

mysql> SELECT * FROM t1 AS t WHERE t.name LIKE 'w%';

在这里插入图片描述

SELECT * FROM test1 WHERE gpa LIKE '3___';

嵌套查询(子查询)

创建一个新表,用作实验

create table money(id int primary key,money decimal(15,2));
insert into money values (1,3000);
insert into money values (2,5000);
insert into money values (3,1300);
insert into money values (4,6000);
insert into money values (5,2800);
insert into money values (6,2300);
insert into money values (7,3300);
insert into money values (8,9200);
insert into money values (10,3154);
insert into money values (11,31575);
insert into money values (12,8547);
insert into money values (13,8745);
insert into money values (14,900);

在这里插入图片描述

同表

select id,gpa from test1 where id in (select id from test1 where gpa=>2.7)

上面这个SQL语句含义是,首先运行括号内的SQL语句,输出运行结果到达括号外的SQL语句,最为条件运行。
可以理解为上个SQL语句效果相当于SELECT id, gpa FROM test1 WHERE id=1 OR id=2 OR id=3 OR id=4 OR id=5 OR id=9;
在这里插入图片描述
在这里插入图片描述

不同表

select id,money from money where id in (select id  from test1);

在这里插入图片描述

上面这个SQL语句含义是,首先运行括号内的SQL语句,输出运行结果到达括号外的SQL语句,最为条件运行。
可以理解为上个SQL语句效果相当于select id,money from money where id=6 or id=7 or id=8 or id=9 or id=10;

嵌套查询还能用于删除

创建一个测试用的表test2
用select查询是否是要删除的值
是直接将select换成delete就可以删除了

create table test2 (select * from test1);
select * from text2 where id in (select id  from test1 where gpa<=2.7);
delete * from text2 where id in (select id  from test1 where gpa<=2.7);

在这里插入图片描述

嵌套查询还可以用于修改表格

将money表的id=1的用户money数改为1000

update money set money='1000' where id in(select id from test1 where id=1);

在这里插入图片描述

子查询,别名as
当运行

select id from (select id,name from test1);

在这里插入图片描述

会报错
原因为:
select * from 表名 此为标准格式,而以上的查询语句,“表名"的位置其实是一个完整结果集,mysql并不能直接识别,而此时给与结果集设置一个别名,以”select a.id from a“的方式查询将此结果集视为一张"表”,就可以正常查询数据了,如下:

select a.id from (select id,name from test) a;

在这里插入图片描述

相当于
select test.id,name from test;
select 表.字段,字段 from 表;

在MySQL中,视图(View)是一种虚拟表,它由一个SQL查询定义,但并不存储数据。视图的本质是一条SQL查询语句,它的结果集看起来像是一张表。视图可以用来简化复杂的SQL操作,提供数据的安全性和独立性,以及为用户提供一个更加直观的数据表示。

视图

在MySQL中,视图(View)是一种虚拟表,它由一个SQL查询定义,但并不存储数据。视图的本质是一条SQL查询语句,它的结果集看起来像是一张表。视图可以用来简化复杂的SQL操作,提供数据的安全性和独立性,以及为用户提供一个更加直观的数据表示。

CREATE VIEW 试图名 AS SELECT 字段1, 字段2, ... FROM 表名 WHERE 判断句;
create view test_view as select name,gpa from test1 where id<=10;

使用视图

select * from test_view;

在这里插入图片描述
查看视图与源表结构

desc test_view;

在这里插入图片描述

修改视图

update test_view set gpa=3.9 where name=Shirakanga ;

将视图的Shirakanga的gpa改成3.9原表也会自动修改

在这里插入图片描述

内连接 左连接 右连接

内连接

内连接是SQL中的一种连接查询,用于合并两个或多个表中具有匹配值的行。只有当连接条件在两个表中都匹配时,内连接才会返回这些行,内连接只返回两个表中都有匹配的记录的结果集。

SELECT test1.id, test1.name, money.id, money.money FROM test1 INNER JOIN money ON test1.id = money.id;

在这里插入图片描述

左连接

左连接是一种SQL连接操作,它返回左表(LEFT JOIN子句之前的表)的所有记录,即使右表中没有匹配的记录。如果右表中有匹配的记录,则左连接还会返回右表中的匹配记录。如果右表中没有匹配的记录,则结果集中右表的部分将包含NULL。

select * from test1 left join money on test1.id=money.id;

在这里插入图片描述

右连接

右连接(Right Join)是一种SQL连接操作,它返回右表(RIGHT JOIN子句之后的表)的所有记录,即使左表中没有匹配的记录。如果左表中有匹配的记录,则右连接还会返回左表中的匹配记录。如果左表中没有匹配的记录,则结果集中左表的部分将包含NULL。

SELECT * FROM test1 RIGHT JOIN money ON test1.id = money.id;

在这里插入图片描述

结语

  1. ORDER BY 排序:
    • 升序排序:ORDER BY column_name
    • 降序排序:ORDER BY column_name DESC
    • 多条件排序:ORDER BY column1, column2 DESC
  2. 区间判断查询:
    • 查询满足特定条件的数据:WHERE column_name BETWEEN value1 AND value2
  3. 或与且(OR 与 AND):
    • 组合多个条件进行查询:WHERE column_name = 'value' OR column_name2 = 'value2'
    • 组合多个条件进行查询:WHERE column_name = 'value' AND column_name2 = 'value2'
  4. 查询不重复记录(DISTINCT):
    • 去除重复记录:SELECT DISTINCT column_name FROM table_name
  5. COUNT 计数:
    • 统计记录数:SELECT COUNT(*) FROM table_name
  6. 限制结果条目(LIMIT):
    • 限制结果数量:LIMIT offset, limit_number
  7. 别名(AS):
    • 为列设置别名:SELECT column_name AS alias_name FROM table_name
    • 为表设置别名:SELECT * FROM table_name AS alias_name
  8. 常用通配符:
    • %:匹配任何数量的字符。
    • _:匹配任何单个字符。

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

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

相关文章

蓝桥杯算法赛(二进制王国)

问题描述 二进制王国是一个非常特殊的国家&#xff0c;因为该国家的居民仅由 0 和 1 组成。 在这个国家中&#xff0c;每个家庭都可以用一个由 0 和 1 组成的字符串 S 来表示&#xff0c;例如 101、 000、 111 等。 现在&#xff0c;国王选了出 N 户家庭参加邻国的庆典…

PDF转成二维码分享

在制作电子产品册之前&#xff0c;你需要思考以下几个问题&#xff1a;你的电子产品册是面向什么人群的&#xff1f;是宣传册、使用手册还是产品介绍册&#xff1f;明确目标与定位有助于我们更好地规划产品册的内容和风格。 一、收集素材与整理信息 在开始制作之前&#xff0c…

JetBrains pycharm pro 2023 for mac Python集成开发环境

JetBrains PyCharm Pro 2023 for Mac是一款功能强大的Python集成开发环境&#xff08;IDE&#xff09;&#xff0c;专为Mac用户设计&#xff0c;旨在提供高效、智能的编程体验。 软件下载&#xff1a;JetBrains pycharm pro 2023 for mac中文最新版 PyCharm Pro 2023支持多种语…

如何打造新颖的AI交互数字人,赋能数字文博?

在数字文旅时代&#xff0c;越来越多景区打造AI交互数字人&#xff0c;以数字人作为游客与文化交互的载体。游客在景区中&#xff0c;可以通过语音唤醒数字人&#xff0c;高效获得文化、历史等方面专业的讲解服务。AI交互数字人可以在景区的一体机、全息屏、小程序等终端设备中…

SwiftUI Release 引入的辅助焦点管理

文章目录 前言使用 FocusState 属性包装器高级技巧&#xff1a;专用辅助技术可聚焦字段的高级用法优化体验运行截图总结 前言 SwiftUI Release 引入了强大的新功能&#xff0c;其中之一是辅助焦点管理。 这个新功能使得在SwiftUI中处理辅助技术&#xff08;如 VoiceOver 和 S…

北京空港携手数环通iPaaS,打造航空服务行业数字化利器

01 客户背景 北京空港航空地面服务有限公司&#xff08;以下简称BGS&#xff09;是首都机场集团控股的中性地面服务企业&#xff0c;提供全业务链航空地面服务解决方案&#xff0c;助力提升机场综合保障实力&#xff0c;致力于成为卓越服务的创造者&#xff0c;专注于成为地面服…

浏览器扩展程序增加 vue_dev_tools 调试工具

1、引言 在做 Vue 项目的开发时&#xff0c;我们经常需要在页面上调试&#xff0c;接下来介绍如何在浏览器扩展程序增加 vue_dev_tools 调试工具。 Download the Vue Devtools extension for a better development experience 翻译&#xff1a;下载Vue Devtools扩展以获得更好…

A - Environment-Friendly Travel Gym - 102501A

题意&#xff1a;给你一些交通方式和站点&#xff0c;不同的交通方式碳排放不一样&#xff0c;问从起点到终点距离不超过B的路径中最少的碳排放是多少。 思路&#xff1a;二维dijkstra&#xff0c;建图什么的倒不是很难&#xff0c;主要就是对二维dij的理解了&#xff1b; 表示…

编辑图片加文字的软件有哪些?4款编辑软件推荐

编辑图片加文字的软件有哪些&#xff1f;在日常生活中&#xff0c;无论是修饰照片、制作海报&#xff0c;还是为图片添加文字&#xff0c;图片编辑软件都能轻松应对。它们操作简单&#xff0c;功能丰富&#xff0c;让我们能够随时随地展现自己的创意和个性。使用它们&#xff0…

Claude 3被玩出自我意识了?AI社区轰动,我们买会员来了次实测

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了人工智能中文站 每天给大家更新可用的国内可用chatGPT资源​ 更多资源欢迎关注 ​ Anthropic 发布了新一代大模型系列 Claude 3&#xff0c;遥遥领先快一年之久的 GPT-4 终于迎来了强劲的对手。 ​ Claude 3 …

经典机器学习模型(九)EM算法的推导

经典机器学习模型(九)EM算法的推导 1 相关数据基础 1.1 数学期望 1.1.1 数学期望的定义 根据定义&#xff0c;我们可以求得掷骰子对应的期望&#xff1a; E ( X ) X 1 ∗ p ( X 1 ) X 2 ∗ p ( X 2 ) . . . X 6 ∗ p ( X 6 ) 1 ∗ 1 6 2 ∗ 1 6 1 ∗ 1 6 3 ∗ 1 6 …

红酒:不同类型红酒的品鉴技巧与文化传承

红酒&#xff0c;作为一种历史悠久的产品&#xff0c;不仅蕴含着深厚的文化底蕴&#xff0c;还展现了多样的风味特点。云仓酒庄雷盛红酒&#xff0c;其不同类型的产品各具特色&#xff0c;为品鉴者带来了丰富的体验。本文将带您一起探索雷盛红酒的品鉴技巧与文化传承。 品鉴红酒…

DFS:从递归去理解深度优先搜索

一、深入理解递归 二、递归vs迭代 三、深入理解搜索、回溯和剪枝 四、汉诺塔问题 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public: //笔试题&#xff0c;不讲武德&#xff0c;CAvoid move(int n,vector<int>& A, vector<int>& B, ve…

Qwen1.5的多框架部署使用指南

在当今的技术领域&#xff0c;大型语言模型的应用日益广泛&#xff0c;而Qwen1.5作为其中的佼佼者&#xff0c;已经得到了多个推理框架的支持。 原生混合精度推理 from transformers import AutoModelForCausalLM, AutoTokenizer import torch# 设置设备为CUDA&#xff0c;如果…

【Vue3】实现二维码、链接 分享功能

界面效果: 描述 要实现的功能分别是 1.复制链接可以将次链接分享给他人&#xff0c;他人依靠链接便可以打开你想要让他看到的数据 2.通过微信扫一扫&#xff0c;便可看到和链接一样的内容在手机端 需要的依赖 二维码:qrcode 复制功能:vue-clipboard3 下载二维码:html2canv…

网络编程之流式套接字

流式套接字&#xff08;SOCK_STREAM&#xff09;是一种网络编程接口&#xff0c;它提供了一种面向连接的、可靠的、无差错和无重复的数据传输服务。这种服务保证了数据按照发送的顺序被接收&#xff0c;使得数据传输具有高度的稳定性和正确性。通常用于那些对数据的顺序和完整性…

ES5和ES6的深拷贝问题

深拷贝我们知道是引用值的一个问题&#xff0c;因为在拷贝的时候&#xff0c;拷贝的是在内存中同一个引用。所以当其中的一个应用值发生改变的时候&#xff0c;其他的同一个引用值也会发生变化。那么针对于这种情况&#xff0c;我们需要进行深度拷贝&#xff0c;这样就可以做到…

Linux下javaweb项目部署

javaweb项目部署测试 测试环境&#xff1a;centos7 下载安装jdk rpm -ivh jdk-8u131-linux-x64.rpm 下载安装MySQL wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-server-5.7.33-1.el7.x86_64.rpm https://downloads.mysql.com/archives/get/p…

Docker部署一个SpringBoot项目(超级详细)

注意&#xff1a;下面的教程主要是针对 Centos7 的&#xff0c;如果使用的其他发行版会有细微的差别&#xff0c;请查看官方文档。 Docker部署一个SpringBoot项目&#xff08;超级详细&#xff09; 一、安装Docker1.卸载旧版2.配置Docker的yum库3.安装Docker4.设置开机自启动5.…

前端实现浏览器自定义滚动条

前言&#xff1a; 最近有个项目&#xff0c;产品觉得浏览器默认滚动条太丑了。想美化一下&#xff0c;比如自定义颜色&#xff0c;加上圆角&#xff0c;宽高都要更改一下。我查了资料和文档总结了一下 写法&#xff0c;特此记录以便之后使用。 浏览器滚动条api 总结&#xff…