mysql数据库基础命令总结常用10个
一、连接MySQL服务器
mysql -u [用户名] -p
- 解析:通过命令行登录MySQL服务,
"-u"指定用户名,
"-p"触发密码输入交互。
-
示例:
mysql -u root -p # 回车后输入密码
-
注意:
生产环境避免直接使用root账户,建议创建专用运维账号。
二、显示所有数据库
SHOW DATABASES;
-
解析:列出当前MySQL实例中的所有数据库名称。
-
示例输出:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test_db |
+--------------------+
-
注意:
"information_schema"和
"mysql"为系统库,勿随意修改。
三、选择操作数据库
USE [数据库名];
-
解析:切换当前会话的默认数据库,后续操作将基于此库执行。
-
示例:
USE test_db; -- 进入test_db数据库
-
注意:
执行前需确保数据库存在,否则报错
"ERROR 1049"。
四、显示当前数据库的所有表
SHOW TABLES;
-
解析:列出当前数据库中的全部表名。
-
示例输出:
+-------------------+
| Tables_in_test_db |
+-------------------+
| users |
| orders |
+-------------------+
-
注意:
需先执行
"USE"选择数据库。
五、查看表结构
DESCRIBE [表名]; -- 或简写 DESC
-
解析:显示表的字段名、数据类型、键约束等元数据。
-
示例:
DESC users;
-
输出字段:
"Field"(字段名),
"Type"(数据类型),
"Null"(是否可空),
"Key"(索引类型),
"Default"(默认值)。
六、创建新数据库
CREATE DATABASE [数据库名];
-
解析:创建指定名称的空数据库。
-
示例:
CREATE DATABASE shop_db;
-
注意:
库名需唯一,否则报错
"ERROR 1007"。
七、创建数据表
CREATE TABLE [表名] (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT DEFAULT 18
);
-
解析:
-
"AUTO_INCREMENT":自增主键
-
"NOT NULL":非空约束
-
"DEFAULT":设置默认值
-
示例:
CREATE TABLE students (
stu_id INT AUTO_INCREMENT PRIMARY KEY,
stu_name VARCHAR(50) NOT NULL,
class VARCHAR(20)
);
八、插入数据
INSERT INTO [表名] (字段1, 字段2) VALUES (值1, 值2);
-
解析:向指定表插入单条记录。
-
示例:
INSERT INTO students (stu_name, class)
VALUES ('张三', '计算机科学');
-
注意:
字段与值需一一对应,否则引发数据类型错误。
九、查询数据
SELECT * FROM [表名] WHERE [条件];
-
解析:
-
"*":返回所有字段
-
"WHERE":过滤条件(可选)
-
示例:
SELECT stu_name, class FROM students WHERE class = '计算机科学';
-
注意:
避免全表扫描
"SELECT *",大表指定所需字段。
十、备份数据库
mysqldump -u [用户] -p [数据库名] > backup.sql
-
解析:导出整个数据库结构和数据到SQL文件。
-
示例:
mysqldump -u root -p shop_db > shop_backup_20250530.sql
-
注意:
恢复命令
"mysql -u root -p shop_db < shop_backup.sql"
定期备份是运维铁律!
总结建议
1
权限最小化原则:日常操作使用非root账户,按需授权
2
防误删机制:执行
"DELETE/DROP"前先备份或开启事务
3
字符集统一:建库时指定
"CHARSET=utf8mb4"避免乱码
附:命令速查表(收藏备用)
操作类型 命令示例
用户管理
"CREATE USER 'dev'@'%' IDENTIFIED BY '密码';"
权限控制
"GRANT SELECT ON shop_db.* TO 'dev'@'%';"