给Linux用户的11个高级MySQL数据库面试问题和答案
我们已经发表了两篇MySQL的文章,非常感谢Tecmint社区的大力支持。这是MySQL面试系列的第三篇文章,并且在面试专栏中排第16。 15
我们已经发表了两篇MySQL的文章,非常感谢Tecmint社区的大力支持。这是MySQL面试系列的第三篇文章,并且在面试专栏中排第16。
--------------------------------------分割线 --------------------------------------
Ubuntu 14.04下安装MySQL
《MySQL权威指南(原书第2版)》清晰中文扫描版 PDF
Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL
Ubuntu 14.04下搭建MySQL主从服务器
Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群
Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb
MySQL-5.5.38通用二进制安装
--------------------------------------分割线 --------------------------------------
因为有大家的支持,我们才能做到现在,感谢你们这一路上对我们的支持.在这篇文章中,我们将主要针对MySQL的实用技巧,讲讲面试中相关的问题.
1. 如何使用SELECT语句找到你正在运行的服务器的版本并打印出当前数据库的名称?答:下面的语句的结果会显示服务器的版本和当前的数据库名称
mysql> SELECT VERSION(), DATABASE(); +-------------------------+------------+ | VERSION() | DATABASE() | +-------------------------+------------+ | 5.5.34-0ubuntu0.13.10.1 | NULL | +-------------------------+------------+ 1 row in set (0.06 sec)在Database一列中显示NULL是因为我们当前没有选择任何数据库。因此,,使用下面的语句先选择一个数据库,就能看到相应的结果。
mysql> use Tecmint; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select VERSION(), DATABASE(); +-------------------------+------------+ | VERSION() | DATABASE() | +-------------------------+------------+ | 5.5.34-0ubuntu0.13.10.1 | tecmint | +-------------------------+------------+ 1 row in set (0.00 sec) 2. 使用非运算符(!)从表"Tecmint"中列出除了"SAM"以外的所有user记录答:使用下面的语句
mysql> SELECT * FROM Tecmint WHERE user !=SAM; +---------------------+---------+---------+---------+---------+-------+ | date | user | host | root | local | size | +---------------------+---------+---------+---------+---------+-------+ | 2001-05-14 14:42:21 | Anthony | venus | barb | venus | 98151 | | 2001-05-15 08:50:57 | TIM | venus | phil | venus | 978 | +---------------------+---------+---------+---------+---------+-------+ 3. ‘AND’运算符有可能带着非运算符(!)一起用吗?答:当我们使用‘=’号时用‘AND’连接,用‘!=’时用‘OR’连接,下面是‘=’和AND运算符一起用的例子
mysql> SELECT * FROM mail WHERE user = SAM AND root = phil‘!=’和OR运算符的例子
mysql> SELECT * FROM mail WHERE user != SAM OR root != phil +---------------------+---------+---------+---------+---------+-------+ | date | user | host | root | local | size | +---------------------+---------+---------+---------+---------+-------+ | 2001-05-14 14:42:21 | Anthony | venus | barb | venus | 98151 | +---------------------+---------+---------+---------+---------+-------+AND和OR在MySQL中被看作连接运算符
4. IFNULL()当打在MySQL中有什么作用?答:使用IFNULL()方法能使MySQL中的查询更加精确。IFNULL()方法将会测试它的第一个参数,若不为NULL则返回该参数的值,否则返回第二个参数的值
mysql> SELECT name, IFNULL(id,'Unknown') AS 'id' FROM taxpayer; +---------+---------+ | name | id | +---------+---------+ | bernina | 198-48 | | bertha | Unknown | | ben | Unknown | | bill | 475-83 | +---------+---------+ 5. 如果你只想知道从一个结果集的开头或者结尾开始的特定几条记录,该如何实现?答:我们需要把LIMIT语句接在ORDER BY语句后使用,以达到上述效果。
显示一行记录 mysql> SELECT * FROM name LIMIT 1; +----+------+------------+-------+----------------------+------+ | id | name | birth | color | foods | cats | +----+------+------------+-------+----------------------+------+ | 1 | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0 | +----+------+------------+-------+----------------------+------+ 显示5行记录 mysql> SELECT * FROM profile LIMIT 5; +----+------+------------+-------+-----------------------+------+ | id | name | birth | color | foods | cats | +----+------+------------+-------+-----------------------+------+ | 1 | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0 | | 2 | Mort | 1969-09-30 | white | burrito,curry,eggroll | 3 | | 3 | Brit | 1957-12-01 | red | burrito,curry,pizza | 1 | | 4 | Carl | 1973-11-02 | red | eggroll,pizza | 4 | | 5 | Sean | 1963-07-04 | blue | burrito,curry | 5 | +----+------+------------+-------+-----------------------+------+ 显示按照ORDER BY排序后的第一条记录 mysql> SELECT * FROM profile ORDER BY birth LIMIT 1; +----+------+------------+-------+----------------+------+ | id | name | birth | color | foods | cats | +----+------+------------+-------+----------------+------+ | 9 | Dick | 1952-08-20 | green | lutefisk,fadge | 0 | +----+------+------------+-------+----------------+------+ 6. Oracle 和 MySQL该如何选择,为什么?答:它们都有各自的优点和缺点。考虑到时间因素,我倾向于MySQL。
选择MySQL而不选orcale的原因 7. MySQL中如何得到当前日期?