SQL表操作终极指南:从零掌握CREATE TABLE与约束条件完整教程

SQL表操作终极指南:从零掌握CREATE TABLE与约束条件完整教程

【免费下载链接】hello-sql Curso para aprender los fundamentos del lenguaje SQL y bases de datos relacionales desde cero y para principiantes. Elaborado durante las emisiones en directo desde Twitch de MoureDev. 【免费下载链接】hello-sql 项目地址: https://gitcode.com/gh_mirrors/he/hello-sql

在数据库管理中,表是存储和组织数据的基础结构。无论是开发应用程序还是进行数据分析,掌握SQL表操作都是必备技能。本教程将带你全面了解如何使用CREATE TABLE语句创建表,以及如何应用各种约束条件确保数据完整性,适合SQL初学者快速上手。

SQL基础教程封面

一、创建表的基本语法

创建表是数据库设计的第一步,通过CREATE TABLE语句可以定义表的结构和字段属性。基础语法如下:

CREATE TABLE 表名 (
    列名1 数据类型,
    列名2 数据类型,
    ...
);

例如创建一个存储人员信息的表:

CREATE TABLE persons (
    id int,
    name varchar(100),
    age int,
    email varchar(50),
    created date
);

这个基础表结构定义了五个字段,包括整数类型的idage,字符串类型的nameemail,以及日期类型的created。完整代码示例可参考项目中的04_Tables/01_create_table.sql文件。

二、常用约束条件详解

约束条件是确保数据质量和完整性的关键机制。以下是五种常用的SQL约束:

2.1 NOT NULL:禁止空值

NOT NULL约束确保字段必须包含值,不能为NULL:

CREATE TABLE persons2 (
    id int NOT NULL,
    name varchar(100) NOT NULL,
    age int,
    email varchar(50),
    created date
);

在这个例子中,idname字段被标记为NOT NULL,意味着插入数据时这两个字段必须提供值。

2.2 UNIQUE:确保值唯一

UNIQUE约束防止字段出现重复值:

CREATE TABLE persons3 (
    id int NOT NULL,
    name varchar(100) NOT NULL,
    age int,
    email varchar(50),
    created datetime,
    UNIQUE(id)
);

这里id字段被设置为唯一,确保不会有两条记录拥有相同的ID。

2.3 PRIMARY KEY:定义主键

主键是表中唯一标识每条记录的字段,通常与NOT NULLUNIQUE约束一起使用:

CREATE TABLE persons4 (
    id int NOT NULL,
    name varchar(100) NOT NULL,
    age int,
    email varchar(50),
    created datetime,
    PRIMARY KEY(id)
);

主键可以是单个字段或多个字段的组合,是表与表之间建立关系的基础。

2.4 CHECK:验证数据范围

CHECK约束用于限制字段的取值范围:

CREATE TABLE persons5 (
    id int NOT NULL,
    name varchar(100) NOT NULL,
    age int,
    email varchar(50),
    created datetime,
    PRIMARY KEY(id),
    CHECK(age >= 18)
);

上述例子确保age字段只能接受18岁及以上的值,非常适合存储成年人信息。

2.5 DEFAULT:设置默认值

DEFAULT约束为字段提供默认值,当插入记录时未指定该字段值时使用:

CREATE TABLE persons6 (
    id int NOT NULL,
    name varchar(100) NOT NULL,
    age int,
    email varchar(50),
    created datetime DEFAULT CURRENT_TIMESTAMP(),
    PRIMARY KEY(id),
    CHECK(age >= 18)
);

这里created字段使用CURRENT_TIMESTAMP()函数作为默认值,自动记录记录创建时间。

三、高级表功能:自增字段

AUTO_INCREMENT(或类似功能,不同数据库系统可能有不同名称)允许字段值自动递增,非常适合作为主键:

CREATE TABLE persons7 (
    id int NOT NULL AUTO_INCREMENT,
    name varchar(100) NOT NULL,
    age int,
    email varchar(50),
    created datetime DEFAULT CURRENT_TIMESTAMP(),
    PRIMARY KEY(id),
    CHECK(age >= 18)
);

使用自增主键后,插入记录时无需手动指定ID值,数据库会自动分配唯一的递增值。

四、修改表结构:ALTER TABLE

随着需求变化,可能需要修改已存在的表结构。ALTER TABLE语句提供了这种灵活性:

4.1 添加列

ALTER TABLE persons8
ADD surname varchar(150);

4.2 重命名列

ALTER TABLE persons8
RENAME COLUMN surname TO description;

4.3 修改列类型

ALTER TABLE persons8
MODIFY COLUMN description varchar(250);

4.4 删除列

ALTER TABLE persons8
DROP COLUMN description;

这些操作在项目的04_Tables/03_alter_table.sql文件中有详细示例。

五、表操作最佳实践

  1. 规划先行:创建表前先设计数据模型,确定字段类型和约束条件
  2. 使用主键:始终为表定义主键,确保数据唯一性
  3. 合理使用约束:根据业务需求选择适当的约束条件,平衡数据完整性和灵活性
  4. 命名规范:采用清晰一致的命名规则,提高代码可读性
  5. 版本控制:将表结构变更脚本纳入版本控制,便于团队协作

掌握SQL表操作是数据库管理的基础,通过本教程介绍的CREATE TABLE语句和约束条件,你可以构建健壮、可靠的数据结构。结合项目中提供的示例脚本,从实际练习中加深理解,逐步提升SQL技能。

【免费下载链接】hello-sql Curso para aprender los fundamentos del lenguaje SQL y bases de datos relacionales desde cero y para principiantes. Elaborado durante las emisiones en directo desde Twitch de MoureDev. 【免费下载链接】hello-sql 项目地址: https://gitcode.com/gh_mirrors/he/hello-sql

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值