1. 如何使用SELECT语句找到你正在运行的服务器的版本并打印出当前数据库的名称?

答:下面的语句的结果会显示服务器的版本和当前的数据库名称

  1. mysql> SELECT VERSION(), DATABASE();
  2.  
  3. +-------------------------+------------+
  4. | VERSION() | DATABASE() |
  5. +-------------------------+------------+
  6. | 5.5.34-0ubuntu0.13.10.1 | NULL |
  7. +-------------------------+------------+
  8. 1 row in set (0.06 sec)

在Database一列中显示NULL是因为我们当前没有选择任何数据库。因此,使用下面的语句先选择一个数据库,就能看到相应的结果。

  1. mysql> use Tecmint;
  2.  
  3. Reading table information for completion of table and column names
  4. You can turn off this feature to get a quicker startup with -A
  5.  
  6. Database changed
  1. mysql> select VERSION(), DATABASE();
  2.  
  3. +-------------------------+------------+
  4. | VERSION() | DATABASE() |
  5. +-------------------------+------------+
  6. | 5.5.34-0ubuntu0.13.10.1 | tecmint |
  7. +-------------------------+------------+
  8. 1 row in set (0.00 sec)

2. 使用非运算符(!)从表”Tecmint”中列出除了”SAM”以外的所有user记录

答:使用下面的语句

  1. mysql> SELECT * FROM Tecmint WHERE user !=SAM;
  2.  
  3. +---------------------+---------+---------+---------+---------+-------+
  4. | date | user | host | root | local | size |
  5. +---------------------+---------+---------+---------+---------+-------+
  6. | 2001-05-14 14:42:21 | Anthony | venus | barb | venus | 98151 |
  7. | 2001-05-15 08:50:57 | TIM | venus | phil | venus | 978 |
  8. +---------------------+---------+---------+---------+---------+-------+

3. ‘AND’运算符有可能带着非运算符(!)一起用吗?

答:当我们使用‘=’号时用‘AND’连接,用‘!=’时用‘OR’连接,下面是‘=’和AND运算符一起用的例子

  1. mysql> SELECT * FROM mail WHERE user = SAM AND root = phil

‘!=’和OR运算符的例子

  1. mysql> SELECT * FROM mail WHERE user != SAM OR root != phil
  2.  
  3. +---------------------+---------+---------+---------+---------+-------+
  4. | date | user | host | root | local | size |
  5. +---------------------+---------+---------+---------+---------+-------+
  6. | 2001-05-14 14:42:21 | Anthony | venus | barb | venus | 98151 |
  7. +---------------------+---------+---------+---------+---------+-------+
  • = : 等于
  • != : 不等于
  • ! : 代表“非”的运算符

AND和OR在MySQL中被看作连接运算符

4. IFNULL()当打在MySQL中有什么作用?

答:使用IFNULL()方法能使MySQL中的查询更加精确。IFNULL()方法将会测试它的第一个参数,若不为NULL则返回该参数的值,否则返回第二个参数的值

  1. mysql> SELECT name, IFNULL(id,'Unknown') AS 'id' FROM taxpayer;
  2.  
  3. +---------+---------+
  4. | name | id |
  5. +---------+---------+
  6. | bernina | 198-48 |
  7. | bertha | Unknown |
  8. | ben | Unknown |
  9. | bill | 475-83 |
  10. +---------+---------+

5. 如果你只想知道从一个结果集的开头或者结尾开始的特定几条记录,该如何实现?

答:我们需要把LIMIT语句接在ORDER BY语句后使用,以达到上述效果。

显示一行记录

  1. mysql> SELECT * FROM name LIMIT 1;
  2.  
  3. +----+------+------------+-------+----------------------+------+
  4. | id | name | birth | color | foods | cats |
  5. +----+------+------------+-------+----------------------+------+
  6. | 1 | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0 |
  7. +----+------+------------+-------+----------------------+------+

显示5行记录

  1. mysql> SELECT * FROM profile LIMIT 5;
  2.  
  3. +----+------+------------+-------+-----------------------+------+
  4. | id | name | birth | color | foods | cats |
  5. +----+------+------------+-------+-----------------------+------+
  6. | 1 | Fred | 1970-04-13 | black | lutefisk,fadge,pizza | 0 |
  7. | 2 | Mort | 1969-09-30 | white | burrito,curry,eggroll | 3 |
  8. | 3 | Brit | 1957-12-01 | red | burrito,curry,pizza | 1 |
  9. | 4 | Carl | 1973-11-02 | red | eggroll,pizza | 4 |
  10. | 5 | Sean | 1963-07-04 | blue | burrito,curry | 5 |
  11. +----+------+------------+-------+-----------------------+------+

显示按照ORDER BY排序后的第一条记录

  1. mysql> SELECT * FROM profile ORDER BY birth LIMIT 1;
  2.  
  3. +----+------+------------+-------+----------------+------+
  4. | id | name | birth | color | foods | cats |
  5. +----+------+------------+-------+----------------+------+
  6. | 9 | Dick | 1952-08-20 | green | lutefisk,fadge | 0 |
  7. +----+------+------------+-------+----------------+------+

6. Oracle 和 MySQL该如何选择,为什么?

答:它们都有各自的优点和缺点。考虑到时间因素,我倾向于MySQL。

选择MySQL而不选orcale的原因

  • MySQL开源
  • MySQL轻便快捷
  • MySQL对命令行和图形界面的支持都很好
  • MySQL支持通过Query Browser进行管理

7. MySQL中如何得到当前日期?

答:在MySQL中获取当前日期就是如下的SELECT语句这么简单。

  1. mysql> SELECT CURRENT_DATE();
  2.  
  3. +----------------+
  4. | CURRENT_DATE() |
  5. +----------------+
  6. | 2014-06-17 |
  7. +----------------+

8. MySQL中如何将表导出为XML文件?

答:我们可以使用’-e’(export)选项来把MySQL表或整个数据库导出到XML文件。当处理大型表的时候我们可能需要手动导出,不过对于小表的话可以直接使用想phpMyAdmin等这样的工具。

  1. mysql -u USER_NAME -xml -e 'SELECT * FROM table_name' > table_name.xml

上面的例子中USER_NAME是数据库的用户名,table_name是待导出为xml文件的表名,table_name.xml是存放数据的xml文件

9. MySQL_pconnect是什么? 它和MySQL_connect有什么区别?

答:MySQL_pconnect()打开一个持久的数据库连接,这意味着数据库不是在每次页面加载的时候被打开一个新连接,因此我们不能使用MySQL_close()来关闭一个持久的连接。

MySQL_pconnect和MySQL_connect最简要的区别是:

与MySQL_pconnect不同,MySQL_connect在每次页面被加载的时候打开连接,这个连接可以使用MySQL_close()语句来关闭。

10. 当你需要查看一个名为’mysql’的数据库中’user’表中的所有索引时,你会如何做?

答:下面的命令将会显示出‘user’表中所有的索引

  1. mysql> show index from user;
  2. +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
  3. | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
  4. +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
  5. | user | 0 | PRIMARY | 1 | Host | A | NULL | NULL | NULL | | BTREE | | |
  6. | user | 0 | PRIMARY | 2 | User | A | 4 | NULL | NULL | | BTREE | | |
  7. +-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
  8. 2 rows in set (0.00 sec)

11. 什么是CSV表?

答:CSV是逗号分隔值(Comma-Separated Values)或也被称为字符分隔值(Character-Separated Values)的缩写。CSV表以纯文本和表格形式来存储数据。

每一条记录都使用特定的分隔符隔开(如逗号,分号,…),并且每条记录都有着顺序相同的列。CSV表最广泛地被用来存储用于导入和导出的电话联系人,并能够用来存储任何类型的纯文本数据。

以上就是这次要讲的全部内容。我还会带来其他你们应该会喜欢的有趣的文章。到那时敬请关注并访问Tecmint,不要忘了在下方的评论栏中留下你们的宝贵意见。

Mysql学习总结(21)——MySQL数据库常见面试题的更多相关文章

  1. MySQL数据库常见面试题

    什么是存储过程?有哪些优缺点? 存储过程简单来说就是为了以后使用而保存的一条或多条预编译SQL语句,这些语句块像一个方法一样执行一些功能. 优点: 类似于封装,简化操作: 不用反复建立一系列处理步骤, ...

  2. 【MySQL】-NO.21.MySQL.1.MySQL.1.001-【Install MySQL5.7 On Windows】

    1.0.0 Summary Tittle:[MySQL]-NO.21.MySQL.1.MySQL.1.001-[Install MySQL5.7 On Windows] Style:Web Serie ...

  3. Mybatis常见面试题

    Mybatis常见面试题 #{}和${}的区别是什么? #{}和${}的区别是什么? 在Mybatis中,有两种占位符 #{}解析传递进来的参数数据 ${}对传递进来的参数原样拼接在SQL中 #{}是 ...

  4. PHP常见面试题汇总(二)

    PHP常见面试题汇总(二)   //第51题:统计一维数组中所有值出现的次数?返回一个数组,其元素的键名是原数组的值;键值是该值在原数组中出现的次数 $array=array(4,5,1,2,3,1, ...

  5. Spring 常见面试题总结 | JavaGuide

    首发于 JavaGuide 在线网站:Spring 常见面试题总结 最近在对 JavaGuide 的内容进行重构完善,同步一下最新更新,希望能够帮助你. Spring 基础 什么是 Spring 框架 ...

  6. JDBC常见面试题

    以下我是归纳的JDBC知识点图: 图上的知识点都可以在我其他的文章内找到相应内容. JDBC常见面试题 JDBC操作数据库的步骤 ? JDBC操作数据库的步骤 ? 注册数据库驱动. 建立数据库连接. ...

  7. 整理的最全 python常见面试题(基本必考)

    整理的最全 python常见面试题(基本必考) python 2018-05-17 作者 大蛇王 1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in ...

  8. 整理的最全 python常见面试题

      整理的最全 python常见面试题(基本必考)① ②③④⑤⑥⑦⑧⑨⑩ 1.大数据的文件读取: ① 利用生成器generator: ②迭代器进行迭代遍历:for line in file; 2.迭代 ...

  9. 【转载】JAVA常见面试题及解答(精华)

     JAVA常见面试题及解答(精华)       1)transient和volatile是java关键字吗?(瞬联) 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持.例如: ...

随机推荐

  1. POJ 2356 Find a multiple( 鸽巢定理简单题 )

    链接:传送门 题意:题意与3370类似 注意:注意输出就ok,输出的是集合的值不是集合下标 /***************************************************** ...

  2. 2015 Multi-University Training Contest 6 hdu 5361 In Touch

    In Touch Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total ...

  3. Linux 网络搭建

    如果系统环境崩溃.   调用/usr/bin/vim /etc/profile Windows    1 本地连接使用固定IP   vmware 8    2  修改Windows的hosts地址   ...

  4. CURL库的宏定义列表

    列表CURL库一共同拥有17个函数 curl_close:关闭CURL会话 curl_copy_handle:复制一个CURL会话句柄,同一时候3复制其全部參数 curl_errno:返回最后一个错误 ...

  5. hdu5389(DP)

    题意: 给出n个人的id,有两个门,每一个门有一个标号.我们记作a和b,如今我们要将n个人分成两组,进入两个门中,使得两部分人的标号的和(迭代的求,直至变成一位数.我们姑且叫做求"和&quo ...

  6. 关于Thread的那些事

    关于Thread的那些事 1 : 你能够调用线程的实例方法Join来等待一个线程的结束.比如: public static void MainThread() { Thread t = new Thr ...

  7. uva 10641 (来当雷锋的这回....)

    #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using ...

  8. hibernate之4.延迟载入

    延迟载入: 仅仅有当使用以实体对象的属性(除主键属性外)时,才会发送查询语句到数据库 get不支持延迟载入 @Test public void getTest(){ Session session=n ...

  9. moveToThread的根本目的还是为了处理QObject的事件循环(如果为空指针的话,当前对象的所有的事件都不处理了),看官方说明就知道了

    Changes the thread affinity for this object and its children. The object cannot be moved if it has a ...

  10. [LeetCode] 2. Add Two Numbers 两个数字相加 java语言实现 C++语言实现

    [LeetCode] Add Two Numbers 两个数字相加   You are given two non-empty linked lists representing two non-ne ...