mysql高级sql语句 二

news2024/10/18 10:06:52

目录

一. 求交集

1.1 内连接

1.2 左连接

1.3 右连接

1.4 子查询

1.5 多表查询

1.6 并集+分组

二. 求差集

2.1 求左表差集

2.2 求右表差集

2.3 求两个表的差集

三. 视图表view

3.1 视图表的使用

3.2 视图表里的数据能不能修改?

四. case语句

五. 无值 ' ' 和 空值NULL 的区别

六、正则表达式

七. Mysql输入数据的方法

八. Mysql导出导入CSV文件

九. 如何删除重复数据

9.1 进保留一条重复的数据

9.2 一条重复的数据都不保留


一. 求交集

1.1 内连接

select A.字段 from 左表 A inner join 右表 B on A.字段 = B.字段;

select A.字段 from 左表 A inner join 右表 B using(字段);                (合并相同的字段)

1.2 左连接

select B.字段 from 左表 A left join 右表 B on A.字段 = B.字段 where B.字段 is not null;

1.3 右连接

select A.字段 from 左表 A right join 右表 B on A.字段 = B.字段 where A.字段 is not null;

1.4 子查询

select A.字段 from 左表 A where A.字段 in (select B.字段 from 右表 B);

select A.字段 from 左表 A where exists (select B.字段 from 右表 B where A.字段 = B.字段);

1.5 多表查询

select A.字段 from 左表 A, 右表 B where A.字段 = B.字段;

1.6 并集+分组

select A.字段 from (select distinct 字段 from 左表 union all select distinct 字段 from 右表) as A group by A.字段 having count(A.字段) > 1;            # A代表并集后的结果抽象出来的派生表

二. 求差集

2.1 求左表差集

select A.字段 from 左表 A left join 右表 B on A.字段 = B.字段 where B.字段 is null;
select A.字段 from 左表 A where A.字段 not in (select B.字段 from 右表 B);
select A.字段 from 左表 A where not exists (select B.字段 from 右表 B where A.字段 = B.字段);

2.2 求右表差集

select B.字段 from 左表 A right join 右表 B on A.字段 = B.字段 where A.字段 is null;

2.3 求两个表的差集

select A.字段 from 左表 A left join 右表 B on A.字段 = B.字段 where B.字段 is null
select B.字段 from 左表 A right join 右表 B on A.字段 = B.字段 where A.字段 is null;
select A.字段 from (select distinct 字段 from 左表 union all select distinct 字段 from 右表) as A group by A.字段 having count(A.字段) = 1;

三. 视图表view

3.1 视图表的使用

CREATE VIEW ----视图,可以被当作是虚拟表或存储查询。

        视图跟表格的不同是,表格中有实际储存数据记录,而视图是建立在表格之上的一个架构,它本身并不实际储存数据记录。

        临时表在用户退出或同数据库的连接断开后就自动消失了,而视图不会消失。

        视图不含有数据,只存储它的定义,它的用途一般可以简化复杂的查询。比如你要对几个表进行连接查询,而且还要进行统计排序等操作,写SQL语句会很麻烦的,用视图将几个表联结起来,然后对这个视图进行查询操作,就和对一个表查询一样,很方便。

语法:

CREATE VIEW "视图表名" AS "SELECT 语句";

drop view 视图表名;    #删除视图表

3.2 视图表里的数据能不能修改?

  • 如果定义的select语句查询的字段是没有被处理过的源表字段,则可以通过视图表修改源表的数据

  • 如果定义的select语句查询的字段是被函数group by等命令处理过的字段,则不能直接修改视图表的数据

四. case语句

CASE ----是 SQL 用来做为 IF-THEN-ELSE 之类逻辑的关键字

语法一:

SELECT CASE "字段名"
  WHEN "数值1" THEN "结果1"
  WHEN "数值2" THEN "结果2"
  ...
  [ELSE "default"]
  END
FROM "表名";

语法二:

SELECT CASE
  WHEN "公式1" THEN "结果1"
  WHEN "公式2" THEN "结果1"
  ...
  [ELSE "default"] END
  FROM "表名";

#ELSE 子句则并不是必须的。

五. 无值 ' ' 和 空值NULL 的区别

无值:

  • 无值'' 的长度为 0,不占用空间

  • 可以通过 字段名 = '' 字段名 !=或<> '' 来过滤字段的值是否为无值的行

  • 指定字段使用函数 count(字段) 不会忽略无值的行

空值:

  • 空值NULL 的长度为 NULL,占用空间

  • 可以通过 字段名 is null 字段名 is not null 来过滤字段的值是否为NULL的行

  • 指定字段使用函数 count(字段) 会忽略NULL的行

六、正则表达式

匹配模式描述实例
^匹配文本的开始字符     ‘^bd’ 匹配以 bd 开头的字符串
$匹配文本的结束字符 ‘qn$’ 匹配以 qn 结尾的字符串
.匹配任何单个字符‘s.t’ 匹配任何 s 和 t 之间有一个字符的字符串
*匹配零个或多个在它前面的字符‘fo*t’ 匹配 t 前面有任意个 o
+匹配前面的字符 1 次或多次‘hom+’ 匹配以 ho 开头,后面至少一个m 的字符串
字符串匹配包含指定的字符串‘clo’ 匹配含有 clo 的字符串
p1 | p2匹配 p1 或 p2 ‘bg|fg’ 匹配 bg 或者 fg
[...]匹配字符集合中的任意一个字符‘[abc]’ 匹配 a 或者 b 或者 c
[^...]匹配不在括号中的任何字符 ‘[^ab]’ 匹配不包含 a 或者 b 的字符串
{n}匹配前面的字符串 n 次‘g{2}’ 匹配含有 2 个 g 的字符串
{n,m}匹配前面的字符串至少 n 次,至多m 次‘f{1,3}’ 匹配 f 最少 1 次,最多 3 次

使用语法:

SELECT "字段" FROM "表名" WHERE "字段" REGEXP {模式};

七. Mysql输入数据的方法

  • 使用insert into 语句插入数据
  • 使用load date infile 'csv文件'语句

  • 使用第三方客户端工具,比如 navicat

八. Mysql导出导入CSV文件

1)修改mysql配置文件,在[mysqld]配置项下面添加 secure_file_priv="" ,重启服务

2)创建导出目录,并授权权限 mkdir mysql-output; chown mysql:mysql mysql-output/

select * into outfile '/opt/test/xy103.csv' fields terminated by ',' enclosed by '"' lines terminated by '\n' from xy103;          #导出表数据到CSV文件中

load data infile '/opt/test/xy103.csv' into table xy103 fields terminated by ',' enclosed by '"' lines terminated by '\n';     #导入CSV文件数据到mysql表中

fields terminated by ','    指定CVS文件的字段分隔符
enclosed by '"'             指定CVS文件的字段内容边界符
lines terminated by '\n'    指定CVS文件的行分隔符

九. 如何删除重复数据

9.1 进保留一条重复的数据

语法:

create view 视图表名 as select min(id) from 表 group by 重复的字段名;

delete from 表 where id not in (select 字段 from 视图表名);

9.2 一条重复的数据都不保留

语法:

create view 视图表名 as select 重复的字段名 group by 重复的字段名 having count(字段) > 1;

delete from 表 where 重复的字段名 in (select 字段 from 视图表名);

 

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

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

相关文章

豪威集团技术突破

巴塞罗那AutoSens展会上发布的OX12A10采用豪威集团全新的a-CSP™超小尺寸封装技术&#xff0c;是TheiaCel™产品系列中分辨率最高的传感器&#xff0c;成为ADAS和AD的理想之选 巴塞罗纳&#xff0c;西班牙 – 2024年10月3日 – 豪威集团&#xff0c;全球排名前列的先进数字成像…

动力学的开环和闭环控制

工业机器人四大元件&#xff1a;控制器&#xff0c;驱动器&#xff0c;电机&#xff0c;减速器 流程&#xff1a;控制器的作用是规划一个机器人的路径&#xff0c;位置&#xff0c;速度。而驱动器是用来控制电流的&#xff0c;进行控制电机。本质上是驱动器来进行完成电流的调…

ssm基于SSM框架的成绩管理系统的设计与实现+vue

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码请私聊我 需要定制请私聊 目 录 1 绪论 1 1.1 选题背景 1 1.2 选题意义 1 1.3 研究内容 2 2 系统开发技术 3 2.1 MySQL数据库 3 2.…

【系统集成中级】OSI 七层模型

【系统集成中级】OSI 七层模型 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; OSI 七层模型&#xff1a; #mermaid-svg-FqFAWaiBSmivKOt2 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mer…

常见的SD-WAN组网方案解析

随着SD-WAN技术的日益成熟&#xff0c;越来越多的企业开始采用这种网络架构来解决跨区域的数据传输难题。SD-WAN组网方案不仅提升了网络性能&#xff0c;还有效降低了网络成本&#xff0c;成为现代企业构建高效网络的重要选择。那么&#xff0c;如何搭建SD-WAN组网&#xff1f;…

mysql数据同步ES方案---DTS

在上一篇文章中&#xff0c;我通过一个简单的例子实现了如何通过 Canal 实现 MySQL 数据到 Elasticsearch 的同步&#xff0c;以满足增量捕获和实时同步的需求。然而实际情况中&#xff0c;比如在我之前工作的公司&#xff0c;为了减少运维工作量和代码操作的复杂性&#xff0c…

OpenHarmony 入门——ArkUI 自定义组件内同步的装饰器@State小结(二)

文章大纲 引言一、组件内状态装饰器State1、初始化2、使用规则3、变量的传递/访问规则说明4、支持的观察变化的场景5、State 变量的值初始化和更新机制6、State支持联合类型实例 引言 前一篇文章OpenHarmony 入门——ArkUI 自定义组件之间的状态装饰器小结&#xff08;一&…

Linux——网络层协议

前言 网络层&#xff1a;在复杂的网络环境中确定一个合适的路径 目录 前言 一IP协议 1预备知识 2基本概念 3格式 4网段划分 4.1理解IP 4.2IP组成 4.3划分方式 4.4为什么要网段划分 5特殊的IP地址 6IP地址的限制 7私有IP和公网IP 8NAT技术 9理解公网 10路由 …

软件数据安全评估

简介 SQLmap是一款「自动化」SQL注入 工具&#xff0c;kali自带。 可以自己手动安装 地址 源码 源码汉化版kali自带 开启 python 自己直接编译运行 kali 使用方法 1 Options&#xff08;选项&#xff09; -h,--help 显示帮助消息 -hh 显示详细帮助 -version -v…

【JavaScript】网页交互的灵魂舞者

我的主页&#xff1a;2的n次方_ 1. JavaScript 的三种引入方式 引⼊⽅式 语法描述 ⽰例 ⾏内样式 直接嵌⼊到 html 元素内部 <input type"button" value"点我⼀下" οnclick"alert(haha)"> 内部样式 定义<script>标签&a…

云计算第四阶段: cloud二周目 07-08

cloud 07 一、k8s服务管理 创建服务 # 资源清单文件 [rootmaster ~]# kubectl create service clusterip websvc --tcp80:80 --dry-runclient -o yaml [rootmaster ~]# vim websvc.yaml --- kind: Service apiVersion: v1 metadata:name: websvc spec:type: ClusterIPselector…

IGFBP7:免疫治疗新靶点

前 言 胰岛素样生长因子结合蛋白7&#xff08;IGFBP7&#xff09;是胰岛素超家族的生长促进肽成员&#xff0c;可与胰岛素和IGF结合&#xff0c;调控细胞生长和分化。IGFBP7在不同的肿瘤类型中表现出抑制或促进肿瘤生长的“自相矛盾”活性。研究发现IGFBP7可增强治疗性单克隆…

C语言 | Leetcode C语言题解之第491题非递减子序列

题目&#xff1a; 题解&#xff1a; int** ans; int ansSize; int* temp; int tempSize;void dfs(int cur, int last, int* nums, int numsSize, int** returnColumnSizes) {if (cur numsSize) {if (tempSize > 2) {ans[ansSize] malloc(sizeof(int) * tempSize);memcpy(…

HDLBits中文版,标准参考答案 | 5 Verification: Writing Testbenches | 验证:编写测试平台

关注 望森FPGA 查看更多FPGA资讯 这是望森的第 24 期分享 作者 | 望森 来源 | 望森FPGA 目录 1 Clock 2 Testbench1 3 AND gate 4 Testbench2 5 T flip-fop 本文中的代码都能够正常运行&#xff0c;请放心食用&#x1f60b;~ 练习的官方网站是&#xff1a;https://hdlbi…

Hi3061M——VL53L0X激光测距(IIC)(同样适用于其他MCU)

这里写目录标题 前言VL53L0X的简介VL53L0X的初始化和效准过程的相关APIVL53L0X开始测量和获取测量值VL53L0X移植配置结语 前言 手头正好有一个空闲的激光测距模块VL53L0X&#xff0c;想在Hi3061M上跑一下测距&#xff0c;以前并没有用过VL53L0X&#xff0c;想着以为还是向以前…

浅谈针对Nor flash状态寄存器保护位修改方法

浅谈针对Nor flash状态寄存器保护位修改 ✨最近在写QSPI驱动Nor flash过程中&#xff0c;在操作芯片的状态寄存器的时候&#xff0c;遇到的一些问题和解决办法。 &#x1f52c;操作Nor flash测试芯片&#xff1a;GD25Q64&#x1f516;以QSPI测试为例&#xff0c;SPI方式修改没有…

集成电路学习:什么是WLAN无线局域网

WLAN&#xff1a;无线局域网 WLAN&#xff0c;即无线局域网&#xff08;Wireless Local Area Network&#xff09;&#xff0c;是一种通过无线技术构建的局域网络&#xff0c;它使用无线信号传输数据&#xff0c;取代了传统有线网络中的网线连接。以下是关于WLAN的详细解释&…

Lumerical学习——优化和参数扫描(Optimization and parameter sweeps)

一、概要介绍 这部分介绍优化和参数扫描项目设定的方法。在有大量数据模拟计算过程中这个特性允许用户使处理方法自动地查找期望的参数值。 ① 创建一个参数扫描任务 ② 创建一个优化任务 ③ 创建一个良率分析任务 ⑤ 打开所选择项目的编辑窗口&#xff0c;编辑其属性…

stm32 bootloader写法

bootloader写法&#xff1a; 假设app的起始地址&#xff1a;0x08020000&#xff0c;则bootloader的范围是0x0800,0000~0x0801,FFFF。 #define APP_ADDR 0x08020000 // 应用程序首地址定义 typedef void (*APP_FUNC)(void); // 函数指针类型定义 /*main函数中调用rum_app&#x…

【Unity】Unity Shader学习笔记(八)基础纹理2:高度纹理、法线纹理、模型空间下的法线纹理、切线空间下的法线纹理光照计算

文章目录 凹凸映射法线纹理设置高度纹理&#xff08;Height Map&#xff09;法线纹理&#xff08;Normal Map&#xff09;模型空间的法线纹理切线空间的法线纹理优劣对比 切线空间下的法线纹理光照计算最终效果完整代码TANGENT语义内置宏 TANGENT_SPACE_ROTATIONObjSpaceLightD…