超爱学习网
sqlite入门
一级目录
基础使用
面试题
二级目录
目录
概念
sqlite简介
安装
数据库、表的操作语句
创建库 DATABASE
删除库 DATABASE
备份库 DATABASE
创建表 TABLE
删除表 TABLE
清空表 TABLE
修改表 TABLE
字段非空 NOT NULL
字段唯一 UNIQUE
主键 PRIMARY KEY
外键 FOREIGN KEY
检查 CHECK
默认值 DEFAULT
索引 INDEX
自增ID auto-increment
事务
触发器
视图
常用的查询SQL
查询 SELECT
限定 WHERE
分页 LIMIT
分页 ROWNUM
总数 COUNT
插入 INSERT
更新 UPDATE
删除 DELETE
并且 AND
或者 OR
非 NOT
大于 >
小于 <
等于 =
不等于 !=
在内 IN
部分 LIKE
介于 BETWEEN
排序 ORDER BY
分组 GROUP BY
存在 HAVING
存在 EXISTS
空与非空 IS NULL、IS NOT NULL
去重 DISTINCT
组合 UNION
链接 JOIN
左链 LEFT JOIN
右链 RIGHT JOIN
情况 CASE
解析 EXPLAIN
字符串函数
码值 ASCII
长度 CHAR_LENGTH
CHARACTER_LENGTH
连接 CONCAT
连接 CONCAT_WS
位置 FIELD
查找 FIND_IN_SET
格式 FORMAT
插入 INSERT
查找 INSTR
小写 LCASE
截取 LEFT
长度 LENGTH
查找 LOCATE
转小写 LOWER
左填充 LPAD
左空格 LTRIM
截取 MID
查找 POSITION
重复 REPEAT
替换 REPLACE
反转 REVERSE
截取 RIGHT
右填充 RPAD
右空格 RTRIM
空格 SPACE
比较 STRCMP
截取 SUBSTR
截取 SUBSTRING
SUBSTRING_INDEX
去除空格 TRIM
转大写 UCASE
转大写 UPPER
数值函数
绝对值 ABS
反余弦 ACOS
反正弦 ASIN
反正切 ATAN
反正切 ATAN2
平均值 AVG
向上取整 CEIL
取整 CEILING
余弦 COS
余切 COT
统计 COUNT
角度 DEGREES
除法 DIV
指数 EXP
向下取整 FLOOR
最大值 GREATEST
最小值 LEAST
自然对数 LN
自然对数 LOG
自然对数 LOG10
自然对数 LOG2
最大值 MAX
最小值 MIN
余数 MOD
圆周率 PI
指数幂 POW
指数幂 POWER
弧度 PADIANS
随机数 RAND
四舍五入 ROUND
符号 SIGN
正弦 SIN
排列 SORT
总和 SUM
正切 TAN
截断 TRUNCATE
日期函数
添加 ADDDATE
添加 ADDTIME
当前日期 CURDATE
当前日期 CURRENT_DATE
当前时间 CURRENT_TIME
当前时间戳 CURRENT_TIMESTAMP
当前时间 CURTIME
当前时间 DATE
时间差 DATEDIFF
添加 DATE_ADD
格式化 DATE_FORMAT
减去 DATE_SUB
获取天 DAY
获取星期 DAYNAME
月中天 DAYOFMONTH
周中天 DAYOFWEEK
年中天 DAYOFYEAR
提取 EXTRACT
转换 FROM_DAYS
提取小时 HOUR
月最后天 LAST_DAY
当前时间 LOCALTIME
当前时间戳 LOCALTIMESTAMP
创建日期 MAKEDATE
创建时间 MAKETIME
获取微秒 MICROSECOND
获取分钟 MINUTE
获取月份 MONTH
获取月份 MONTHNAME
获取当前时间 NOW
添加 PERIOD_ADD
月间隔 PERIOD_DIFF
季度 QUARTER
砖庙 SEC_TO_TIME
字符转时间 STR_TO_DATE
减去 SUBDATE
减去 SUBTIME
系统时间 SYSDATE
提取时间 TIME
格式化 TIME_FORMAT
转秒 TIME_TO_SEC
时间差 TIMEDIFF
时间戳 TIMESTAMP
天数 TO_DAYS
获取周 WEEK
获取星期 WEEKDAY
获取周数 WEEKOFYEAR
获取年 YEAR
获取年周 YEARWEEK
其他函数
二进制 BIN
二进制 BINARY
转换 CAST
默认值 COALESCE
链接ID CONNECTION_ID
数值转换 CONV
转换 CONVERT
当前用户 CURRENT_USER
数据库 DATABASE
替代 IFNULL
替代 ISNULL
上一ID LAST_INSERT_ID
比较 NULLIF
用户 SESSION_USER
用户 SYSTEM_USER
用户 USER
版本 VERSION

SQL的字符函数LENGTH讲解

LENGTH函数用于返回字符串的长度,即字符的个数。这个函数对于需要统计字符串长度的场景非常有用。
LENGTH函数的基本语法如下:
SELECT LENGTH(字符串);
其中,字符串是要计算长度的字符或字符串。

案例表的定义和数据


CREATE TABLE Products (
  product_id INT PRIMARY KEY,
  product_name VARCHAR(50),
  category VARCHAR(50)
);

INSERT INTO Products VALUES
  (1, 'Laptop', 'Electronics'),
  (2, 'Smartphone', 'Electronics'),
  (3, 'Tablet', 'Electronics');
        
上述代码定义了一个表Products,包括product_id、product_name和category三个字段,并插入了产品信息。

使用案例


-- 1. 获取产品名称 'Laptop' 的长度
SELECT LENGTH(product_name)
FROM Products
WHERE product_name = 'Laptop';
-- 注释:返回产品名称 'Laptop' 的长度
        

-- 2. 获取产品类别 'Electronics' 的长度
SELECT LENGTH(category)
FROM Products
WHERE category = 'Electronics';
-- 注释:返回产品类别 'Electronics' 的长度
        

案例结果


-- 1. 获取产品名称 'Laptop' 的长度
SELECT LENGTH(product_name)
FROM Products
WHERE product_name = 'Laptop';
-- 结果:返回 6('Laptop'有6个字符)
        

-- 2. 获取产品类别 'Electronics' 的长度
SELECT LENGTH(category)
FROM Products
WHERE category = 'Electronics';
-- 结果:返回 11('Electronics'有11个字符)
        

特点和注意点

特点:LENGTH函数用于返回字符串的长度,即字符的个数。
注意点:该函数对于包含多字节字符的情况可能返回不准确的结果,具体取决于数据库的字符集设置。在某些数据库中,可以使用CHAR_LENGTH函数来处理多字节字符。

错误用法


-- 错误示例:未指定字符串
SELECT LENGTH();
-- 错误原因:LENGTH函数需要指定一个字符串作为参数
        

-- 错误示例:使用不支持的数据类型
SELECT LENGTH(123);
-- 错误原因:LENGTH函数只能用于字符串类型的数据