首页
/ 深入解析SQL基础与常用函数:以lcomment/development-recipes项目为例

深入解析SQL基础与常用函数:以lcomment/development-recipes项目为例

2025-06-25 20:16:57作者:魏侃纯Zoe

前言

SQL作为关系型数据库的核心语言,是每位开发者必须掌握的技能。本文将以lcomment/development-recipes项目中的SQL基础内容为蓝本,深入讲解SQL的基本语法和常用函数,帮助读者构建扎实的SQL基础。

关系型数据库基础

关系型数据库(RDB)是基于关系模型构建的数据管理系统,其核心特点包括:

  1. 二维表结构:数据以行和列的形式组织
  2. RDBMS:关系型数据库管理系统,如Oracle、MySQL等
  3. SQL:结构化查询语言,用于与数据库交互

SQL的优化和高效使用直接影响系统性能,因此掌握SQL基础至关重要。

SELECT语句详解

基本语法

SELECT [DISTINCT] column1, column2...
FROM table_name
[WHERE condition]
[GROUP BY column]
[HAVING condition]
[ORDER BY column [ASC|DESC]];

别名使用技巧

  • 表别名:简化复杂查询
  • 列别名:提高结果可读性
  • 注意:一旦使用别名,就必须在整个查询中保持一致

运算符全解析

算术运算符优先级

优先级 运算符 说明
1 () 括号优先
2 *, / 乘除
3 +, -, % 加减和取余

重要提示:任何包含NULL的算术运算结果都是NULL。

字符串连接符

||是最常用的字符串连接运算符,例如:

SELECT first_name || ' ' || last_name AS full_name FROM employees;

函数大全

字符串处理函数

  1. 大小写转换

    • LOWER():转为小写
    • UPPER():转为大写
  2. 修剪函数

    • LTRIM()/RTRIM():去除左右空格或指定字符
    • TRIM():更灵活的修剪方式
  3. 子字符串处理

    • SUBSTR(str, start, length):注意起始位置是1不是0
    • REPLACE():字符串替换
    • LPAD()/RPAD():填充字符串

数值处理函数

  1. 基本运算

    • ABS():绝对值
    • SIGN():符号判断
  2. 舍入处理

    • ROUND():四舍五入
    • TRUNC():直接截断
    • CEIL()/FLOOR():向上/向下取整
  3. 模运算

    • MOD():取余数,注意除数为0的情况

日期函数精要

  1. 系统日期

    • SYSDATE:获取当前系统日期时间
  2. 日期提取

    • EXTRACT():提取特定日期部分
  3. 日期计算

    • ADD_MONTHS():月份加减,处理月末日期有特殊规则

类型转换函数

  1. 显式转换

    • TO_NUMBER():字符串转数字
    • TO_CHAR():格式化输出
    • TO_DATE():字符串转日期
  2. 隐式转换风险

    • 可能导致性能问题
    • 可读性差
    • 建议始终使用显式转换

NULL处理函数

  1. 基本处理

    • NVL():NULL替换
    • NULLIF():相等返回NULL
  2. 高级处理

    • COALESCE():返回第一个非NULL值
    • NVL2():三值逻辑处理

CASE表达式

-- 简单CASE
CASE column
  WHEN value1 THEN result1
  WHEN value2 THEN result2
  ELSE default_result
END

-- 搜索CASE
CASE
  WHEN condition1 THEN result1
  WHEN condition2 THEN result2
  ELSE default_result
END

条件筛选与分组

WHERE子句详解

  1. 比较运算符:=, <>, >, >=, <, <=

  2. SQL特殊运算符

    • BETWEEN:范围查询
    • LIKE:模式匹配
    • IN:多值匹配
    • IS NULL:NULL检测
  3. 逻辑运算符:AND, OR, NOT的组合使用

分组与聚合

  1. GROUP BY:数据分组

  2. 聚合函数

    • COUNT():计数
    • SUM()/AVG():求和/平均
    • MIN()/MAX():极值
  3. HAVING:分组后过滤,与WHERE的区别在于执行时机

排序与连接

ORDER BY排序

  • ASC:升序(默认)
  • DESC:降序
  • 多列排序:用逗号分隔

连接(JOIN)类型

  1. 内连接(INNER JOIN):只返回匹配行
  2. 外连接(OUTER JOIN)
    • 左外连接:保留左表所有行
    • 右外连接:保留右表所有行
    • 全外连接:保留两表所有行
  3. 交叉连接(CROSS JOIN):笛卡尔积
  4. 自然连接(NATURAL JOIN):自动匹配同名列

最佳实践建议

  1. **避免SELECT ***:只查询需要的列
  2. 合理使用索引:WHERE和JOIN条件考虑索引
  3. 注意NULL处理:NULL可能影响运算结果
  4. 使用显式JOIN语法:提高可读性
  5. 测试SQL性能:复杂查询应进行性能测试

通过掌握这些SQL基础知识和技巧,开发者可以更高效地与数据库交互,为构建健壮的应用程序打下坚实基础。

登录后查看全文
热门项目推荐