【SQL语句大全(MySQL)】

news2024/11/14 5:52:14

SQL语法

  • 添加
  • 删除
  • 修改
  • 查询
    • 基本查询
    • 条件查询
    • 分组函数/聚合函数
    • 分组查询
    • 排序
    • 分页查询(限制查询)
    • 多表查询
      • 连接查询根据年代分类
      • 连接查询根据连接方式分类
        • 1、内连接
        • 2、左外连接
        • 3、右外连接
      • 多张表连接的语法格式
    • 嵌套查询
  • SQL语句书写顺序

添加

INSERT INTO 表名 
VALUES (每个属性对应的值);

删除

DELETE FROM 表名 
WHERE 条件    //如果不写条件,那么该表的内容会被全部删除

修改

UPDATE 表名 
SET 字段名=字段值,字段名=字段值... 
WHERE 条件    //与删除一样,如果不写where条件,那么所有记录都会被修改

查询

基本查询

SELECT * FROM 表名    //查询所有

SELECT 字段名,字段名...
FROM 表名    //查询指定字段

SELECT DISTINCT 字段名,字段名...
FROM 表名    //查询指定字段,返回唯一不同的值

条件查询

-- 单条件查询
SELECT * FROM 表名 WHERE condition

-- 多条件查询
SELECT * FROM 表名 WHERE condition1 and condition2	//得到两个条件都满足的记录
SELECT * FROM 表名 WHERE condition1 or condition2	//得到两个条件至少满足一个的记录

-- 指定字段查询范围
SELECT * FROM 表名 WHERE name in ('张三','李四')	//查询括号中每个name对应的记录
SELECT * FROM 表名 WHERE age between (1020)	//查询age在 [10,20) 区间的记录

更多运算符如下:
在这里插入图片描述

分组函数/聚合函数

sum    求和
avg    取平均
max    取最大值
min    取最小值
count    取得记录数    //count(*)表示取得当前查询表所有记录; count(字段名称),不会统计为null的记录

分组查询

-- 按照字段值进行分组,查找组内的平均年龄
SELECT AVG(age) FROM 表名 GROUP BY 字段名    

排序

SELECT * FROM 表名 ORDER BY 字段名 (ASC)   //按照字段值进行排序,默认正序
SELECT * FROM 表名 ORDER BY 字段名 DESC    //倒序排序
-- 先按照字段1的值进行倒序排序,再将字段1的值相同的记录按照字段2正序排序
SELECT * FROM 表名 
ORDER BY 字段名1 DESC,字段名2    
-- 先按照字段1的值进行倒序排序,再将字段1的值相同的记录按照字段2倒序排序
SELECT * FROM 表名 
ORDER BY 字段名1 DESC,字段名2 DESC   

分页查询(限制查询)

SELECT * FROM 表名 LIMIT A OFFSET B;

第一种解释(分页):
A = pageSize// 页面大小,即每个页面的记录数
B = pageSize * (pageIndex - 1) // pageIndex是第几页,SQL的页数从0开始,pageIndex从1开始,所以要 - 1, B必须为A的整数倍

另一种解释:从第B+1条记录开始,查询A条记录(记录从第一条开始);B可以不是A的整数倍
例如:select * from user limit 3 offset 5 //查询出第六条到第八条记录

多表查询

SELECT s.name,c.class_name 
FROM student s,class c    //如果没有连接条件,那么查询结果为俩张表的指定字段的所有记录

连接查询根据年代分类

1、SQL92写法 缺点:表连接条件与查询条件放在一起,没有分离
格式:select xxx from A 表名,B表名 where 表连接条件 and 数据查询条件

SELECT s.name,c.class_name 
FROM student s,class c 
WHERE s.class_num = c.class_num    //用where写连接条件

2、SQL99写法 优点:表连接独立,结构清晰,如果结果数据不满足要求,可再追加where条件进行过滤;
格式:select xxx from A 表名 join B 表名 on 表的连接条件

select student.name,class.class_name FROM student
JOIN class ON student.class_num = class.class_num

连接查询根据连接方式分类

1、内连接
SELECT student.name,class.class_name FROM student 
INNER JOIN class ON student.class_num = class.class_num
2、左外连接

包含左边表的全部行(不管右边的表中是否存在与他们匹配的行),以及右边表中全部匹配的行

SELECT student.name,class.class_name  from student 
LEFT JOIN class on student.class_num = class.class_num
3、右外连接

包含右边表的全部行(不管右边的表中是否存在与他们匹配的行),以及左边表中全部匹配的行

SELECT student.name,class.class_name FROM student 
RIGHT JOIN class ON student.class_num = class.class_num

多张表连接的语法格式

select xxx from A表
join B表 on 连接条件1
join C表 on 连接条件2

嵌套查询

一般在子查询中,程序先运行在嵌套在最内层的语句,再运行外层。
因此在写子查询语句时,可以先测试下内层的子查询语句是否输出了想要的内容,
再一层层往外测试,增加子查询正确率。否则多层的嵌套使语句可读性很低。

select t1.name FROM
(SELECT student.name,relationship.cno FROM student 
INNER JOIN relationship on student.sno = relationship.sno) t1    //t1是内层子查询的结果的别名/简称
WHERE t1.cno = '1001';

SQL语句书写顺序

SELECT DISTINCT <字段名>
FROM <表名>
JOIN <表名> 
ON <连接条件>
WHERE <筛选条件>
GROUP BY <字段名>
HAVING <筛选条件>
UNION
ORDER BY <字段名>
LIMIT <限制行数>;

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

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

相关文章

什么是STP环路保护

在运行生成树协议的网络中&#xff0c;根端口和其他阻塞端口状态是依靠不断接收来自上游设备的BPDU维持。当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游交换设备的BPDU时&#xff0c;设备会重新选择根端口。原先的根端口会转变为指定端口&#xff0c;而原先的阻塞…

2019年9月全国英语等级考试第三级笔试真题

2019年9月全国英语等级考试第三级笔试真题

vue3.0学习笔记(三)——计算属性、监听器、ref属性、组件通信

1. computed 函数 定义计算属性&#xff1a; computed 函数&#xff0c;是用来定义计算属性的&#xff0c;计算属性不能修改。 计算属性应该是只读的&#xff0c;特殊情况可以配置 get set 核心步骤&#xff1a; 导入 computed 函数 执行函数 在回调参数中 return 基于响应…

尚品汇-sku存入Redis缓存(二十三)

目录&#xff1a; &#xff08;1&#xff09;分布式锁改造获取sku信息 &#xff08;2&#xff09;使用Redisson 分布式锁 AOP实现缓存 &#xff08;3&#xff09;定义缓存aop注解 &#xff08;1&#xff09;分布式锁改造获取sku信息 前面学习了本地锁的弊端&#xff0c;…

Springboot validated JSR303校验

1.导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency> 2.测试类 package com.jmj.gulimall.product.testC;import lombok.Data;import javax.val…

《0基础》学习Python——第二十讲__网络爬虫/<3>

一、用post请求爬取网页 同样与上一节课的get强求的内容差不多&#xff0c;即将requests.get(url,headershead)代码更换成requests.post(url,headershead),其余的即打印获取的内容&#xff0c;如果content-typejson类型的&#xff0c;打印上述代码的请求&#xff0c;则用一个命…

argon主题调整日记

前言 argon主题是一款由solstice23开发的一款简洁美观的WordPress主题&#xff0c;在使用过程中也发现了几个可以优化的点&#xff0c;在查阅主题文档无果后对其进行以下几点修改。 1、使用子主题 为了避免修改源文件而引起主题更新后修改丢失的问题&#xff0c;还是尽量使用子…

一个C++模板工厂的编译问题的解决。针对第三方库的构造函数以及追加了的对象构造函数。牵扯到重载、特化等

一窥模板的替换和匹配方式&#xff1a;偏特化的参数比泛化版本的还要多&#xff1a;判断是不是std::pair&#xff1c;,&#xff1e;。_stdpair模板参数太多-CSDN博客 简介 在一个项目里&#xff0c;调用了第三封的库&#xff0c;这个库里面有个类用的很多&#xff0c;而且其构…

Mindspore框架循环神经网络RNN模型实现情感分类|(六)模型加载和推理(情感分类模型资源下载)

Mindspore框架循环神经网络RNN模型实现情感分类 Mindspore框架循环神经网络RNN模型实现情感分类|&#xff08;一&#xff09;IMDB影评数据集准备 Mindspore框架循环神经网络RNN模型实现情感分类|&#xff08;二&#xff09;预训练词向量 Mindspore框架循环神经网络RNN模型实现…

【Vue实战教程】之 Vue Router 路由详解

Vue Router路由 1 路由基础 1.1 什么是路由 用Vue.js创建的项目是单页面应用&#xff0c;如果想要在项目中模拟出来类似于页面跳转的效果&#xff0c;就要使用路由。其实&#xff0c;我们不能只从字面的意思来理解路由&#xff0c;从字面上来看&#xff0c;很容易把路由联想…

CV13_混淆矩阵、F1分数和ROC曲线

1.1 混淆矩阵Confusion Matrix 混淆矩阵&#xff08;Confusion Matrix&#xff09;是机器学习和统计学中用于描述监督学习算法性能的特定表格布局。它是一种特定类型的误差矩阵&#xff0c;可以非常直观地表示分类模型在测试数据集上的预测结果与实际结果之间的对比。 混淆矩…

谣言检测文献阅读十二—A Convolutional Approach for Misinformation Identification

系列文章目录 谣言检测文献阅读一—A Review on Rumour Prediction and Veracity Assessment in Online Social Network谣言检测文献阅读二—Earlier detection of rumors in online social networks using certainty‑factor‑based convolutional neural networks谣言检测文…

FreeModbus学习——读输入寄存器eMBFuncReadInputRegister

FreeModbus版本&#xff1a;1.6 当功能码为04时&#xff0c;也就是读输入寄存器MB_FUNC_READ_INPUT_REGISTER 看一下它是怎么调用读输入寄存器处理函数的 当功能码为04时&#xff0c;调用读输入寄存器处理函数 这个函数在数组xFuncHandlers中&#xff0c;也就是eMBFuncRead…

Mysql数据库第四次作业

mysql> create table student(sno int primary key auto_increment,sname varchar(30) not null unique,Ssex varchar(2) check (Ssex男 or Ssex女) not null,Sage int not null,Sdept varchar(10) default计算机 not null); mysql> create table Course(Con int primar…

【通信协议-RTCM】MSM语句(2) - RINEXMSM7语句总结(重要!自动化开发计算卫星状态常用)

注释&#xff1a; 在工作中主要负责的是RTCM-MSM7语句相关开发工作&#xff0c;所以主要介绍的就是MSM7语句相关内容 1. 相位校准参考信号 2. MSM1、MSM2、MSM3、MSM4、MSM5、MSM6和MSM7的消息头内容 DATA FIELDDF NUMBERDATA TYPENO. OF BITSNOTES Message Number - 消息编…

1. Docker的介绍和安装 (二)

5 Docker的原理 5.1 Namespace Namespace&#xff08;命名空间&#xff09;提供了一个独立的工作环境&#xff0c;Docker使用Namespace来隔离容器&#xff0c;使得每个容器都有自己独立的系统资源&#xff08;如进程ID、主机名、网络等&#xff09;。 PID Namespace&#xf…

SBTI科学碳目标认证是什么?SBTI科学碳目标的重要性

SBTI科学碳目标认证&#xff0c;作为企业在应对气候变化和追求可持续发展道路上的重要里程碑&#xff0c;其认证过程严谨而系统。以下是获得SBTI科学碳目标认证的详细步骤&#xff1a; 首先&#xff0c;企业需要在线注册并提交承诺书&#xff0c;郑重承诺在未来24个月内提交科学…

Linux网络-配置IP

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 本来IP配置应该放在Linux安装完成的就要配置的&#xff0c;但是由于那个时候对Linux不怎么熟悉&#xff0c;所以单独列了一个…

每日一题 LeetCode03 无重复字符的最长字串

1.题目描述 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的最长字串的长度。 2 思路 可以用两个指针, 滑动窗口的思想来做这道题,即定义两个指针.一个left和一个right 并且用一个set容器,一个length , 一个maxlength来记录, 让right往右走,并且用一个set容器来…

扫雷-C语言

一、前言&#xff1a; 众所周知&#xff0c;扫雷是一款大众类的益智小游戏&#xff0c;它的游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子&#xff0c;同时避免踩雷&#xff0c;踩到一个雷即全盘皆输。 今天&#xff0c;我们的目的就是通过C语言来实现一个简…