MySQL数据类型 -- 字符型
在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数据类型 -- 字符型相关推荐
- 墨者靶场-SQL手工注入漏洞测试(MySQL数据库-字符型)
0x00 前言 我们都知道,SQL注入分数字型和字符型,我们上次讲的是最基本的数字型SQL注入,这次我们就来讲最基本的字符型SQL注入.同样,如果是明白原理和方法的话,看懂这篇文章并不难,但是如果不清 ...
- SQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型
简要描述一下SQL中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型 字符型 VARCHAR VS CHAR VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要.他们都是用来储存字 ...
- mysql的字符型系统数据类型主要包括_MySQL的数据类型主要包括哪些
MySQL的数据类型主要包括哪些 发布时间:2020-05-08 11:49:00 来源:亿速云 阅读:213 作者:三月 栏目:数据库 下文主要给大家带来MySQL的数据类型主要包括哪些,希望这些文 ...
- Java基本数据类型——字符型详解
字符型char在Java语言中占用 2 个字节,char类型的字面量必须使用半角的单引号括起来,取值范围为[ 0 - 65535 ],char 和 short 都占用 2 个字节,但是 char 可以 ...
- JavaScript 基本数据类型 字符型 String
目录 1. 字符串的单双 2. 字符串的嵌套 3. 字符串的转义 4. 字符串的长度 5. 字符串的拼接 6. 转换为字符串 6.1 tostring() 6.2 String() 6.3 隐式转换 ...
- C++_-数据类型-字符型_转义字符_字符串类型--C++语言工作笔记012
在c/c++中字符都是只占用一个字节. 其实字符存的就是ascii码.
- MySQL数据类型----布尔型,时间型,枚举型的简单介绍
二进制数据(Blob) Blob以二进制方式存储, 不区分大小写; Blob数据只能整体输出; Blob不用指定字符集: Blob常用于存储图片,音视频等二进制文件. 日期时间类型 date time ...
- 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解 ...
- mysql 数据类型 tinyint,MySQL数据类型数值型之整数型之tinyint
##创建chenliang库 mysql> create database if not exists chenliang; Query OK, 1 row affected (0.03 sec ...
最新文章
- linux查看上下文切换命令,Linux性能优化,Linux查看CPU上下文切换
- 【 MATLAB 】用 MATLAB 实现离散时间傅里叶变换(DTFT)的两个案例分析
- 访问指定html页面,Spring boot的Controller类是如何指定HTML页面的
- java监视器_监视和管理备份系统
- Mysql 於lampp xampp LinuxUbuntu下的配置
- 【android】夜间模式简单实现
- 如何将 SAP 电商云 Spartacus UI 部署到 tomcat 上运行
- mysql left join 索引失效_MySQL索引列上做操作导致索引失效案例分析
- Android WebView与JS交互入门
- nlp项目:搭建一个简单的问答系统
- Linux 关于vmlinux和vmlinuz
- mantis Linux安装教程,CentOS Linux安装mantis
- 比所有女生都小的男生mySQL_男生能接受比自己小很多的女生吗?
- 分数四则运算 python
- RuntimeError: mat1 and mat2 shapes cannot be multiplied
- 浅析exit()和atexit()函数
- react通过hook实现父组件调用孙子组件方法(非redux)
- 小米 红米Note(联通3G版)解BL锁教程 申请BootLoader解锁教程
- win7下装ubuntu双系统 硬盘安装详细教程
- 晶体和晶振(晶体晶振区别、频率误差、负载电容)