MySQL常见插入字段语句详解
1. 自增主键字段
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY
id: 字段名称,通常作为表的主键
INT(11): 整数类型,显示宽度为11位
NOT NULL: 不允许为空值
AUTO_INCREMENT: 自动递增属性
PRIMARY KEY: 指定为主键
2. 字符串类型字段
username VARCHAR(50) NOT NULL UNIQUE
username: 字段名称
VARCHAR(50): 可变长度字符串,最大50字符
NOT NULL: 不允许为空
UNIQUE: 确保值唯一
3. 数值类型字段
age TINYINT UNSIGNED NOT NULL DEFAULT 18
age: 字段名称
TINYINT: 小整数类型(-128~127)
UNSIGNED: 无符号(0~255)
NOT NULL: 不允许为空
DEFAULT 18: 默认值为18
4. 日期时间类型字段
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
created_at: 字段名称
TIMESTAMP: 时间戳类型
NOT NULL: 不允许为空
DEFAULT CURRENT_TIMESTAMP: 默认值为当前时间
5. 文本类型字段
content TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
content: 字段名称
TEXT: 长文本类型
CHARACTER SET utf8mb4: 字符集为utf8mb4
COLLATE utf8mb4_unicode_ci: 排序规则为utf8mb4_unicode_ci
6. 布尔类型字段
is_active BOOLEAN NOT NULL DEFAULT TRUE
is_active: 字段名称
BOOLEAN: 布尔类型(实际上是TINYINT(1)的别名)
NOT NULL: 不允许为空
DEFAULT TRUE: 默认值为TRUE(1)
7. 外键字段
user_id INT(11) NOT NULL, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
user_id: 字段名称
INT(11): 整数类型
NOT NULL: 不允许为空
FOREIGN KEY: 指定为外键
REFERENCES users(id): 引用users表的id字段
ON DELETE CASCADE: 级联删除
8. 枚举类型字段
status ENUM('active', 'inactive', 'pending') NOT NULL DEFAULT 'pending'
status: 字段名称
ENUM('active', 'inactive', 'pending'): 枚举类型,只能取这三个值之一
NOT NULL: 不允许为空
DEFAULT 'pending': 默认值为'pending'
常见字段类型对比表
插入语句示例
-- 基本插入语句
INSERT INTO users (username, age, email)
VALUES ('john_doe', 25, 'john@example.com');
-- 插入多行数据
INSERT INTO products (name, price, stock)
VALUES ('Laptop', 999.99, 10),
('Phone', 699.99, 20),
('Tablet', 399.99, 15);
-- 使用DEFAULT值
INSERT INTO orders (user_id, status)
VALUES (1, DEFAULT);
-- 插入查询结果
INSERT INTO user_backup
SELECT * FROM users WHERE created_at > '2025-01-01';
-- 使用SET语法
INSERT INTO employees
SET name = 'Alice', department = 'HR', salary = 50000:ml-citation{ref="2,5" data="citationList"};以上是MySQL中常见字段定义和插入语句的详细解析,涵盖了各种数据类型和约束条件的使用方法。