Skip to content

11.2 数据库、表、字段、记录

数据库的基本结构

关系型数据库使用层次化的结构来组织数据,从高到低依次是:数据库 → 表 → 记录 → 字段。

数据库(Database)

数据库是存储相关表的容器,一个数据库可以包含多个表。

数据库的作用

  1. 组织数据:将相关的数据集中存储
  2. 隔离数据:不同应用的数据可以存储在不同的数据库中
  3. 管理权限:可以为不同的用户设置不同的数据库权限

数据库的命名规则

  1. 只能包含字母、数字、下划线
  2. 不能以数字开头
  3. 长度不超过64个字符
  4. 区分大小写(取决于操作系统)

常用的数据库操作

  • 创建数据库:`CREATE DATABASE database_name;
  • 删除数据库:`DROP DATABASE database_name;
  • 选择数据库:`USE database_name;

表(Table)

表是存储数据的基本单位,由行和列组成。

表的结构

  • 列(Column):表中的字段,如用户名、密码、邮箱等
  • 行(Row):表中的记录,包含一条完整的数据
  • 表头:表的第一行,显示列名

表的命名规则

  1. 只能包含字母、数字、下划线
  2. 不能以数字开头
  3. 长度不超过64个字符
  4. 应该使用有意义的名称

常用的表操作

  • 创建表:`CREATE TABLE table_name (columns);
  • 删除表:`DROP TABLE table_name;
  • 修改表:`ALTER TABLE table_name;

字段(Column)

字段是表中的列,定义了数据的类型和属性。

字段的属性

  1. 字段名:字段的名称
  2. 数据类型:字段存储的数据类型,如 INT、VARCHAR、DATE 等
  3. 长度:字段的最大长度
  4. 约束:如 NOT NULL、PRIMARY KEY、UNIQUE 等
  5. 默认值:字段的默认值

常用的数据类型

数据类型描述示例
INT整数1, 100, -50
VARCHAR可变长度字符串"John", "Hello World"
TEXT长文本文章内容
DATE日期"2023-12-25"
DATETIME日期和时间"2023-12-25 10:30:00"
DECIMAL小数3.14, 100.50
BOOLEAN布尔值TRUE, FALSE

常用的字段约束

  • NOT NULL:字段不能为空
  • PRIMARY KEY:主键,唯一标识记录
  • UNIQUE:值必须唯一
  • DEFAULT:默认值
  • FOREIGN KEY:外键,引用其他表的主键

记录(Row)

记录是表中的一行数据,包含了所有字段的值。

记录的特点

  1. 完整性:每条记录包含表中所有字段的值
  2. 唯一性:通过主键保证记录的唯一性
  3. 关联性:通过外键与其他表的记录建立关联

常用的记录操作

  • 插入记录:`INSERT INTO table_name VALUES (values);
  • 更新记录:`UPDATE table_name SET column=value WHERE condition;
  • 删除记录:`DELETE FROM table_name WHERE condition;
  • 查询记录:`SELECT * FROM table_name WHERE condition;

示例:用户表结构

创建用户表

sql
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    email VARCHAR(100) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    age INT DEFAULT 0,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

表结构说明

  • id:主键,自增整数
  • username:用户名,不能为空且唯一
  • email:邮箱,不能为空且唯一
  • password:密码,不能为空
  • age:年龄,默认为0
  • created_at:创建时间,默认为当前时间戳

插入记录

sql
INSERT INTO users (username, email, password, age) VALUES
('admin', 'admin@example.com', 'password123', 25),
('user1', 'user1@example.com', 'password456', 30),
('user2', 'user2@example.com', 'password789', 22);

查询记录

sql
SELECT * FROM users;
idusernameemailpasswordagecreated_at
1adminadmin@example.compassword123252023-12-25 10:00:00
2user1user1@example.compassword456302023-12-25 10:00:00
3user2user2@example.compassword789222023-12-25 10:00:00

数据库设计原则

  1. 范式化:遵循数据库设计范式,减少数据冗余
  2. 完整性:确保数据的完整性和一致性
  3. 性能:考虑查询性能,合理设计索引
  4. 可扩展性:设计灵活,易于扩展
  5. 安全性:保护数据安全,设置适当的权限

练习

  1. 设计一个学生表,包含学号、姓名、性别、年龄、班级等字段
  2. 设计一个课程表,包含课程ID、课程名称、学分、教师等字段
  3. 设计一个成绩表,关联学生表和课程表
  4. 插入一些测试数据并进行查询操作

© 2026 编程马·菜鸟教程 版权所有