搜索

MySQL数据类型

Jun 07, 2016 pm 04:01 PM
mysql定义数据数据库目的管理系统类型

根据定义,数据库管理系统的目的就是管理数据。即使一条简单的SELECT 1语句也涉及表达式求值以产生一个整型数据值。MySQL中的每个数据值都有类型。例如, 37.4 是一个数,而“ a b c”是一个串。有时,数据的类型是明显的,因为在使用CREATE TABLE 语句时指定

根据定义,数据库管理系统的目的就是管理数据。即使一条简单的SELECT 1语句也涉及表达式求值以产生一个整型数据值。MySQL中的每个数据值都有类型。例如, 37.4 是一个数,而“ a b c”是一个串。有时,数据的类型是明显的,因为在使用CREATE TABLE 语句时指定了作为表的组成部分定义的每个列的类型,如:
MySQL数据类型
而有时,数据类型是不明确的,如在一个表达式中引用直接值时,将值传送给一个函数,或使用从该函数返回的值,如:
MySQL数据类型
 INSERT 语句完成下列操作,这些操作全都涉及数据类型:
 ■ 将整数值14 赋给整数列i n t _ c o l。
 ■ 将串值“ a”和“b”传递给函数C O N C AT( )。C O N C AT( ) 返回串值“a b”,这个串值被赋予串列s t r _ c o l。
 ■ 将整数值1999 0 115 赋给日期列date _ c o l。而这是不匹配的,因此, MySQL将自动进行数据类型转换。要有效地利用MySQL,必须理解其怎样处理数据。本章描述了MySQL能够处理的数据类型,并讨论了在处理这些数据类型时所出现的问题,主要内容如下:
 ■ 通用数据类型,包括NULL 值。
 ■ 特殊数据类型,以及描述每种列类型的属性。有些列类型是相当常见的,如CHAR 串类型。而有的如AUTO_INCREMENT 整型和T I M E S TAMP 日期类型,其性能很特殊,应该加以理解以免出错。
 ■ 恰当地选择表的列类型。在创建表时,重要的是要了解怎样为自己的目的选择最好的类型,以及在几种类型都可以用于想要存储的值时选择一种类型。
 ■ 表达式求值规则。MySQL提供了许多可用于表达式的运算符和函数,以便对数据进行检索、显示和处理。表达式求值的规则包括类型转换规则,在一种类型的值用于另一类型的值的情况时需用到类型转换规则。理解何时进行类型转换以及怎样进行转换很重要;有的转换没有意义而且会产生错误值。将串“13”赋给整数列结果为值13,但是将串“a b c” 赋给该列得到0 值,因为“a b c”不是一个数。更坏的是,如果进行比较而不了解值的转换,可能会带来很大的危险,如在打算只对几行进行操作时,可能会更新或删除了表中的所有行。附录B和附录C提供了MySQL列类型、运算和函数的更多信息。
   2.1MySQL数据类型
 MySQL有几种数据类型,下面分别进行介绍。
 1. 数值值
 数值是诸如48 或193.62 这样的值。MySQL支持说明为整数(无小数部分)或浮点数(有小数部分)的值。整数可按十进制形式或十六进制形式表示。整数由数字序列组成。以十六进制形式表示的整数由“ 0 x”后跟一个或多个十六进制数字(” 0”到“9”及“a”到“f”)组成。例如, 0x0a 为十进制的10,而0 x ffff 为十进制的6 5 5 3 5。十六进制数字不区分大小写,但其前缀“ 0 x”不能为“ 0 X”。即0x0a 和0x0A 都是合法的,但0X0a 和0X0A 不是合法的。浮点数由一个阿拉伯数字序列、一个小数点和另一个阿拉伯数字序列组成。两个阿拉伯数字序列可以分别为空,但不能同时为空。MySQL支持科学表示法。科学表示法由整数或浮点数后跟“ e”或“E”、一个符号(“+”或“-”)和一个整数指数来表示。1.34E+12 和43.27e-1都是合法的科学表示法表示的数。而1.34E12 不是合法的,因为指数前的符号未给出。指数前的“ e”也是一个合法的十六进制数字,因此有可能会弄错。数值前可放一个负号“ -”以表示负值。
2. (字符)串值 串是诸如“Madison, Wi s c o n s i n”或“patient shows improvement”这样的值。既可用单引号也可用双引号将串值括起来。串中可使用几个转义序列,它们用来表示特殊的字符,见表2 - 1。每个序列以一个反斜杠(“\”)开始,指出临时不同于通常的字符解释。注意NUL 字节与NULL 值不同;NUL 为一个零值字节,而NULL 为没有值。
MySQL数据类型
  要在串中包括一个引号,可有如下三种选择:
  ■ 如果串是用相同的引号括起来的,那么在串中需要引号的地方双写引号即可。如:
MySQL数据类型
  ■ 如果串是用另外的引号括起来的,则不需要双写相应引号。如:
MySQL数据类型
  ■ 用反斜杠方式表示;这种方法不去管用来将串括起的是单引号还是双引号。如:
MySQL数据类型
  在串的环境中,可用十六进制常数来指定串值。其语法与前面描述的数值值相同,但是每对十六进制的数字都被看作ASCII 代码并转换为字符,其结果用于串。例如, 0 x 6 16 2 6 3作为串时为“ a b c”。
  3. 日期和时间值
  日期和时间是一些诸如“ 1999 - 0 6 - 17”或“12 : 3 0 : 4 3”这样的值。MySQL还支持日期/时间的组合,如“ 1999-06-17 12:30:43”。要特别注意这样一个事实,即MySQL是按年-月-日的顺序表示日期的。MySQL的初学者通常对这一点很惊奇,其实这是ANSI SQL 的标准格式。可以利用DATE _ F O R M AT( ) 函数以任意形式显示日期值,但是缺省显示格式首先显示年,而且输入值也必须首先给出年。
  4. NULL 值
  NULL 是一种“无类型”的值。它过去惯常表示的意思是“无值”、“未知值”、“丢失的值”、“溢出值”以及“没有上述值”等。可将NULL 值插入表中、从表中检索它们,测试某个值是否是NULL,但不能对NULL 值进行算术运算(如果对NULL 进行算术运算,其结果为NULL)。
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
您可以使用哪些工具来监视MySQL性能?您可以使用哪些工具来监视MySQL性能?Apr 23, 2025 am 12:21 AM

如何有效监控MySQL性能?使用mysqladmin、SHOWGLOBALSTATUS、PerconaMonitoringandManagement(PMM)和MySQLEnterpriseMonitor等工具。1.使用mysqladmin查看连接数。2.用SHOWGLOBALSTATUS查看查询数。3.PMM提供详细性能数据和图形化界面。4.MySQLEnterpriseMonitor提供丰富的监控功能和报警机制。

MySQL与SQL Server有何不同?MySQL与SQL Server有何不同?Apr 23, 2025 am 12:20 AM

MySQL和SQLServer的区别在于:1)MySQL是开源的,适用于Web和嵌入式系统,2)SQLServer是微软的商业产品,适用于企业级应用。两者在存储引擎、性能优化和应用场景上有显着差异,选择时需考虑项目规模和未来扩展性。

在哪些情况下,您可以选择SQL Server而不是MySQL?在哪些情况下,您可以选择SQL Server而不是MySQL?Apr 23, 2025 am 12:20 AM

在需要高可用性、高级安全性和良好集成性的企业级应用场景下,应选择SQLServer而不是MySQL。1)SQLServer提供企业级功能,如高可用性和高级安全性。2)它与微软生态系统如VisualStudio和PowerBI紧密集成。3)SQLServer在性能优化方面表现出色,支持内存优化表和列存储索引。

MySQL如何处理角色集和碰撞?MySQL如何处理角色集和碰撞?Apr 23, 2025 am 12:19 AM

mySqlManagesCharacterSetsetSandCollat​​ionsyutusututf-8asthEdeFault,允许ConfigurationAtdataBase,table和columnlevels,AndrequiringCarefullageLignmentToavoidMismatches.1)setDefeaultCharactersetTercharactersetEtCollacterSeteTandColletationForAdataBase.2)conformentcollecharactersettersetertersetcollat​​ertersetcollat​​ioncollat​​ion

MySQL中有什么触发器?MySQL中有什么触发器?Apr 23, 2025 am 12:11 AM

MySQL触发器是与表相关联的自动执行的存储过程,用于在特定数据操作时执行一系列操作。1)触发器定义与作用:用于数据校验、日志记录等。2)工作原理:分为BEFORE和AFTER,支持行级触发。3)使用示例:可用于记录薪资变更或更新库存。4)调试技巧:使用SHOWTRIGGERS和SHOWCREATETRIGGER命令。5)性能优化:避免复杂操作,使用索引,管理事务。

您如何在MySQL中创建和管理用户帐户?您如何在MySQL中创建和管理用户帐户?Apr 22, 2025 pm 06:05 PM

在MySQL中创建和管理用户账户的步骤如下:1.创建用户:使用CREATEUSER'newuser'@'localhost'IDENTIFIEDBY'password';2.分配权限:使用GRANTSELECT,INSERT,UPDATEONmydatabase.TO'newuser'@'localhost';3.修正权限错误:使用REVOKEALLPRIVILEGESONmydatabase.FROM'newuser'@'localhost';然后重新分配权限;4.优化权限:使用SHOWGRA

MySQL与Oracle有何不同?MySQL与Oracle有何不同?Apr 22, 2025 pm 05:57 PM

MySQL适合快速开发和中小型应用,Oracle适合大型企业和高可用性需求。1)MySQL开源、易用,适用于Web应用和中小型企业。2)Oracle功能强大,适合大型企业和政府机构。3)MySQL支持多种存储引擎,Oracle提供丰富的企业级功能。

与其他关系数据库相比,使用MySQL的缺点是什么?与其他关系数据库相比,使用MySQL的缺点是什么?Apr 22, 2025 pm 05:49 PM

MySQL相比其他关系型数据库的劣势包括:1.性能问题:在处理大规模数据时可能遇到瓶颈,PostgreSQL在复杂查询和大数据处理上表现更优。2.扩展性:水平扩展能力不如GoogleSpanner和AmazonAurora。3.功能限制:在高级功能上不如PostgreSQL和Oracle,某些功能需要更多自定义代码和维护。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)