MySQL 数据库常用命令大全(详细)

文章目录

    • [1. MySQL命令](#1. MySQL命令)
    • [2. MySQL基础命令](#2. MySQL基础命令)
    • [3. MySQL命令简介](#3. MySQL命令简介)
    • [4. MySQL常用命令](#4. MySQL常用命令)
    • [4.1 MySQL准备篇](#4.1 MySQL准备篇)
      • [4.1.1 启动和停止MySQL服务](#4.1.1 启动和停止MySQL服务)
      • [4.1.2 修改MySQL账户密码](#4.1.2 修改MySQL账户密码)
      • [4.1.3 MySQL的登陆和退出](#4.1.3 MySQL的登陆和退出)
      • [4.1.4 查看MySQL版本](#4.1.4 查看MySQL版本)
    • [4.2 DDL篇(数据定义)](#4.2 DDL篇(数据定义))
      • [4.2.1 查询数据库](#4.2.1 查询数据库)
      • [4.2.2 创建数据库](#4.2.2 创建数据库)
      • [4.2.3 使用数据库](#4.2.3 使用数据库)
      • [4.2.4 删除数据库](#4.2.4 删除数据库)
      • [4.2.5 查询表](#4.2.5 查询表)
      • [4.2.6 创建表](#4.2.6 创建表)
      • [4.2.7 修改表](#4.2.7 修改表)
      • [4.2.8 删除表](#4.2.8 删除表)
      • [4.2.9 查看数据表结构](#4.2.9 查看数据表结构)
      • [4.2.10 查看建表语句](#4.2.10 查看建表语句)
      • [4.2.11 增加、删除和修改字段自增长](#4.2.11 增加、删除和修改字段自增长)
      • [4.2.12 增加、删除和修改数据表的列](#4.2.12 增加、删除和修改数据表的列)
      • [4.2.13 添加、删除和查看索引](#4.2.13 添加、删除和查看索引)
      • [4.2.14 创建临时表](#4.2.14 创建临时表)
      • [4.2.15 创建内存表](#4.2.15 创建内存表)
      • [4.2.16 查看数据库数据表存储位置](#4.2.16 查看数据库数据表存储位置)
      • [4.2.17 清空表内容](#4.2.17 清空表内容)
    • [4.3 DML篇(数据操作)](#4.3 DML篇(数据操作))
      • [4.3.1 数据增加](#4.3.1 数据增加)
      • [4.3.2 数据删除](#4.3.2 数据删除)
      • [4.3.3 数据修改](#4.3.3 数据修改)
    • [4.4 DQL篇(数据查询)](#4.4 DQL篇(数据查询))
      • [4.4.1 检索所有数据](#4.4.1 检索所有数据)
      • [4.4.2 指定要检索的列](#4.4.2 指定要检索的列)
      • [4.4.3 使用WHERE子句来指定条件](#4.4.3 使用WHERE子句来指定条件)
      • [4.4.4 使用聚合函数来计算统计数据](#4.4.4 使用聚合函数来计算统计数据)
      • [4.4.5 使用GROUP BY来分组数据](#4.4.5 使用GROUP BY来分组数据)
      • [4.4.6 使用ORDER BY来排序数据](#4.4.6 使用ORDER BY来排序数据)
    • [4.5 DCL篇(数据控制)](#4.5 DCL篇(数据控制))
      • [4.5.1 GRANT命令:授予访问权限](#4.5.1 GRANT命令:授予访问权限)
      • [4.5.2 REVOKE命令:撤销访问权限](#4.5.2 REVOKE命令:撤销访问权限)
      • [4.5.3 SET PASSWORD命令:修改用户口令](#4.5.3 SET PASSWORD命令:修改用户口令)
      • [4.5.4 FLUSH命令:刷新权限](#4.5.4 FLUSH命令:刷新权限)

1. MySQL命令

  • MySQL命令是用于与MySQL数据库进行交互和操作的命令。这些命令可以用于各种操作,包括连接到数据库、选择数据库、创建表、插入数据、查询数据、删除数据等。

2. MySQL基础命令

  • 默认端口号:3306
  • 查看服务器版本:select version(); 或者 cmd命令 mysql -verison
  • 登录数据库:mysql -uroot -p
  • 退出数据库:exit/quit
  • 查看当前系统下的数据库:show databases;
  • 创建数据库:create 库名;
  • 使用数据库:use 库名;
  • 查看表:show tables;
  • 建表:create table 表名 (字段名 + 空格 + 数据类型);
  • 查看表结构:desc 表名;
  • 添加值:insert into 表名 (列名) values (值);
  • 查看表中所有数据:select * from 表名;
  • 查询建表时的结构:show create table 表名;
  • 删除字段中的值:delete from 表名 where 条件;
  • 删除表中的字段:delete from 表名 drop column 字段名; 或alter table 表名 drop 字段名
  • 删除表:drop table 表名;
  • 删除库:drop database 库名;
  • 主键约束:primary key
  • 唯一约束:unique
  • 非空约束:not null
  • 默认约束:default
  • 外键约束:foreign key(外键)references主表(主键)
  • 查看别的数据库的表格:show tables from 表名;

3. MySQL命令简介

  • MySQL命令是用于与MySQL数据库进行交互和操作的命令。

以下是一些常用的MySQL命令:

  • mysql:连接MySQL数据库的命令,需要指定用户名和密码。
  • use:使用某个数据库。
  • show databases:显示所有数据库。
  • create database:创建新的数据库。
  • drop database:删除数据库。
  • create table:创建新的表。
  • alter table:修改表结构。
  • drop table:删除表。
  • insert into:向表中插入新的记录。
  • delete from:删除表中符合条件的记录。
  • update:更新表中符合条件的记录。
  • select:查询表中的记录。
  • where:对查询的记录进行条件筛选。
  • order by:对查询的记录进行排序。
  • group by:对查询的记录进行分组。
  • having:对分组后的记录进行筛选。
  • set names:设置字符集编码。

这些命令只是MySQL命令的一部分,还有更多的命令可以用于管理和操作MySQL数据库。

4. MySQL常用命令

4.1 MySQL准备篇

4.1.1 启动和停止MySQL服务

sql 复制代码
net start mysql // 启动mysql服务
net stop mysql // 停止mysql服务

4.1.2 修改MySQL账户密码

  • 修改MySQL的root用户密码,先登陆MySQL
sql 复制代码
mysql -u root -p123456

注意:mysql -uroot -p你的MySQL密码

  • 修改root用户的密码:
sql 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

4.1.3 MySQL的登陆和退出

  • MySQL登陆
  • win+R 输入cmd,打开命令行窗口,输入mysql -uroot -p123456 ,回车,出现下图且左下角为mysql> ,则登录成功。
sql 复制代码
mysql -uroot -p123456

注意:mysql -uroot -p你的MySQL密码

  • MySQL登出
sql 复制代码
exit
quit

二选一

4.1.4 查看MySQL版本

sql 复制代码
SELECT VERSION();

4.2 DDL篇(数据定义)

  • 在MySQL中,DDL是数据定义语言(Data Definition Language)的缩写,用于定义和管理数据库的结构。

4.2.1 查询数据库

  • 查询所有的数据库
sql 复制代码
SHOW DATABASES;

4.2.2 创建数据库

  • 创建数据库:
sql 复制代码
CREATE DATABASE 数据库名称;
  • 创建数据库(判断,如果不存在则创建)
sql 复制代码
CREATE DATABASE IF NOT EXISTS 数据库名称;

4.2.3 使用数据库

  • 使用数据库
sql 复制代码
USE 数据库名称;
  • 查看当前使用的数据库
sql 复制代码
SELECT DATABASE();

4.2.4 删除数据库

  • 删除数据库
sql 复制代码
DROP DATABASE 数据库名称;
  • 删除数据库(判断,如果存在则删除)
sql 复制代码
DROP DATABASE IF EXISTS 数据库名称;

4.2.5 查询表

  • 查询当前数据库下所有表名称
sql 复制代码
SHOW TABLES;
  • 查询表结构
sql 复制代码
DESC 表名称;

4.2.6 创建表

  • 创建表
sql 复制代码
CREATE TABLE 表名 (
字段名1 数据类型1,
字段名2 数据类型2,
...
字段名n 数据类型n
);
sql 复制代码
create table tb_user (
id int,
username varchar(20),
password varchar(32)
);

注意:最后一行末尾,不能加逗号

4.2.7 修改表

  • 修改表名
sql 复制代码
ALTER TABLE 表名 RENAME TO 新的表名;
-- 将表名student修改为stu
alter table student rename to stu;
  • 添加一列
sql 复制代码
ALTER TABLE 表名 ADD 列名 数据类型;
-- 给stu表添加一列address,该字段类型是varchar(50)
alter table stu add address varchar(50);
  • 修改数据类型
sql 复制代码
ALTER TABLE 表名 MODIFY 列名 新数据类型;
-- 将stu表中的address字段的类型改为 char(50)
alter table stu modify address char(50);
  • 修改列名和数据类型
sql 复制代码
ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
-- 将stu表中的address字段名改为 addr,类型改为varchar(50)
alter table stu change address addr varchar(50);
  • 删除列
sql 复制代码
ALTER TABLE 表名 DROP 列名;
-- 将stu表中的addr字段 删除
alter table stu drop addr;

4.2.8 删除表

  • 删除表
sql 复制代码
DROP TABLE 表名;
  • 删除表时判断表是否存在
sql 复制代码
DROP TABLE IF EXISTS 表名;

4.2.9 查看数据表结构

sql 复制代码
desc [表名];

4.2.10 查看建表语句

sql 复制代码
SHOW CREATE TABLE [表名]

4.2.11 增加、删除和修改字段自增长

(1)增加自增长字段

sql 复制代码
ALTER TABLE table_name ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY;

注意:table_name代表您要增加自增长字段的表名,id代表您要增加的自增长字段名。

(2)修改自增长字段

sql 复制代码
ALTER TABLE table_name CHANGE column_name new_column_name INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
  • table_name代表包含自增长字段的表名,column_name代表原始自增长字段名,new_column_name代表新的自增长字段名。请注意,将数据类型更改为INT,否则无法使该列成为自增长主键。完成后,您需要重新启动表格才能使修改生效。

(3)删除自增长字段

sql 复制代码
ALTER TABLE table_name MODIFY column_name datatype;

注意:table_name代表要删除自增长字段的表名,column_name代表要删除的自增长字段名,datatype代表要设置的数据类型。

4.2.12 增加、删除和修改数据表的列

(1)增加数据表的列

sql 复制代码
ALTER TABLE <表名> ADD COLUMN <列名> <数据类型>;

ALTER TABLE student ADD COLUMN age INT;

上面的命令会在student表中增加一个名为ageINT类型列。

(2)删除数据表的列

sql 复制代码
ALTER TABLE <表名> DROP COLUMN <列名>;

ALTER TABLE student DROP COLUMN age;

上面的命令会从student表中删除名为age的列。

(3)修改数据表的列

sql 复制代码
ALTER TABLE <表名> MODIFY COLUMN <列名> <数据类型>;

ALTER TABLE student MODIFY COLUMN age VARCHAR(10);

上面的命令会将student表中的age列的数据类型修改为VARCHAR(10)

4.2.13 添加、删除和查看索引

(1)添加索引:

  • 要为表中的某个列添加索引,可以使用以下命令:
sql 复制代码
ALTER TABLE table_name ADD INDEX index_name (column_name);

其中,table_name是表的名称,index_name是索引的名称,

column_name是要添加索引的列的名称。

  • 例如,如果要为名为users的表的email列添加名为idx_email的索引,可以使用以下命令:
sql 复制代码
ALTER TABLE users ADD INDEX idx_email (email);

(2)删除索引:

  • 要删除表中的索引,可以使用以下命令:
sql 复制代码
ALTER TABLE table_name DROP INDEX index_name;

其中,table_name是表的名称,index_name是要删除的索引的名称。

  • 例如,如果要删除名为users的表的idx_email索引,可以使用以下命令:
sql 复制代码
ALTER TABLE users DROP INDEX idx_email;

(3)查看索引:

  • 要查看表中的索引信息,可以使用以下命令:
sql 复制代码
SHOW INDEX FROM table_name;

其中,table_name是表的名称。该命令将返回包含索引信息的结果集。

  • 例如,如果要查看名为users的表的索引信息,可以使用以下命令:
sql 复制代码
SHOW INDEX FROM users;

4.2.14 创建临时表

  • 要创建临时表,可以使用以下语法:
sql 复制代码
CREATE TEMPORARY TABLE temp_table_name (  
    column1 datatype,  
    column2 datatype,  
    ...  
	);

其中,temp_table_name是您要创建的临时表的名称。您可以指定表的列和数据类型,就像创建常规表一样。

  • 以下是一个具体的例子:
sql 复制代码
CREATE TEMPORARY TABLE temp_users (  
    id INT PRIMARY KEY,  
    name VARCHAR(50),  
    email VARCHAR(100)  
);

上述命令将创建一个名为temp_users的临时表,其中包含id、name和email列。id列是主键。

  • 注意:临时表仅在当前会话可见,并且在会话结束时自动删除。因此,它是一种在会话过程中存储临时数据的便捷方式。

4.2.15 创建内存表

  • 要创建内存表,可以使用以下语法:
sql 复制代码
CREATE TABLE mem_table_name (  
    column1 datatype,  
    column2 datatype,  
    ...  
) ENGINE=MEMORY;

其中,mem_table_name是您要创建的内存表的名称。您可以指定表的列和数据类型,就像创建常规表一样。通过将ENGINE选项设置为MEMORY,该表将被创建为内存表。

以下是一个具体的例子:

sql 复制代码
CREATE TABLE mem_users (  
    id INT PRIMARY KEY,  
    name VARCHAR(50),  
    email VARCHAR(100)  
) ENGINE=MEMORY;

上述命令将创建一个名为mem_users的内存表,其中包含id、name和email列。id列是主键。

  • 注意:内存表存储在内存中,因此数据的修改会立即生效,并且对所有用户可见。但是,当MySQL服务器关闭时,内存表中的数据将丢失。因此,它适用于临时存储数据或缓存等场景。

4.2.16 查看数据库数据表存储位置

要查看MySQL数据库中数据表的存储位置,您可以执行以下步骤:

  • 连接到MySQL服务器,可以使用以下命令:
sql 复制代码
mysql -u username -p

其中,username是您的MySQL用户名。系统将提示您输入密码。

选择要查看存储位置的数据库。使用以下命令选择数据库:

sql 复制代码
USE database_name;

其中,database_name是您要查看存储位置的数据库的名称。

  • 执行以下命令来查看数据表的存储位置:
sql 复制代码
SHOW TABLE STATUS;

该命令将返回包含有关数据库中所有数据表的信息的结果集。其中,可以关注File列,它将显示数据表的存储位置。

  • 如果只想查看特定数据表的存储位置,可以结合使用SHOW TABLE
    STATUS和LIKE语句。例如,要查看名为table_name的表的存储位置,可以执行以下命令:
sql 复制代码
SHOW TABLE STATUS LIKE 'table_name';

这将返回特定数据表的详细信息,包括存储位置。

  • 注意:这些命令在MySQL版本5.5及更高版本中有效。

4.2.17 清空表内容

  • 要清空MySQL表的内容,可以使用以下命令:
sql 复制代码
TRUNCATE TABLE table_name;

其中,table_name是要清空内容的表的名称。

该命令将删除表中的所有数据,但保留表的结构。换句话说,它将删除表中的所有行,但保留表的主键、索引和其他属性。

  • 注意:该操作一旦执行,无法恢复表的内容。因此,在使用该命令之前,请确保您已经备份了重要的数据。

4.3 DML篇(数据操作)

  • DML是数据操纵语言。它是一组用于管理和处理数据库的命令和语句,用于插入、更新、删除、查询和修改数据库中的数据。

  • MySQL命令中关于DML的操作主要有增加(Insert)、删除(Delete)和修改(Update)

4.3.1 数据增加

  • 增加操作:
sql 复制代码
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);

例如,要在名为users的表中添加一条记录,可以执行以下命令:

sql 复制代码
INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john@example.com');

4.3.2 数据删除

  • 删除操作:
sql 复制代码
DELETE FROM table_name WHERE condition;

例如,要删除名为users表中id为1的记录,可以执行以下命令:

sql 复制代码
DELETE FROM users WHERE id = 1;

4.3.3 数据修改

  • 修改操作:
sql 复制代码
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;

例如,要修改名为users表中name为'John Doe'的记录的email,可以执行以下命令:

sql 复制代码
UPDATE users SET email = 'newemail@example.com' WHERE name = 'John Doe';

4.4 DQL篇(数据查询)

  • MySQL中DQL(Data Query Language)操作的主要命令是SELECT,用于从数据库表中检索数据。

4.4.1 检索所有数据

sql 复制代码
SELECT * FROM table_name;

这个命令将返回表中的所有记录。

4.4.2 指定要检索的列

sql 复制代码
SELECT column1, column2 FROM table_name;

这个命令将返回指定的列,例如column1和column2。

4.4.3 使用WHERE子句来指定条件

sql 复制代码
SELECT * FROM table_name WHERE condition;

这个命令将返回满足指定条件的所有记录。例如,SELECT * FROM users WHERE age > 18 将返回年龄大于 18 的所有用户记录。

4.4.4 使用聚合函数来计算统计数据

sql 复制代码
SELECT COUNT(*) FROM table_name;

这个命令将返回表中的记录数。还可以使用其他聚合函数,如SUM、AVG、MAX和MIN等。

4.4.5 使用GROUP BY来分组数据

sql 复制代码
SELECT column1, COUNT(*) FROM table_name GROUP BY column1;

这个命令将按column1分组,并计算每个组中的记录数。

4.4.6 使用ORDER BY来排序数据

sql 复制代码
SELECT * FROM table_name ORDER BY column1;

这个命令将按column1的升序排序所有记录。还可以使用DESC关键字来按降序排序。#### 4.4.7 使用LIMIT来限制返回的记录数

sql 复制代码
SELECT * FROM table_name LIMIT 10;

这个命令将返回表中的前10条记录。还可以使用OFFSET关键字来指定从哪一行开始返回记录。

4.5 DCL篇(数据控制)

  • MySQL中DCL(Data Control Language)操作的主要命令是用于管理用户和权限的。

4.5.1 GRANT命令:授予访问权限

sql 复制代码
GRANT 权限列表 ON 对象类型 对象名称 TO 用户名@用户地址 IDENTIFIED BY用户口令;

例如,给用户test授予对所有数据库的完全访问权限:

sql 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost' IDENTIFIED BY 'password';

4.5.2 REVOKE命令:撤销访问权限

sql 复制代码
REVOKE 权限列表 ON 对象类型 对象名称 FROM 用户名@用户地址;

例如,撤销用户test对所有数据库的访问权限:

sql 复制代码
REVOKE ALL PRIVILEGES ON *.* FROM 'test'@'localhost';

4.5.3 SET PASSWORD命令:修改用户口令

sql 复制代码
SET PASSWORD FOR 用户名@用户地址 = SET PASSWORD BY PASSWORD ('新口令');

例如,将用户test的口令修改为新口令:

sql 复制代码
SET PASSWORD FOR 'test'@'localhost'=SET PASSWORD BY PASSWORD ('newpassword');

4.5.4 FLUSH命令:刷新权限

sql 复制代码
FLUSH PRIVILEGES;

例如,刷新权限使应用立即更改:

sql 复制代码
FLUSH PRIVILEGES;
相关推荐
Ren_xixi2 小时前
redis和mysql的区别
数据库·redis·mysql
追逐时光者4 小时前
免费、简单、直观的数据库设计工具和 SQL 生成器
后端·mysql
drebander4 小时前
MySQL 查询优化案例分享
数据库·mysql
小林coding6 小时前
阿里云 Java 后端一面,什么难度?
java·后端·mysql·spring·阿里云
18号房客7 小时前
高级sql技巧进阶教程
大数据·数据库·数据仓库·sql·mysql·时序数据库·数据库架构
翔云1234568 小时前
MySQL purged gtid是如何生成和维护的
数据库·mysql
平行线也会相交10 小时前
云图库平台(三)——后端用户模块开发
数据库·spring boot·mysql·云图库平台
恒辉信达11 小时前
hhdb客户端介绍(53)
数据库·mysql·hhdb·数据库可视化界面客户端
Hello.Reader12 小时前
Redis热点数据管理全解析:从MySQL同步到高效缓存的完整解决方案
redis·mysql·缓存
是程序喵呀12 小时前
MySQL备份
android·mysql·adb