跟王老师学MySQL:MySQL数据类型之字符类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟王老师学MySQL:MySQL数据类型之字符类型相关的知识,希望对你有一定的参考价值。

跟王老师学mysql:MySQL数据类型之字符类型

主讲教师:王少华   QQ群号:483773664

学习内容:

字符串类型的种类及其特点

char和varchar的异同



字符串类型是在数据库中存储字符串的数据类型。

字符串类型包括

CHAR、

VARCHAR

BLOB

TEXT


一、char和varchar

(一)定义语法

1

字符串类型 (M)

注:

字符串类型:char或varchar

M:指定了该字符串最大长度

(二)二者不同之处

char类型长度是固定的,即在创建表时就指定了,其长度可以是0--255

varchar类型长度是可变的,在创建表时指定了最大长度,其取值可以是0-65535.

char(5):字段值占有的空间都是5个字符,如果值没有5个字节,也给其分配5个字符,如果值超过了5个字符,就会报错

varchar(5):字段值占有的空间根据值的大小决定,如果值是3个字符,那就分配3个字符,如果值是30个字符,那么系统为其分配30个字符,即使用多少分配多少

(三)举例

1 创建表

创建学生表(stu),有二个字段,name是char类型,外号(waihao)varchar

1

2

3

4

create table stu(

    name char(8) not null default ‘‘,

    waihao varchar(10) not null default ‘‘

);

技术分享

技术分享

2 验证超过char会报错

1

insert into stu(name,waihao)values(‘zhangxiaosan‘,‘san‘);

技术分享

改一下,zhangxiaosan--->zhangsan

技术分享

3 验证M代表是字符数

1

insert into stu(name,waihao)values(‘张小三张小三‘,‘san‘);

技术分享

4、存储字符时char去掉字符串末尾空格,varchar不会去掉字符串末尾空格

1

insert into stu(name,waihao)values(‘lisi  ‘,‘lisi  ‘);

1

select concat(name,‘*‘),concat(waihao,‘*‘) from stu;

技术分享

5、存储字符时,char、varchar都不会去掉字符串前部空格

1

insert into stu(name,waihao)values(‘  wangwu‘,‘  wangwu‘);

技术分享

(四)varchar和char的选择原则

VARCHAR与CHAR两种字符型数据类型相比,最大的差异就是前者是可变长度,而后者则是固定长度。

由于char是定长的,其查询速度比varchar要快。

通过一个例子来说明一个二者的选择原因。

微博用户名:用户名的长度不般不超过10个字,而且用户量很大,所以我们可以用char(10),用空间换时间

微博内容:140个字,用char就太浪费空间了,我们可以用varchar(140)

二、Text类型

TEXT类型是一种特殊的字符串类型,

TEXT只能字符数据,如新闻内容等。

TEXT类型包括TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT

技术分享

技术分享

技术分享

技术分享

技术分享

从上表可以看出,这几种类型的text类型,主要区别是存储空间的不同。所以选择要根据实现需求来。

三、BLOB

BLOB可以用来保存数据量很大的二进制数据,比如图片等

BLOB类型包括TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。区别就存储的最大长度不同

注:

通常情况下,图片等文件一般存储在文件系统中,然后在数据库中存储这些文件的路径。这种方式存储比直接存储在数据库中简单,但是访问速度比存储在数据库中慢

四、总结

技术分享

五、教学视频

http://edu.51cto.com/course/course_id-6420.html





本文出自 “跟王老师学编程” 博客,请务必保留此出处http://teacherwang.blog.51cto.com/10946447/1795478

以上是关于跟王老师学MySQL:MySQL数据类型之字符类型的主要内容,如果未能解决你的问题,请参考以下文章

跟王老师学MySQL:MySQL数据类型之整数类型

跟王老师学MySQL:MySQL数据类型之日期与时间类型

跟王老师学MySQL:MySQL数据类型之小数类型

跟王老师学MySQL:MySQL数据类型之小数类型

跟王老师学MySQL:MySQL数据类型常见问题及解答

跟王老师学MySQL:MySQL数据类型常见问题及解答