SQL 查询语句汇总

news/2024/11/14 14:48:32/

在软件开发和数据分析中,SQL(结构化查询语言)是与数据库交互的重要工具。为了更好地理解 SQL 查询语句的使用,本文将设计一个简单的数据库,包括几张表,并通过这些表展示各种 SQL 查询的应用。

一、背景信息

数据库设计

我们将设计一个简单的电商系统数据库,包括以下三张表:

  1. 用户表(users)

    • id: 用户唯一标识(主键)
    • name: 用户名
    • age: 用户年龄
    • email: 用户邮箱
  2. 订单表(orders)

    • id: 订单唯一标识(主键)
    • user_id: 下单用户的ID(外键,关联到用户表)
    • amount: 订单金额
    • order_date: 订单日期
  3. 产品表(products)

    • id: 产品唯一标识(主键)
    • name: 产品名称
    • price: 产品价格
    • stock: 产品库存

表结构示例

sql

CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(50),age INT,email VARCHAR(100)
);CREATE TABLE orders (id INT PRIMARY KEY,user_id INT,amount DECIMAL(10, 2),order_date DATE,FOREIGN KEY (user_id) REFERENCES users(id)
);CREATE TABLE products (id INT PRIMARY KEY,name VARCHAR(50),price DECIMAL(10, 2),stock INT
);

二、SQL 查询示例

1. 基本查询

查询所有用户信息
SELECT * FROM users;
查询所有订单信息
SELECT * FROM orders;

2. 条件查询

查询年龄大于25岁的用户
SELECT * FROM users WHERE age > 25;
查询金额大于100的订单
SELECT * FROM orders WHERE amount > 100;

3. 排序查询

查询所有用户,按年龄升序排列
SELECT * FROM users ORDER BY age ASC;
查询所有订单,按订单日期降序排列
SELECT * FROM orders ORDER BY order_date DESC;

4. 分组查询

查询每个年龄段的用户数量

sql

SELECT age, COUNT(*) AS user_count FROM users GROUP BY age;
查询每个用户的订单数量

sql

SELECT user_id, COUNT(*) AS order_count FROM orders GROUP BY user_id;

5. 聚合函数

查询用户的平均年龄
SELECT AVG(age) AS average_age FROM users;
查询订单的总金额
SELECT SUM(amount) AS total_amount FROM orders;

6. 连接查询

查询每个用户及其对应的订单金额

sql

SELECT users.name, orders.amount 
FROM users 
INNER JOIN orders ON users.id = orders.user_id;
查询所有用户及其订单信息(包括没有订单的用户)

sql

SELECT users.name, orders.amount 
FROM users 
LEFT JOIN orders ON users.id = orders.user_id;

7. 子查询

查询下单金额大于100的用户信息

sql

SELECT * FROM users 
WHERE id IN (SELECT user_id FROM orders WHERE amount > 100);
查询订单金额高于平均订单金额的订单信息

sql

SELECT * FROM orders 
WHERE amount > (SELECT AVG(amount) FROM orders);

8. 联合查询

查询所有用户和产品名称(假设产品名称也在用户中)

sql

SELECT name FROM users 
UNION 
SELECT name FROM products;

9. 更新和删除

更新用户的邮箱

sql

UPDATE users SET email = 'new_email@example.com' WHERE id = 1;
删除年龄小于18岁的用户
DELETE FROM users WHERE age < 18;

结论

通过上述示例,我们展示了在电商系统中如何使用 SQL 查询语句来操作和分析数据。掌握这些基本的查询能力,能够帮助开发者和数据分析师更高效地进行数据管理和决策。希望本文对你理解 SQL 查询语句有所帮助!如有问题或想分享的经验,欢迎在评论区交流!


http://www.ppmy.cn/news/1528224.html

相关文章

大数据新视界 --大数据大厂之数据治理之道:构建高效大数据治理体系的关键步骤

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

java集合之map

在 Java 中&#xff0c;Map 是一个用于存储键值对的集合。它的主要实现类和接口包括&#xff1a; HashMap: 基于哈希表实现&#xff0c;允许键和值为 null&#xff0c;不保证顺序&#xff0c;提供常数时间复杂度的基本操作。LinkedHashMap: 继承自 HashMap&#xff0c;保持插入…

智能自行车码表:基于2605C语音芯片的创新开发方案

一、开发背景 随着科技的飞速发展和人们对健康生活的追求&#xff0c;自行车骑行已成为一种广受欢迎的绿色出行方式。智能自行车码表作为骑行者的得力助手&#xff0c;不仅记录骑行数据&#xff0c;还逐渐融入了更多智能化功能。然而&#xff0c;传统码表在语音提示、多语种支持…

MySQL 事务的 ACID 特性与应用

MySQL事务的ACID特性与应用 数据库事务 是保障数据一致性和完整性的关键机制。事务不仅是并发控制的核心&#xff0c;更是数据恢复的基本单位。本文将带你深入了解MySQL中的事务概念、ACID特性以及如何在实际应用中正确处理事务。 1. 什么是事务&#xff1f; 事务&#xff0…

基于是springboot小区物业管理系统

小区物业管理系统 摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于小区物业管理系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了小区物业管理系统&#x…

[创业之路-146] :如何理解:复杂的事情简单化,简单的事情标准化,标准的事情流程化,流程的事情数字化,数字化的事情自动化,自动化的事情智能化

目录 一、复杂的事情简单化 二、简单的事情标准化 1、标准化的定义与意义 2、简单事情标准化的实施步骤 3、标准化的案例分析 三、标准的事情流程化 1、流程化的定义与意义 2、标准事情流程化的实施步骤 3、流程化的案例分析 四、流程的事情数字化 1、定义与意义 2…

001、Git开发流程规范

前言 本篇不详细介绍 Git 的使用&#xff0c;仅介绍基于 Git 的开发分支流程规范。 简述 Git 管理中&#xff0c;最重要的一个点就在于分支的管理。在项目开发中&#xff0c;一般涉及到 Git 的相关分支有&#xff1a; master/main: 主分支&#xff0c;版本正式发布的代码都用…

easy-es动态索引支持

背景 很多项目目前都引入了es&#xff0c;由于es弥补了mysql存储及搜索查询的局限性&#xff0c;随着技术的不断迭代&#xff0c;原生的es客户端使用比较繁琐不直观&#xff0c;上手代价有点大&#xff0c;所以easy-es框架就面世了&#xff0c;学习成本很低&#xff0c;有空大…