显示所有数据库:
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。)