主题
MySQL 库表
数据库
sql
SHOW DATABASES;
SELECT DATABASE();sql
CREATE DATABASE app_db
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_0900_ai_ci;sql
USE app_db;
DROP DATABASE IF EXISTS app_db;常用数据类型
| 类型 | 说明 |
|---|---|
INT / BIGINT | 整数。主键常用 BIGINT |
DECIMAL(p, s) | 精确小数。金额优先使用 |
VARCHAR(n) | 可变长度字符串 |
TEXT | 长文本 |
DATETIME | 日期时间,不带时区转换 |
TIMESTAMP | 时间戳,受会话时区影响 |
JSON | JSON 文档,MySQL 5.7+ 支持 |
创建表
sql
CREATE TABLE users (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(64) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE,
age INT UNSIGNED DEFAULT 0,
status TINYINT NOT NULL DEFAULT 1,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;查看表
sql
SHOW TABLES;
DESC users;
SHOW CREATE TABLE users;
SHOW INDEX FROM users;修改表
sql
ALTER TABLE users ADD COLUMN avatar_url VARCHAR(500);
ALTER TABLE users MODIFY COLUMN name VARCHAR(100) NOT NULL;
ALTER TABLE users CHANGE COLUMN avatar_url avatar VARCHAR(500);
ALTER TABLE users DROP COLUMN avatar;
ALTER TABLE users RENAME TO app_users;删除表
sql
DROP TABLE IF EXISTS users;
TRUNCATE TABLE users;DROP TABLE 删除表结构和数据。TRUNCATE TABLE 清空表数据并重置自增值,在 MySQL 中会隐式提交事务。
