MySQL 应用小笔记
来源:互联网 发布:赵丽颖演技知乎 编辑:程序博客网 时间:2024/05/16 05:17
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 morePAGER set to \'more\'mysql> \\P morePAGER set to \'more\'mysql> pager lessPAGER set to \'less\'mysql> \\P lessPAGER set to \'less\'mysql> nopagerPAGER 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
- 本文来自:Linux教程网
- MySQL 应用小笔记
- ---matlab应用小笔记
- mysql事物小笔记
- mysql小笔记
- mysql小知识笔记
- 小笔记-mysql基础
- mysql应用笔记
- mysql性能优化小笔记
- 小笔记之mysql数据库
- Struts2注解+JDBC+MySQL小项目应用
- Struts2注解+JDBC+MySQL小项目应用
- Linux 日常应用的一些小笔记
- 前端_JQuery一些小应用笔记
- 小应用大智慧学习笔记
- 【笔记】关于PullToRefeshLibrary的小应用
- 我自己的mysql小笔记
- 上课笔记MySQL数据库小知识
- mysql 小笔记(日期转整形)
- 字符串字母大小写转换
- libcurl的使用以及Expect100-continue 问题解决php,c,C++
- linux shell 计算;读数据到变量
- 【3083】寻找helloworld
- cocos2dx文字描边问题解决
- MySQL 应用小笔记
- 2014-01-13平顶山学院
- shell与python间传递变量方法
- redis 源码学习(RDB 持久化)
- Android安卓开发环境搭建详细教程-Win7版
- 重构笔记——搬移函数
- 随地大小便的中世纪欧洲人 是真的吗
- 1090. Highest Price in Supply Chain (25)
- 【3091】暴力枚举?