day42初识MySQL---数据类型、枚举\集合、约束
整数类型:
TINYINT:
SMALLINT:
MEDIUMINT:
INT:42亿 create table t5(id int unsigned);无负号
BIGINT:

浮点类型:
作用:体重、薪资、价格
FLOAT:
DOUBLE:
DECIMAL:

日期类型

now() mysql的时间函数
datatime 默认传空
timestamp 默认传当前时间
create table t10(
born_date date,
class_time time,
reg_time datetime,
born_year year
);
insert into t10 values
('1999-11-11','08:30:00','2017-11-11 11:11:11',2011);
insert into t10 values
(now(),now(),now(),now());

字符串类型作用:名字,密码,职位,地址
char类型:
范围:0-255
特点:
定长,简单粗暴,浪费空间(待存储的数据长度<宽度限制),存取速度快
varchar类型:
范围:0-21844
特点:
变长,精准,节省空间(待存储的数据长度<宽度限制),存取速度慢

Char(3) 定长:在char状态下 不足3位时也会按照3个字符存,
Varchar(3) 变长:
设置3位字符,就保留3位字符。
枚举和集合

enum 单选
只能传enum里的数据,如果不传就会上传默认值
传的数值不是范围内的就会传入一个空的值。

create table t18(
id int,
name char(10),
sex enum('male','female','None')
);
alter table t18 modify sex enum('male','female','None') not null default 'male';
insert into t18 values(1,'egon','xxxxx');
insert into t18(id,name) values(1,'egon');
create table t19(
id int,
name char(10),
hobbies set('music','read','basketball','football','eat','sleep')
);
insert into t19 values(1,'egon','music,read,eat');
约束
主键就是不为空且唯一。
一个表中可以没有主键,若含有主键每个表只能有一个主键,但是可以含有多个
Not null unique(不为空且唯一)
Key:(键)
在mysql中,最好是把id设置为主键,
Primary key 在mysql里有单独的处理机制,可以加速处理数据。

unique 也可以设置主键

前两项可以帮助加速查询,设置主键
还有另外设置主键的方法:
Create table t5 (id int ,name char(10),constraint pri_id primary key(id));

在后面添加primary key(主键名称)

只能有一个主键但是可以有多个not null unique(不为空且唯一)
联合不唯一
Ip 和 port 联合不唯一的设置方法
Id是自增的,插入时只需要插入ip 和 port 即可

Foreign key
建立表之间关联 :待续

浙公网安备 33010602011771号