mysql常用命令语句(含常见报错),多年总结

/* * 查看mysql版本 **/
select version();

-- 允许远程连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'a510978768' WITH GRANT OPTION; 
FLUSH PRIVILEGES;

/* * 显示数据库 **/
show databases;

/* * 主从状态查看,读写分离 **/
SHOW MASTER STATUS;

/* * 数据库是否支持分区 **/
SHOW VARIABLES LIKE '%partition%';

/* * 显示数据库存储路径 **/
show variables like '%dir%';

/* * 显示数据库引擎及特性 **/
show engines;

/* * 查看InnoDB为YES,即表示数据库支持InnoDB了 **/
show variables like 'have_%';

/* * 临时取消外键限制(约束) **/
SET foreign_key_checks=0;//禁用

SET foreign_key_checks=1;//启用

/* *  查询哪个表数据量最大,gx210413为数据库名 **/
use information_schema;
select table_name,table_rows 
from tables where table_schema='gx210413' 
order by table_rows desc limit 10;

/* *  使用delete TABLE 表名 删除表数据后,如果需要释放空间执行以下操作 **/
OPTIMIZE TABLE 表名;

/* *  性能查询 **/
EXPLAIN SELECT SQL_NO_CACHE ……

type列,连接类型。一个好的SQL语句至少要达到range级别。杜绝出现all级别。
key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式。
key_len列,索引长度。
rows列,扫描行数。该值是个预估值。
extra列,详细说明。注意,常见的不太友好的值,如下:Using filesort,Using temporary。

/* *************************************** 数据库相关报错 ****************************** */
/* * root@%报错,数据库授权问题解决 **/
grant all privileges on *.* to root@"%" identified by ".";
flush privileges;

/* ** Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline. *** */
1.在配置文件中添加关闭严格模式的配置:
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
2.在配置文件中添加使用独立表空间的配置:
    innodb_file_per_table=1
3.在数据库中执行:
    SHOW GLOBAL VARIABLES LIKE '%innodb_file%';
+--------------------------+-----------+
| Variable_name            | Value     |
+--------------------------+-----------+
| innodb_file_format       | Barracuda |
| innodb_file_format_check | ON        |
| innodb_file_format_max   | Barracuda |
+--------------------------+-----------+
确保innodb_file_format 使用的是Barracuda,如果不是执行以下语句:SET GLOBAL innodb_file_format = barracuda;
此时,即可解决mysql报错1118的问题。


/* *************************************** 函数 ***************** */
1、判断空值
    ISNULL(v):函数仅仅是用于判断空值的,接受一个参数并返回一个布尔值,
                SELECT ISNULL('i like yanggb'); // 0
                SELECT ISNULL(NULL); // 1
    IFNULL(v1, v2):它接受两个参数,如果第一个参数不是NULL,则返回第一个参数;否则,将返回第二个参数。两个参数都可以是文字值或表达式。
                SELECT IFNULL(NULL, 'i like yanggb'); // i like yanggb

2、多个判断条件:CASE WHEN         
    场景1:分数区间判断
        有分数score,score<60返回不及格,score>=60返回及格,score>=80返回优秀
        SELECT STUDENT_NAME,
            (CASE WHEN score < 60 THEN '不及格'
                WHEN score >= 60 AND score < 80 THEN '及格'
                WHEN score >= 80 THEN '优秀'
                ELSE '异常' END) AS REMARK
        FROM TABLE        

    场景2:经典行转列,并配合聚合函数做统计
        现要求统计各个城市,总共使用了多少水耗、电耗、热耗,使用一条SQL语句输出结果
        有能耗表如下:其中,E_TYPE表示能耗类型,0表示水耗,1表示电耗,2表示热耗

            E_CODE    E_VALUE     E_TYPE
            北京    28.50    0
            北京    23.51    1
            北京    28.12    2
            北京    12.30    0
            北京    15.46    1
            上海    18.88    0
            上海    16.66    1
            上海    19.99    0
            上海    10.05    0
        SELECT 
            E_CODE,
            SUM(CASE WHEN E_TYPE = 0 THEN E_VALUE ELSE 0 END) AS WATER_ENERGY,--水耗
            SUM(CASE WHEN E_TYPE = 1 THEN E_VALUE ELSE 0 END) AS ELE_ENERGY,--电耗
            SUM(CASE WHEN E_TYPE = 2 THEN E_VALUE ELSE 0 END) AS HEAT_ENERGY--热耗
        FROM 
            THTF_ENERGY_TEST
        GROUP BY
            E_CODE
            
/* *************************************** linux操作命令集 ***************** */
service mysqld start    --启动服务
service mysqld stop        --停止服务

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值