1. binary
BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写。举例:
mysql> select * from tjob;
+-------+
| title |
+-------+
| 11 |
| 22 |
| 33 |
| aa |
| bb |
| cc |
| AA |
| BB |
| CC |
+-------+
9 rows in set (0.00 sec)
mysql> select title from tjob where title like 'a%';
+-------+
| title |
+-------+
| aa |
| AA |
+-------+
2 rows in set (0.00 sec)
mysql> select title from tjob where binary title like 'a%';
+-------+
| title |
+-------+
| aa |
+-------+
1 row in set (0.00 sec)
mysql> select title from tjob where binary title like 'A%';
+-------+
| title |
+-------+
| AA |
+-------+
1 row in set (0.00 sec)
2.group by with rollup
在group by结果的最后一行,列出所有行的总和,如下,多了最后一行
mysql> select count(*),title from tjob 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)
3.group_concat
group_concat合并行,例如把title字段的值打印在一行,逗号分隔。
mysql> select group_concat(title separator ',') from tjob;
+-----------------------------------+
| group_concat(title separator ',') |
+-----------------------------------+
| 11,22,33,aa,bb,cc,AA,BB,CC |
+-----------------------------------+
1 row in set (0.00 sec)
4.order by if
排序时将某列中特定值排在最前,例如我在排序中要把aa放在最前面:
select title from tjob order by if(title='aa',0,1),title;
+-------+
| title |
+-------+
| aa |
| AA |
| 11 |
| 22 |
| 33 |
| bb |
| BB |
| cc |
| CC |
+-------+
5.prompt
如果有很多mysql数据库管理,有时会发生自己忘记了在那台服务器,那台数据库上,毋庸多说,谁都知道这有多危险。可以使用prompt来重写mysql客户端提示符。
mysql>prompt \u@\h(\d) \r:\m:\s>
\u:连接用户
\h:连接主机
\d:连接数据库
\r:\m:\s:显示当前时间
如果嫌每次都在命令行修改麻烦,直接修改my.cnf参数
[mysql] #这是不是[mysqld]
prompt=\\u@\\d \\R:\\m>
6.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
7.delimiter
delimiter就是告诉MySQL解释器,命令的结束符是什么。
默认情况下MySQL命令结束是以分号(;),在写过程或者函数等情况下,这会产生不少问题,因为存储过程中有许多语句,所以每一个都需要一个分号。因此你需要选择一个不太可能出现在你的语句或程序中的字符串作为分隔符。
mysql> delimiter $
mysql> select count(*) from tjob$
+----------+
| count(*) |
+----------+
| 9 |
+----------+
1 row in set (0.00 sec)
想改回到分号,只需
mysql> delimiter ;
8.load data local infile
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[FIELDS //字段
[TERMINATED BY 'string'] //字段分割符
[[OPTIONALLY] ENCLOSED BY 'char']//字段的包含符,默认是''(空)
[ESCAPED BY 'char' ] //转义符,如'\\'
]
[LINES
[STARTING BY 'string'] //行的开始字符串,从string后面开始
[TERMINATED BY 'string'] //行分隔符,默认是'\n'(空行)
]
[IGNORE number LINES] //跳过前面number行
[(col_name_or_user_var,...)] //字段名称
[SET col_name = expr,...)]
使用load data导入数据,看起来是很简单,但是却经常容易出错。比如,需要导入的文本有时候并不是以’\n’(空行)结尾,不细心的话很容易出错。有时候导入的数据有列的信息,则可以使用IGNORE number LINES跳过前面指定行数等。
9.unix_timestamp and from_unixtime
unix_timestamp将时间转化成时间戳格式。
from_unixtime将时间戳转化成时间格式。
mysql> select unix_timestamp(now());
+-----------------------+
| unix_timestamp(now()) |
+-----------------------+
| 1251884321 |
+-----------------------+
1 row in set (0.00 sec)
mysql> select from_unixtime(1251884321);
+---------------------------+
| from_unixtime(1251884321) |
+---------------------------+
| 2009-09-02 17:38:41 |
+---------------------------+
1 row in set (0.00 sec)
很多时候mysql的应用都是使用时间戳格式来存储时间,这两个函数应用的场合很多,需要牢记。
分享到:
相关推荐
### MySQL优化技巧总结 #### 一、MySQL慢查询日志(Slow Query Log)与mysqldumpslow工具 **慢查询日志**是MySQL提供的一种非常实用的功能,它能够帮助我们记录并分析那些执行时间较长的SQL语句,进而找出性能瓶颈并...
标题为“网易技术部MySQL资料总结.pdf”,说明文档是网易技术部关于MySQL数据库的技术总结,内容按照开发篇和优化篇两个部分进行分类,覆盖面从基础使用到性能优化等多方面知识。 在描述中提到文档具有很高的参考...
总结来说,`DISTINCT`是MySQL中用于获取唯一数据的关键字,而VC开发者可以通过MySQL Connector/C++库与MySQL数据库进行交互,实现`DISTINCT`查询。理解并熟练运用这些知识,能够帮助你在数据库管理和开发过程中更...
### Mac开发使用小技巧新手总结 #### MySQL设计规范详解 MySQL设计规范对于保证数据库的一致性和易维护性至关重要。在本篇文章中,我们将详细介绍几个重要的MySQL设计规范,并结合实际应用场景进行解析。 #### 1....
- **查询优化技巧**: - 使用`EXPLAIN`来分析SQL执行计划,检查是否使用了索引。 - 避免在WHERE子句中使用复杂的表达式,如函数调用。 - 尽可能减少JOIN操作的数量。 - 使用覆盖索引(Covering Index),即索引...
16.MySQL高级锁MyISAM表锁小结.avi 17.MySQL高级锁MyISAM表锁查看锁争用情况.avi 18.MySQL高级锁InnoDB行锁介绍及背景知识.avi 18.MySQL高级锁InnoDB行锁类型.avi 19.MySQL高级锁InnoDB行锁基本演示.avi 20.MySQL...
### MySQL使用心得与技巧 #### 一、MySQL内置函数运用 **1. IP地址与数字之间的转换** - **函数介绍** - `INET_ATON`: 将IP地址转换为整数。 - `INET_NTOA`: 将整数转换为IP地址。 - **应用场景** - 在...
### MySQL简化输入小技巧 在日常使用MySQL的过程中,我们经常需要执行各种各样的SQL命令来管理数据。有时候,为了提高工作效率,我们需要掌握一些简化输入的小技巧。本文将介绍两种非常实用的方法来帮助用户更快地...
... ... 此函数用于从指定的文件中读取数据。 ... $fd = fopen($file_name, 'r');...以上就是从提供的PHP代码片段中总结出来的小技巧和功能说明。这些技巧可以帮助开发者更好地理解和应用PHP语言,提高开发效率。
- **输入错误时的操作**:当在MySQL命令行客户端中输入错误时,可以使用`\c`命令来放弃当前正在编辑的命令,重新输入正确的命令。 - **修改配置文件**: - 打开`my.ini`或`my.cnf`文件(具体文件名取决于操作系统)...
### MySQL性能优化与SQL优化方法技巧 #### 一、引言 MySQL作为一款广泛使用的开源关系型数据库管理系统,其性能优化对于确保应用系统的稳定性和高效运行至关重要。通过对MySQL的优化,不仅能提升系统的响应速度,还...
本篇文章将详细阐述MySQL在Windows 64位环境下的安装过程、核心组件及常见使用技巧。 一、安装MySQL 1. 下载:首先,你需要从MySQL官方网站下载适用于Windows 64位的msi安装文件。msi文件是一种Microsoft ...
通过以上总结,我们不仅了解了MySQL数据库的基础概念、安装与管理方法,还深入学习了如何进行基本的SQL操作,并掌握了常见数据类型的使用技巧。这对于日常开发工作中正确地设计和使用MySQL数据库具有重要意义。
- **DATE/TIME**:同样为定长类型,运算速度快且占用空间小。但需要注意时区问题,尤其是在进行日期比较时。 - **ENUM**:可以起到值约束的作用,内部存储为整型。与 `CHAR` 联查时,需要进行值的转换。 - **CHAR...
### MySQL导入导出数据库文件详解 #### 一、引言 在数据库管理中,数据库的导入与导出是一项非常重要的工作。它可以帮助我们备份现有的数据、迁移数据...希望本文能帮助读者更好地理解和掌握MySQL数据库的管理技巧。
"mysql小技巧" MySQL是一款广泛使用的关系型数据库管理系统,具有高性能、可靠性和安全性等特点。然而,在实际使用中,我们常常会遇到一些问题和挑战,本文将总结一些小技巧,帮助大家更好地使用MySQL。 技巧1:...
总结来说,"mysql_bakup_tool.zip" 是一个实用的PHP开发学习资源,它展示了如何利用PHP编程语言来实现MySQL数据库的分卷备份功能。通过对源码的深入学习,我们可以提升PHP编程技巧,理解Web应用的架构,以及掌握...
12.1.4 访问控制:MySQL如何使用Grant表 12.1.5 更新权限:修改什么时候生效 12.2 提高MySQL数据库的安全性 12.2.1 从操作系统角度来保护MySQL 12.2.2 密码 12.2.3 用户权限 12.2.4 Web问题 12.3 获取更多...
本文档是关于MySQL数据库系统的操作手册,涵盖了从安装到基础操作...总结来说,该MySQL操作手册是一个全面的指南,为用户提供了从基础到高级的数据库操作方法和技巧,适用于希望学习和深入理解MySQL数据库系统的用户。