MySQL列属性详解:空值、默认值与主键

5星 · 超过95%的资源 1 下载量 68 浏览量 更新于2024-08-28 收藏 72KB PDF 举报
在MySQL数据库中,列属性是设计表格结构时至关重要的部分,它定义了字段的约束条件和行为。以下是关于列属性的详细介绍: 1. **是否为空(null | not null)**: - `null` 表示字段值可以为`NULL`,即字段允许存储缺失值。例如,学员的电子邮件地址可能允许用户不填写。 - `not null` 则表示字段值不能为空,如学员姓名和家庭地址,这些都是基本的身份信息,不允许缺失。 **练习示例**: - 学员姓名:not null - 家庭地址:not null - 电子邮件信息:null(允许为空) - 考试成绩:null(可能允许空分) 2. **默认值(default)**: - 当字段在插入数据时未提供值,系统会使用预设的默认值。例如,`stu19`表中的`name`字段默认为'姓名不详',`addr`字段默认为'地址不详'。 - 使用`default`关键字设置默认值,如: ``` mysql> CREATE TABLE stu19 ( -> name VARCHAR(20) NOT NULL DEFAULT '姓名不详', -> addr VARCHAR(50) NOT NULL DEFAULT '地址不详' -> ); ``` 3. **自动增长(auto_increment)**: - 自动增长字段(如`id`字段)的值会自动从1开始递增,确保每次新增记录的唯一标识。在MySQL中,自动增长字段通常被用作主键。 4. **主键(primary key)**: - 主键是表中用于唯一标识每个记录的一列或多列。它具有以下特点: - 不允许重复(unique)且不能为空(not null)。 - 一个表只能有一个主键。 - 主键的作用包括维护数据完整性和提高查询效率,特别是在大型数据集中。 **选择主键的原则**: - 最少性:选择占用最小空间且易于管理的键,如学号。 - 稳定性:选择不易更改的值,如学号而非姓名,以降低数据冲突的可能性。 **练习示例**: - 创建主键的方法一: ``` mysql> CREATE TABLE stu20 ( -> id INT AUTO_INCREMENT PRIMARY KEY, -> name VARCHAR(20), -> -- other fields... -> ); ``` - 在`stu20`表中,`id`字段由于是自动增长的,并且设置为主键,所以它是理想的唯一标识符。 总结:理解并正确配置列属性,如是否允许空值、默认值和主键规则,对于创建高效、一致和可维护的数据库表至关重要。在实际应用中,根据业务需求灵活运用这些特性可以确保数据的准确性和完整性。