第一篇博客-测试效果

https://sqlmother.solargod.cn/

基础语法 - 条件分支

SELECT
name,
CASE WHEN (name = '鸡哥') THEN '会' ELSE '不会' END AS can_rap
FROM
student;
假设有一个学生表 `student`,包含以下字段:`name`(姓名)、`age`(年龄)。请你编写一个 SQL 查询,将学生按照年龄划分为三个年龄等级(age_level):60 岁以上为 "老同学",20 岁以上(不包括 60 岁以上)为 "年轻",20 岁及以下、以及没有年龄信息为 "小同学"。
返回结果应包含学生的姓名(name)和年龄等级(age_level),并按姓名升序排序。

answer

select
  name,
  case
    when (age > 60) then '老同学'
    when (age > 20) then '年轻'
    else '小同学'
  end as age_level
from
  student
order by
  name asc;

时间函数

-- 获取当前日期
SELECT DATE() AS current_date;
-- 获取当前日期时间
SELECT DATETIME() AS current_datetime;
-- 获取当前时间
SELECT TIME() AS current_time;

函数 - 字符串处理

-- 将姓名转换为大写
SELECT name, UPPER(name) AS upper_name
FROM employees;
-- 计算姓名长度
SELECT name, LENGTH(name) AS name_length
FROM employees;
-- 将姓名转换为小写并进行条件筛选
SELECT name, LOWER(name) AS lower_name
FROM employees;

函数 - 聚合函数

  • COUNT:计算指定列的行数或非空值的数量。
  • SUM:计算指定列的数值之和。
  • AVG:计算指定列的数值平均值。
  • MAX:找出指定列的最大值。
  • MIN:找出指定列的最小值。

查询进阶 - 子查询 - exists

-- 主查询
SELECT name, total_amount
FROM customers
WHERE EXISTS (
-- 子查询
SELECT 1
FROM orders
WHERE orders.customer_id = customers.customer_id
);

exists not exists

查询进阶 - 组合查询

在 SQL 中,组合查询是一种将多个 SELECT 查询结果合并在一起的查询操作。

包括两种常见的组合查询操作:UNION 和 UNION ALL。

  1. UNION 操作:它用于将两个或多个查询的结果集合并, 并去除重复的行 。即如果两个查询的结果有相同的行,则只保留一行。
  2. UNION ALL 操作:它也用于将两个或多个查询的结果集合并, 但不去除重复的行 。即如果两个查询的结果有相同的行,则全部保留。
SELECT name, age, department
FROM table1
UNION
--UNION ALL
SELECT name, age, department
FROM table2;

查询进阶 - 开窗函数 - sum over

SELECT
order_id,
customer_id,
order_date,
total_amount,
SUM(total_amount) OVER (PARTITION BY customer_id) AS customer_total_amount
FROM
orders;

根据 customer_id 分组,然后求 total_amount 和,但是不合并 customer_id,而是显示每一个 customer_id

posted @   sssabd  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示