MySQL列类型和列上约束

xiaoxiao2021-02-28  97

1.常用SQL命令 添加数据: INSERT INTO 表名 VALUES(….); 删除数据: DELETE FROM 表名; #删除所有的记录行,慎用! DELETE FROM 表名 WHERE 列=值; #删除满足条件的行 修改数据: UPDATE 表名 SET 列=值,列=值; #删除所有记录行,慎用 UPDATE 表名 SET 列=值,列=值 WHERE 列=值;

2.MySQL中的列类型 (1)数字类型 整型: TINYINT: 占1个字节 -128~127。 SMALLINT: 占2个字节 -32768~32767。 INT: 占4个字节 -2147483648~2147483647。 BIGINT: 占4/8个字节。 小数型: FLOAT(M-M位有效数字,D-小数点后面D位小数):单精度浮点型,占4个字节。 DOUBLE(M,D):双精度浮点型,占8个字节。 DECIMAL(M,D):严格定点数,用于精确运算,如货币金额。 (2)字符串类型 CHAR(M) : M不能超过255。 VARCHAR(M) : M不能超过65535。    TEXT(M) : M不能超过2^32,即40亿个字符。       面试题:CHAR(8)和VARCHAR(8)的区别 user_name CHAR(8): 定长字符串,可能产生空间浪费,但读取速度快 ‘a’ 实际存储为: ‘a\0\0\0\0\0\0\0’ ‘ab’实际存储为: ‘ab\0\0\0\0\0\0’ ‘abc’实际存储为: ‘abc\0\0\0\0\0’ ‘abcd’实际存储为: ‘abcd\0\0\0\0’ ‘abcde’实际存储为: ‘abcde\0\0\0’ ‘abcdef’实际存储为: ‘abcdef\0\0’   ‘abcdefg’实际存储为: ‘abcdefg\0’ ‘abcdefgh’实际存储为: ‘abcdefgh’ ‘abcdefghi’实际存储为: ‘abcdefgh’ user_name VARCHAR(8): 变长字符串 定长字符串,不会产生空间浪费,但读取速度稍慢 ‘a’ 实际存储为: ‘a\0’ ‘ab’实际存储为: ‘ab\0’ ‘abc’实际存储为: ‘abc\0’ ‘abcd’实际存储为: ‘abcd\0’ ‘abcde’实际存储为: ‘abcde\0’ ‘abcdef’实际存储为: ‘abcdef\0’ ‘abcdefg’实际存储为: ‘abcdefg\0’ ‘abcdefgh’实际存储为: ‘abcdefgh’ ‘abcdefghi’实际存储为: ‘abcdefgh’    (3)日期时间类型 DATE : 日期类型,必须用引号括起来,采用’yyyy-mm-dd’格式。 TIME : 时间类型,必须用引号括起来,采用’hh:mi:ss’格式。 DATETIME : 时期时间类型,必须用引号括起来,采用’yyyy-mm-dd hh:mi:ss’格式。 (4)布尔类型 BOOL/BOOLEAN : 智能表示TRUE(等价于1)或FLASE(等价于0)。

3.列上的约束 (1)Constraint:约束,列上的值往往是有限制,如: 性别:只能取男或者女 政治面貌:只能取党员,团员,群众之一 (2)主键约束(PRIMARY KEY)   语法:列名 类型 PRIMARY KEY   声明为”主键”的列上不能出现null值,且不能重复,如商品编号;表中所有的记录行会自动按照主键列上的值进行排序——一个表至多只能声明一个主键列。 (3)唯一约束(UNIQUE) 语法:列名 类型 UNIQUE 声明为”唯一”约束的列上不能出现重复值,但可以出现多个NULL (4)非空约束(NOT NULL) 语法:列名 类型 NOT NULL   声明为”非空”约束的列上不能出现NULL,但可以重复。 (5)检查约束——MySQL不支持 (6)默认值约束(DEFAULT)    语法:列名 类型 DEFAULT 值    声明了默认值的列若未指定值,则使用默认值;若指定的特定值的值,则使用指定的值。 (7)外键约束 外键:POREIGN KEY,可重复可为空,外键列上出现的值必须正另一个表的主键列上。

转载请注明原文地址: https://www.6miu.com/read-52974.html

最新回复(0)