-
显示所有数据库:
SHOW DATABASES;
系统默认数据库:
数据库名 用途 information_schema
存储 MySQL 服务器元数据(如数据库、表、列信息),只读 mysql
存储用户权限、密码、日志等核心数据(不要随意修改!) performance_schema
用于监控 MySQL 性能指标(如查询耗时、锁等待等) sys
基于 performance_schema
的简化视图,提供更友好的性能分析 -
创建数据库:
CREATE DATABASE 数据库名;
-
选择/使用数据库:
USE 数据库名;
-
删除数据库:
DROP DATABASE 数据库名;
-
查看当前使用的数据库:
SELECT DATABASE();
表操作
-
显示当前数据库中的所有表:
SHOW TABLES;
-
创建表:
CREATE TABLE 表名 (列名1 数据类型 [约束],列名2 数据类型 [约束],...);
下面是一个典型的用户信息表的创建示例,包含了常见的字段类型和约束:
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL UNIQUE,password CHAR(60) NOT NULL,email VARCHAR(100) NOT NULL UNIQUE,age TINYINT UNSIGNED, gender ENUM('男', '女', '其他') DEFAULT '其他',register_time DATETIME DEFAULT CURRENT_TIMESTAMP,last_login TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP,status TINYINT DEFAULT 1 COMMENT '0-禁用 1-正常',INDEX idx_username (username),INDEX idx_email (email)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表';1、id - 主键 INT 整数类型 AUTO_INCREMENT 自动增长 PRIMARY KEY 设为主键2、username - 用户名 VARCHAR(50) 可变长度字符串,最多50字符 NOT NULL 不能为空 UNIQUE 唯一约束,所有非 NULL 的值必须唯一。3、password - 密码(存储哈希值) CHAR(60) 固定长度字符串,适合存储密码哈希4、email - 电子邮箱 VARCHAR(100) 可变长度字符串 NOT NULL + UNIQUE 不能为空且唯一5、age - 年龄 TINYINT UNSIGNED 无符号小整数(0-255)6、gender - 性别 ENUM 枚举类型,只能取指定值 DEFAULT '其他' 默认值7、register_time - 注册时间 DATETIME 日期时间类型 DEFAULT CURRENT_TIMESTAMP 默认当前时间8、last_login - 最后登录时间 TIMESTAMP 时间戳类型 NULL ON UPDATE CURRENT_TIMESTAMP 更新时自动设置为当前时间9、status - 状态 TINYINT 小整数 DEFAULT 1 默认值 COMMENT 字段注释表级设置:ENGINE=InnoDB 使用InnoDB存储引擎DEFAULT CHARSET=utf8mb4 使用UTF8MB4字符集(支持emoji)COMMENT 表注释INDEX 创建索引提高查询效率
-
添加字段:
ALTER TABLE users ADD COLUMN mobile VARCHAR(15) COMMENT '手机号码' AFTER email;详细解析:ALTER TABLE users:表示要修改名为 users 的表ADD COLUMN:添加一个新列(字段)mobile:新字段的名称VARCHAR(15):字段数据类型,可变长度字符串,最多15个字符COMMENT '手机号码':为字段添加注释说明AFTER email:指定新字段放在 email 字段后面FIRST:将字段添加为表的第一列可以一次性添加多个字段,用逗号分隔
-
查看表结构:
DESC 表名;
或
SHOW COLUMNS FROM 表名;
-
删除表:
DROP TABLE 表名;
-
添加记录:
省略列名的插入(需提供所有列的值)INSERT INTO 表名 VALUES (值1, 值2, 值3, ...);NSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);插入多行:INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...),(值1, 值2, ...),(值1, 值2, ...);
示例(向 users 表插入数据):
INSERT INTO users (username, email, age, gender) VALUES ('张三', 'zhangsan@example.com', 25, '男');
-
查询记录:
//查询所有记录:SELECT * FROM 表名;//指定字段名,查询某些字段:SELECT 列名1, 列名2 FROM 表名;//使用 WHERE 子句来添加条件筛选记录SELECT * FROM 表名 WHERE 条件;//使用 LIMIT 可以限制返回记录的数量:SELECT * FROM 表名 LIMIT 10;
-
删除记录:
//删除所有记录:DELETE FROM 表名;//通过 WHERE 子句删除符合条件的记录:DELETE FROM 表名 WHERE 条件;//使用 LIMIT 来限制删除的记录数量:DELETE FROM 表名 WHERE 条件 LIMIT 10;(前 10 条记录)//删除表中的所有记录并重置自增计数:TRUNCATE TABLE 表名;(会删除所有记录,并且会将自增计数器重置为 1。)