IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

MySQL 应用小笔记

生活在别处 2011-02-17 23:17:22 累计浏览 4,175 次
本机暂存

MySQL 挂起的调试

    1. 附加到mysql

root@gguo-laptop: gdb -p 1232

    1232 是 MySQL 的PID

     2. 显示当前线程

(gdb) info threads

    3.显示所有线程的回溯

(gdb) thread apply all bt

MySQL BINARY

mysql> SELECT * FROM tbl_4;
+----+-------+
| id | title |
+----+-------+
|  1 | 11    |
|  2 | 22    |
|  3 | 33    |
|  4 | aa    |
|  5 | bb    |
|  6 | cc    |
|  7 | AA    |
|  8 | BB    |
|  9 | CC    |
+----+-------+
9 rows in set (0.00 sec)

mysql> SELECT * FROM tbl_4 WHERE title LIKE \'a%\';
+----+-------+
| id | title |
+----+-------+
|  4 | aa    |
|  7 | AA    |
+----+-------+
2 rows in set (0.00 sec)
mysql> SELECT * FROM tbl_4 WHERE BINARY title LIKE \'a%\';
+----+-------+
| id | title |
+----+-------+
|  4 | aa    |
+----+-------+
1 row in set (0.00 sec)

mysql> SELECT * FROM tbl_4 WHERE BINARY title LIKE \'A%\';
+----+-------+
| id | title |
+----+-------+
|  7 | AA    |
+----+-------+
1 row in set (0.00 sec)

GROUP BY WITH ROLLUP

    在 GROUP BY 结果的最后一行,列出所有行的总和,如下

mysql> S ELECT COUNT(*), title FROM tbl_4 GROUP BY title WITH ROLLUP;
+----------+-------+
| COUNT(*) | title |
+----------+-------+
|        1 | 11    |
|        1 | 22    |
|        1 | 33    |
|        2 | aa    |
|        2 | bb    |
|        2 | cc    |
|        9 | NULL  |
+----------+-------+
7 rows in set (0.00 sec)

ORDER BY IF

排序时将某列中特定值排在最前,例如在如下排序中要把 aa 放在最前面:

mysql> SELECT title FROM tbl_4 ORDER BY IF(title = \'aa\', 0, 1), title;
+-------+
| title |
+-------+
| aa    |
| AA    |
| 11    |
| 22    |
| 33    |
| bb    |
| BB    |
| cc    |
| CC    |
+-------+
9 rows in set (0.00 sec)

prompt

    有很多 MySQL 数据库管理,有时会发生自己忘记了在那台服务器的数据库上,使用 prompt 来重写mysql客户端提示符。

mysql>prompt \\u@\\h(\\d) \\r:\\m:\\s>
  • \\u 连接用户
  • \\h 连接主机
  • \\d 连接数据库
  • \\r:\\m:\\s: 显示当前时间
  •     有一一劳永逸的方法,就是在 my.cnf 中直接配置

    #不是[mysqld]
    [mysql]
    prompt=\\\\u@\\\\d \\\\R:\\\\m>

    pager

        如果 SELECT 出来的结果集超过几个屏幕,那么前面的结果无法看到。使用 pager 可以设置调用 os 的 more 或者 less 显示查询结果,和在 OS 中使用 more 或者 less 查看大文件的效果一样。

    mysql> pager more
    PAGER set to \'more\'
    mysql> \\P more
    PAGER set to \'more\'
    
    mysql> pager less
    PAGER set to \'less\'
    mysql> \\P less
    PAGER set to \'less\'
    
    mysql> nopager
    PAGER set to stdout

    DELIMITER

        DELIMITER 就是告诉 MySQL 解释器,命令的结束符是什么。

         默认情况下 MySQL 命令结束是以分号(;),在写过程或者函数等情况下,这会产生不少问题,因为存储过程中有许多语句,所以每一个都需要一个分号。因此你需要选择一个不太可能出现在你的语句或程序中的字符串作为分隔符。

         root@localhost(test) 03:27:17>DELIMITER $

         root@localhost(test) 03:27:24>SELECT * FROM tbl_4$

         +―-+――-+

         | id | title |

         +―-+――-+

         | 1 | 11 |

         | 2 | 22 |

         | 3 | 33 |

         | 4 | aa |

         | 5 | bb |

         | 6 | cc |

         | 7 | AA |

         | 8 | BB |

         | 9 | CC |

         +―-+――-+

         9 rows in set (0.00 sec)

    LOAD DATA LOCAL INFILE

    LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE \'file_name.txt\'

    LOAD DATA INFILE and LOAD DATA LOCAL INFILE

        在数据库中,LOAD DATA INFILE 和 LOAD DATA LOCAL INFILE都可以导入本地的数据,而 MySQL5.0 版本默认支持上述模式

    mysql> LOAD DATA INFILE ‘test.sql’ INTO TABLE test;
    mysql> LOAD DATA LOCAL INFILE ‘test.sql’ INTO TABLE test;

        启动mysql 加参数可限制使用 LOAD DATA LOCAL INFILE

    root@gguo-laptop:/usr/local/mysql/bin/mysqld_safe --local-infile=0 &

        mysql> LOAD DATA INFILE ‘test.sql’ INTO TABLE test;

         ERROR 1148 (42000): The used command is not allowed with this MySQL version

         而对于对于LOAD DATA INFILE, 可由user的 File_priv 对服务器主机上的文件访问进行控制

    MySQL 提示符下运行应用程序

    mysql>\\! cd /home

    同分类推荐文章

    1. 使用deepseek进行Oracle恢复,引起重大故障 (2026-06-22 10:56:00)
    2. 接手一个只差临门一脚的数据库恢复 (2026-06-18 00:13:09)
    3. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)

    查看更多 数据库 文章 →

    建议继续学习

    1. 用Hyer来进行网站的抓取 (累计阅读 158,251)
    2. MySQL数据库在实际应用一些方面的介绍 (累计阅读 36,397)
    3. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,164)
    4. Mysql监控指南 (累计阅读 21,351)
    5. 由浅入深探究mysql索引结构原理、性能分析与优化 (累计阅读 16,523)
    6. 如何查找消耗资源较大的SQL (累计阅读 15,210)
    7. 在Apache2.2.XX下安装Mod-myvhost模块 (累计阅读 13,057)
    8. 15个最好的免费开源电子商务平台 (累计阅读 12,541)
    9. 浅谈MySQL索引背后的数据结构及算法 (累计阅读 11,904)
    10. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,708)