MySQL 数据库常用命令大全(完整版)
作者:mmseoamin日期:2023-12-05

文章目录

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

                        net start mysql // 启动mysql服务
                        net stop mysql // 停止mysql服务
                        

                        4.1.2 修改MySQL账户密码

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

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

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

                            4.1.3 MySQL的登陆和退出

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

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

                              MySQL 数据库常用命令大全(完整版),在这里插入图片描述,第1张

                              • MySQL登出
                                exit
                                quit
                                

                                二选一

                                4.1.4 查看MySQL版本

                                SELECT VERSION();
                                

                                4.2 DDL篇(数据定义)

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

                                  4.2.1 查询数据库

                                  • 查询所有的数据库
                                    SHOW DATABASES;
                                    

                                    4.2.2 创建数据库

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

                                        4.2.3 使用数据库

                                        • 使用数据库
                                          USE 数据库名称;
                                          
                                          • 查看当前使用的数据库
                                            SELECT DATABASE();
                                            

                                            4.2.4 删除数据库

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

                                                4.2.5 查询表

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

                                                    4.2.6 创建表

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

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

                                                      4.2.7 修改表

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

                                                                4.2.8 删除表

                                                                • 删除表
                                                                  DROP TABLE 表名;
                                                                  
                                                                  • 删除表时判断表是否存在
                                                                    DROP TABLE IF EXISTS 表名;
                                                                    

                                                                    4.2.9 查看数据表结构

                                                                    desc [表名];
                                                                    

                                                                    4.2.10 查看建表语句

                                                                    SHOW CREATE TABLE [表名]
                                                                    

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

                                                                    (1)增加自增长字段

                                                                    ALTER TABLE table_name ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
                                                                    

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

                                                                    (2)修改自增长字段

                                                                    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)删除自增长字段

                                                                      ALTER TABLE table_name MODIFY column_name datatype;
                                                                      

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

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

                                                                      (1)增加数据表的列

                                                                      ALTER TABLE <表名> ADD COLUMN <列名> <数据类型>;
                                                                      ALTER TABLE student ADD COLUMN age INT;
                                                                      

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

                                                                      (2)删除数据表的列

                                                                      ALTER TABLE <表名> DROP COLUMN <列名>;
                                                                      ALTER TABLE student DROP COLUMN age;
                                                                      

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

                                                                      (3)修改数据表的列

                                                                      ALTER TABLE <表名> MODIFY COLUMN <列名> <数据类型>;
                                                                      ALTER TABLE student MODIFY COLUMN age VARCHAR(10);
                                                                      

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

                                                                      4.2.13 添加、删除和查看索引

                                                                      (1)添加索引:

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

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

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

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

                                                                          (2)删除索引:

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

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

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

                                                                              (3)查看索引:

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

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

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

                                                                                  4.2.14 创建临时表

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

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

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

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

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

                                                                                        4.2.15 创建内存表

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

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

                                                                                          以下是一个具体的例子:

                                                                                          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服务器,可以使用以下命令:
                                                                                              mysql -u username -p
                                                                                              

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

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

                                                                                              USE database_name;
                                                                                              

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

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

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

                                                                                                • 如果只想查看特定数据表的存储位置,可以结合使用SHOW TABLE

                                                                                                  STATUS和LIKE语句。例如,要查看名为table_name的表的存储位置,可以执行以下命令:

                                                                                                  SHOW TABLE STATUS LIKE 'table_name';
                                                                                                  

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

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

                                                                                                    4.2.17 清空表内容

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

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

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

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

                                                                                                        4.3 DML篇(数据操作)

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

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

                                                                                                          4.3.1 数据增加

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

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

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

                                                                                                            4.3.2 数据删除

                                                                                                            • 删除操作:
                                                                                                              DELETE FROM table_name WHERE condition;
                                                                                                              

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

                                                                                                              DELETE FROM users WHERE id = 1;
                                                                                                              

                                                                                                              4.3.3 数据修改

                                                                                                              • 修改操作:
                                                                                                                UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
                                                                                                                

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

                                                                                                                UPDATE users SET email = 'newemail@example.com' WHERE name = 'John Doe';
                                                                                                                

                                                                                                                4.4 DQL篇(数据查询)

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

                                                                                                                  4.4.1 检索所有数据

                                                                                                                  SELECT * FROM table_name;
                                                                                                                  

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

                                                                                                                  4.4.2 指定要检索的列

                                                                                                                  SELECT column1, column2 FROM table_name;
                                                                                                                  

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

                                                                                                                  4.4.3 使用WHERE子句来指定条件

                                                                                                                  SELECT * FROM table_name WHERE condition;
                                                                                                                  

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

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

                                                                                                                  SELECT COUNT(*) FROM table_name;
                                                                                                                  

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

                                                                                                                  4.4.5 使用GROUP BY来分组数据

                                                                                                                  SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
                                                                                                                  

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

                                                                                                                  4.4.6 使用ORDER BY来排序数据

                                                                                                                  SELECT * FROM table_name ORDER BY column1;
                                                                                                                  

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

                                                                                                                  SELECT * FROM table_name LIMIT 10;
                                                                                                                  

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

                                                                                                                  4.5 DCL篇(数据控制)

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

                                                                                                                    4.5.1 GRANT命令:授予访问权限

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

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

                                                                                                                    GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost' IDENTIFIED BY 'password';
                                                                                                                    

                                                                                                                    4.5.2 REVOKE命令:撤销访问权限

                                                                                                                    REVOKE 权限列表 ON 对象类型 对象名称 FROM 用户名@用户地址;
                                                                                                                    

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

                                                                                                                    REVOKE ALL PRIVILEGES ON *.* FROM 'test'@'localhost';
                                                                                                                    

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

                                                                                                                    SET PASSWORD FOR 用户名@用户地址 = SET PASSWORD BY PASSWORD ('新口令');
                                                                                                                    

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

                                                                                                                    SET PASSWORD FOR 'test'@'localhost'=SET PASSWORD BY PASSWORD ('newpassword');
                                                                                                                    

                                                                                                                    4.5.4 FLUSH命令:刷新权限

                                                                                                                    FLUSH PRIVILEGES;
                                                                                                                    

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

                                                                                                                    FLUSH PRIVILEGES;