建表添加默认值(默认时间和字符)和备注
create table user (id int primary key auto_increment comment '主键,默认自增',
name varchar(10),password varchar(20),
sex varchar(6) default '男' COMMENT '默认为男',
logindate timestamp comment '时间戳类型,默认为当前系统时间'
);
修改操作-->
alter table user add logindate timestamp;
insert into user values(null,'admin','admin',null,now());-- 当列类型设置为datetime(默认为null)时,可以插入时间函数值,而timestamp是默认当前时间,
★完全插入(全列名)-->
insert into user values(null,'lisi','lisi','男','1992-2-2');--完全插入,会覆盖默认值
★指定插入(只需操作指定的列),不会覆盖默认值-->
▲当列设置了默认值后,不想该值被覆盖的话,就必须采用指定操作否则就会被覆盖了。
insert into user(name,password) values('lisi','lisi'); -- 指定插入数据列,这顶的默认值有效
MySQL中null操作
MySql中查询滤空函数ifnull 以及判空null查询 is null 和 is not null。
1、查询字段值为空的语法: where 列名 is null
2、查询字段值不为空的语法:where 列名 is not null
判断null函数-->只能查询判空ifnull 函数
select ifnull(sex,'female') from user;--查询当sex为null时,则设值为:female。
mysql> select ifnull(sex,'female') from user;
+----------------------+
| ifnull(sex,'female') |
+----------------------+
| 女 |
| female |
| 男 |
| 男 |
+----------------------+
4 rows in set (0.00 sec)
mysql> select * from user where sex is null; --取空条件
+----+------+----------+------+---------------------+
| id | name | password | sex | logindate |
+----+------+----------+------+---------------------+
| 2 | lisi | lisi | NULL | 1992-02-02 00:00:00 |
+----+------+----------+------+---------------------+
1 row in set (0.00 sec)
mysql> select * from user where sex is not null; -- 非空条件
+----+------+----------+------+---------------------+
| id | name | password | sex | logindate |
+----+------+----------+------+---------------------+
| 1 | lisi | lisi | 女 | 2018-05-29 09:05:35 |
| 3 | lisi | lisi | 男 | 1992-02-02 00:00:00 |
| 4 | lisi | lisi | 男 | 2018-05-29 09:07:15 |
+----+------+----------+------+---------------------+
3 rows in set (0.00 sec)
小demo,演示下,大神绕路。