Mysql进阶学习(七)联合查询与DML语言

news2024/11/15 13:32:28

Mysql进阶学习(七)联合查询与DML语言

  • 进阶9:联合查询
    • 语法:
    • 特点:★
    • 案例
  • DML语言
    • 1、插入语句
      • 1.1.插入的值的类型要与列的类型一致或兼容
      • 1.2.不可以为null的列必须插入值。可以为null的列如何插入值?
      • 1.3.列的顺序是否可以调换
      • 1.4.列数和值的个数必须一致
      • 1.5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致
      • 1.6 两种方式大对比 ★
        • 1、方式一支持插入多行,方式二不支持
        • 2、方式一支持子查询,方式二不支持
    • 2、修改语句
      • 2.1.修改单表的记录★
      • 2.2.修改多表的记录【补充】
        • 1.修改单表的记录
        • 2.修改多表的记录
    • 3、删除语句
      • 3.1、单表的删除【★】
      • 3.2、多表的删除【补充】

进阶9:联合查询

union 联合 合并:将多条查询语句的结果合并成一个结果

语法:

查询语句1
union
查询语句2
union
查询语句3
...

应用场景:
要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时

特点:★

1、要求多条查询语句的查询列数是一致的!
2、要求多条查询语句的查询的每一列的类型和顺序最好一致
3、union关键字默认去重,如果使用union all 可以包含重复项

案例

引入的案例:查询部门编号>90或邮箱包含a的员工信息

SELECT * FROM employees WHERE email LIKE '%a%' OR department_id>90;

在这里插入图片描述

SELECT * FROM employees  WHERE email LIKE '%a%'
UNION
SELECT * FROM employees  WHERE department_id>90;

在这里插入图片描述
案例:查询中国用户中男性的信息以及外国用户中年男性的用户信息

SELECT id,cname FROM t_ca WHERE csex='男'
UNION ALL
SELECT t_id,tname FROM t_ua WHERE tGender='male';

DML语言

数据操作语言:
插入:insert
修改:update
删除:delete

1、插入语句

方式一:经典的插入

语法:

insert into 表名(列名,...) values(1,...);
SELECT * FROM beauty;

1.1.插入的值的类型要与列的类型一致或兼容

INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐艺昕','女','1990-4-23','1898888888',NULL,2);

在这里插入图片描述

1.2.不可以为null的列必须插入值。可以为null的列如何插入值?

#方式一:

INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'唐艺昕','女','1990-4-23','1898888888',NULL,2);

#方式二:

INSERT INTO beauty(id,NAME,sex,phone)
VALUES(15,'娜扎','女','1388888888');

在这里插入图片描述

1.3.列的顺序是否可以调换

INSERT INTO beauty(NAME,sex,id,phone)
VALUES('蒋欣','女',16,'110');

在这里插入图片描述

1.4.列数和值的个数必须一致

INSERT INTO beauty(NAME,sex,id,phone)
VALUES('关晓彤','女',17,'110');

在这里插入图片描述

1.5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致

INSERT INTO beauty
VALUES(18,'张飞','男',NULL,'119',NULL,NULL);

在这里插入图片描述
#方式二:

语法:

insert into 表名
set 列名=,列名=,...
INSERT INTO beauty
SET id=19,NAME='刘涛',phone='999';

1.6 两种方式大对比 ★

1、方式一支持插入多行,方式二不支持

INSERT INTO beauty
VALUES(23,'唐艺昕1','女','1990-4-23','1898888888',NULL,2),(24,'唐艺昕2','女','1990-4-23','1898888888',NULL,2)
,(25,'唐艺昕3','女','1990-4-23','1898888888',NULL,2);

2、方式一支持子查询,方式二不支持

INSERT INTO beauty(id,NAME,phone)
SELECT 26,'宋茜','11809866';

在这里插入图片描述

INSERT INTO beauty(id,NAME,phone)
SELECT id,boyname,'1234567'
FROM boys WHERE id<3;

在这里插入图片描述

2、修改语句

2.1.修改单表的记录★

语法:

update 表名
set=新值,=新值,...
where 筛选条件;

2.2.修改多表的记录【补充】

语法:

sql92语法:

update1 别名,2 别名
set=,...
where 连接条件
and 筛选条件;

sql99语法:

update1 别名
inner|left|right join2 别名
on 连接条件
set=,...
where 筛选条件;

1.修改单表的记录

#案例1:修改beauty表中姓唐的女神的电话为13899888899

UPDATE beauty SET phone = '13899888899'
WHERE NAME LIKE '唐%';

#案例2:修改boys表中id好为2的名称为张飞,魅力值 10

UPDATE boys SET boyname='张飞',usercp=10
WHERE id=2;

2.修改多表的记录

案例 1:修改张无忌的女朋友的手机号为114

UPDATE boys bo
INNER JOIN beauty b ON bo.`id`=b.`boyfriend_id`
SET b.`phone`='119',bo.`userCP`=1000
WHERE bo.`boyName`='张无忌';

案例2:修改没有男朋友的女神的男朋友编号都为2号

UPDATE boys bo
RIGHT JOIN beauty b ON bo.`id`=b.`boyfriend_id`
SET b.`boyfriend_id`=2
WHERE bo.`id` IS NULL;

在这里插入图片描述

SELECT * FROM boys;

在这里插入图片描述

3、删除语句

方式一:delete
语法:

3.1、单表的删除【★】

delete from 表名 where 筛选条件

3.2、多表的删除【补充】

sql92语法:

delete1的别名,2的别名
from1 别名,2 别名
where 连接条件
and 筛选条件;

sql99语法:

delete1的别名,2的别名
from1 别名
inner|left|right join2 别名 on 连接条件
where 筛选条件;

方式二:truncate

语法:truncate table 表名;

#方式一:delete
#1.单表的删除
#案例:删除手机号以9结尾的女神信息

DELETE FROM beauty WHERE phone LIKE '%9';
SELECT * FROM beauty;

#2.多表的删除

#案例:删除张无忌的女朋友的信息

DELETE b
FROM beauty b
INNER JOIN boys bo ON b.`boyfriend_id` = bo.`id`
WHERE bo.`boyName`='张无忌';

#案例:删除黄晓明的信息以及他女朋友的信息

DELETE b,bo
FROM beauty b
INNER JOIN boys bo ON b.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='黄晓明';

#方式二:truncate语句

#案例:将魅力值>100的男神信息删除

TRUNCATE TABLE boys ;

#delete pk truncate【面试题★】

1.delete 可以加where 条件,truncate不能加
2.truncate删除,效率高一丢丢
3.假如要删除的表中有自增长列, 如果用delete删除后,再插入数据,自增长列的值从断点开始, 而truncate删除后,再插入数据,自增长列的值从1开始。
4.truncate删除没有返回值,delete删除有返回值
5.truncate删除不能回滚,delete删除可以回滚.

1.delete 可以加where 条件,truncate不能加
2.truncate删除,效率高一丢丢
3.假如要删除的表中有自增长列,
如果用delete删除后,再插入数据,自增长列的值从断点开始,
而truncate删除后,再插入数据,自增长列的值从1开始。
4.truncate删除没有返回值,delete删除有返回值
5.truncate删除不能回滚,delete删除可以回滚.

SELECT * FROM boys;
DELETE FROM boys;
TRUNCATE TABLE boys;
INSERT INTO boys (boyname,usercp)
VALUES('张飞',100),('刘备',100),('关云长',100);

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

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

相关文章

机械转码日记【26】二叉搜索树

目录 前言 1.二叉搜索数的概念 2.二叉搜索树的实现 2.1 基本架构 2.2二叉搜索树的插入 2.2.1普通版本 2.2.2递归版本 2.3二叉搜索树的查找 2.3.1普通版本 2.3.2递归版本 2.4二叉搜索树的删除 2.4.1普通版本代码 2.4.2递归版本代码 2.5搜索树的析构函数 2.6搜…

电脑黑屏按什么键恢复?只需要3个键就可以解决黑屏

今天和大家聊一聊电脑黑屏这个问题。相信大家都遇到过电脑黑屏&#xff0c;但是却不知道该如何解决&#xff0c;今天就来给大家分享一些处理方法。如果是电脑黑屏的话&#xff0c;一般情况下&#xff0c;只需要三个键就可以解决问题&#xff0c;电脑黑屏按什么键恢复&#xff1…

【Matplotlib绘制图像大全】(九):Matplotlib使用xticks()修改x轴刻度位置信息

前言 大家好,我是阿光。 本专栏整理了《Matplotlib绘制图像大全》,内包含了各种常见的绘图方法,以及Matplotlib各种内置函数的使用方法,帮助我们快速便捷的绘制出数据图像。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmMatp…

提到Canvas,必须好好唠唠它的图像操作能力

前情提要 接续一下之前对Canvas的探索。本篇分享一下对图像操作的阅读和研究。 日常开发中&#xff0c;时常遇到对图像的处理的场景。精美的图像做为背景或者场景&#xff0c;相对会吸引人。 Canvas图像API十分强大。可以通过Canvas图像API加载图像数据&#xff0c;进行裁剪…

ubuntu篇---ubuntu安装mysql教程

ubuntu篇---ubuntu安装mysql教程一. 首先卸载掉原来的mysql第一步&#xff0c;依次执行下面的语句第2步 清理残留数据第三步 验证原有主机上是否安装mysql&#xff1a;二. 安装mysql三. 修改密码加粗样式ubuntu安装mysql教程 一. 首先卸载掉原来的mysql 第一步&#xff0c;依…

深入理解蓝牙BLE之“扩展广播”

目录 前言&#xff1a; 4.2版本广播&#xff1a; 5.0版本广播&#xff1a; 实现原理&#xff1a; 格式定义&#xff1a; 广播事件类型&#xff1a; 扩展广播&#xff1a; 周期广播&#xff1a; 广播集&#xff1a; HCI接口定义&#xff1a; 4.2版本&#xff1a; 5.…

正式练习的第一个Python功能:加法计算

我本身有着C/C的功底&#xff0c;最近开始自学python&#xff0c;包括网上找教程&#xff0c;买书看。不确定我这种有其他编程语言经验的再学新的语言算不算零基础&#xff0c;总之书就买的《零基础学Python程序设计》。鉴于自己之前已经看过一段时间&#xff0c;这个程序也就不…

[附源码]Python计算机毕业设计SSM开放实验室管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

微服务框架 SpringCloud微服务架构 10 使用Docker 10.3 容器命令介绍

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构10 使用Docker10.3 容器命令介绍10.3.1 容器相关命令10 使用Docker 10.3 …

一类综合的模糊化自适应滑模控制

目录 前言 1.系统描述 2.控制器设计 3.模糊化设计 3.1构造模糊系统 3.2自适应律设计 4仿真分析 4.1仿真系统 4.2仿真结果 前言 上几篇文章分别介绍了模糊化切换增益(也就是模糊化外界扰动d)、模糊化系统部分的不确定项f、模糊化整个切换项&#xff0c;其原理分别为利…

如何制作gif图片?

文章目录一、下载LICEcap【制作gif的工具】&#xff08;按步骤安装即可&#xff09;二、LICEcap的使用录制步骤&#xff1a;三、录制的gif效果展示一、下载LICEcap【制作gif的工具】&#xff08;按步骤安装即可&#xff09; LICEcap是一款简洁易用的动画屏幕录制软件&#xff…

HTML CSS大学生期末网页大作业 DW个人网页设计 人物介绍 历史人物岳飞介绍

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

智慧工地技术方案

二、 系统概述 建筑工地是一个安全事故多发的场所。目前&#xff0c;工程建设规模不断扩大&#xff0c;工艺流程纷繁复杂&#xff0c;如何完善现场施工现场管理&#xff0c;控制事故发生频率&#xff0c;保障文明施工一直是施工企业、政府管理部门关注的焦点。尤其随着社会的…

Elasticsearch_第3章_ elasticsearch_进阶

Elasticsearch_第3章_ elasticsearch_进阶 文章目录Elasticsearch_第3章_ elasticsearch_进阶0.学习目标1.数据聚合1.1.聚合的种类1.2.DSL实现聚合1.2.1.Bucket聚合语法1.2.2.聚合结果排序1.2.3.限定聚合范围1.2.4.Metric聚合语法1.2.5.小结1.3.RestAPI实现聚合1.3.1.API语法1.…

Redis数据结构

一.NoSQL 1.认识NoSQL 关系型数据库&#xff1a;结构化&#xff08;有很多约束&#xff09;&#xff0c;关联的&#xff08;数据库会自己维护数据之间的关联&#xff0c;如外键&#xff09;&#xff0c;SQL查询&#xff08;语法统一&#xff09;&#xff0c;满足事务ACID的特性…

C# Winform 文本面板带滚动条

Winform 中如果需要在一个固定大小的面板中显示一些内容&#xff0c;并且面板能上下拖动&#xff0c;将所有的内容完整的展示&#xff0c;这种需求很常见&#xff0c;下面就演示如何实现的吧 效果&#xff1a; 1.新建一个winform 项目&#xff0c;在界面中拖入一个Panel 将 p…

港科夜闻|香港科技大学校长叶玉如教授,新加坡国立大学曾运雄博士:发现阿尔茨海默病新疗法...

关注并星标每周阅读港科夜闻建立新视野 开启新思维1、香港科技大学校长叶玉如教授、新加坡国立大学曾运雄博士&#xff1a;发现阿尔茨海默病新疗法。由中科院院士、香港科技大学校长叶玉如教授&#xff0c;及新加坡国立大学感染、免疫与炎症研究所的曾运雄博士共同领导的团队研…

rxjs pipeable operators(下)

rxjs pipeable operators&#xff08;下&#xff09; 这一篇主要就是讲 flattening operators&#xff0c;像其他的 pipeable 一样&#xff0c; flattening operators 内部会 subscribe 每一个传进来的 Observable&#xff0c;并且将其返回一个新的 Observable。不过它可以将 …

VsCode + gdb + gdbserver远程调试arm嵌入式linux C/C++程序

基本流程跟我的另一篇文章《VsCode gdb gdbserver远程调试C程序》一样&#xff0c;不一样的是需要重新编译gdb和交叉编译gdbserver。 一、准备工作 sudo apt install libgmp-dev 如果不安装&#xff0c;编译gdb时可能会报错&#xff1a;configure: error: GMP is missing o…

[附源码]计算机毕业设计springboot疫情管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…