[合集]MySQL

日志 · 2026-06-09 22:08:46

MySql字段类型 默认长度

# 整型:
TINYINT 1 字节
SMALLINT 2 个字节
MEDIUMINT 3 个字节
INT 4 个字节
INTEGER 4 个字节
BIGINT 8 个字节
 
# 浮点型:
FLOAT(X) 4 如果 X < = 24 或 8 如果 25 < = X < = 53
FLOAT 4 个字节
DOUBLE 8 个字节
DOUBLE PRECISION 8 个字节
REAL 8 个字节

DECIMAL(M,D) M字节(D+2 , 如果M < D)
NUMERIC(M,D) M字节(D+2 , 如果M < D)

# 日期和时间型:
DATE 3 个字节
DATETIME 8 个字节 (我试的mysql8,最大6)
TIMESTAMP 4 个字节
TIME 3 个字节
YEAR 1 字节

# 串类型:
CHAR(M) M字节,1 <= M <= 255
VARCHAR(M) L+1 字节, 在此L <= M和1 <= M <= 255
TINYBLOB, TINYTEXT L+1 字节, 在此L< 2 ^ 8
BLOB, TEXT L+2 字节, 在此L< 2 ^ 16
MEDIUMBLOB, MEDIUMTEXT L+3 字节, 在此L< 2 ^ 24
LONGBLOB, LONGTEXT L+4 字节, 在此L< 2 ^ 32
ENUM('value1','value2',...) 1 或 2 个字节, 取决于枚举值的数目(最大值65535)
SET('value1','value2',...) 1,2,3,4或8个字节, 取决于集合成员的数量(最多64个成员)

常用SQL

# 修改表字段

ALTER TABLE contract MODIFY COLUMN content_file_key text null comment '合同文本文件ID';

mysql根据条件字段true或者false,来修改表字段的值为0或者1,sql怎么写?

UPDATE my_table  
SET active_flag = CASE WHEN is_active THEN 1 ELSE 0 END;

插入

INSERT INTO another_table (active_flag)  
SELECT CASE WHEN is_active THEN 1 ELSE 0 END  
FROM my_table;

使用IF函数

更新

UPDATE my_table  
SET active_flag = IF(is_active, 1, 0);

插入

INSERT INTO another_table (active_flag)  
SELECT IF(is_active, 1, 0)  
FROM my_table;

Mysql替换表中字段值

如果col_name的值为a,则替换成b数

UPDATE table_name
SET col_name = CASE WHEN col_name = 'a' THEN 'b' ELSE col_name END
WHERE id = '1';


版权属于: 网虫No代

 

上一篇:我的犟种女友
下一篇:8787
评论已关闭
CopyRight 2012-2026, Xdoc.vip. All Rights Reserved. Powered by 网虫No代
头像
 

网站:

简介:

互动: