【基础】在MySQL中创建表和插入数据
发布时间: 2024-06-27 10:10:46 阅读量: 75 订阅数: 112
![python数据库编程合集](https://img-blog.csdnimg.cn/b4c1c1b87328409b83c9a97140a751bc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6I-c6bif5b6X6LSi,size_20,color_FFFFFF,t_70,g_se,x_16)
# 2.1 基本语法和参数
创建 MySQL 表的基本语法如下:
```sql
CREATE TABLE table_name (
column_name data_type [NOT NULL] [DEFAULT default_value] [PRIMARY KEY],
...
);
```
其中:
* `table_name`:表的名称。
* `column_name`:列的名称。
* `data_type`:列的数据类型。
* `NOT NULL`:指定列不能为 NULL。
* `DEFAULT default_value`:指定列的默认值。
* `PRIMARY KEY`:指定列为主键。
# 2. 创建MySQL表
### 2.1 基本语法和参数
创建MySQL表的基本语法如下:
```sql
CREATE TABLE table_name (
column_name data_type [NOT NULL] [DEFAULT default_value] [PRIMARY KEY],
...
);
```
其中:
- `table_name`:表的名称。
- `column_name`:列的名称。
- `data_type`:列的数据类型。
- `NOT NULL`:指定列不能为空。
- `DEFAULT default_value`:指定列的默认值。
- `PRIMARY KEY`:指定列为主键。
**示例:**
```sql
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
PRIMARY KEY (id)
);
```
此示例创建了一个名为 `users` 的表,其中包含以下列:
- `id`:主键,自动递增整数。
- `name`:非空字符串,最大长度为 255 个字符。
- `email`:唯一且非空的字符串,最大长度为 255 个字符。
### 2.2 主键、外键和约束
**主键**
主键是表中唯一标识每行的列或列的组合。主键用于快速查找和检索数据,并确保表中的数据完整性。
**外键**
外键是引用另一表主键的列。外键用于建立表之间的关系,并确保数据的一致性。
**约束**
约束是用于限制表中数据值的规则。常见的约束包括:
- `NOT NULL`:指定列不能为空。
- `UNIQUE`:指定列的值必须唯一。
- `PRIMARY KEY`:指定列为主键。
- `FOREIGN KEY`:指定列为外键。
**示例:**
```sql
CREATE TABLE orders (
id INT NOT NULL AUTO_INCREMENT,
user_id INT NOT NULL,
product_id INT NOT NULL,
quantity INT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (user_id) REFERENCES users (id),
FOREIGN KEY (product_id) REFERENCES products (id)
);
```
此示例创建了一个名为 `orders` 的表,其中包含以下约束:
- `user_id` 列的外键约束引用 `users` 表中的 `id` 列。
- `product_id` 列的外键约束引用 `products` 表中的 `id` 列。
### 2.3 数据类型和长度限制
MySQL 支持多种数据类型,包括:
- 整数类型:`TINYINT`、`SMALLINT`、`MEDIUMINT`、`INT`、`BIGINT`
- 浮点类型:`FLOAT`、`DOUBLE`
- 字符串类型:`CHAR`、`VARCHAR`、`TEXT`、`BLOB`
- 日期和时间类型:`DATE`、`TIME`、`DATETIME`、`TIMESTAMP`
- 布尔类型:`BOOL`
每个数据类型都有其自己的长度限制。例如,`CHAR` 类型可以存储固定长度的字符串,而 `VARCHAR` 类型可以存储可变长度的字符串。
**示例:**
```sql
CREATE TABLE products (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
description TEXT,
price DECIMAL(10, 2) NOT NULL,
PRIMARY KEY (id)
);
```
此示例创建了一个名为 `products` 的表,其中包含以下数据类型:
- `id`:自动递增整数。
- `name`:最大长度为 255 个字符的非空字符串。
- `description`:可变长度的文本。
- `price`:最多包含 10 位整数和 2 位小数的十进制数
0
0