首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
1.1 数据库系统概述
1.1.1 数据库技术的发展
1.1.2 数据库系统的组成
1.2 数据模型
1.2.1 数据模型的概念
1.2.2 常见的数据模型
1.2.3 关系数据库的规范化
1.2.4 关系数据库的设计原则
1.2.5 实体与关系
1.3 数据库的体系结构
1.3.1 数据库三级模式结构
1.3.2 三级模式之间的映射
2.1 了解MySQL
2.1.1 MySQL数据库的概念
2.1.2 MySQL的优势
2.1.3 MySQL的发展史
2.2 MySQL 8.0的新特性
2.3 MySQL的应用环境
2.4 MySQL服务器的安装和配置
2.4.1 MySQL服务器安装包的下载
2.4.2 MySQL服务器的安装
2.4.3 启动、连接、断开和停止MySQL服务器
2.4.4 打开MySQL 8.0 Command Line Client
2.5 如何学好MySQL
第3章 使用MySQL图形化管理工具
3.1 安装phpMyAdmin图形化管理工具
3.1.1 phpMyAdmin图形化管理工具简介
3.1.2 下载phpstudy集成开发环境
3.1.3 下载phpMyAdmin
3.1.4 打开phpMyAdmin
3.2 数据库操作管理
3.2.1 创建数据库
3.2.2 修改和删除数据库
3.3 管理数据表
3.3.1 创建数据表
3.3.2 修改数据表
3.3.3 删除数据表
3.4 管理数据记录
3.4.1 使用SQL语句插入数据
3.4.2 使用SQL语句修改数据
3.4.3 使用SQL语句查询数据
3.4.4 使用SQL语句删除数据
3.4.5 通过form表单插入数据
3.4.6 浏览数据
3.4.7 搜索数据
3.5 导入/导出数据
3.5.1 导出MySQL数据库脚本
3.5.2 导入MySQL数据库脚本
3.6 设置编码格式
3.7 添加服务器新用户
3.8 重置MySQL服务器登录密码
4.1 认识数据库
4.1.1 数据库基本概念
4.1.2 数据库常用对象
4.1.3 系统数据库
4.2 创建数据库
4.2.1 使用CREATE DATABASE语句创建数据库
4.2.2 使用CREATE SCHEMA语句创建数据库
4.2.3 创建指定字符集的数据库
4.2.4 创建数据库前判断是否存在同名数据库
4.3 查看数据库(SHOW命令)
4.4 选择数据库(USE命令)
4.5 修改数据库(ALTER命令)
4.6 删除数据库(DROP命令)
当前位置:
首页>>
技术小册>>
MySQL从入门到精通(一)
小册名称:MySQL从入门到精通(一)
### 3.3.1 创建数据表 在MySQL数据库中,数据表(Table)是存储数据的核心结构,它按照特定的结构和类型组织数据,是数据库设计中最基本也是最关键的部分。在本章中,我们将深入探讨如何在MySQL中创建数据表,包括表的基本构成、数据类型、约束条件以及具体的创建语法。 #### 3.3.1.1 数据表的基本概念 数据表由行(Row)和列(Column)组成,类似于Excel中的工作表或传统意义上的表格。每一列代表了表中的一个字段(Field),定义了数据的类型(如整型、字符串等)和约束(如非空、唯一等)。每一行则存储了具体的数据记录,每条记录对应表中的一个实体。 #### 3.3.1.2 数据类型 在创建数据表之前,了解MySQL支持的数据类型至关重要。MySQL提供了丰富的数据类型,以满足不同场景下的数据存储需求。常见的数据类型包括: - **整数类型**:如TINYINT、SMALLINT、MEDIUMINT、INT/INTEGER、BIGINT,用于存储整数值。 - **浮点数和定点数**:FLOAT、DOUBLE用于存储近似的小数,DECIMAL/NUMERIC用于存储精确的小数。 - **字符串类型**:CHAR、VARCHAR、TEXT等,用于存储字符数据。其中,CHAR是定长字符串,VARCHAR是变长字符串,TEXT用于存储大量文本。 - **日期和时间类型**:DATE、TIME、DATETIME、TIMESTAMP、YEAR等,用于存储日期和时间信息。 - **枚举类型(ENUM)**:允许你在列中指定一个可能的值列表,然后插入的值必须是这个列表中的一个。 - **集合类型(SET)**:与ENUM类似,但SET可以存储零个或多个预定义字符串列表中的值。 #### 3.3.1.3 约束条件 约束用于限制表中数据的类型和范围,确保数据的准确性和可靠性。常见的约束包括: - **NOT NULL**:非空约束,确保列中的每个值都非空。 - **UNIQUE**:唯一约束,保证列中的每个值都是唯一的。 - **PRIMARY KEY**:主键约束,是一种特殊的唯一约束,不仅要求值唯一,而且不允许为空。主键是表中每条记录的唯一标识。 - **FOREIGN KEY**:外键约束,用于建立两个表之间的关联,确保一个表中的数据值对应于另一个表中的主键值。 - **CHECK**:检查约束(MySQL 8.0.16及更高版本支持),用于限制列中可以接受的值的范围。 - **DEFAULT**:默认值约束,当插入行时没有为某个列指定值时,将自动使用该列的默认值。 #### 3.3.1.4 创建数据表的语法 在MySQL中,创建数据表使用`CREATE TABLE`语句。基本语法如下: ```sql CREATE TABLE table_name ( column1 datatype constraints, column2 datatype constraints, column3 datatype constraints, .... PRIMARY KEY (one or more columns), FOREIGN KEY (column_name) REFERENCES parent_table(column_name), ... ); ``` 其中,`table_name`是你要创建的数据表名,`column1`, `column2`, `column3`等是列名,`datatype`是数据类型,`constraints`是约束条件。最后,可以指定主键和外键等约束。 #### 3.3.1.5 实例演示 假设我们要创建一个名为`students`的数据表,用于存储学生的信息,包括学号(id)、姓名(name)、年龄(age)、性别(gender)和入学日期(enrollment_date)。学号作为主键,且不允许为空;性别字段使用ENUM类型,限制只能为'M'(男)或'F'(女)。 ```sql CREATE TABLE students ( id INT AUTO_INCREMENT, name VARCHAR(100) NOT NULL, age INT CHECK (age >= 0), gender ENUM('M', 'F') NOT NULL, enrollment_date DATE NOT NULL, PRIMARY KEY (id) ); ``` 在这个例子中,`id`列使用了`AUTO_INCREMENT`属性,这意味着每当你向表中插入新记录时,MySQL会自动为该列生成一个唯一的递增整数。`VARCHAR(100)`表示`name`列可以存储最多100个字符的字符串。`CHECK (age >= 0)`确保`age`列中的值始终为非负。`ENUM('M', 'F')`限制了`gender`列只能接受'M'或'F'作为有效值。最后,`PRIMARY KEY (id)`将`id`列设置为主键。 #### 3.3.1.6 注意事项 - 在设计表结构时,应充分考虑数据的完整性和查询效率,合理设置主键、外键和索引。 - 使用合适的数据类型和长度,避免不必要的空间浪费和性能损耗。 - 尽量避免在表中存储大量文本或二进制数据,考虑使用TEXT或BLOB类型,并考虑将此类数据存储在文件系统或专门的存储系统中。 - 适时地检查和优化表结构,随着业务的发展,可能需要调整表结构以适应新的需求。 通过本章的学习,你应该能够熟练掌握MySQL中创建数据表的基本技能,为后续的数据库设计和开发打下坚实的基础。在实际应用中,根据具体需求灵活运用数据类型和约束条件,设计出既满足业务需求又具有良好性能的数据库表结构。
上一篇:
3.3 管理数据表
下一篇:
3.3.2 修改数据表
该分类下的相关小册推荐:
MySQL从入门到精通(四)
MySQL从入门到精通(二)
MySQL从入门到精通(五)
MySQL必会核心问题
MySQL 实战 45 讲
SQL零基础到熟练应用(增删改查)
MySQL8.0入门与实践
细说MySQL(零基础到高级应用)
MySQL从入门到精通(三)