本篇文章给人人带来的内容是关于怎样明白MySQL中的数据类型观点,有肯定的参考价值,有需要的朋侪可以参考一下,愿望对你有所协助。
一、数据是什么?
数据是一个信息鸠合,以某种数据类型保存在数据库里。数据包括姓名、数字、钱银、文本、图象、小数、盘算、统计等,险些涵盖可以设想到的任何东西。数据客户保存为大写、小写或大小写夹杂,数据可以被操纵或修正,大多数数据在其生存周期内不会坚持稳定。
数据类型用于指定列所包括数据的划定规矩,它决议了数据保存在列里的体式格局,包括分配给列的宽度,以及值是不是可所以字母、数字、日期和时候等。任何数据或数据的组合都有对应的数据类型,这些数据类型用于存储像字母、数字、日期和时候、图象、二进制数据等。更细致地说,数据可以包括姓名、形貌、数字、盘算、图象、图象形貌、文档等。
数据是数据库的意义地点,必需遭到庇护。数据的庇护着就是数据库治理员(DBA),然则每一个数据库用户也有义务采用必要手腕来庇护数据。
二、基础数据类型
数据类型是数据自身的特征,其特征被设置到内外的字段。举例来讲,我们可以指定某个字段必需包括数字值,不许可输入由数字或字母构成的字符串;我们也不愿望在保存钱银数值的字段里输入字母。为数据库里每一个字段定义数据类型可以大幅削减数据库里由于毛病而发生的毛病数据。字段定义(数据类型定义)是一种数据校验体式格局,通知了每一个字段里可以输入的数据。
1.定长字符串。
定长字符串平常具有雷同的长度,是运用定长数据类型保存的。下面是Sql定长字符串的规范:
CHARACTER(n)
n是一个数字,定义了字段里可以保存的最多字符数目。
有些Sql完成运用CHAR数据类型来保存定长数据。字母可以保存到这类数据类型里。
在定长数据类型里,平常运用空格来补充数目不足的字符。假如字符长度是10,而输入的数据只需5位,那末盈余5位就会被纪录为空格。添补空格确保了字段里每一个值都具有雷同的长度。
PS:不要运用定长数据类型来保存长度不定的数据,比方姓名,假如不适当地运用定长数据类型,能够会致使糟蹋可用空间,以及影响对差别的数据举行准确比较。应当运用变长数据类型来保存长度不定的字符串,从而节约数据库空间。
2.变长字符串。
Sql支撑变长字符串,也就是长度不牢固的字符串。下面是Sql变长字符串的规范:
CHARACTER VARYING(n)
n是一个数字,示意字段里可以保存的最多字符数目。
罕见的变长字符串数据类型有VARCHAR、VARINARY和VARCHAR2。VARCHAR是ANSI规范,Microsoft Sql Server和MySql也运用它;VARINARY和VARCHAR2都是由Oracle运用的。定义为字符的字段里可以保存数字和字母,这意味着数据中能够包括数字字符。VARBINARY类似于VARCHAR和VARCHAR2,只是它包括的是长度不定的字节。这类数据类型平常被用来保存数字式数据,比方图象文件。
定长数据类型运用空格来添补字段里的空缺,但变长字符串不如许做。举例来讲,假如某个变长字段的长度定义为10,而输入的字符串长度为5,那末这个值的总长度也就是5,这时候并不会运用空格来添补字段里的空缺。
3.大对象类型。
有些变长数据类型需要保存更长的数据,超过了平常状况下为VARCHAR字段所保存的长度,比方如今罕见的BLOB和TEXT数据类型。这些数据类型特地用于保存大数据集的。BLOB是二进制大对象,它的数据是很长的二进制字符串。BLOB合适在数据库里存储二进制媒体文件,比方图象和MP3.
TEXT数据类型是一种长字符串类型,可以被看做一个大VARCHAR字段,平常用于在数据库里保存大字符集,比方博客站点的HTML输入。在数据库里保存这类类型的数据可以完成站点的动态更新。
4.数值类型。
数值被保存在定义为某种数值类型的字段里,平常包括NUMBER、INTERGER、REAL/DECIMAL等。
虾米是Sql数值的规范:
(1).BIT(n);
(2).BIT VARYING(n);
(3).DECIMAL(p,s);
(4).INTEGER;
(5).SMALLINT;
(6).SIGINT;
(7).FLOAT(p,s);
(8).DOUBLE PRECISION(P,S);
(9).REAL(S);
P 示意字段的最大长度。s 示意小数点背面的位数。
Sql完成中一个通用的数值类型是NUMERIC,它相符ANSI规范。数值可所以0、正数、定点数和浮点数。下面是运用NUMERIC的一个类型:
NUMERIC(s),这个敕令把字段可以接收的最大值限定为99 999.在本书类型所触及的数据库完成总,NUMERIC都是以DECIMAL类型完成的。
5.小数类型。
小数类型是数值的整体长度。举例来讲,在数值定义ZDECIMZAL(4,2)里,有用位数是4,也就是说数值总位数是4.标度是小数点背面的位数,在前例中是2。假如现实数值的小数位数超过了定义的位数,数值就会被四舍五入,比方34.33写入到定义为DECIMAL(3,1)的字段时,会被四舍五入34.3。
假如数值依据以下体式格局被定义,其最大值就是99.99:
DECIMAL(4,2)
有用位是4,示意数值的整体长度是4;标度是2,示意小数点背面保存2位。小数点自身并不算作一个字符。
定义为DECIMAL(4,2)的字段许可输入的数组包括:
(1).12
(2).12.4
(3).12.44
(4).12.449
末了一个值12.449在保存到字段时会四舍五入为12.45。在这类定义,任何12.45~12.499之间的数值会被四舍五入为12.45。
6.整数。
整数是不包括小数点的数值(包括正数和负数)。
下面是一些有用的整数:
(1).1;
(2).0;
(3).-1;
(4).99;
(5).-99;
(6).199;
7.浮点数。
浮点数是有用位数和标度都可变而且没有限定的小数数值,任何有用位数和标度都是可以的。数据类型REAL代表单精度浮点数值,而DOUBLE PRECISION示意双精度浮点数值。单精度浮点数值的有用位数为1~21(包括),双精度浮点数值的有用位数为22~53(包括)。下面是一些FLOAT数据类型的类型:
(1).FLOAT;
(2).FLOAT(15);
(3).FLOAT(50);
8.日期和时候类型。
日期和时候数据类型很显然是用于保存日期和时候信息的。规范Sql支撑DATETIME数据类型,它包括以下类型:
(1).DATE;
(2).TIME;
(3).DATETIME;
(4).TIMESTAMP;
DATETIME数据类型的元素包括:
(1).YEAR;
(2).MONTH;
(3).DAY;
(4).HOUR;
(5).SECOND;
ps:SECOND元素还可以再分解为几分之一秒,其局限是00.000~61.999,但并非一切Sql完成都支撑这个局限。多出来的1.999秒是用于完成闰秒的。
每种Sql完成能够都是具有自定义的数据类型来保存日期和时候。前面引见的数据类型和元素是每一个Sql厂商都应当恪守的规范,但大多数完成都具有本身的数据类型来保存日期值,其情势与现实存储体式格局有所差别。
日期数据平常不指定长度。稍后我们会更细致地引见日期类型,包括日期信息在某些完成里的保存体式格局、怎样运用转换函数操纵日期和时候,而且用类型展现在现实工作中怎样运用日期和时候。
9.直义字符串。
直义字符串就是一系列字符,比方姓名或电话号码,这是有用户或许顺序明白指定的。直义字符串包括的数据与前面引见的数据类型具有一样的属性,但字符串的值是已知的。列自身的值平常是不能肯定的,由于每一列平常包括了字段在悉数纪录里的差别值。
现实上并不需要把字段指定为直义字符串数据类型,而是指定字符串。直义字符串的范比方下所示:
(1).'Hello';
(2).45000;
(3).'45000';
(4).3.14;
(5).'November 1 ,1997';
字符型的字符串由单引号围困,数值45000没有单引号围困,而第二个45000用双引号围困了。平常来讲,字符型字符串需要运用单引号,而数值型不需要。
将一个数据类型成数值类型的历程历程术语隐式转换。在这个历程当中,数据库会自动推断应当运用哪一种数据类型。所以,假如一个数据没有运用单引号围困起来,那末Sql顺序就会将其认定为数值类型。因而,必需要迥殊注意数据的情势。不然,存储效果能够会涌现误差,或许报错。稍后将引见怎样在数据库查询里运用直义字符串。
10.NULL数据类型。
NULL值示意没有值。NULL值在Sql里有普遍的运用,包括表的建立、查询的搜刮前提,以至是在直义字符串。
在运用NULL数据类型时,需要明白示意响应字段不是必需要输入数据的。假如某个字段必需包括数据,就把它设置为NOT NULL,只需字段有能够不包括数据,最好就把它设置为NULL。
11.布尔值。
布尔值的取值局限是TRUE、FlASE和NULL,用于举行数据比较。举例来讲,在查询中设置前提时,每一个前提都会被求值,获得TRUE、FLASE或NULL。假如查询中一切前提的值都是TRUE,数据就会被返回;假如某个前提的值是FLASE或NULL,数据就不会返回。比方下面这个类型:
WHERE NAME =‘SMITH’
这多是查询里的一个前提,目的内外每行数据都是依据这个前提举行求值。假如内外某行的NAME字段值是SMITH,前提的值就是TRUE,响应的纪录就会被返回。
大多数数据库完成并没有一个严厉意义上的BOOLEAN类型,而是代之以各自差别的完成要领。MySql用于BOOLEAN类型,但实质上与其现有的TINYINT类型雷同。Oracle倾向于让用户运用一个CHAR(1)值来替代布尔值,而Sql Server则运用BIT来替代。
12.自定义类型。
自定义类型是由用户定义的类型,它许可用户依据已有的数据类型来定制本身的数据类型,从而满足数据存储的需要。自定义类型极大的雄厚了数据存储的能够性,使开辟人员在数据库顺序开辟历程当中具有更大的灵活性。语句CREATE TYPE用于建立自定义类型。
举例来讲,在MySql和Oracle中,可以像下面如许建立一个类型:
CREATE TYPE PERSON ASOBJECT
(NAME VARCHER (30),
SSN VARCHAR(9);
)
然后可以像下面如许援用自定义类型:
CREATE TABLE EMP_PAY
(EMPLOYEE PERSON,
SALARY DECIMAL(10,2),
HIRE_DATE DATE);
表EMP_PAY第一列EMPLOYEE的类型是PERSON,这正是在前面建立的自定义类型。
13.域。
域是可以被运用的有用数据类型的鸠合。域与数据相干联,从而只接收特定的数据。在域建立以后,我们可以向域增加束缚。束缚与数据类型配合发挥作用,从而进一步限定字段可以接收的数据。域的运用类似于自定义类型。
像下面如许就可以建立域:
CREATE DOMAIN MONEY_D AS NUMBER(0,2);
像下面如许为域增加束缚:
ALTER DOMAIN MONEy_D
ADD CONSTRAINT MONEY_CON
CHECK(VALUE>5);
然后像下面如许援用域:
CREATE TABLE EMP_PAY
(EMP_ID NUMBER(9),
EMP_NAME VARCHER2(30),
PAY_RATE MONEY_D);
三、小结
Sql具有多种数据类型,关于运用过其他编程言语的人来讲,这些都不算生疏。数据类型许可差别类型的数据保存到数据库,比方单个字符、小数、日期和时候。无论是运用像c如许的第三代编程言语,照样运用关联型数据库完成Sql编码,数据类型的观点都是一样的。固然,差别完成中数据类型的称号坑你有所差别,但其工作体式格局基础上是一样的。别的,关联型数据库治理体系并非肯定要完成,ANSI规范里划定的悉数数据类型才会被认为是与ANSI兼容的,因而最好检察详细的文档来相识尅运用的数据类型。
在斟酌数据类型、长度、标度和精度时,肯定要细致地举行短时间和久远的计划。别的,公司轨制和愿望用户以什么体式格局接见数据也是要斟酌的要素。开辟人员应当相识数据的实质。以及数据在数据库里是怎样互相干联的,从而运用适当的数据类型。
本篇文章只是形貌了Sql的数据类型!纯文字形貌!本篇文章摘录自《Sql入门典范》。下篇文章解说Sql小白入门(三)治理数据库对象 !
以上就是怎样明白MySQL中的数据类型观点?的细致内容,更多请关注ki4网别的相干文章!