暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
3.字符串类型.docx
60
27页
0次
2024-06-01
50墨值下载
创建测试表:
create table dept(
deptno int, -- deptno 代表每个部门的唯一标识
dname varchar(100), -- dname 代表部门名称
location varchar(100) -- location 代表部门所在地
);
insert into dept values(1,'财务部','北京'),(2,'研发部','上海'),(3,'销售部','广州'),(4,'运维部','
');
create table emp(empno int, -- empno 代表每个员工的唯一标识
ename varchar(100), -- ename 代表员工姓名
job varchar(100), -- job 代表员工职位
manager int, -- manager 代表员工的直接上级的员工编号
hiredate date, -- hiredate 代表员工入职时间
salary int, -- salary 代表员工薪水
bonus int, -- bonus 代表员工奖金
deptno int -- deptno 代表员工所属部门标识
);
INSERT INTO emp VALUES(7369,'苏杨孙','业务员',7902,'1980-12-17',800,NULL,2);
INSERT INTO emp VALUES(7499,'郭赵','推销员',7698,'1981-02-20',1600,300,3);
INSERT INTO emp VALUES(7521,'高宋','推销员',7698,'1981-02-22',1250,500,3);
INSERT INTO emp VALUES(7566,'高张杜','经理',7839,'1981-04-02',2975,NULL,2);
INSERT INTO emp VALUES(7654,'余黄','推销员',7698,'1981-09-28',1250,1400,3);
INSERT INTO emp VALUES(7698,'胡黄杜','经理',7839,'1981-05-01',2850,NULL,3);
INSERT INTO emp VALUES(7782,'肖曹','经理',7839,'1981-06-09',2450,NULL,1);
INSERT INTO emp VALUES(7788,'孙袁罗','分析师',7566,'1987-07-13',3000,NULL,2);
INSERT INTO emp VALUES(7839,'冯蔡','总经理',NULL,'1981-11-17',5000,NULL,1);
INSERT INTO emp VALUES(7844,'杨郭','推销员',7698,'1981-09-08',1500,NULL,3);
INSERT INTO emp VALUES(7876,'赵李任','业务员',7788,'1887-07-13',1100,NULL,2);
INSERT INTO emp VALUES(7900,'吕袁','业务员',7698,'1981-12-03',950,NULL,3);
INSERT INTO emp VALUES(7902,'韩潘吕','分析师',7566,'1981-12-03',3000,NULL,2);
INSERT INTO emp VALUES(7934,'杜丁','业务员',7782,'1982-01-23',1300,NULL,1);
字符串类型用来存储字符串数据,还可以存储图片和声音的二进制数据。
MySQL 中提供了多种对字符数据的存储类型,包括了
CHARVARCHARBINARYVARBINARYBLOBTEXTENUM SET 等多
种字符串类型。
CHAR/VARCHAR
CHAR(M) 为定长字符串,在定义时指定字符串的长度。当保存时,在右侧填充空格以达到
指定的长度。M 表示字符串的长度,范围是 0255 个字符。
例如,CHAR(4) 定义了一个固定长度的字符串,包含的字符个数最大为 4。当检索到 CHAR
值时,尾部的空格将被删除。
VARCHAR(M) 是变长字符串,M 表示最大长度,M 的范围是 065535VARCHAR
最大实际长度由最长的字符串的大小和使用的字符集确定,而实际占用的空间为字符串的实际
长度加 1
例如,VARCHAR(50) 定义了一个最大长度为 50 的字符串,如果插入的字符串只有 10 个字
符,则实际存储的字符串为 10 个字符和一个字符串结束字符。VARCHAR 在值保存和检索
时尾部的空格仍保留。
下面将不同的字符串保存到 CHAR(4) VARCHAR(4) 列,说明 CHAR VARCHAR
之间的差别,如下表所示。
插入值
CHAR(4)
存储需求
VARCHAR(4)
存储需求
'' ' '
4 字节
''
1 字节
'ab'
'ab '
4 字节
'ab'
3 字节
'abc' 'abc '
4 字节
'abc'
4 字节
'abcd' 'abcd'
4 字节
'abcd'
5 字节
'abcdef' 'abcd'
4 字节
'abcd'
5 字节
对比结果可以看到,CHAR(4) 定义了固定长度为 4,无论存入的数据长度为多少,所占用
的空间均为 4 个字节。VARCHAR(4) 定义的列所占的字节数为实际长度加 1
CHAR 数据类型
MySQL 中, CHAR 是定长字符串类型。当一个列的类型定义为 CHAR 类型后,列中的
内容的长度就是字段定义的长度(字符数)。
如果我们不指定此值,则默认值是 1。也就是说 CHAR 等同于 CHAR(1)
如果写入 CHAR 列中的字符串的长度小于指定的字符长度,MySQL 会在源字符串后填充空
格一直到指定的长度。当读取 CHAR 列中的值时,MySQL 会删除后面的空格。
示例
创建一个测试表:
CREATE TABLE t5 (info char(5));
插入数据到 CHAR
INSERT INTO t5 VALUES ('abcde'), ('xyz');
查询表的数据:
mysql> SELECT info,LENGTH(info) FROM t5;
+-------+--------------+
| info | LENGTH(info) |
+-------+--------------+
| abcde | 5 |
of 27
50墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜