mysql基础学习-day3

本文介绍了MySQL中创建表时的非空约束、默认值约束和自增约束的语法及使用示例。通过具体操作展示了如何在创建表时设置这些约束,以及它们在数据插入和更新时的作用。还提供了练习题供读者实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

非空约束 not null 
        确保字段中的数据不为空

语法:
create table 表名(
        字段1名称 数据类型 not null [别的约束],
        字段2名称 数据类型 [约束],
        ……,
        字段n名称 数据类型 [约束]
);


示例:创建表ystest0111001,包含字段id(整型),cname(字符串,长度为8,非空),age(浮点型,总长度为6,小数点后面保留2位小数),ctime(日期类型),并且给id字段加上主键约束,
create table ystest0111001(
        id int primary key,
        cname char(8) not null,
        age float(6,2),
        ctime datetime
);

select * from ystest0111001;

insert into ystest0111001(id,cname) values(2,null);
insert into ystest0111001(id,cname) values(2,'');

update ystest0111001 set cname=null;


练习:创建数据表stu_006,包含字段:id为整型,sno为整型,sname为字符串,长度为24,score字段为浮点型,整数部分长度为3,小数点后面保留2位小数,createtime为 时间格式,sno设置为主键,分别将id设置为唯一键,sname不能为空
create table stu_006(
        id int unique,
        sno int primary key,
        sname char(24) not null,
        score float(5,2),
        createtime datetime
);

select * from stu_006;
insert into stu_006(id,sno,sname) values(2,2,'null');

默认值约束 default 
        在向表中插入数据时,如果没有明确的给字段具体的值,数据库会自动给该字段添加创建表时设置好的默认值

语法:
create table 表名(
        字段1名称 数据类型 default '给的默认值' [别的约束],
        字段2名称 数据类型 [约束],
        ……,
        字段n名称 数据类型 [约束]
);

注意:
        1、给字段设定的默认值一定要跟该字段的数据类型一致
        2、除了数字类型外,字符串和日期必须用引号引起来

示例:创建表ystest0111002,包含字段id(整型),cname(字符串,长度为8,非空),age(浮点型,总长度为6,小数点后面保留2位小数,默认值为18),ctime(日期类型),并且给id字段加上主键约束,
create table ystest0111002(
        id int primary key,
        cname char(8) not null,
        age float(6,2) default 18,
        ctime datetime
);

select * from ystest0111002;

insert into ystest0111002(id,cname,age) values(3,3,null);

练习:创建数据表stu_008,包含字段:id为整型,sno为整型,sname为字符串,长度为24,score字段为浮点型,整数部分长度为3,小数点后面保留2位小数,createtime为 时间格式,sno设置为主键,分别将id设置为唯一键,sname不能为空,默认值为“张三”
create table stu_008(
        id int unique,
        sno int primary key,
        sname char(24) not null default '张三',
        score float(5,2),
        createtime datetime
);

select * from stu_008;

insert into stu_008(id,sno) values(1,1);
insert into stu_008(id,sno,sname) values(3,3,null);
insert into stu_008(id,sno,sname) values(3,3,'wyb');


自增约束 auto_increment
        被定义为自增的字段,在插入值的时候如果没有给他指定具体的值,那么它将在上一次插入值的基础上+1
        注意:
        1、被定义为自增的字段,必须被定义为一个键
        2、一张表中只能有一个字段被定义为字段字段

语法:
create table 表名(
        字段1名称 数据类型 auto_increment unique/primary key [别的约束],
        字段2名称 数据类型 [约束],
        ……,
        字段n名称 数据类型 [约束]
);

示例:创建表ystest0111003,包含字段id(整型,自增),cno(整型,主键)cname(字符串,长度为8,非空),age(浮点型,总长度为6,小数点后面保留2位小数,默认值为18),ctime(日期类型),并且给id字段加上唯一约束
create table ystest0111003(
        id int auto_increment unique,
        cno int primary key,
        cname char(8) not null,
        age float(6,2) default 18,
        ctime datetime
);

select * from ystest0111003;
insert into ystest0111003(cno,cname) values(7,wyb');

insert into ystest0111003(id,cno,cname) values(111,6,wyb');
update ystest0111003 set id=6 where id=1;

练习:创建数据表stu_009,包含字段:id为整型,自增,sno为整型,sname为字符串,长度为24,score字段为浮点型,整数部分长度为3,小数点后面保留2位小数,createtime为 时间格式,sno设置为主键,name不能为空,默认值为“张三”


注释 comment 
语法:
create table 表名(
        字段1名称 数据类型 [约束] comment '我是备注信息',
        字段2名称 数据类型 [约束],
        ……,
        字段n名称 数据类型 [约束]
) default charset=utf8 comment '这里是表的注释';

示例:创建表ystest0111004,包含字段id(整型,自增),cno(整型,主键)cname(字符串,长度为8,非空),age(浮点型,总长度为6,小数点后面保留2位小数,默认值为18),ctime(日期类型),并且给id字段加上唯一约束,并且给字段加上注释信息
create table ystest0111004(
        id int auto_increment unique,
        cno int primary key comment '学号',
        cname char(8) not null comment '姓名',
        age float(6,2) default 18 comment '年龄',
        ctime datetime comment '创建时间'
) default charset=utf8 comment '我是一个测试表';
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值