发布时间: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。