mysql常用命令

目录

[一、连接与退出 MySQL](#一、连接与退出 MySQL)

(1)连接数据库

(2)连接指定数据库

[(3)退出 MySQL](#(3)退出 MySQL)

二、数据库操作

(1)查看所有数据库

(2)创建数据库

(3)使用数据库

(4)删除数据库

三、数据表操作

(1)查看当前数据库中的所有表

(2)查看表结构

(3)创建表

字段数据类型(常用)

[约束关键字(约束 = 数据规则)(常见)](#约束关键字(约束 = 数据规则)(常见))

[FOREIGN KEY的使用:](#FOREIGN KEY的使用:)

[第一步:创建父表 departments](#第一步:创建父表 departments)

[第二步:创建子表 employees,添加外键约束](#第二步:创建子表 employees,添加外键约束)

(4)删除表

(5)重命名表

(6)修改表结构

四、数据操作(增删改查)

(1)插入数据

(2)查询数据

(3)更新数据

(4)删除数据

五、用户权限管理

(1)查看所有用户

(2)创建新用户

(3)授权

(4)刷新权限

(5)撤销权限

(6)删除用户

六、备份与恢复

(1)备份数据库

(2)恢复数据库

七、其他实用命令


一、连接与退出 MySQL

(1)连接数据库

复制代码
mysql -u 用户名 -p

说明:

  • -u:指定用户名

  • -p:提示输入密码,注意不要写密码本身

示例:

复制代码
mysql -u root -p

(2)连接指定数据库

复制代码
mysql -u 用户名 -p 数据库名

示例:

复制代码
mysql -u root -p mydb

(3)退出 MySQL

复制代码
exit;
-- 或者
quit;

二、数据库操作

(1)查看所有数据库

复制代码
SHOW DATABASES;

(2)创建数据库

复制代码
CREATE DATABASE 数据库名;

示例:

复制代码
CREATE DATABASE mydb;

(3)使用数据库

复制代码
USE 数据库名;

示例:

复制代码
USE mydb;

(4)删除数据库

复制代码
DROP DATABASE 数据库名;

示例:

复制代码
DROP DATABASE mydb;

三、数据表操作

(1)查看当前数据库中的所有表

复制代码
SHOW TABLES;

(2)查看表结构

复制代码
DESC 表名;
-- 或
SHOW COLUMNS FROM 表名;

(3)创建表

复制代码
CREATE TABLE 表名 (
    字段名1 数据类型 [约束],
    字段名2 数据类型 [约束],
    ...
) [表选项,如 ENGINE、CHARSET];(可无)

示例:

复制代码
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,          -- 用户ID,主键且自动递增
    username VARCHAR(50) NOT NULL UNIQUE,       -- 用户名,不为空且唯一
    age INT NOT NULL,                           -- 年龄,不能为空
    gender VARCHAR(10) DEFAULT '未知',           -- 性别,默认值是 '未知'
    email VARCHAR(100),                         -- 邮箱,可以为空
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP -- 注册时间,默认当前时间
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;  --(可无)存储引擎为 InnoDB,默认的字符编码为 utf8mb4

字段数据类型(常用)

类型分类 常用类型 描述
数值型 INT / BIGINT / FLOAT / DECIMAL 整数或浮点数、精确小数
字符串 VARCHAR(n) / CHAR(n) / TEXT 可变/固定长度字符串、长文本
日期时间 DATE / DATETIME / TIMESTAMP 日期、时间戳类型
布尔型 BOOLEAN / TINYINT(1) 通常以0/1实现布尔值

约束关键字(约束 = 数据规则)(常见)

约束名 含义
PRIMARY KEY 主键,唯一且不为空
AUTO_INCREMENT 自增,用于主键
NOT NULL 不允许为空
UNIQUE 唯一值(可空)
DEFAULT 默认值
CHECK(...) 检查条件
FOREIGN KEY 外键,关联其他表

FOREIGN KEY的使用:

第一步:创建父表 departments
复制代码
CREATE TABLE departments (
    dept_id INT PRIMARY KEY,
    dept_name VARCHAR(100) NOT NULL
);
第二步:创建子表 employees,添加外键约束
复制代码
CREATE TABLE employees (
    emp_id INT PRIMARY KEY AUTO_INCREMENT,
    emp_name VARCHAR(100) NOT NULL,
    dept_id INT,  -- 外键列

    FOREIGN KEY (dept_id) REFERENCES departments(dept_id)
);

employees.dept_id 是外键,插入该employees表时,其dept_id 的值 必须已存在于 departments.dept_id

(4)删除表

复制代码
DROP TABLE 表名;

示例:

复制代码
DROP TABLE users;

(5)重命名表

复制代码
RENAME TABLE 原表名 TO 新表名;

(6)修改表结构

  • 添加字段:

    ALTER TABLE 表名 ADD 列名 数据类型;

  • 修改字段类型或名称:

    ALTER TABLE 表名 MODIFY 列名 新数据类型;

    ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型;

  • 删除字段:

    ALTER TABLE 表名 DROP 列名;


四、数据操作(增删改查)

(1)插入数据

复制代码
INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);

示例:

复制代码
INSERT INTO users (name, age) VALUES ('Alice', 25);

(2)查询数据

复制代码
SELECT 字段列表 FROM 表名 [WHERE 条件] [ORDER BY 字段 ASC|DESC] [LIMIT 限制];

示例:

复制代码
--1
SELECT * FROM users;
--2
SELECT name FROM users WHERE age > 18 ORDER BY age DESC LIMIT 5;

users 表中:

只查找 name 列,只查找年龄大于 18 的人,按年龄从大到小排序,最多返回前 5 条记录

(3)更新数据

复制代码
UPDATE 表名 SET 字段1=值1, 字段2=值2 WHERE 条件;

示例:

复制代码
UPDATE users SET age = 30 WHERE name = 'Alice';

(4)删除数据

复制代码
DELETE FROM 表名 WHERE 条件;

示例:

复制代码
DELETE FROM users WHERE age < 18;

五、用户权限管理

(1)查看所有用户

复制代码
SELECT user, host FROM mysql.user;

(2)创建新用户

复制代码
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';

示例:

复制代码
CREATE USER 'testuser'@'localhost' IDENTIFIED BY '123456';

(3)授权

复制代码
GRANT 权限列表 ON 数据库.表 TO '用户名'@'主机';

示例:

复制代码
GRANT ALL PRIVILEGES ON mydb.* TO 'testuser'@'localhost';

(4)刷新权限

复制代码
FLUSH PRIVILEGES;

(5)撤销权限

复制代码
REVOKE 权限列表 ON 数据库.表 FROM '用户名'@'主机';

(6)删除用户

复制代码
DROP USER '用户名'@'主机';

六、备份与恢复

(1)备份数据库

复制代码
mysqldump -u 用户名 -p 数据库名 > 文件名.sql

示例:

复制代码
mysqldump -u root -p mydb > mydb_backup.sql

(2)恢复数据库

复制代码
mysql -u 用户名 -p 数据库名 < 文件名.sql

示例:

复制代码
mysql -u root -p mydb < mydb_backup.sql

七、其他实用命令

  • 查看当前使用的数据库:

    SELECT DATABASE();

  • 查看当前用户:

    SELECT USER();

  • 查看版本信息:

    SELECT VERSION();

  • 设置字符集:

    SET NAMES utf8mb4;

相关推荐
Hello.Reader32 分钟前
Kafka 在 6 大典型用例的落地实践架构、参数与避坑清单
数据库·架构·kafka
数巨小码人1 小时前
AI+数据库:国内DBA职业发展与国产化转型实践
数据库·人工智能·ai·dba
mask哥2 小时前
详解flink SQL基础(四)
java·大数据·数据库·sql·微服务·flink
左灯右行的爱情2 小时前
分库分表系列-基础内容
网络·数据库·oracle
会飞的土拨鼠呀3 小时前
K8s部署MySQL8.0数据库
数据库·容器·kubernetes
oYiMiYangGuang1233 小时前
【广告系列】流量优选
数据库
小蒜学长3 小时前
vue家教预约平台设计与实现(代码+数据库+LW)
java·数据库·vue.js·spring boot·后端
专注VB编程开发20年4 小时前
对excel xlsx文件格式当成压缩包ZIP添加新的目录和文件后,OpenXml、NPOI、EPPlus、Spire.Office组件还能读出来吗
数据库·c#·excel
小戈爱学习4 小时前
OpenLDAP 服务搭建与配置全流程指南
服务器·数据库·oracle
俊昭喜喜里4 小时前
C#和SQL Server Management Studio的连接
服务器·数据库·c#