类型 大小(字节) 备注
tinyint 1
smallint 2
mediumint 3 SQL Server没有此类型
int 4
bigint 8

比bigint更大的整数类型 decimal(M,0)

tinyint

tinyint 范围:
有符号-128~127
无符号 0 ~ 255

MySQL 中,没有指定 unsinged , tinyint 默认是有符号的
SQLServer 中,没有 unsinged 这个关键字, tinyint 默认是无符号的

# MySQL
# 有符号
CREATE TABLE t3 ( id TINYINT );
# 无符号
CREATE TABLE t4 ( id TINYINT UNSIGNED );

smallint

smallint: 范围:
有符号-32768 ~ 32767
无符号0 ~ 65535
MySQL 和 SQL Server smallint类型字段默认都是有符号

int范围:
有符号-2147483648 ~ 2147483647
无符号0 ~ 4294967295

MySQL中,没有指定 unsinged,int默认是有符号的
SQLServer中,没有 unsinged这个关键字,int默认有符号的
SQLServer int 类型 不支持 无符号

#SQL Server
CREATE TABLE t5(id int);
INSERT INTO t5 VALUES(-1);
类型大小(字节)备注
float4
double8SQL SERVER 没有此数据类型
decimal(M,D)变长M总位数,D小数位数,
在mysql8.0中,默认M10,D0指定具体值的话,M最大65,D最大30,
在SQL Server 2019中,默认M18,D0,指定具体值的话,M最大38,D最大38

文本(字符串)类型

类型表示范围备注
char0 ~255字符(具体占用的字节大小,视字符集而定)定长
mysql中 char(4) 这个4表示字符(最大255),不是字节数
不管是中文还是字母都可以放4个
sql server中 char(4) 中文最多放2个,字母4个
以上结论varchar也适用
varchar0 ~ 65535字节(0~2^16-1)变长
1-3个字节用于记录大小

mysql utf8字符集,最大21844字符
(65535-3)/3=21844

mysql utf8mb4字符集, 最大16383字符
(65535-3)/4=16383
mysql gbk字符集 最大32766字符
(65535-3)/2=32766
text0 ~ 65535(0~2^16-1)字节
longtext0~2^32-1字节SQL SERVER 没有此数据类型
类型表示范围备注
dateyyyy-MM-dd2021-05-04
timeHH:mm:ss17:08:11
datetimeyyyy-MM-dd HH:mm:ss2021-05-04 17:09:40
timestamp

mysql 时间自动填充

drop TABLE IF EXISTS t21;
CREATE TABLE t21 (
	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
	birthday DATE,-- 生日
	jobtime DATETIME,
	-- 创建时间自动插入
	create_time TIMESTAMP NOT NULL 
		DEFAULT CURRENT_TIMESTAMP ,
	-- 更新时间自动插入
	update_time TIMESTAMP NOT NULL 
		DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
INSERT INTO t21(birthday,jobtime) 
VALUES('2022-11-11','2022-11-11 10:10:10');
SELECT * FROM t21;
UPDATE t21 SET birthday = '2021-05-09' WHERE id = 1;
SELECT * FROM t21;

MySQL

可以对数据类型 bit 指定列宽
会自动将数值转为2进制进行存储

CREATE TABLE t6(id bit(10));
INSERT INTO t6 VALUES(255);
# 结果: 0011111111
SELECT * FROM t6;

SQL Server

不能对数据类型 bit 指定列宽
对于不等于0的值(包括负数)统一转为1进行存储,对于0按0存储

CREATE TABLE t11(id BIT)
INSERT INTO t11 VALUES(255)
#  结果: 1
SELECT * FROM t11
                    数值类型整数类型大小(字节)tinyint1smallint2mediumint3int4bigint8比bigint更大的整数类型decimal(M,0)小数类型类型大小(字节)备注float4double8SQL SERVER 没有此数据类型decimal[M,D]大小不确定M长度,D精确到多少位文本(字符串)类型类型表示范围备注char0 ~255
其中BigInt是JavaScript于2019.7.22正式公布,并成为第八个基本数据类型BigInt数据类型出现的目的是为了支持比Number数据类型支持的范围更大的整数值。使整数溢出不再是问题。
由于JS存在数值限制,整数范围是[-2^53, 2^53],即[-9007199254740991,9007199254740991]
				
https://bbs.csdn.net/wap/topics/230059600 请问在mysql中int和bigint差别有多大?在什么情况下需要用到bigint? bigint带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。 int普通大小的整数。带符号的范围是...
mysql中tinyint、smallint、int、bigint的区别介绍tinyintsmallintintbigint注意: tinyint 从 -2^7 (-128) 到 2^7 - 1 (123) 的整型数据。存储大小为 1 个字节。 unsigned 是从 0 到 255 的整型数据。 所以建表的时候 只能是tinyint(3),哪怕你建tinyint(100),他最大还是3位这么多。 smallint 从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储
数值类型 MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。 关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。 BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。 作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了
decimal能存储比bigint更大的整数;float和double只能做近似计算 经常变更的短字符串用char更好更高效。 text和blob查询会使用临时表,导致严重的性能开销。 单独查询或者单独垂直分表 timestamp y-m-d h:i:s 比datetime空间效率更高。 数据库建模 powerdesigner 重要,不要只写一个数据字典 mysql的瓶颈是磁盘IO;...
MySQL 数据类型int、bigint、smallint 和 tinyint的区别1. MySQL数据类型int、bigint、smallint 和 tinyint的区别2. tinyint概述2.1 tinyint有符号与无符号区别2.2 tinyint(1)与tinyint(2)区别 1. MySQL数据类型int、bigint、smallint 和 tinyint的区别 每种编程语言都有自己所定义的数据类型mysql也不例外,平时我们在创建表时,需要根据业务要求,结合存储、索引、字段临界值等条件来为字段定制不一样的类型。下面我们一起学习下mysql的几种常用的数据类型Mysql中分为三大数据类型:数值型,字符型,时间日期型 mysql中整数型数据类型就有五种: tinyint,smallint,mediumint,int,bigint tinyi...
MySQLSQL Server是两种不同的关系型数据库管理系统,它们的语法有一些区别: 1. 数据类型MySQLSQL Server支持的数据类型有些不同,例如MySQL支持SET和ENUM类型,而SQL Server不支持。 2. 日期和时间函数:MySQLSQL Server的日期和时间函数有些不同,例如MySQL使用NOW()函数获取当前日期和时间,而SQL Server使用GETDATE()函数。 3. 字符串函数:MySQLSQL Server的字符串函数也有些不同,例如MySQL使用CONCAT()函数连接字符串,而SQL Server使用"+"运算符。 4. 存储过程和函数:MySQLSQL Server的存储过程和函数也有些不同,例如MySQL使用DELIMITER语句定义存储过程和函数的分隔符,而SQL Server使用BEGIN和END语句。 总之,MySQLSQL Server虽然都是关系型数据库管理系统,但它们的语法有一些不同,需要根据具体情况选择合适的语法。