发布时间:2025-06-24 20:28:53 作者:北方职教升学中心 阅读量:754
1. 表格的限制。数据类型的约束非常单一c;需要一些额外的约束,更好地保证数据的合法性,从业务逻辑的角度保证数据的正确性。有一个字段是email,要求是唯一的。自增长。 default。 1.1 空属性
- 两个值:null(默认)和not null(不为空)
- 数据库默认字段基本为空,但在实际开发中尽量保证字段不空,因为数据是空的,
站在正常的业务逻辑中a;
- 如果班上没有名字,你不知道你在哪个班。
mysql> select null;+------+| NULL |+------+| NULL |+------+1 row in set (0.00 sec)mysql> select 1+null;+--------+| 1+null |+--------+| NULL |+--------+1 row in set (0.00 sec)。数据不会给该字段赋值,使用默认值。默认值。mysql> create table tt10 ( -> name varchar(20) not null, -> age tinyint unsigned default 0, -> sex char(2) default '男' -> );Query OK, 0 rows affected (0.00 sec)mysql> desc tt10;+-------+---------------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+---------------------+------+-----+---------+-------+| name | varchar(20) | NO | | NULL | || age | tinyint(3) unsigned | YES | | 0 | || sex | char(2) | YES | | 男 | |+-------+---------------------+------+-----+---------+-------+
默认值的生效:插入时,1.3 列描述。
说明:注释。 如果宽度小于设定宽度,自动填充0。 NULL是NULL,不是空串的意思。所以不能参与操作。这就是“约束”。 zerofill。- 如果教室名称可以空,我不知道在哪里上课。
mysql> insert into tt10(name) values('zhangsan');Query OK, 1 row affected (0.00 sec)mysql> select * from tt10;+----------+------+------+| name | age | sex |+----------+------+------+| zhangsan | 0 | 男 |+----------+------+------+--注意:只设置default的列,只有在插入值时才能,省略对列。例如,我们在设计数据库表时,一定要在表中限制,满足上述条件的数据不能插入表中。
因此,
mysql> create table myclass( -> class_name varchar(20) not null, -> class_room varchar(10) not null);Query OK, 0 rows affected (0.02 sec)mysql> desc myclass;+------------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+------------+-------------+------+-----+---------+-------+| class_name | varchar(20) | NO | | NULL | || class_room | varchar(10) | NO | | NULL | |+------------+-------------+------+-----+---------+-------+///插入数据时,未能插入教室数据#xff1a;mysql> insert into myclass(class_name) values('class1');ERROR 1364 (HY000): Field 'class_room' doesn't have a default value。1.2 默认值
默认值:特定值经常出现在某个数据中c;一开始就可以指定,当需要真实数据时, 用户可以选择性地使用默认值。
auto_increment。手表有很多限制,这里主要介绍以下: null/not null,default, comment, zerofill,primary key,auto_increment,unique key 。
primary key。1.2 默认值。
通过desc看不到注释信息:
mysql> desc tt12;+-------+---------------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+---------------------+------+-----+---------+-------+| name | varchar(20) | NO | | NULL | || age | tinyint(3) unsigned | YES | | 0 | || sex | char(2) | YES | | 男 | |+-------+---------------------+------+-----+---------+-------+通过show可以看到:mysql> show create table tt12\G。
案例:
创建一个班级表,包括班级名称和班级所在教室。
comment。mysql> create table tt12 ( -> name varchar(20) not null comment '姓名', -> age tinyint unsigned default 0 comment '年龄', -> sex char(2) default '男' comment '性别' -> ); --注意:not null和defalut通常不需要同时出现因为default本身有默认值不会为空。
unique key。1.3 列描述
列描述:comment,没有实际意义用于描述字段,将根据表创建的句子保存#xff0c;用于程序员或DBA 了解。
主键。真正限制字段的是数据类型,但是,
唯一键。null/not null。
站在正常的业务逻辑中a;
- 如果班上没有名字,你不知道你在哪个班。
mysql> select null;+------+| NULL |+------+| NULL |+------+1 row in set (0.00 sec)mysql> select 1+null;+--------+| 1+null |+--------+| NULL |+--------+1 row in set (0.00 sec)。数据不会给该字段赋值,使用默认值。默认值。mysql> create table tt10 ( -> name varchar(20) not null, -> age tinyint unsigned default 0, -> sex char(2) default '男' -> );Query OK, 0 rows affected (0.00 sec)mysql> desc tt10;+-------+---------------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+---------------------+------+-----+---------+-------+| name | varchar(20) | NO | | NULL | || age | tinyint(3) unsigned | YES | | 0 | || sex | char(2) | YES | | 男 | |+-------+---------------------+------+-----+---------+-------+
默认值的生效:插入时,1.3 列描述。
说明:注释。 如果宽度小于设定宽度,自动填充0。 NULL是NULL,不是空串的意思。所以不能参与操作。这就是“约束”。 zerofill。- 如果教室名称可以空,我不知道在哪里上课。
mysql> insert into tt10(name) values('zhangsan');Query OK, 1 row affected (0.00 sec)mysql> select * from tt10;+----------+------+------+| name | age | sex |+----------+------+------+| zhangsan | 0 | 男 |+----------+------+------+--注意:只设置default的列,只有在插入值时才能,省略对列。例如,我们在设计数据库表时,一定要在表中限制,满足上述条件的数据不能插入表中。
因此,
mysql> create table myclass( -> class_name varchar(20) not null, -> class_room varchar(10) not null);Query OK, 0 rows affected (0.02 sec)mysql> desc myclass;+------------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+------------+-------------+------+-----+---------+-------+| class_name | varchar(20) | NO | | NULL | || class_room | varchar(10) | NO | | NULL | |+------------+-------------+------+-----+---------+-------+///插入数据时,未能插入教室数据#xff1a;mysql> insert into myclass(class_name) values('class1');ERROR 1364 (HY000): Field 'class_room' doesn't have a default value。1.2 默认值
默认值:特定值经常出现在某个数据中c;一开始就可以指定,当需要真实数据时, 用户可以选择性地使用默认值。
auto_increment。手表有很多限制,这里主要介绍以下: null/not null,default, comment, zerofill,primary key,auto_increment,unique key 。
primary key。1.2 默认值。
通过desc看不到注释信息:
mysql> desc tt12;+-------+---------------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+---------------------+------+-----+---------+-------+| name | varchar(20) | NO | | NULL | || age | tinyint(3) unsigned | YES | | 0 | || sex | char(2) | YES | | 男 | |+-------+---------------------+------+-----+---------+-------+通过show可以看到:mysql> show create table tt12\G。
案例:
创建一个班级表,包括班级名称和班级所在教室。
comment。mysql> create table tt12 ( -> name varchar(20) not null comment '姓名', -> age tinyint unsigned default 0 comment '年龄', -> sex char(2) default '男' comment '性别' -> ); --注意:not null和defalut通常不需要同时出现因为default本身有默认值不会为空。
unique key。1.3 列描述
列描述:comment,没有实际意义用于描述字段,将根据表创建的句子保存#xff0c;用于程序员或DBA 了解。
主键。真正限制字段的是数据类型,但是,
唯一键。null/not null。