首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第4章 数据更新
4-1 数据的插入(INSERT语句的使用方法)
什么是INSERT
INSERT语句的基本语法
列清单的省略
插入NULL
插入默认值
从其他表中复制数据
4-2 数据的删除(DELETE语句的使用方法)
DROP TABLE语句和DELETE语句
DELETE语句的基本语法
指定删除对象的DELETE语句(搜索型DELETE)
4-3 数据的更新(UPDATE语句的使用方法)
UPDATE语句的基本语法
指定条件的UPDATE语句(搜索型UPDATE)
使用NULL进行更新
多列更新
4-4 事务
什么是事务
创建事务
ACID特性
第5章 复杂查询
5-1 视图
视图和表
创建视图的方法
视图的限制① ——定义视图时不能使用ORDER BY子句
视图的限制② ——对视图进行更新
删除视图
5-2 子查询
子查询和视图
子查询的名称
标量子查询
标量子查询的书写位置
使用标量子查询时的注意事项
5-3 关联子查询
普通的子查询和关联子查询的区别
关联子查询也是用来对集合进行切分的
结合条件一定要写在子查询中
第6章 函数、谓词、CASE表达式
6-1 各种各样的函数
函数的种类
算术函数
字符串函数
日期函数
转换函数
6-2 谓词
什么是谓词
LIKE谓词——字符串的部分一致查询
BETWEEN谓词——范围查询
IS NULL、IS NOT NULL——判断是否为NULL
IN谓词——OR的简便用法
使用子查询作为IN谓词的参数
EXIST谓词
6-3 CASE表达式
什么是CASE表达式
CASE表达式的语法
CASE表达式的使用方法
第7章 集合运算
7-1 表的加减法
什么是集合运算
表的加法——UNION
集合运算的注意事项
包含重复行的集合运算——ALL选项
选取表中公共部分——INTERSECT
记录的减法——EXCEPT
7-2 联结(以列为单位对表进行联结)
什么是联结
内联结——INNER JOIN
外联结——OUTER JOIN
3张以上的表的联结
交叉联结——CROSS JOIN
联结的特定语法和过时语法
当前位置:
首页>>
技术小册>>
SQL基础教程(中)
小册名称:SQL基础教程(中)
### 转换函数章节 #### 引言 在SQL(Structured Query Language,结构化查询语言)中,转换函数扮演着至关重要的角色,它们允许我们对数据进行格式转换、类型转换或数据内容的变换,以满足不同的数据处理和分析需求。无论是从数据库表中提取信息时调整数据的显示格式,还是在数据清洗过程中转换数据类型,转换函数都是不可或缺的工具。本章将深入介绍SQL中常用的转换函数,包括字符串转换函数、数字转换函数、日期时间转换函数以及一些特定的类型转换函数,帮助读者掌握这些强大而灵活的数据处理手段。 #### 一、字符串转换函数 字符串转换函数主要用于处理文本数据,包括字符串的拼接、截取、转换大小写、去除空格等操作。 1. **CONCAT() 和 CONCAT_WS()** `CONCAT()` 函数用于将两个或多个字符串值连接成一个字符串。例如,`SELECT CONCAT('Hello', ' ', 'World');` 会返回 `'Hello World'`。 `CONCAT_WS()` 是 `CONCAT With Separator` 的缩写,它允许你在连接字符串时指定一个分隔符。如 `SELECT CONCAT_WS('-', '2023', '04', '01');` 会返回 `'2023-04-01'`。 2. **LENGTH() 和 CHAR_LENGTH()** 这两个函数都用于返回字符串的长度,但它们在处理多字节字符集(如UTF-8)时有所不同。`LENGTH()` 返回字节长度,而 `CHAR_LENGTH()` 或 `CHARACTER_LENGTH()` 返回字符数。 3. **UPPER()、LOWER() 和 INITCAP()** `UPPER()` 将字符串转换为大写,`LOWER()` 转换为小写,而 `INITCAP()` 将每个单词的首字母转换为大写,其余字母转换为小写。 4. **TRIM()、LTRIM() 和 RTRIM()** 这些函数用于去除字符串前后的空格或指定字符。`TRIM()` 可以同时去除字符串两端的空格或指定字符,`LTRIM()` 仅去除左侧的,`RTRIM()` 仅去除右侧的。 5. **SUBSTRING()、LEFT() 和 RIGHT()** `SUBSTRING(string, start, length)` 用于从字符串中提取子串,`LEFT(string, length)` 返回字符串最左边的指定长度的字符,`RIGHT(string, length)` 则返回最右边的。 #### 二、数字转换函数 数字转换函数主要用于将数值转换为特定格式的字符串,或将字符串转换为数值类型。 1. **CAST() 和 CONVERT()** 这两个函数是SQL中最常用的类型转换函数,它们可以将数据类型从一种转换为另一种。例如,`CAST(column_name AS VARCHAR(255))` 或 `CONVERT(VARCHAR(255), column_name)` 可以将数值列转换为字符串类型。 2. **FORMAT()** `FORMAT()` 函数用于将数字格式化为具有固定小数位数和千位分隔符的字符串。如 `SELECT FORMAT(1234567.89, 2);` 返回 `'1,234,567.89'`。 3. **ROUND()、FLOOR() 和 CEIL()** 这些函数用于数字的四舍五入、向下取整和向上取整。`ROUND(column_name, decimals)` 可以指定保留的小数位数,`FLOOR()` 返回不大于参数的最大整数,`CEIL()` 或 `CEILING()` 返回不小于参数的最小整数。 #### 三、日期时间转换函数 日期时间转换函数用于处理日期和时间数据,包括提取日期时间组件、格式化日期时间等。 1. **NOW()、CURDATE() 和 CURTIME()** `NOW()` 返回当前的日期和时间,`CURDATE()` 仅返回日期部分,`CURTIME()` 仅返回时间部分。 2. **DATE_FORMAT()** `DATE_FORMAT(date, format)` 函数用于将日期按照指定的格式进行格式化。例如,`SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');` 返回当前日期和时间的格式化字符串。 3. **YEAR()、MONTH() 和 DAY()** 这些函数分别用于提取日期中的年、月、日部分。 4. **DATE_ADD() 和 DATE_SUB()** `DATE_ADD(date, INTERVAL expr type)` 和 `DATE_SUB(date, INTERVAL expr type)` 用于在日期上加上或减去指定的时间间隔。 #### 四、特定类型转换函数 除了上述通用的转换函数外,不同的数据库系统还可能提供特定的类型转换函数,以满足特定的数据处理需求。 - **MySQL中的JSON相关函数**:如`JSON_EXTRACT()`、`JSON_SET()`等,用于处理JSON类型的数据。 - **PostgreSQL中的数组和集合函数**:如`ARRAY_TO_STRING()`、`STRING_TO_ARRAY()`等,用于数组和字符串之间的转换。 - **SQL Server中的字符串和二进制函数**:如`STUFF()`、`REVERSE()`、`CAST()`(带`AS binary`)等,提供额外的字符串处理和二进制数据类型转换能力。 #### 结论 转换函数是SQL中一个非常强大的工具集,它们使得数据处理和分析变得更加灵活和高效。通过本章的学习,你应该能够掌握字符串、数字和日期时间等基本类型的转换方法,并了解如何在不同数据库系统中使用特定的转换函数。在实际应用中,合理选择和组合这些函数,可以大大提高数据处理的效率和准确性。记住,转换函数虽然强大,但也需要谨慎使用,以避免不必要的数据类型不匹配或数据丢失问题。
上一篇:
日期函数
下一篇:
6-2 谓词
该分类下的相关小册推荐:
高性能的Postgres SQL
SQL基础教程(下)
PostgreSQL入门教程
SQL基础教程(上)