学习笔记1:数据库类型(SQL与MySQL的区别)
浏览量:3963
- SQL Server 数据类型
 
Character 字符串:
| 
				 数据类型  | 
			
				 描述  | 
			
				 存储  | 
		
| 
				 char(n)  | 
			
				 固定长度的字符串。最多8,000 个字符。  | 
			
				 n  | 
		
| 
				 varchar(n)  | 
			
				 可变长度的字符串。最多8,000 个字符。  | 
			|
| 
				 varchar(max)  | 
			
				 可变长度的字符串。最多1,073,741,824 个字符。  | 
			|
| 
				 text  | 
			
				 可变长度的字符串。最多2GB 字符数据。  | 
			
Unicode 字符串:
| 
				 数据类型  | 
			
				 描述  | 
			
				 存储  | 
		
| 
				 nchar(n)  | 
			
				 固定长度的Unicode 数据。最多4,000 个字符。  | 
			|
| 
				 nvarchar(n)  | 
			
				 可变长度的Unicode 数据。最多4,000 个字符。  | 
			|
| 
				 nvarchar(max)  | 
			
				 可变长度的Unicode 数据。最多536,870,912 个字符。  | 
			|
| 
				 ntext  | 
			
				 可变长度的Unicode 数据。最多2GB 字符数据。  | 
			
Number 类型:
| 
				 数据类型  | 
			
				 描述  | 
			
				 存储  | 
		
| 
				 tinyint  | 
			
				 允许从0 到255 的所有数字。  | 
			
				 1 字节  | 
		
| 
				 smallint  | 
			
				 允许从-32,768 到32,767 的所有数字。  | 
			
				 2 字节  | 
		
| 
				 int  | 
			
				 允许从-2,147,483,648 到2,147,483,647 的所有数字。  | 
			
				 4 字节  | 
		
| 
				 bigint  | 
			
				 允许介于-9,223,372,036,854,775,808 和9,223,372,036,854,775,807 之间的所有数字。  | 
			
				 8 字节  | 
		
Date 类型:
| 
				 数据类型  | 
			
				 描述  | 
			
				 存储  | 
		
| 
				 datetime  | 
			
				 从1753 年1 月1 日到9999 年12 月31 日,精度为3.33 毫秒。  | 
			
				 8 bytes  | 
		
| 
				 datetime2  | 
			
				 从1753 年1 月1 日到9999 年12 月31 日,精度为100 纳秒。  | 
			
				 6-8 bytes  | 
		
| 
				 smalldatetime  | 
			
				 从1900 年1 月1 日到2079 年6 月6 日,精度为1 分钟。  | 
			
				 4 bytes  | 
		
| 
				 date  | 
			
				 仅存储日期。从0001 年1 月1 日到9999 年12 月31 日。  | 
			
				 3 bytes  | 
		
| 
				 time  | 
			
				 仅存储时间。精度为100 纳秒。  | 
			
				 3-5 bytes  | 
		
| 
				 datetimeoffset  | 
			
				 与datetime2 相同,外加时区偏移。  | 
			
				 8-10 bytes  | 
		
| 
				 timestamp  | 
			
				 存储唯一的数字,每当创建或修改某行时,该数字会更新。timestamp 基于内部时钟,不对应真实时间。每个表只能有一个timestamp 变量。  | 
			
其他数据类型:
| 
				 数据类型  | 
			
				 描述  | 
		
| 
				 sql_variant  | 
			
				 存储最多8,000 字节不同数据类型的数据,除了text、ntext 以及timestamp。  | 
		
| 
				 uniqueidentifier  | 
			
				 存储全局标识符(GUID)。  | 
		
| 
				 xml  | 
			
				 存储XML 格式化数据。最多2GB。  | 
		
| 
				 cursor  | 
			
				 存储对用于数据库操作的指针的引用。  | 
		
| 
				 table  | 
			
				 存储结果集,供稍后处理。  | 
		
MySQL 数据类型
在MySQL 中,有三种主要的类型:文本、数字和日期/时间类型。
Text 类型:
| 
				 数据类型  | 
			
				 描述  | 
		
| 
				 CHAR(size)  | 
			
				 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多255 个字符。  | 
		
| 
				 VARCHAR(size)  | 
			
				 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多255 个字符。 注释:如果值的长度大于255,则被转换为TEXT 类型。  | 
		
| 
				 TINYTEXT  | 
			
				 存放最大长度为255 个字符的字符串。  | 
		
| 
				 TEXT  | 
			
				 存放最大长度为65,535 个字符的字符串。  | 
		
| 
				 BLOB  | 
			
				 用于BLOBs (Binary Large OBjects)。存放最多65,535 字节的数据。  | 
		
| 
				 MEDIUMTEXT  | 
			
				 存放最大长度为16,777,215 个字符的字符串。  | 
		
| 
				 MEDIUMBLOB  | 
			
				 用于BLOBs (Binary Large OBjects)。存放最多16,777,215 字节的数据。  | 
		
| 
				 LONGTEXT  | 
			
				 存放最大长度为4,294,967,295 个字符的字符串。  | 
		
| 
				 LONGBLOB  | 
			
				 用于BLOBs (Binary Large OBjects)。存放最多4,294,967,295 字节的数据。  | 
		
| 
				 ENUM(x,y,z,etc.)  | 
			
				 允许你输入可能值的列表。可以在ENUM 列表中列出最大65535 个值。如果列表中不存在插入的值,则插入空值。 注释:这些值是按照你输入的顺序存储的。 可以按照此格式输入可能的值:ENUM('X','Y','Z')  | 
		
| 
				 SET  | 
			
				 与ENUM 类似,SET 最多只能包含64 个列表项,不过SET 可存储一个以上的值。  | 
		
Number 类型:
| 
				 数据类型  | 
			
				 描述  | 
		
| 
				 TINYINT(size)  | 
			
				 -128 到127 常规。0 到255 无符号*。在括号中规定最大位数。  | 
		
| 
				 SMALLINT(size)  | 
			
				 -32768 到32767 常规。0 到65535 无符号*。在括号中规定最大位数。  | 
		
| 
				 MEDIUMINT(size)  | 
			
				 -8388608 到8388607 普通。0 to 16777215 无符号*。在括号中规定最大位数。  | 
		
| 
				 INT(size)  | 
			
				 -2147483648 到2147483647 常规。0 到4294967295 无符号*。在括号中规定最大位数。  | 
		
| 
				 BIGINT(size)  | 
			
				 -9223372036854775808 到9223372036854775807 常规。0 到18446744073709551615 无符号*。在括号中规定最大位数。  | 
		
| 
				 FLOAT(size,d)  | 
			
				 带有浮动小数点的小数字。在括号中规定最大位数。在d 参数中规定小数点右侧的最大位数。  | 
		
| 
				 DOUBLE(size,d)  | 
			
				 带有浮动小数点的大数字。在括号中规定最大位数。在d 参数中规定小数点右侧的最大位数。  | 
		
| 
				 DECIMAL(size,d)  | 
			
				 作为字符串存储的DOUBLE 类型,允许固定的小数点。  | 
		
* 这些整数类型拥有额外的选项UNSIGNED。通常,整数可以是负数或正数。如果添加UNSIGNED 属性,那么范围将从0 开始,而不是某个负数。
Date 类型:
| 
				 数据类型  | 
			
				 描述  | 
		
| 
				 DATE()  | 
			
				 日期。格式:YYYY-MM-DD 注释:支持的范围是从'1000-01-01' 到'9999-12-31'  | 
		
| 
				 DATETIME()  | 
			
				 *日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS 注释:支持的范围是从'1000-01-01 00:00:00' 到'9999-12-31 23:59:59'  | 
		
| 
				 TIMESTAMP()  | 
			
				 *时间戳。TIMESTAMP 值使用Unix 纪元('1970-01-01 00:00:00' UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS 注释:支持的范围是从'1970-01-01 00:00:01' UTC 到'2038-01-09 03:14:07' UTC  | 
		
| 
				 TIME()  | 
			
				 时间。格式:HH:MM:SS注释:支持的范围是从'-838:59:59' 到'838:59:59'  | 
		
| 
				 YEAR()  | 
			
				 2 位或4 位格式的年。 注释:4 位格式所允许的值:1901 到2155。2 位格式所允许的值:70 到69,表示从1970 到2069。  | 
		
* 即便DATETIME 和TIMESTAMP 返回相同的格式,它们的工作方式很不同。在INSERT 或UPDATE 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。TIMESTAMP 也接受不同的格式,比如YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或YYMMDD。
以上表格中,红色的是今天主要用到的数据类型。
上一篇:学习笔记2常用正则表达式

