CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL, email VARCHAR(100)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
需注意字段类型、索引设计及存储引擎选择。
CREATE
权限,可通过以下命令验证:SHOW GRANTS FOR '用户名'@'主机名';
基本语法格式为:
CREATE TABLE [IF NOT EXISTS] 表名 ( 列名1 数据类型 [约束条件], 列名2 数据类型 [约束条件], ... [表级约束条件] ) [ENGINE=存储引擎] [DEFAULT CHARSET=字符集];
IF NOT EXISTS
:可选,避免重复建表报错。数据类型
:如INT
, VARCHAR(长度)
, DATE
等。约束条件
:如PRIMARY KEY
, NOT NULL
, UNIQUE
, DEFAULT
等。存储引擎
:默认为InnoDB
,支持事务和行级锁。字符集
:推荐utf8mb4
,支持中文及特殊符号。CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, email VARCHAR(100) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, is_active BOOLEAN DEFAULT TRUE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE orders ( order_id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, amount DECIMAL(10,2) NOT NULL, order_date DATE, FOREIGN KEY (user_id) REFERENCES users(id) );
SHOW TABLES;
DESCRIBE 表名;
order
),需用反引号包裹:`order`
。VARCHAR
适用于变长字符串;INT
节省空间且查询快。user_profile
),增强可读性。CREATE TABLE employees ( emp_id INT COMMENT '员工唯一标识' ) COMMENT='公司员工信息表';
IF NOT EXISTS
子句。本文参考自MySQL 8.0官方文档及数据库设计规范,确保内容权威可靠,具体细节可查阅:MySQL CREATE TABLE Documentation。