扩展
char 和 varchar 有什么区别
- char为定长字符串,char(n),n最大为255;
- varchar为不定长字符串,varchar(n),n最大为65535;
- char(10)和varchar(10)存储abc有什么差别?
char保存10字符,其他位置会用空格补齐;
varhar只需要用abc三个位置。
datetime 和 timestamp有什么区别?
- 数据库字段提供对日期类型的支持,是所有数据类型中最麻烦的一种数据;
- date 是年月日;
- time 是时分秒;
- datetime 是年月日时分秒,存储和显示是一样的;
- timestamp 是时间戳,存储的不是日期,是从1970年1月1日到指定日期的毫秒数。
中文乱码
- 在dos命令窗口下执行insert插入中文数据是乱码,在sqlyog客户端执行
set names gbk;
create databases user charset utf8;
注释
- /* */ 表示多内容注释。
-
表示行注释。
- — 表示行内注释。
主键、外键和唯一索引的区别
- Primary Key 主键约束,自动创建唯一主键;
- Foreign Key 外键约束,外键字段的内容是引用另一表的字段内容,不能乱写;
- Unique Index 唯一索引,唯一值但不是主键。
drop、delete和truncate之间的区别
- drop 删除库或表,数据和结构定义;
- delete 和 truncate 只是删除表的数据;
- delete 可以指定where条件,删除满足条件的记录,truncate 删除所有记录;
- 对于自增字段的表,delete不会自增值清零,而truncate是把表记录和定义都删除了,然后重建表的定义,所以主键会从头开始计数。