表约束练习
1.创建数据库(实验1组命名为mydb1,实验2组命名为mydb2,实验3组命名为mydb3),在mydb数据库中创建一张用户表(mydb_user),在表中添加以下字段,选择合适的数据类型。
用户名:可以使用中文,长度2~20个字符;
性别:有男、女、保密3种选择;
手机号码:长度为11个字符;
注册时间:注册时系统的日期和时间;
会员等级:表示会员等级的数字,1~100。
代码:
create database mydb;
use mydb;
create table mydb_user(
username varchar(20),
sex enum('男','女','保密'),
tel char(11),
regtime datetime,
grade tinyint(3) unsigned
);
2.查看表结、表内容。
代码:desc mydb_user;
3.设置用户名为主键。
代码:alter table mydb_user add primary key (username);
4.删除主键,使用户名可以重复、可以为空。
代码:(1)alter table mydb_user drop primary key;删除主键
(2)alter table mydb_user modify username varchar(20) null;使用户名可以重复、可以为空
5.设置用户名唯一约束(查看表定义),然后删除用户名唯一约束,使用户名可以重复。
代码:(1)alter table mydb_user add unique (username); 设置用户名唯一约束
desc mydb_user; 查看表定义
(2)alter table mydb_user drop index username; 删除用户名唯一约束,使用户名可以重复
6.添加字段id,设置id为主键,并设为自动增长。
代码:alter table mydb_user add id smallint(5) first;
alter table mydb_user add primary key (id) ;设置id为主键
alter table mydb_user modify id smallint(5) unsigned auto_increment;
7.为电话号码添加唯一约束。
代码:alter table mydb_user add unique (tel);
8.插入以下数据,观察自动增长id变化
0,'张三','男',20200101230000,'18926542410',60
null,'李丽','女',20230506140000,'173938200000',50
default,'张晓华','女',20220101150000,'15352578888',56
代码:insert into mydb_user values(0,'张三','男', '18926542410',20200101230000, 50);
insert into mydb_user values(null,'李丽','女', '17300000000',20230506140000, 60);
insert into mydb_user values(default,'张晓华','女', '15352570000',20220101150000, 56);
select * from mydb_user;
9.删除表中所有数据后,再次插入上面三条数据,观察自动增长id变化。
代码:(1)delete from mydb_user;
select * from mydb_user;
(2)insert into mydb_user values(0,'张三','男', '18926542410',20200101230000, 50);
insert into mydb_user values(null,'李丽','女', '17300000000',20230506140000, 60);
insert into mydb_user values(default,'张晓华','女', '15352570000',20220101150000, 56);
select * from mydb_user;
10.设置注册时间默认为插入记录时的时间。
代码:alter table mydb_user modify regtime datetime default current_timestamp;
insert into mydb_user values(null,'李兰','女', '18300000000', default, 60);