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,可重复可为空,外键列上出现的值必须正另一个表的主键列上。