MySql字段类型 默认长度 {#mysql字段类型-默认长度}
|----------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 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 {#常用sql}
|-------|--------------------------------------------------------------------------------------------------------|
| 1 2 3 | shell # 修改表字段 ALTER TABLE contract MODIFY COLUMN content_file_key text null comment '合同文本文件ID';
|
mysql根据条件字段true或者false,来修改表字段的值为0或者1,sql怎么写? {#mysql根据条件字段true或者false来修改表字段的值为0或者1sql怎么写}
使用CASE语句 {#使用case语句}
更新
|-----|---------------------------------------------------------------------------------------|
| 1 2 | shell UPDATE my_table SET active_flag = CASE WHEN is_active THEN 1 ELSE 0 END;
|
插入
|-------|------------------------------------------------------------------------------------------------------------------|
| 1 2 3 | shell INSERT INTO another_table (active_flag) SELECT CASE WHEN is_active THEN 1 ELSE 0 END FROM my_table;
|
使用IF函数 {#使用if函数}
更新
|-----|---------------------------------------------------------------------|
| 1 2 | shell UPDATE my_table SET active_flag = IF(is_active, 1, 0);
|
插入
|-------|------------------------------------------------------------------------------------------------|
| 1 2 3 | shell INSERT INTO another_table (active_flag) SELECT IF(is_active, 1, 0) FROM my_table;
|
Mysql替换表中字段值 {#mysql替换表中字段值}
如果col_name的值为a,则替换成b
|-------|-------------------------------------------------------------------------------------------------------------------|
| 1 2 3 | mysql UPDATE table_name SET col_name = CASE WHEN col_name = 'a' THEN 'b' ELSE col_name END WHERE id = '1';
|