整型 默认有符号
无符号(unsigned) 和有符号 用 0 填充 zerofill
约束的作用: 保证数据的完整性 和一致性
tinyint[ -128 , 127 ] 小整数 无符号(0,255)
int 整数
bigint 极大整数
浮点型
float 单精度
double 双精度
decimal 小数 精准的小数
日期类型
year 年份 date 年月日 time 时分秒 datetime 年月日时分秒
now() 获取当前的事件( 根据数据类型 )
枚举 和 集合
enum(‘male 男‘, ‘female 女‘, ‘other‘) default ‘male‘;
enum("vip1","vip2","vip3","vip4") 指定范围内多选一
set(‘play‘, ‘music‘, ‘read‘, ‘study‘) 在指定范围内多选多
bool 类型
使用 tingint(1) 来表示 boolean 类型
单列唯一
unque (name)
多列唯一
unque (id), unque (name) 只要有一列相同 就不能插入
联合唯一
unque (id, name) 多列相同不能插入
单列主键
id int primary key
联合主键
primary key(id, name)
自增 auto_increment
id int primary key auto_increment 设置主键自增
constraint 约束
KEY `fk_course_teacher` (`teacher_id`), -- 指定外键的key
CONSTRAINT `fk_course_teacher` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`tid`)
-- 指定外键关联 REFERENCES(参考) teacher 表中的 tid 字段
-- ----------------------------
DROP TABLE IF EXISTS `city`; -- 如果数据库中 有 city 表就先 删除 再 创建
CREATE TABLE `city` (
`city_id` smallint(5) unsigned NOT NULL auto_increment,
`city` varchar(50) NOT NULL,
`country_id` smallint(5) unsigned NOT NULL,
-- 时间 在创建新记录和修改现有记录的时候都对这个数据列刷新
`last_update` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`city_id`), -- 指定主键
KEY `idx_fk_country_id` (`country_id`), -- 指定外键
CONSTRAINT `fk_city_country` FOREIGN KEY (`country_id`) REFERENCES `country` (`country_id`) on delete restrict ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- 指定引擎 默认字符集
如果有自增 新增的数据 以之前的值开始
delete from 表名;
删除快 从零开始
truncate table 表名;
原文:https://www.cnblogs.com/zhang-zi-yi/p/10749223.html