### MySQL 创建、删除、修改表的关键知识点
#### 一、MySQL概述
MySQL是一种关系型数据库管理系统,被广泛应用于各种规模的应用程序中。本篇将详细介绍MySQL中如何进行表的创建、删除与修改操作。
#### 二、创建数据库
在MySQL中,首先需要创建一个数据库。可以通过以下命令来实现:
```sql
CREATE DATABASE 数据库名称;
```
例如,创建一个名为`mydb`的数据库:
```sql
CREATE DATABASE mydb;
```
#### 三、查看数据库
查看当前系统中的所有数据库列表:
```sql
SHOW DATABASES;
```
#### 四、选择数据库
在进行任何操作之前,需要先选择一个数据库作为当前操作的对象:
```sql
USE 数据库名称;
```
例如,选择上面创建的`mydb`数据库:
```sql
USE mydb;
```
#### 五、查看存储引擎信息
MySQL支持多种存储引擎,可以通过以下命令查看当前系统支持的存储引擎以及默认使用的存储引擎:
```sql
SHOW ENGINES\G
```
此外,还可以查看与存储引擎相关的变量:
```sql
SHOW VARIABLES LIKE 'have%';
```
特定存储引擎的信息查询:
```sql
SHOW VARIABLES LIKE 'storage_engine';
```
#### 六、存储引擎简介
- **InnoDB**:支持事务处理,行级锁,外键约束等功能。
- **MyISAM**:不支持事务处理,但是读取速度快,适合于读多写少的场景。
#### 七、创建表
在MySQL中,创建表是通过`CREATE TABLE`语句完成的,该语句可以定义表结构,包括字段名、数据类型、主键、索引等。
示例代码如下:
```sql
CREATE TABLE 表名称 (
字段1 数据类型(长度) [约束],
字段2 数据类型(长度) [约束],
...
[CONSTRAINT 主键约束名 PRIMARY KEY (字段列表)]
);
```
例如,创建一个学生表`students`,包含学生ID、姓名和年龄三个字段:
```sql
CREATE TABLE students (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
age INT
);
```
#### 八、主键与唯一性约束
- **主键**:用于唯一标识表中的每一条记录,每个表只能有一个主键。
- **唯一性约束**:保证某一列或多列的值具有唯一性,但允许有空值的存在。
示例代码如下:
```sql
CREATE TABLE students (
id INT PRIMARY KEY,
student_number INT UNIQUE
);
```
#### 九、外键约束
外键约束用于建立表之间的关联,保证数据的一致性和完整性。
示例代码如下:
```sql
CREATE TABLE courses (
id INT PRIMARY KEY,
course_name VARCHAR(100)
);
CREATE TABLE enrollments (
student_id INT,
course_id INT,
grade FLOAT,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES students(id),
FOREIGN KEY (course_id) REFERENCES courses(id)
);
```
#### 十、修改表结构
- **添加字段**:使用`ALTER TABLE`语句可以向现有的表中添加新的字段。
示例代码如下:
```sql
ALTER TABLE students ADD gender CHAR(1);
```
- **修改字段**:可以更改字段的数据类型或约束条件。
示例代码如下:
```sql
ALTER TABLE students MODIFY age INT NOT NULL;
```
- **删除字段**:从现有表中移除字段。
示例代码如下:
```sql
ALTER TABLE students DROP gender;
```
- **修改表名**:改变现有表的名称。
示例代码如下:
```sql
RENAME TABLE students TO learners;
```
- **添加主键**:为现有表添加主键。
示例代码如下:
```sql
ALTER TABLE learners ADD PRIMARY KEY (id);
```
- **添加外键**:为现有表添加外键约束。
示例代码如下:
```sql
ALTER TABLE enrollments ADD FOREIGN KEY (student_id) REFERENCES students(id);
```
#### 十一、删除表
如果需要删除一个表,可以使用`DROP TABLE`语句。
示例代码如下:
```sql
DROP TABLE 学生表;
```
#### 十二、总结
本文详细介绍了MySQL中关于表的创建、删除和修改的基本操作,包括创建数据库、表的创建、主键和唯一性约束、外键约束等关键概念。这些知识点对于初学者来说至关重要,熟练掌握它们可以帮助开发者更好地管理和维护数据库。
通过以上介绍,读者应该能够理解并掌握MySQL中创建、删除、修改表的基础操作,并能够在实际应用中灵活运用这些知识。