11 MySQL面试问题
1.使用SELECT语句查找正在运行的服务器的版本,并打印当前数据库的名称?
答:以下MySQL命令会显示服务器版本和当前选定的数据库。mysql> SELECT VERSION(), DATABASE(); +-------------------------+------------+ | VERSION() | DATABASE() | +-------------------------+------------+ | 5.5.34-0ubuntu0.13.10.1 | NULL | +-------------------------+------------+ 1 row in set (0.06 sec)在数据库列它显示 NULL值,因为我们没有选择任何数据库。所以,选择数据库,如下面的命令所示。
mysql> use youcl; 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 | youcl | +-------------------------+------------+ 1 row in set (0.00 sec)
2.使用NOT运算符(!)从表中选择除“SAM”以外的所有用户“youcl”
答:以下语句将显示所有的表 'youcl“除了用户的 SAM”用户的所有列。mysql> SELECT * FROM youcl 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 | +---------------------+---------+---------+---------+---------+-------+
可以用NOT(!)运算符实现“AND”。
答:当我们使用AND运算符(=),当我们使用(=!)操作员或使用。 (=)与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 | +---------------------+---------+---------+---------+---------+-------+
- =:指等于
- !=:不等于
- !代表的不操作
4.在MySQL中使用什么IFNULL()语句?
答:在MySQL中查询可以精确地使用 IFNULL()语句来写。 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一起实现上述场景。显示1条记录
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 | +----+------+------------+-------+-----------------------+------+
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 over oracle
- Mysql是FOSS。
- MySQL是可移植的。
- MYSQL支持GUI和命令提示符。
- 通过查询浏览器支持MySQL管理。
7.如何获取MySQL中的当前日期?
答:获得当前日期在MySQL中是执行下面的SELECT语句一样简单。mysql> SELECT CURRENT_DATE(); +----------------+ | CURRENT_DATE() | +----------------+ | 2014-06-17 | +----------------+
8.如何在MySQL中将表导出为XML文件?
答:我们使用 '-e'(出口)选项,MySQL表或整个数据库导出到一个XML文件中。对于大表,我们可能需要手动实现它,但对于小表,像phpMyAdmin这样的应用程序可以完成这项工作。 MySQL的本机命令可以做到。mysql -u USER_NAME –xml -e 'SELECT * FROM table_name' > table_name.xml其中USER_NAME是Database的用户名,table_name是我们导出到XML的表,table_name.xml是存储数据的xml文件。
什么是MySQL_pconnect?它和MySQL_connect有什么不同?
答:MySQL_pconnect()打开即持续到MySQL数据库它只是意味着数据库未打开每一次页面加载,因此我们不能用MySQL_close()来关闭持久连接的连接。 MySQL_pconnect和MySQL_connect之间的简单区别是。 与MySQL_pconnect不同,MySQL_connect - 每次加载页面时打开数据库,可以使用语句MySQL_close()随时关闭页面。10.你需要显示一个表中定义的所有索引说'user'的数据库说'mysql'。你将如何实现这一目标?
答:以下命令将显示一个表“用户”的所有索引。mysql> show index from user; +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | user | 0 | PRIMARY | 1 | Host | A | NULL | NULL | NULL | | BTREE | | | | user | 0 | PRIMARY | 2 | User | A | 4 | NULL | NULL | | BTREE | | | +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 2 rows in set (0.00 sec)