在MySQL关系型数据库中,MySQL支持的数据类型非常丰富。它主要分为3大类,即:数值型,日期时间性,字符型。而实际上这三类数据类型可以进一步的细分扩展,可以根据业务需要选择最适合的一种。本文主要介绍字符类型,并演示其用法。

一、字符型
MySQL支持的字符类型可以进一步细分,即可以分为定(变)长字符型,大值字符型,枚举集合类型等。如下图所示:

二、字符型空间需求

三、字符型演示

mysql> show variables like 'version';
+---------------+------------+
| Variable_name | Value |
+---------------+------------+
| version | 5.7.22-log |
+---------------+------------+
mysql> select 'Leshami' as Author-> union all-> select 'http://blog.csdn.net/leshami';
+------------------------------+
| Author |
+------------------------------+
| Leshami |
| http://blog.csdn.net/leshami |
+------------------------------+-- 创建表,包含2种数据类型的列
mysql> CREATE TABLE vc-> (-> v VARCHAR(4),-> c CHAR(4)-> );
Query OK, 0 rows affected (0.12 sec)mysql> INSERT INTO vc-> VALUES ('ab ', 'ab ');
Query OK, 1 row affected (0.02 sec)-- 通过字符串函数可知,第二列定长类型ab后的空格被截断
mysql> SELECT CONCAT('(', v, ')'), -> CONCAT('(', c, ')') FROM vc;
+---------------------+---------------------+
| CONCAT('(', v, ')') | CONCAT('(', c, ')') |
+---------------------+---------------------+
| (ab ) | (ab) |
+---------------------+---------------------+
1 row in set (0.00 sec)-- 创建包含枚举和集合类型的表
mysql> CREATE TABLE tb5(status ENUM('a','b'),-> range_set SET ('a','b','c','d'));
Query OK, 0 rows affected (0.16 sec)mysql> INSERT INTO tb5-> VALUES ('a', ('a,b')), ('b', ('a,d'));
Query OK, 2 rows affected (0.05 sec)
Records: 2 Duplicates: 0 Warnings: 0-- 以下insert操作仅为status插入值,报错,因为c值不在枚举范围内
mysql> INSERT INTO tb5(status)-> VALUES ('c');
ERROR 1265 (01000): Data truncated for column 'status' at row 1-- 以下insert操作仅为status插入值,报错,因为a,b联合值不在枚举范围内
mysql> INSERT INTO tb5(status)-> VALUES ('a,b');
ERROR 1265 (01000): Data truncated for column 'status' at row 1-- 以下insert操作仅为range_set插入值,报错,因为值超出集合范围
mysql> INSERT INTO tb5(range_set)-> VALUES ('a,b,c,f');
ERROR 1265 (01000): Data truncated for column 'range_set' at row 1-- 以下操作成功
mysql> INSERT INTO tb5(range_set)-> VALUES ('a,b,c,d,a,c');
Query OK, 1 row affected (0.02 sec)-- 查看数据行
mysql> SELECT * FROM tb5;
+--------+-----------+
| status | range_set |
+--------+-----------+
| a | a,b |
| b | a,d |
| NULL | a,b,c,d |
+--------+-----------+
3 rows in set (0.00 sec)mysql> SELECT status + 0, range_set + 0-> FROM tb5;
+------------+---------------+
| status + 0 | range_set + 0 |
+------------+---------------+
| 1 | 3 |
| 2 | 9 |
| NULL | 15 |
+------------+---------------+
3 rows in set (0.00 sec)-- 对于枚举型与集合型,不能超出枚举和集合范围
-- 集合型列值插入时可以重复,插入成功后重复值被过滤

MySQL数据类型 -- 字符型相关推荐

  1. 墨者靶场-SQL手工注入漏洞测试(MySQL数据库-字符型)

    0x00 前言 我们都知道,SQL注入分数字型和字符型,我们上次讲的是最基本的数字型SQL注入,这次我们就来讲最基本的字符型SQL注入.同样,如果是明白原理和方法的话,看懂这篇文章并不难,但是如果不清 ...

  2. SQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型

    简要描述一下SQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型 字符型 VARCHAR VS CHAR VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要.他们都是用来储存字 ...

  3. mysql的字符型系统数据类型主要包括_MySQL的数据类型主要包括哪些

    MySQL的数据类型主要包括哪些 发布时间:2020-05-08 11:49:00 来源:亿速云 阅读:213 作者:三月 栏目:数据库 下文主要给大家带来MySQL的数据类型主要包括哪些,希望这些文 ...

  4. Java基本数据类型——字符型详解

    字符型char在Java语言中占用 2 个字节,char类型的字面量必须使用半角的单引号括起来,取值范围为[ 0 - 65535 ],char 和 short 都占用 2 个字节,但是 char 可以 ...

  5. JavaScript 基本数据类型 字符型 String

    目录 1. 字符串的单双 2. 字符串的嵌套 3. 字符串的转义 4. 字符串的长度 5. 字符串的拼接 6. 转换为字符串 6.1 tostring() 6.2 String() 6.3 隐式转换 ...

  6. C++_-数据类型-字符型_转义字符_字符串类型--C++语言工作笔记012

    在c/c++中字符都是只占用一个字节. 其实字符存的就是ascii码.

  7. MySQL数据类型----布尔型,时间型,枚举型的简单介绍

    二进制数据(Blob) Blob以二进制方式存储, 不区分大小写; Blob数据只能整体输出; Blob不用指定字符集: Blob常用于存储图片,音视频等二进制文件. 日期时间类型 date time ...

  8. sql注入(2) 墨者学院之SQL手工注入漏洞测试(MySQL数据库-字符型)

    目录 1.工具及靶场环境 2.解题步骤 2.1判断注入点 2.2判断字段数 2.3信息收集 2.4爆破数据库 2.4.1爆破数据库表名 2.4.2爆破指定表的列名 2.4.3查询账号密码 3.md5解 ...

  9. mysql 数据类型 tinyint,MySQL数据类型数值型之整数型之tinyint

    ##创建chenliang库 mysql> create database if not exists chenliang; Query OK, 1 row affected (0.03 sec ...

最新文章

  1. linux查看上下文切换命令,Linux性能优化,Linux查看CPU上下文切换
  2. 【 MATLAB 】用 MATLAB 实现离散时间傅里叶变换(DTFT)的两个案例分析
  3. 访问指定html页面,Spring boot的Controller类是如何指定HTML页面的
  4. java监视器_监视和管理备份系统
  5. Mysql 於lampp xampp LinuxUbuntu下的配置
  6. 【android】夜间模式简单实现
  7. 如何将 SAP 电商云 Spartacus UI 部署到 tomcat 上运行
  8. mysql left join 索引失效_MySQL索引列上做操作导致索引失效案例分析
  9. Android WebView与JS交互入门
  10. nlp项目:搭建一个简单的问答系统
  11. Linux 关于vmlinux和vmlinuz
  12. mantis Linux安装教程,CentOS Linux安装mantis
  13. 比所有女生都小的男生mySQL_男生能接受比自己小很多的女生吗?
  14. 分数四则运算 python
  15. RuntimeError: mat1 and mat2 shapes cannot be multiplied
  16. 浅析exit()和atexit()函数
  17. react通过hook实现父组件调用孙子组件方法(非redux)
  18. 小米 红米Note(联通3G版)解BL锁教程 申请BootLoader解锁教程
  19. win7下装ubuntu双系统 硬盘安装详细教程
  20. 晶体和晶振(晶体晶振区别、频率误差、负载电容)

热门文章

  1. Android开发学习Part3
  2. 晋文源计算机考试,2021年晋文源第四次模拟考试yu
  3. 「桌面好物」除了是无叶风扇,居然还可以用来...
  4. CTF之crypto做题总结
  5. 50年来,推动AI革命的背后8大统计学思想!
  6. 均值、方差的递推公式
  7. Xcode使用教程详细讲解 (上)
  8. 把字符串转换成整数(atoi)
  9. 2021年金属非金属矿山(地下矿山)安全管理人员考试总结及金属非金属矿山(地下矿山)安全管理人员模拟考试题库
  10. 输出一个PWM并实现 LED呼吸灯的效果