### MySQL 数据类型与函数知识点详解 #### 数据类型 MySQL 支持多种数据类型,每种类型都有其特定的用途和特点。以下是一些常见的数据类型及其特性: - **字符串类型**: - `CHAR(M) [BINARY]`:固定长度的字符型,M为字符个数。 - `VARCHAR(M) [BINARY]`:可变长度的字符型,M为最大字符个数。 - `NATIONAL CHAR(M) [BINARY]`:国际化字符型,用于支持不同语言的字符集。 - `NATIONAL VARCHAR(M) [BINARY]`:国际化可变长度字符型。 - `BLOB`:二进制大对象类型,用于存储图像、音频等二进制数据。 - `TEXT`:文本类型,用于存储较大的文本数据。 - `TINYBLOB`、`TINYTEXT`、`MEDIUMBLOB`、`MEDIUMTEXT`、`LONGBLOB`、`LONGTEXT`:这些是 BLOB 和 TEXT 的子类型,分别用于不同大小的数据。 - **数字类型**: - `INT[(M)][UNSIGNED][ZEROFILL]`、`INTEGER[(M)][UNSIGNED][ZEROFILL]`:整数类型,M表示显示宽度,UNSIGNED 表示无符号数,ZEROFILL 表示左填充零。 - `TINYINT[(M)][UNSIGNED][ZEROFILL]`:小整数类型。 - `SMALLINT[(M)][UNSIGNED][ZEROFILL]`:短整数类型。 - `MEDIUMINT[(M)][UNSIGNED][ZEROFILL]`:中等整数类型。 - `BIGINT[(M)][UNSIGNED][ZEROFILL]`:大整数类型。 - `DECIMAL[(M[,D])][ZEROFILL]`、`NUMERIC(M,D)[ZEROFILL]`:定点数类型,M表示总位数,D表示小数位数。 - `FLOAT[(M,D)][ZEROFILL]`:浮点数类型。 - `DOUBLE[(M,D)][ZEROFILL]`、`DOUBLE PRECISION[(M,D)]`、`REAL[(M,D)][ZEROFILL]`:双精度浮点数类型。 - `BIT`:位类型,用于存储二进制数据。 - `BOOL`:布尔类型,实际上是一个整数类型,可以存储0或1。 - **日期和时间类型**: - `DATE`:日期类型,格式为 YYYY-MM-DD。 - `DATETIME`:日期时间类型,格式为 YYYY-MM-DD HH:MM:SS。 - `TIMESTAMP[(M)]`:时间戳类型,可以自动记录插入或更新的时间。 - `TIME`:时间类型,格式为 HH:MM:SS。 - `YEAR[(2|4)]`:年份类型,可以存储2位或4位年份。 #### SQL 函数与操作符 - **比较操作符**: - `=`:等于 - `<>`、`!=`:不等于 - `<=`、`<`、`>=`、`>`:小于等于、小于、大于等于、大于 - `<=>`:比较操作符,可以进行 NULL 值的比较。 - `expr BETWEEN min AND max`:检查 expr 是否在 min 和 max 之间。 - `expr IN (value,...)`:检查 expr 是否在指定的值列表中。 - `expr NOT IN (value,...)`:检查 expr 是否不在指定的值列表中。 - `INTERVAL(expr, N1, N2, N3,...)`:返回 expr 在给定列表中的位置。 - `IS [NOT] NULL`:检查某个表达式是否为 NULL 或非 NULL。 - **逻辑操作符**: - `AND`(`&&`):逻辑与 - `OR`(`||`):逻辑或 - `NOT`(`!`):逻辑非 - **控制流函数**: - `CASE`语句:用于根据不同的条件执行不同的 SQL 语句。 - `IF(expr1, expr2, expr3)`:如果 expr1 为真,则返回 expr2;否则返回 expr3。 - `IFNULL(expr1, expr2)`:如果 expr1 为 NULL,则返回 expr2;否则返回 expr1。 - `NULLIF(expr1, expr2)`:如果 expr1 和 expr2 相等,则返回 NULL;否则返回 expr1。 - **字符串函数**: - `ASCII(str)`:返回字符串的第一个字符的 ASCII 值。 - `BIN(N)`:将整数转换为二进制形式的字符串。 - `BIT_LENGTH(str)`:返回字符串的位长度。 - `CHAR(N, ...)`:返回由多个字符值组成的字符串。 - `CHAR_LENGTH(str)`、`CHARACTER_LENGTH(str)`:返回字符串的字符长度。 - `CONCAT(str1, str2, ...)`:连接一个或多个字符串。 - `CONCAT_WS(separator, str1, str2, ...)`:用分隔符连接多个字符串。 - `CONV(N, from_base, to_base)`:将数字从一种基数转换为另一种基数。 - `ELT(N, str1, str2, str3, ...)`:返回第 N 个参数的值。 - `EXPORT_SET(bits, on, off, [separator], [number_of_bits])`:根据 bits 创建一个由 separator 分隔的字符串。 - `FIELD(str, str1, str2, str3, ...)`:返回 str 在 str1、str2、str3 等字符串中的位置。 - `FIND_IN_SET(str, strlist)`:返回 str 在 strlist 中的位置。 - `HEX(N_or_S)`:将整数转换为十六进制形式的字符串。 - `INSERT(str, pos, len, newstr)`:在指定位置插入新字符串。 - `INSTR(str, substr)`:返回 substr 在 str 中首次出现的位置。 - `LCASE(str)`、`LOWER(str)`:将字符串转换为小写。 - `LEFT(str, len)`:返回字符串左侧的 len 个字符。 - `LENGTH(str)`:返回字符串的字节长度。 - `LOAD_FILE(file_name)`:读取本地文件的内容。 - `LOCATE(substr, str)`、`LOCATE(substr, str, pos)`:返回 substr 在 str 中首次出现的位置。 - `LPAD(str, len, padstr)`:用 padstr 填充字符串左侧直到长度达到 len。 - `LTRIM(str)`:移除字符串左侧的空白字符。 - `MID(str, pos, len)`:返回从 pos 开始的 len 个字符。 - `OCT(N)`:将数字转换为八进制形式的字符串。 - `OCTET_LENGTH(str)`:返回字符串的字节长度。 - `ORD(str)`:返回字符串第一个字符的 ASCII 值。 - `POSITION(substr IN str)`:返回 substr 在 str 中首次出现的位置。 - `REPEAT(str, count)`:重复字符串 count 次。 - `REPLACE(str, from_str, to_str)`:替换字符串中的子串。 - `REVERSE(str)`:反转字符串。 - `RIGHT(str, len)`:返回字符串右侧的 len 个字符。 - `RPAD(str, len, padstr)`:用 padstr 填充字符串右侧直到长度达到 len。 - `RTRIM(str)`:移除字符串右侧的空白字符。 - `SOUNDEX(str)`:返回一个表示 str 音韵的编码字符串。 - `SPACE(N)`:返回 N 个空格组成的字符串。 - `SUBSTRING(str FROM pos FOR len)`、`SUBSTRING(str FROM pos)`、`SUBSTRING(str, pos)`、`SUBSTRING(str, pos, len)`:提取字符串子串。 - `SUBSTRING_INDEX(str, delim, count)`:按 delimiter 分割字符串并返回第 count 个部分。 - `TRIM([BOTH|LEADING|TRAILING] ... FROM str)`:移除字符串两侧的空白字符或其他字符。 以上内容涵盖了 MySQL 数据类型及常用函数的基本知识点,对于日常使用和开发都是非常重要的基础。通过熟练掌握这些知识点,可以更好地管理和操作数据库中的数据。

















- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 如何借助AI+数智应用快速响应客户需求,提升技术转移服务的满意度?.docx
- 如何借助AI+数智应用手段提升技术转移机构的专业服务能力?.docx
- 如何借助AI+数智应用手段应对技术转移市场挑战?.docx
- 如何借助AI+数智应用应对技术转移机构面临的市场竞争加剧和营收困难?.docx
- 如何利用AI+数智应用技术提升技术转移服务效率?.docx
- 如何利用AI+数智应用技术推动技术转移服务的升级转型?.docx
- 如何利用AI+数智应用技术转移资源共享平台提升服务效率?.docx
- 如何利用AI+数智应用提高技术转移的成功率?.docx
- 如何利用AI+数智应用提升技术转移服务的效率和质量?.docx
- 如何利用AI+数智应用提升技术转移服务的专业性和客户粘性?.docx
- 如何通过AI+数智应用工具提升技术转移服务效率?.docx
- 如何利用AI+数智应用提升技术转移机构的服务能力和效率?.docx
- 如何通过AI+数智应用构建技术转移机构的专属品牌形象并提升市场影响力?.docx
- 如何通过AI+数智应用技术转移服务提升客户粘性和业务增长?.docx
- 如何通过AI+数智应用手段提升技术转移服务的效率和质量?.docx
- 如何用AI+数智应用工具解决技术转移中的需求对接难题?.docx


