SQL数据库字段类型说明
SQL基础T-SQL数据类型

SQL基础:T-SQL数据类型主要学习T-SQL的数据类型:数值型数据类型,字符型数据类型,临时数据类型,混合型数据类型,附带有VARDECIMAL的DECIMAL存储类型。
1、数值数据类型数值数据类型用于代表数据。
具体看下表:2、字符型数据类型字符型数据类型用两种普通形式。
它们可以是单字节的字符串,还可以使Unicode字符串。
此外,字符串有固定或可变长度。
具体看下表:注:VARCHAR数据类型和CHAR数据类型基本一样,只有一点不同,如果一个CHAR(n)字符串比n个字符要短,那么其余的字符串就会用空格来填充。
VARCHAR数据类型经常用数据长度存储。
3、临时数据类型T-SQL支持的临时数据类型有:DATETIME、SMALLDATETIME、DATE、TIME、DATETIME2和DETETINEOFFSET。
DATETIME和SMALLDATETIME数据类型指定日期和时间,每个值都为整数并分别用4个字节或2个字节保存。
DATETIME和SMALLDATETIME的值是作为两个单独的数值保存的。
DATETIME日期值的范围为01/01/1900至12/31/9999。
SMALLDATETIME相应的值为01/01/1900至06/06/2079。
时间部分能够再用4个字节或2个字节保存。
它表示午夜过后的一秒的三百分之一(DATETIME)或分钟(SMALLDATETIME)。
如果只想保存日期或时间部分,那么使用DATETIME和SMALLDATETIME非常不方便。
SQL SERVER 2008新增新的数据类型:DATE和TIME,这两种数据类型只能分别保存DATATIME数据的DATA或TIME部分。
DATE数据类型用3个字节的保存并且范围为01/01/0001至12/31/9999。
TIME数据类型用3-5个字节保存,且精确到100ns。
DATETIME2数据类型也是一种新的数据类型,用于保存精度度很高的日期和时间数据。
SQL常见数据类型分析

五种字段类型整型:TINYINT(tinyint):小的整数型,正整数0-255字段长度,非常小的整数型。
SMALLINT (smallint): 比小型(tinyint)大一点。
0-65535INT(int):比smallint大,最常用的。
0-4294967295BIGINT(bigint):大的整数型。
0-18446744073709551615小数: M表示这个小数类型的长度,D表示小数位有多长,比如M是10,D是3,那么整数的长度就是7。
FLOAT(float)(M,D)DOUBLE(double0DECIMAL(decimal)字符型:CHAR(char):最大长度为255个字符且有固定长度的字符串类型VARCHAR(varchar):最大长度为255个字符但是变长的字符串类型,最大255个字符。
日期型:DATETIME(datetime):日期时间,YYMMDD HH:MM:SS格式的日期/时间类型DATE(date):日期,TIME(time):时间,YEAR(year):年TIMESTAMP(timestamp):默认是YYMMDD HH:MM:SS,结尾加“+0”可以转换成一串数字。
默认不能为空,如果写入空,默认就是当前时间。
备注型:TINYTEXT(tinytext):TEXT(text):LONGTEXT(text):mysql表类型MyISAM:默认的类型,比较成熟稳定。
InnoDB:功能比较强大,支持外键约束,事务(支持事务可以回滚),崩溃恢复等一些新功能。
查看是否支持innodb:shwo variables like 'have_innodb';开启innodb:编辑mysql.ini文件,找到skip-innodb把它注释掉。
HEAP:内存表,表的数据是存在内存中的,一般用作临时表。
优点,速度快比如做排序,缺点,断链数据就丢失。
一、数据库1.登陆mysql匿名:# mysql -u root有密码:# mysql -u root -p2.查看数据库mysql命令:# /usr/local/mysql/bin/mysqlshow -u root -psql命令:show databases;3.创建数据库create database db_test; //创建一个名字为db_test的数据库4.删除数据库drop database db_test; //删除db_test数据库5.备份数据库1)--all-databases :备份所有数据库# /usr/local/mysql/bin/mysqldump -u root -p--all-databases >/home/db_bak2)--databases 数据库名字:备份选择数据库# /usr/local/mysql/bin/mysqldump -u root -p --databasesdb_test >/home/db_bak3)--opt:备份大数据库时用,加速数据库的导入和导出,并且锁定所有的表,防止有人更新正在备份的数据库。
五:SQL语句中的数据类型

五:SQL语句中的数据类型⼀:MySQL数据类型 MySQL中定义数据字段的类型对你数据库的优化是⾮常重要的 MySQL⽀持多种数据类型,⼤致可以分为三类:数值⽇期/时间和字符串⼆、数值类型(12) 2.1、整数类型(6) ⼀张图就能解释清楚了: INTEGER同INT。
2.2、定点数(2) DECIMAL和NUMERIC类型在MySQL中视为相同的类型。
它们⽤于保存必须为确切精度的值。
使⽤⽅式如下:1. salary DECIMAL(5,2) 下⾯的介绍将基于上⾯这个例⼦。
我们看到其中有两个参数,即DECIMAL(M,D),其中M表⽰⼗进制数字总的个数,D表⽰⼩数点后⾯数字的位数,上例中的取值范围为-999.99~999.99。
如果存储时,整数部分超出了范围(如上⾯的例⼦中,添加数值为1000.01),MySql就会报错,不允许存这样的值。
如果存储时,⼩数点部分若超出范围,就分以下情况:若四舍五⼊后,整数部分没有超出范围,则只警告,但能成功操作并四舍五⼊删除多余的⼩数位后保存。
如999.994实际被保存为999.99。
若四舍五⼊后,整数部分超出范围,则MySql报错,并拒绝处理。
如999.995和-999.995都会报错。
M的默认取值为10,D默认取值为0。
如果创建表时,某字段定义为decimal类型不带任何参数,等同于decimal(10,0)。
带⼀个参数时,D取默认值。
M的取值范围为1~65,取0时会被设为默认值,超出范围会报错。
D的取值范围为0~30,⽽且必须<=M,超出范围会报错。
所以,很显然,当M=65,D=0时,可以取得最⼤和最⼩值。
已经解释很详细了,如还不清楚,请回复。
2.3、浮点数(3) 浮点数是⽤来表⽰实数的⼀种⽅法,它⽤ M(尾数) * B( 基数)的E(指数)次⽅来表⽰实数,相对于定点数来说,在长度⼀定的情况下,具有表⽰数据范围⼤的特点。
但同时也存在误差问题。
SQL数据库的数据类型详细解释

SQL数据库的数据类型详细解释(1)二进制数据类型二进制数据包括 Binary、Varbinary 和 ImageBinary 数据类型既可以是固定长度的(Binary),也可以是变长度的。
Binary[(n)] 是 n 位固定的二进制数据。
其中,n 的取值范围是从 1 到 8000。
其存储窨的大小是 n + 4 个字节。
Varbinary[(n)] 是 n 位变长度的二进制数据。
其中,n 的取值范围是从 1 到 8000。
其存储窨的大小是 n + 4个字节,不是n 个字节。
在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。
例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。
(2)字符数据类型字符数据的类型包括 Char,Varchar 和 Text字符数据是由任何字母、符号和数字任意组合而成的数据。
Varchar 是变长字符数据,其长度不超过 8KB。
Char 是定长字符数据,其长度最多为 8KB。
超过 8KB 的ASCII 数据可以使用Text数据类型存储。
例如,因为 Html 文档全部都是 ASCII 字符,并且在一般情况下长度超过 8KB,所以这些文档可以 Text 数据类型存储在SQL Server 中。
(3)Unicode 数据类型Unicode 数据类型包括 Nchar,Nvarchar 和Ntext在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由特定字符集定义的字符。
在 SQL Server安装过程中,允许选择一种字符集。
使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。
在 Unicode 标准中,包括了以各种字符集定义的全部字符。
使用Unicode数据类型,所战胜的窨是使用非Unicode 数据类型所占用的窨大小的两倍。
SQL数据库中各种字段类型的说明

SQL数据库中各种字段类型的说明char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,⽽varchar是变长字符数据。
所谓定长就是长度固定的,当输⼊的数据长度没有达到指定的长度时将⾃动以英⽂空格在其后⾯填充,使长度达到相应的长度;⽽变长字符数据则不会以空格填充。
text存储可变长度的⾮Unicode数据,最⼤长度为2^31-1(2,147,483,647)个字符。
后⾯三种数据类型和前⾯的相⽐,从名称上看只是多了个字母"n",它表⽰存储的是Unicode数据类型的字符。
写过程序的朋友对Unicode 应该很了解。
字符中,英⽂字符只需要⼀个字节存储就⾜够了,但汉字众多,需要两个字节存储,英⽂与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题⽽产⽣的,它所有的字符都⽤两个字节表⽰,即英⽂字符也是⽤两个字节表⽰。
nchar、nvarchar的长度是在1到4000之间。
和char、varchar⽐较:nchar、nvarchar则最多存储4000个字符,不论是英⽂还是汉字;⽽char、varchar最多能存储8000个英⽂,4000个汉字。
可以看出使⽤nchar、nvarchar数据类型时不⽤担⼼输⼊的字符是英⽂还是汉字,较为⽅便,但在存储英⽂时数量上有些损失。
datetime:从1753年1⽉1⽇到9999年12⽉31⽇的⽇期和时间数据,精确到百分之三秒。
smalldatetime:从1900年1⽉1⽇到2079年6⽉6⽇的⽇期和时间数据,精确到分钟。
bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据。
int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据。
smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据。
SQL中数据类型

SQL中数据类型数据类型SQL中将数据类型分成了三⼤类: 数值类型, 字符串类型和时间⽇期类型数值型系统将数值型分为整数型和⼩数型整数型存放整型数据: 在SQL中因为更多要考虑如何节省磁盘空间, 所以系统将整型⼜细分成了5类: tinyint: 迷你整型,使⽤⼀个字节存储, 表⽰的状态最多为256种(常⽤)smallint: ⼩整型,使⽤2个字节存储,表⽰的状态最多为65536种mediumint: 中整型, 使⽤3个字节存储int: 标准整型, 使⽤4个字节存储(常⽤)bigint: ⼤整型,使⽤8个字节存储⼩数型带有⼩数点或者范围超出整型的数值类型.SQL中: 将⼩数型细分成两种: 浮点型和定点型浮点型: ⼩数点浮动, 精度有限,⽽且会丢失精度定点型: ⼩数点固定, 精度固定, 不会丢失精度浮点型浮点型数据是⼀种精度型数据: 因为超出指定范围之后, 会丢失精度(⾃动四舍五⼊)浮点型: 理论分为两种精度Float: 单精度, 占⽤4个字节存储数据, 精度范围⼤概为7位左右Double: 双精度,占⽤8个字节存储数据, 精度⽅位⼤概为15位左右定点型定点型: 绝对的保证整数部分不会被四舍五⼊(不会丢失精度),⼩数部分有可能(理论⼩数部分也不会丢失精度)时间⽇期类型Datetime: 时间⽇期, 格式是YYYY-mm-dd HH:ii:ss,表⽰的范围是从1000到9999年,有0值: 0000-00-00 00:00:00Date: ⽇期,就是datetime中的date部分Time: 时间(段), 指定的某个区间之间, -时间到+时间Timestamp: 时间戳, 并不是时间戳,只是从1970年开始的YYYY-mm-dd HH:ii:ss格式与datetime完全⼀致Year: 年份,两种形式, year(2)和year(4): 1901-2156字符串类型在SQL中,将字符串类型分成了6类: char、varchar、text、blob、enum和set定长字符串(char)定长字符串: char, 磁盘(⼆维表)在定义结构的时候,就已经确定了最终数据的存储长度.char(L): L代表length, 可以存储的长度, 单位为字符, 最⼤长度值可以为255.char(4): 在UTF8 环境下,需要4 * 3 = 12个字节变长字符串(varchar)变长字符串: varchar, 在分配空间的时候, 按照最⼤的空间分配: 但是实际上最终⽤了多少,是根据具体的数据来确定.varchar(L): L表⽰字符长度理论长度是65536个字符, 但是会多处1到2个字节来确定存储的实际长度: 但是实际上如果长度超过255,既不⽤定长也不⽤变长, 使⽤⽂本字符串textvarchar(10): 的确存了10个汉字, utf8环境, 10 * 3 + 1 = 31(bytes)存储了3个汉字: 3 * 3 + 1 = 10(bytes)⽂本字符串如果数据量⾮常⼤, 通常说超过255个字符就会使⽤⽂本字符串⽂本字符串根据存储的数据的格式进⾏分类: text和blobText: 存储⽂字(⼆进制数据实际上都是存储路径)Blob: 存储⼆进制数据(通常不⽤)枚举字符串枚举: enum, 事先将所有可能出现的结果都设计好, 实际上存储的数据必须是规定好的数据中的⼀个.枚举的使⽤⽅式定义: enum(可能出现的元素列表); //如enum(‘男’,’⼥’,’不男不⼥’,’妖’,’保密’);使⽤: 存储数据,只能存储上⾯定义好的数据集合字符串集合跟枚举很类似: 实际存储的是数值,⽽不是字符串(集合是多选)集合使⽤⽅式:定义: Set(元素列表)使⽤: 可以使⽤元素列表中的元素(多个), 使⽤逗号分隔。
SQL字段类型
SQL字段类型⼀、整数数据类型整数数据类型是最常⽤的数据类型之⼀。
1、INT (INTEGER)INT (或INTEGER)数据类型存储从-2的31次⽅(-2 ,147 ,483 ,648)到2的31次⽅-1 (2 ,147 ,483,647)之间的所有正负整数。
每个INT 类型的数据按4 个字节存储,其中1 位表⽰整数值的正负号,其它31 位表⽰整数值的长度和⼤⼩。
2、SMALLINTSMALLINT 数据类型存储从-2的15次⽅(-32,768)到2的15次⽅-1(32 ,767 )之间的所有正负整数。
每个SMALLINT 类型的数据占⽤2 个字节的存储空间,其中1 位表⽰整数值的正负号,其它15 位表⽰整数值的长度和⼤⼩。
3、TINYINTTINYINT数据类型存储从0 到255 之间的所有正整数。
每个TINYINT类型的数据占⽤1 个字节的存储空间。
4、BIGINTBIGINT 数据类型存储从-2^63 (-9 ,223,372,036,854,775,807)到2^63-1(9,223,372,036 ,854,775,807)之间的所有正负整数。
每个BIGINT 类型的数据占⽤8个字节的存储空间。
⼆、浮点数据类型浮点数据类型⽤于存储⼗进制⼩数。
浮点数值的数据在SQLServer中采⽤上舍⼊(Round up 或称为只⼊不舍)⽅式进⾏存储。
所谓上舍⼊是指,当(且仅当)要舍⼊的数是⼀个⾮零数时,对其保留数字部分的最低有效位上的数值加1 ,并进⾏必要的进位。
若⼀个数是上舍⼊数,其绝对值不会减少。
如:对3.14159265358979 分别进⾏2 位和12位舍⼊,结果为3.15 和3.141592653590。
1、REAL 数据类型REAL数据类型可精确到第7 位⼩数,其范围为从-3.40E -38 到3.40E +38。
每个REAL 类型的数据占⽤4 个字节的存储空间。
2、FLOATFLOAT数据类型可精确到第15 位⼩数,其范围为从-1.79E -308 到1.79E +308。
SQL的数据类型
SQL的数据类型SQL的数据类型只有⼀条路不能选择——那就是放弃的路;只有⼀条路不能拒绝——那就是成长的路。
命名规则字段名必须以字母开头,尽量不要使⽤拼⾳长度不能超过30个字符(不同数据库,不同版本会有不同)不能使⽤SQL的保留字,如where,order,group只能使⽤如下字符az、AZ、0~9、$ 等Oracle习惯全⼤写:USER_NAME,mysql习惯全⼩写:user_name多个单词⽤下划线隔开,⽽⾮java语⾔的驼峰规则数字tinyint,smallint,mediuint,int,bigint-->整型tinyint 1字节 -128~127smallint 2字节 -32768~32767mediuint 3字节 -8388608~8388607int 4字节 -2147483648~2147483647bigint 8字节 +-9.22*10的18次⽅float,double,decimal-->浮点型float(m,d) 4字节单精度浮点类型,m总个数,d⼩数位double(m,d) 8字节双精度浮点类型,m总个数,d⼩数位decimal(m,d) decimal是存储为字符串的浮点数numberic(5,2) decimal(5,2)—也可以表⽰⼩数,表⽰总共5位,其中可以有两位⼩数decimal和numeric表⽰精确的整数数字字符char长度固定,不⾜使⽤空格填充,最多容纳2000个字符,char(11)存储abc,占11位。
查询速度极快但浪费空间char 0-255字节定长字符串varchar变长字符串,最多容纳4000个字符,varchar(11)存储abc,只占3位。
查询稍慢,但节省空间。
Oracle为varchar2 varchar 0-65535字节边长字符串⼤⽂本: ⼤量⽂字(不推荐使⽤,尽量使⽤varchar替代)以utf8编码计算的话,⼀个汉字在u8下占3个字节注:不同数据库版本长度限制可能会有不同⽇期date 包含年⽉⽇date 4字节⽇期,格式:2021-08-09time时分秒datetime包含年⽉⽇和时分秒timestamp时间戳,不是⽇期,⽽是从1970年1⽉1⽇到指定⽇期的毫秒数图⽚blob ⼆进制数据,可以存放图⽚、声⾳,容量4g。
SQL数据库字段数据类型说明Word版
SQL数据库字段数据类型说明Word版在SQL数据库中,字段数据类型是指存储在表中的某个字段上的数据的类型。
这些数据类型定义了可以在字段中存储的数据的种类,它们确定了字段可以存储的最大值和最小值。
以下是几种常见的SQL数据库字段数据类型:1. 字符型数据类型:这些类型用于存储字符和字符串。
它们包括CHAR、VARCHAR和TEXT等类型。
其中,CHAR类型用于存储固定长度的字符和字符串,而VARCHAR类型用于存储可变长度的字符和字符串。
TEXT类型用于存储较长的字符串。
2. 数值型数据类型:这些类型用于存储数值。
它们包括整型、浮点型和精度型等类型。
其中,整型包括INT、BIGINT和TINYINT等类型,而浮点型包括FLOAT和DOUBLE等类型。
精度型包括DECIMAL和NUMERIC等类型。
3. 日期/时间型数据类型:这些类型用于存储日期和时间。
它们包括DATE、TIME、DATETIME和TIMESTAMP等类型。
其中,DATE类型用于存储日期,TIME类型用于存储时间,DATETIME类型用于存储日期和时间,而TIMESTAMP类型用于存储日期和时间,与时区相关。
4. 二进制数据类型:这些类型用于存储二进制数据,如图像和音频。
它们包括BINARY和VARBINARY等类型。
5. 布尔型数据类型:这些类型用于存储布尔值(真或假)。
它们包括BOOLEAN和BOOL 等类型。
还有其他多种类型,如GEOMETRY、POINT、BLOB等类型,具体的使用取决于具体应用。
总的来说,选择数据类型时需要考虑存储数据的实际需求,以及表的设计和查询性能。
选择合适的数据类型可以提高表的性能和数据的存储效率。
SQL数据库字段类型说明
SQL有如下字段类型:一、文本类型char用法:char(length)char类型最大长度是255个字符。
当插入到表中的字符串的长度小于length时候,将给字段右边不够的部分用空格填补。
varchar用法:varchar(length)varchar的最大长度是255个字符。
varchar和char几乎一样,区别在于varchar 是变长的类型,不会填补空格。
tinytext用法:tinytexttinytext最大长度是255字符。
text用法:texttext最大长度是65535(2的17次方)字符。
mediumtext用法:mediumtextmediumtext最大长度是16777215个字符。
longtext用法:longtextlongtext最大长度是4294976259个字符。
(tinytext,text,mediumtext,longtext这四种类型,都是可变长字段类型,与varchar 一样,只是最大长度不同而已)enum用法:enum('value1','value2','value3',....)[default 'value']使用enum的时候,可以限制插入的值只能是括号里包含的值列表中的一个,同时也可以用可选的default 'value'指定缺省情况下的值。
set用法:set('value1','value2','value3',...)[default 'value']使用set的时候,可以限制插入的值只能是括号里包含的值列表中的一个或多个,同时也可以用可选的default 'value'指定缺省情况下的值。
二、数字类型int/integer用法:int(display size)[unsigned][zerofill]tinyint用法:tinyint(display size)[unsigned][zerofill]mediumint用法:mediumint(display size)[unsigned][zerofill]bigint用法:bigint(display size)[unsigned][zerofill]float用法:float()[zerofill] ; float[(m,d)][zerofill]表示一个小的浮点数(单精度),不能是无符号数。