• 十个非常实用的MySQL命令


     
    建赟  版主  

     

    前言

    今天介绍一些MySQL常用的实用命令,都是一些比较简单的命令。已经知道的朋友,就当是巩固吧,不知道的童鞋,可以好好在自己的机器上,练习下。

    0. 显示数据库

    命令:show databases。

    作用:列出当前数据库服务器中所有的数据库。

    例子:

    
    
    1. mysql> show databases;
    2. +--------------------+
    3. Database |
    4. +--------------------+
    5. | information_schema |
    6. | andyqian |
    7. | mydata |
    8. | mysql |
    9. | performance_schema |
    10. | sys |
    11. +--------------------+
    12. rows in set (0.00 sec)

    1. 切换数据库

    命令: use database_name。

    作用: 切换数据库。

    例子:

    
    
    1. mysql> use andyqian;
    2. Database changed

    2. 显示数据库中的所有表

    命令: show tables。

    作用: 显示数据库中的所有表。

    例子:

    
    
    1. mysql> show tables;
    2. +--------------------+
    3. | Tables_in_andyqian |
    4. +--------------------+
    5. | hit_counter |
    6. | t_base_01 |
    7. | t_base_data |
    8. | t_base_user |
    9. +--------------------+
    10. rows in set (0.00 sec)

    3. 显示表中的所有列

    命令:show full columns tables_name;

    作用: 显示表中所有列信息。

    例子:

    
    
    1. mysql> show full columns from t_base_dataG;
    2. *************************** 1. row ***************************
    3. Field: id
    4. Type: bigint(20)
    5. Collation: NULL
    6. Null: NO
    7. Key: PRI
    8. Default: NULL
    9. Extra: auto_increment
    10. Privileges: select,insert,update,references
    11. Comment:
    12. *************************** 2. row ***************************
    13. Field: content
    14. Type: json
    15. Collation: NULL
    16. Null: YES
    17. Key:
    18. Default: NULL
    19. Extra:
    20. Privileges: select,insert,update,references
    21. Comment:
    22. 2 rows in set (0.01 sec)

    注意:我这里使用终端直接连接数据库,G为按列格式化显示。如果使用Navicat工具,则为下面这样。

    4. 查看MySQL版本

    命令:select version(); 。

    作用:查看服务器版本。

    例子:

    
    
    1. mysql> select version();
    2. +-----------+
    3. | version() |
    4. +-----------+
    5. | 5.7.20 |
    6. +-----------+
    7. 1 row in set (0.00 sec)

    注意:查看MySQL版本是一件非常重要的事情,比如:MySQL5.6之前就不支持Online DDL,MySQL 5.7.8 之前就不支持JSON数据类型。

    5. 查看当前用户

    命令:select current_user();

    作用:显示当前登录用户

    例子:

    
    
    1. mysql> select current_user();
    2. +----------------+
    3. current_user() |
    4. +----------------+
    5. | root@localhost |
    6. +----------------+
    7. 1 row in set (0.00 sec)

    注意:上面是仅仅是为了演示,在生产环境中,不建议直接使用root用户,建议的是:建一个新用户连接数据库,以及做好权限分配,至于为什么?这里就不一一展开了,下次单独拧出来写一篇文章。

    6. 显示单表信息

    命令:show table status like table_name。

    作用:显示表详细信息。

    例子:

    
    
    1. mysql> show table status like "t_base_data"G;
    2. *************************** 1. row ***************************
    3. Name: t_base_data
    4. Engine: InnoDB
    5. Version: 10
    6. Row_format: Dynamic
    7. Rows: 2
    8. Avg_row_length: 8192
    9. Data_length: 16384
    10. Max_data_length: 0
    11. Index_length: 0
    12. Data_free: 0
    13. Auto_increment: 3
    14. Create_time: 2017-12-08 00:30:03
    15. Update_time: NULL
    16. Check_time: NULL
    17. Collation: utf8_unicode_ci
    18. Checksum: NULL
    19. Create_options:
    20. Comment:
    21. 1 row in set (0.00 sec)

    注意:该命令详细的展示了表的信息,其中包括表名,表的存储引擎,版本,数据长度,索引长度,创建时间,修改时间等等。

    7. 显示进程数

    命令: show processlist。

    作用:显示正在操作数据库的进程数。

    例子:

    
    
    1. mysql> show processlistG;
    2. *************************** 1. row ***************************
    3. Id: 6
    4. User: root
    5. Host: localhost
    6. db: andyqian
    7. Command: Query
    8. Time: 0
    9. State: starting
    10. Info: show processlist
    11. *************************** 2. row ***************************
    12. Id: 7
    13. User: root
    14. Host: localhost:46612
    15. db: NULL
    16. Command: Sleep
    17. Time: 1439
    18. State:
    19. Info: NULL

    注意:该命令显示了所有连接数据库的进程数,其中就包括,用户,主机,连接的数据库等信息。

    8. 显示索引

    命令:show index from table_name;

    作用:显示表中的所有索引。

    例子:

    
    
    1. mysql> show index from t_base_dataG;
    2. *************************** 1. row ***************************
    3. Table: t_base_data
    4. Non_unique: 0
    5. Key_name: PRIMARY
    6. Seq_in_index: 1
    7. Column_name: id
    8. Collation: A
    9. Cardinality: 2
    10. Sub_part: NULL
    11. Packed: NULL
    12. Null:
    13. Index_type: BTREE
    14. Comment:
    15. Index_comment:
    16. *************************** 2. row ***************************
    17. Table: t_base_data
    18. Non_unique: 1
    19. Key_name: idx_created_at
    20. Seq_in_index: 1
    21. Column_name: created_at
    22. Collation: A
    23. Cardinality: 1
    24. Sub_part: NULL
    25. Packed: NULL
    26. Null: YES
    27. Index_type: BTREE
    28. Comment:
    29. Index_comment:
    30. rows in set (0.00 sec)

    注意:这里显示了表中的索引信息,从这里就能看出建了哪些索引,联合索引的顺序。对索引不了解的童鞋,可以看看这篇文章《写会MySQL索引》。

    9. 查看执行计划

    命令:explain 查询语句。

    作用:查看查询语句的执行情况,常用于SQL优化。

    例子:

    
    
    1. mysql> explain select * from t_base_user where created_at>"2017-12-09"G;
    2. *************************** 1. row ***************************
    3. id: 1
    4. select_type: SIMPLE
    5. table: t_base_user
    6. partitions: NULL
    7. type: ALL
    8. possible_keys: NULL
    9. key: NULL
    10. key_len: NULL
    11. ref: NULL
    12. rows: 1
    13. filtered: 100.00
    14. Extra: Using where
    15. 1 row in set, 1 warning (0.00 sec)

    注意: 查看SQL的执行计划是一个好习惯,无论是新手,还是老司机,都应该养成这个习惯。上面这个执行计划还读的懂吗?如果不懂,可以回顾这篇文章《读懂MySQL执行计划》

    最后

    原文引自:http://forum.huawei.com/enterprise/thread-435083.html

  • 相关阅读:
    如何将网格式报表打印成其它样式
    拥有与实力不相称的脾气是种灾难——北漂18年(23)
    8.8.1 Optimizing Queries with EXPLAIN
    mysql 没有rowid 怎么实现根据rowid回表呢?
    secondary index
    8.5.5 Bulk Data Loading for InnoDB Tables 批量数据加载
    mysql 中key 指的是索引
    8.5.4 Optimizing InnoDB Redo Logging 优化InnoDB Redo 日志
    8.5.3 Optimizing InnoDB Read-Only Transactions 优化InnoDB 只读事务
    8.5.1 Optimizing Storage Layout for InnoDB Tables InnoDB表的存储布局优化
  • 原文地址:https://www.cnblogs.com/jinggangshan/p/8177870.html
Copyright © 2020-2023  润新知