php mysql date字段类型插入为空报错_MySQL相关Day04

一、日期类型

举例:

date:2019-12-10

time:11:11:11

datetime:2019-12-10 11:11:11

year:2019

在MySQL中使用:

create database day04_db;

use day04_db;

create table teacher(id int not null, name varchar(16), born_year year, birth date, work_time time, register_time datetime);

7110c6bc360ae406e9ce54b477b366b4.png

insert into teacher values(1, "tank", "2019", "2019-12-10", "11:11:11", "2019-12-10 11:11:11");

8d5af21951c40581853a62f2308e54a1.png

二、枚举与集合

多选一

create table user1(id int not null, name varchar(16), gender enum("male", "female", "others"));

即在“male”“female”“others”中选一个,如果输入这三项以外的值则会报错。

多选多

create table user2(id int not null, name varchar(16), gender enum("male", "female", "others"), hobbies set("sleep", "read", "playball", "run"));

即在“sleep”“read”“playball”“run”中选一个或者多个值,如果输入范围外的值则会只显示范围内的值(严格模式下会报错)

bc1be223eb55d945e5122628652d2351.png

注意:read与sleep之间必须连着!

三、约束条件介绍

1)primary key(pk)

primary key == not null+unique:非空+唯一+索引

标识该字段为该表的主键,主键可以是唯一的表示记录

#快速定位到某表中的某一条数据

如:

create table user7(id int primary key, name varchar(16));

注意:

#1.一张表必须只有一个主键,如果没有主键,会从上到下搜索,直到遇到“第一个”非空且唯一的字段自动设置为主键。

#2.如果表没有指定任何可以设置主键的字段,那innodb会采用自己默认的一个隐藏关键字作为主键,加快查询效率。

#3.一张表中通常都应有id字段,并且作为主键

联合主键:多个字段联合起来作为一个主键,本质上还是一个主键

create table user8(id int, name varchar(16), primary key(id, name));

2)foreign key(fk)

标识该字段为该表的外键,用于把当前的表与另一张表绑定关系

3)unique key(uk)

标识该字段的值是唯一的

#若一张表中插入了已存在的值,则无法插入

单列唯一

create table user5(id int unique, name varcahr(16));

联合唯一

create table user6(id int, name varchar(16), unique(id, name));

4)auto_increment

标识该字段的值自动增长(整数类型,并且为主键)

#每插入一条数据,都会让该字段自动+1,一般将id设置为自增,默认从1开始

create table user10(id int primary key auto_increment, name varchar(16));

insert into user10(name) values("a"),("b"),("c"),("d"),("e");

0eb2ad4230d8bcc03a76f59b19586e6e.png

如果删除id=5的数据

delete from user10 where id=5;

20e928fc1cf14dfa252b3169a91bb8e0.png

再插入第六条数据

insert into user10(name) values("f");

则id会显示6

8a39114b333ef0cfb9ffd6f1a0fe8927.png

5)default

设置默认值

create table student(id int not null, name varchar(16) not null, gender enum("male", "female", "others") default"male");

insert into student(id, name) values(1, "张三");

5fb0d5f56fe1922898b0cd0ccf5023e9.png

没有输入gender的值但是显示了默认的“male”

6)unsigned

插入数据无正负符号

7)zerofill

插入数据空格用0填充

8)not null

插入数据不能为空

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值