热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL自学篇(四)_MySQL

3、ENUM类型ENUM是一个字符串对象,其20540;为表创建时在列规定中枚举的一列20540;。语法26684;式如下:字段名ENUM(‘20540;1’,‘20540;2’‘20540;n’)字段名指将要定义的字段,20540;

3、ENUM类型

ENUM是一个字符串对象,其值为表创建时在列规定中枚举的一列值。语法格式如下:

字段名 ENUM(‘值1’,‘值2’...‘值n’)

字段名指将要定义的字段,值n指枚举列表中的第n个值。ENUM类型的字段在取值时,只能在指定的枚举列表中取值,而且一次只能取一个。如果创建的成员中有空格时,其尾部的空格将自动被删除。ENUM值在内部用整数表示,每个枚举值均有一个索引:列表值所允许的成员值从1开始编号,MySQL存储的就是这个索引编号。枚举最多可以有65535个元素。

例如:定义ENUM类型的列(‘first’,’second’,’third’),该列可以取的值和每个值的索引如下:

索引

NULL

NULL

0

first

1

second

2

third

3

EUNM值依照列索引顺序排列,并且空字符串排在非空字符串的前面,NULL值排在其他所有的枚举值前。

范例:

创建表emp10,定义INT类型的score字段,ENUM类型的字段level,列表值为(‘excellent’,’good’,’bad’),向表emp10中插入数据。

create table emp10(score INT,level enum('excellent','good','bad'));

insert into emp10 values (70,'good'),(90,1),(80,2),(50,3),(100,'best');

出现提示语:Data truncated for column 'level' at row 5

修改SQL如下:

insert into emp10 values (70,'good'),(90,1),(80,2),(50,3);

4、SET类型

5、SET是一个字符串对象,可以有零或多个值。SET列最多可以有64个成员,其值为表创建时规定的一列值。指定包括多个SET成员的SET列值时,各个成员之间用逗号隔开。

语法格式如下:

SET(‘值1’,’值2’...’值n’)

SET值在内部用整数表示,列表中每一个值都有一个索引编号。当创建表时,SET成员的尾部空格将被自动还是拿出。但与ENUM类型不同的是,ENUM类型的字段只能从定义的列值中选择一个值插入,而SET类型的列可以从定义的列值中选择多个字符的联合。

如果插入SET字段中列值有重复,MySQL将自动删除重复的值;插入SET字段的值的顺序不重要,MySQL会在存入数据库时,按照定义的顺序显示;如果插入了不正确的值,默认会忽略这些值,并给出警告

范例

5、二进制类型

MySQL支持两类字符型数据:文本字符串、二进制字符串。MySQL中的二进制数据类型有:BIT/BINARY/VARBINARY/TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB

如何选择数据类型

1、整数和浮点数

如果不需要小数部分,则使用整数来保存数据;如果需要表示小数,则使用浮点数类型。对于浮点数据列,存入的数值会对该列定义的小数进行四舍五入。

2、浮点数和

浮点数FLOAT,DOUBLE相对于定点数DECIMAL的优势在于:在长度一定的情况下,浮点数能表示更大的数据范围。但是由于浮点数容易产生误差,因此对精度要求比较高时,简易使用DECIMAL来存储。DECIMAL在MySQL中是以字符串存储的,用于定义货币等对精度要求较高的数据,在数据迁移中,float(M,D)是非标准SQL定义,数据库迁移可能会出现问题。最好不要这样使用。另外,两个浮点数进行减法和比较运算时,容易出现问题。因此在进行计算的时候,一定要小心,如果进行数值比较,最好使用DECIMAL类型

3、日期与时间类型

MySQL对于不同种类的日期和时间有很多的数据类型。如果质押记住年份,则可以使用YEAR类型即可;如果只记录时间,只需使用TIME类型

如果需要同时记录日期和时间可以使用TIMESTAMP或者DATETIME类型。由于TIMESTAMP列的取值范围小于DATETIME的取值范围,因此存储范围较大的日期最好使用DATETIME

TIMESTAMP也有一个DATETIME不具备的属性,默认情况下,当插入一条记录但没有指定TIMESTAMP列值时,MySQL会把TIMESTAMP列设为房前时间。

4、CHAR和VARCHAR之间的特点和选择

区别:

CHAR是固定字符串,VARCHAR是可变长度字符串。CHAR会自动删除插入数据的尾部空格,VARCHAR不会删除尾部空格

CHAR是固定长度,所以处理速度比VARCHAR快。但其缺点是浪费存储空间。

存储引擎对于选择CHAR和VARCHAR的影响:

对于MyISAM存储引擎,只好使用固定长度的数据列代替可变长度的数据列。这样可以是整个表静态化,插叙更快

对于InnoDB存储引擎,使用可变长度的数据列,因为InnoDB数据表的存储格式不区分固定长度和可变长度,因此使用CHAR不一定比使用VARCHAR好。但是使用VARCHAR可以节省空间。

5、ENUM和SET

ENUM只能取单个值,他的数据列表是一个枚举集合。因此要从多个值中选取一个时,可以使用ENUM。

SET可以取得多个值。在需要多个值的时候,时候使用SET类型

6、BLOB和TEXT

BLOB是二进制字符串,TEXT是非二进制字符串。两者都可以存放大容量的信息。BLOB主要用于存储图片、音频等,TEXT只能存放纯文本文件。

推荐阅读
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
author-avatar
YOYO看天下光_915
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有