当前位置: 首页 > article >正文

SQL 查询语句汇总

在软件开发和数据分析中,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.kler.cn/news/311974.html

相关文章:

  • 金砖软件测试赛项之Jmeter如何录制脚本!
  • 算法训练——day18 两数之和三数之和
  • 力扣春招100题——队列
  • Acwing 堆
  • 【QT】基于HTTP协议的网络应用程序
  • docker构建java镜像,运行镜像出现日志 no main manifest attribute, in /xxx.jar
  • 大模型-模型架构-新型模型架构
  • 程序员常用开发软件集合
  • AirTest 基本操作范例和参数解释(一)
  • 第157天: 安全开发-Python 自动化挖掘项目SRC 目标FOFA 资产Web 爬虫解析库
  • 缓存穿透 问题(缓存空对象)
  • C++ 中std::promise和std::future基本使用
  • OpenCV基础入门30讲(Python)——第二讲 图像色彩转换
  • 卷积参数量计算公式
  • GO主流开源框架
  • python测试开发---js基础
  • 网工请注意!华为认证笔试考试系统升级公告!
  • Matlab Delany-Bazley和Miki模型预测多孔材料吸声性能
  • pprof简单使用
  • 五、I/O与网络编程-5.2、网络编程
  • 全国各省山峰分布SHP数据
  • 【深度学习】(3)--损失函数
  • git使用“保姆级”教程1——简介及配置项设置
  • Kafka基础概念
  • Vivado FIR IP 详解 (一)
  • yolo车位数据集
  • MATLAB 图像处理入门详解
  • 油烟机制造5G智能工厂物联数字孪生平台,推进制造业数字化转型
  • 2.计算机网络基础
  • C# 比较对象新思路,利用反射技术打造更灵活的比较工具