SQL 速查手册

前言:SQL(Structured Query Language)是用于管理关系型数据库的标准语言,广泛应用于数据查询、更新、定义和管理等操作。本文将为你提供一份详细的 SQL 速查手册,涵盖从基础到高级的各种 SQL 操作,帮助你快速掌握和应用 SQL 技能。

一、查找数据的查询

SELECT name AS "姓名" FROM users;
  • 功能:从 users 表中选择 name 列,并将其显示为“姓名”。
  • 详解SELECT 指定要查询的列,AS "姓名" 为查询结果指定别名,FROM users 指定数据来源表。
范例:

假设 users 表如下:

idnameemail
1Alicealice@example.com
2Bobbob@example.com
3Charliecharlie@example.com

执行语句:

SELECT name AS "姓名" FROM users;

结果:

姓名
Alice
Bob
Charlie

二、修改数据的查询

UPDATE employees SET salary = salary * 1.1 WHERE department = 'IT';
  • 功能:将 IT 部门的员工工资提高 10%。
  • 详解UPDATE 指定要更新的表,SET 指定要更新的列和值,WHERE 指定更新条件。
范例:

假设 employees 表如下:

idnamesalarydepartment
1Alice50000HR
2Bob60000IT
3Charlie55000Finance

执行语句:

UPDATE employees SET salary = salary * 1.1 WHERE department = 'IT';

结果:

idnamesalarydepartment
1Alice50000HR
2Bob66000IT
3Charlie55000Finance

三、聚合查询

SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department HAVING AVG(salary) > 50000;
  • 功能:按部门分组,计算每个部门的平均工资,并筛选出平均工资大于 50000 的部门。
  • 详解SELECT 指定要查询的列,GROUP BY 按部门分组,HAVING 筛选条件。
范例:

假设 employees 表如下:

idnamesalarydepartment
1Alice50000HR
2Bob60000IT
3Charlie55000Finance
4David58000IT

执行语句:

SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department HAVING AVG(salary) > 50000;

结果:

departmentavg_salary
IT59000

四、连接查询

SELECT employees.name, departments.department_name 
FROM employees 
INNER JOIN departments 
ON employees.department_id = departments.id;
  • 功能:从 employeesdepartments 表中选择匹配的行。
  • 详解INNER JOIN 连接两个表,ON 指定连接条件。
范例:

假设 employees 表如下:

idnamedepartment_id
1Alice1
2Bob2
3Charlie3

假设 departments 表如下:

iddepartment_name
1HR
2IT
3Finance

执行语句:

SELECT employees.name, departments.department_name 
FROM employees 
INNER JOIN departments 
ON employees.department_id = departments.id;

结果:

namedepartment_name
AliceHR
BobIT
CharlieFinance

五、视图查询

CREATE VIEW high_salary_employees AS SELECT name, salary FROM employees WHERE salary > 50000;
  • 功能:创建一个视图,显示工资高于 50000 的员工。
  • 详解CREATE VIEW 创建视图,AS 定义视图的查询。
范例:

假设 employees 表如下:

idnamesalary
1Alice50000
2Bob60000
3Charlie55000

执行语句:

CREATE VIEW high_salary_employees AS SELECT name, salary FROM employees WHERE salary > 50000;

查询视图:

SELECT * FROM high_salary_employees;

结果:

namesalary
Bob60000
Charlie55000

六、修改表的查询

ALTER TABLE employees ADD COLUMN bonus DECIMAL(10,2);
  • 功能:向 employees 表中添加一个 bonus 列。
  • 详解ALTER TABLE 修改表结构,ADD COLUMN 添加新列。
范例:

假设 employees 表如下:

idnamesalary
1Alice50000
2Bob60000
3Charlie55000

执行语句:

ALTER TABLE employees ADD COLUMN bonus DECIMAL(10,2);

结果:

idnamesalarybonus
1Alice50000NULL
2Bob60000NULL
3Charlie55000NULL

七、单表查询

SELECT name, salary FROM employees WHERE salary > 50000;
  • 功能:从 employees 表中选择工资高于 50000 的员工。
  • 详解SELECT 指定要查询的列,WHERE 指定查询条件。
范例:

假设 employees 表如下:

idnamesalary
1Alice50000
2Bob60000
3Charlie55000

执行语句:

SELECT name, salary FROM employees WHERE salary > 50000;

结果:

namesalary
Bob60000
Charlie55000

八、多表查询

SELECT employees.name, departments.department_name 
FROM employees, departments 
WHERE employees.department_id = departments.id;
  • 功能:从 employeesdepartments 表中选择匹配的行。
  • 详解FROM 指定两个表,WHERE 指定连接条件。
范例:

假设 employees 表如下:

idnamedepartment_id
1Alice1
2Bob2
3Charlie3

假设 departments 表如下:

iddepartment_name
1HR
2IT
3Finance

执行语句:

SELECT employees.name, departments.department_name 
FROM employees, departments 
WHERE employees.department_id = departments.id;

结果:

namedepartment_name
AliceHR
BobIT
CharlieFinance

九、集合运算

SELECT name FROM employees WHERE department = 'HR' 
UNION 
SELECT name FROM employees WHERE department = 'IT';
  • 功能:返回 HRIT 部门的员工姓名。
  • 详解UNION 合并两个查询结果。
范例:

假设 employees 表如下:

idnamedepartment
1AliceHR
2BobIT
3CharlieFinance
4DavidIT

执行语句:

SELECT name FROM employees WHERE department = 'HR' 
UNION 
SELECT name FROM employees WHERE department = 'IT';

结果:

name
Alice
Bob
David

十、子查询

SELECT name FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);
  • 功能:选择工资高于平均工资的员工。
  • 详解SELECT 指定要查询的列,WHERE 中的子查询计算平均工资。
范例:

假设 employees 表如下:

idnamesalary
1Alice50000
2Bob60000
3Charlie55000

执行语句:

SELECT name FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);

结果:

name
Bob

十一、数据操作

INSERT INTO employees (name, salary, department) VALUES ('Eve', 52000, 'HR');
  • 功能:向 employees 表中插入一条新记录。
  • 详解INSERT INTO 插入新记录,VALUES 指定插入的值。
范例:

假设 employees 表如下:

idnamesalarydepartment
1Alice50000HR
2Bob60000IT
3Charlie55000Finance

执行语句:

INSERT INTO employees (name, salary, department) VALUES ('Eve', 52000, 'HR');

结果:

idnamesalarydepartment
1Alice50000HR
2Bob60000IT
3Charlie55000Finance
4Eve52000HR

十二、数据定义

CREATE TABLE departments (id INT PRIMARY KEY,department_name VARCHAR(50)
);
  • 功能:创建一个 departments 表。
  • 详解CREATE TABLE 创建表,PRIMARY KEY 指定主键。
范例:

执行语句:

CREATE TABLE departments (id INT PRIMARY KEY,department_name VARCHAR(50)
);

结果:成功创建 departments 表。

十三、扩展内容

EXPLAIN SELECT * FROM employees WHERE salary > 50000;
  • 功能:显示查询执行计划。
  • 详解EXPLAIN 用于分析查询性能。
范例:

假设 employees 表如下:

idnamesalary
1Alice50000
2Bob60000
3Charlie55000

执行语句:

EXPLAIN SELECT * FROM employees WHERE salary > 50000;

结果:显示查询执行计划,帮助优化查询性能。

希望以上内容符合您的需求!

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

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

相关文章

IDEA 中 Scala 项目远程连接虚拟机 Spark 环境

IDEA 中 Scala 项目远程连接虚拟机 Spark 环境 1. 环境准备 确保虚拟机 Spark 环境正常运行 虚拟机中已安装并启动 Spark记录虚拟机的 IP 地址和 Spark 端口(默认 7077)确保虚拟机防火墙允许相关端口访问 本地 IDEA 环境配置 安装 Scala 插件安装 Spar…

.net core 项目快速接入Coze智能体-开箱即用-全局说明

目录 一、Coze智能体的核心价值 二、开箱即用-效果如下 三 流程与交互设计 为什么要分析意图,而不是全部交由AI处理。 四 接入前的准备工作 五:代码实现----字节Coze 签署 JWT和获取Token .net core 项目快速接入Coze智能体-开箱即用 .net core快…

网店运营精细化突破新路径

内容概要 电商战场越来越卷,单纯靠低价和流量轰炸已经玩不转了。今天想要站稳脚跟,精细化运营才是破局密码——从商品怎么选、用户怎么留,到供应链怎么跑得更快,每个环节都得抠细节。比如用数据给选品“开天眼”,把用…

数据结构学习笔记 :线性表的链式存储详解

目录 单链表 1.1 无头单链表 1.2 有头单链表单向循环链表双链表 3.1 双链表 3.2 双向循环链表总结与对比 一、单链表 1. 无头单链表(Headless Singly Linked List) 定义:链表无头结点,直接由头指针指向第一个数据节点。 特点&…

数据库10(代码相关语句)

while循环 declare avgprice numeric(10,2) set avgprice(select avg(price)from titles) //自定义参数 while avgprice<10 //循环条件 begin update titles set priceprice*1.1 end //循环语句操作&#xff0c;当avgprice<10,所有price都加0.1 case语句 查询authors表…

Redis 下载与安装(Windows版)

一、下载 1、redis官网&#xff1a; https://redis.io/downloads/ 2、Github下载地址&#xff1a; https://github.com/MicrosoftArchive/redis/releases 二、安装 1、打开一个命令窗口&#xff0c;通过 cd 命令进入到你解压的目录 2、输入命令 &#xff0c;启动 Redis&…

在高数据速度下确保信号完整性的 10 个关键策略

随着越来越多的传感器连接到系统&#xff0c;需要快速、可靠和安全地传输更多数据&#xff0c;对带宽和设计复杂性的需求也在增加。优先考虑的是确保从 A 发送到 B 的信号不会失真。 确保信号完整性 对于设计依赖于持续准确数据流的数据密集型应用程序的工程师来说&#xff0c…

NAT、代理服务、内网穿透

NAT、代理服务、内网穿透 1、NAT1.1、NAT过程1.2、NAPT2、内网穿透3、内网打洞3、代理服务器3.1、正向代理3.2、反向代理1、NAT 1.1、NAT过程 之前我们讨论了IPv4协议中IP地址数量不充足的问题。NAT技术是当前解决IP地址不够用的主要手段,是路由器的一个重要功能。 NAT能够将…

利用互斥锁或者利用逻辑过期解决缓存击穿问题

缓存击穿问题概述 缓存击穿是指某个 热点数据缓存过期 时&#xff0c;大量并发请求直接穿透缓存&#xff0c;同时访问数据库&#xff0c;导致数据库压力骤增甚至崩溃。以下是基于 互斥锁 和 逻辑过期 的解决方案&#xff1a; 一、缓存击穿的核心原因 热点数据失效&#xff1a…

Vue3组合式API内核解析:从原子状态到企业级架构

一、组合逻辑原子化设计 1.1 状态管理层级拓扑 1.2 组合单元类型对照表 类型典型实现适用场景复用维度UI逻辑单元useForm/useTable表单/列表交互100%跨项目复用业务逻辑单元useOrderFlow订单流程控制同项目跨模块设备能力单元useGeolocation地理位置获取跨技术栈复用状态管理…

新生宿舍管理系统

收藏关注不迷路&#xff01;&#xff01; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff08;免费咨询指导选题&#xff09;&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;希望帮助更多…

从零上手GUI Guider学习LVGL——Button

视频教程请关注我b站&#xff1a;同学_好好学习&#xff0c;这里只是做相应的笔记文稿 从零上手GUI Guider学习LVGL——Buttton 前言&#xff1a; 首先我们为什么要学习LVGL设计工具呢&#xff1f; 1 降低开发难度 2 提高开发效率 所以我们需要学习一款合适的设计工具 在b站很少…

【AAOS】【源码分析】Car UX Restrictions

AAOS UX的核心理念:安全驾驶是驾驶员的首要责任。汽车制造商和应用程序开发人员的所有设计都必须反映这一优先事项。 AAOS平台允许设备制造商(OEM)对不同驾驶状态下的限制进行定制。 驾驶员分心指南 只有符合Driver Distraction Guidelines的应用才可以在驾驶过程中运行。…

jvm调优工具arthas(阿尔萨斯)安装与使用---实践

jvm调优工具arthas(阿尔萨斯)安装与使用—实践 Arthas 是Alibaba开源的Java诊断工具&#xff0c;深受开发者喜爱。 当你遇到以下类似问题而束手无策时&#xff0c;Arthas可以帮助你解决&#xff1a; 这个类从哪个 jar 包加载的&#xff1f;为什么会报各种类相关的 Exception…

机器学习期末

选择题 以下哪项不是机器学习的类型&#xff1f; A. 监督学习 B.无监督学习 C.半监督学习 D.全监督学习 D 哪一个是机器学习的合理定义? A、机器学习是计算机编程的科学 B、机器学习从标记的数据中学习 C、机器学习是允许机器人智能行动的领域 D、机器学习能使计算机能够在…

3DMAX粒子流样条线生成器PFSpliner使用方法详解

3DMAX粒子流样条线生成器&#xff0c;是一款功能强大且富有创意的工具。它能够为“粒子流源”的每一个粒子生成专属的动画样条线&#xff0c;这些样条线描绘出粒子在空间中的运动轨迹&#xff0c;就如同为粒子绘制出了一条条独特的“运动地图”。更为出色的是&#xff0c;这些样…

Maven中clean、compil等操作介绍和Pom.xml中各个标签介绍

文章目录 前言Maven常用命令1.clean2.vaildate3.compile4.test5.package6.verify7.install8.site9.deploy pom.xml标签详解格式<?xml version"1.0" encoding"UTF-8"?>(xml版本和编码)modelVersion&#xff08;xml版本&#xff09;groupId&#xff…

Centos7.6安装JDK 1.8教程

前提&#xff1a;先把jdk1.8文件上传到usr/local目录下&#xff0c;文件名如&#xff1a;jdk-8u151-linux-x64.tar.gz 1. 解压 JDK 压缩包 假设 jdk-8u151-linux-x64.tar.gz 文件位于 /usr/local 目录下。 进入 /usr/local 目录&#xff1a; cd /usr/local 解压文件&#…

EuroCropsML:首个面向少样本时间序列作物分类的多国基准数据集

2025-04-15&#xff0c;由慕尼黑工业大学等机构创建的 EuroCropsML 数据集&#xff0c;这是一个结合了农民报告的作物数据与 Sentinel-2 卫星观测的时间序列数据集&#xff0c;覆盖了爱沙尼亚、拉脱维亚和葡萄牙。该数据集为解决遥感应用中作物类型数据空间不平衡问题提供了新的…

将python项目打包成Windows后台服务

前文,我开发了一个基于windows11与本地deepseek实现的语音助手,之前是通过CMD直接执行项目的main.py文件。但是这样不适合移植,现在想将其生成一个exe文件,以及部署成windows的后台服务。 关于语音助手的开发与发布,可以看的CSDN文章:一个基于windows11与本地deepseek实…