15个 MySQL 基础面试题,DBA 们准备好了吗?

来源:本站
导读:目前正在解读《15个 MySQL 基础面试题,DBA 们准备好了吗?》的相关信息,《15个 MySQL 基础面试题,DBA 们准备好了吗?》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《15个 MySQL 基础面试题,DBA 们准备好了吗?》的详细说明。
简介:此前我们已经有发表过Linux 面试基础问答之一、二和三共3篇文章,获得读者的好评,同时我们得到反馈,有些读者希望这种交互式学习方法能够做得更加灵活。心动不如行动,我们这就为您奉上15个 MySQL 面试题

问题1:你如何确定 MySQL 是否处于运行状态?

答案: Debian 上运行命令service mysql status,在RedHat 上运行命令service mysqld status。然后看看输出即可。

root@localhost:/home/avi# service mysql status/usr/bin/mysqladmin  Ver 8.42 Distrib 5.1.72, for debian-linux-gnu on i486Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Server version 5.1.72-2Protocol version 10Connection Localhost via UNIX socketUNIX socket /var/run/mysqld/mysqld.sockUptime: 1 hour 22 min 49 secThreads: 1  Questions: 112138  Slow queries: 1  Opens: 1485  Flush tables: 1  Open tables: 64  Queries per second avg: 22.567.
问题2:如何开启或停止 MySQL 服务?

答案:运行命令service mysqld start开启服务;运行命令service mysqld stop停止服务。

root@localhost:/home/avi# service mysql stopStopping MySQL database server: mysqld.root@localhost:/home/avi# service mysql startStarting MySQL database server: mysqld.Checking for corrupt, not cleanly closed and upgrade needing tables..
问题3:如何通过 Shell 登入 MySQL?

答案:运行命令mysql -u root -p

root@localhost:/home/avi# mysql -u root -p Enter password: Welcome to the MySQL monitor.  Commands end with ; or g. Your MySQL connection id is 207 Server version: 5.1.72-2 (Debian) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>
问题4:如何列出所有数据库?

答案:运行命令show databases;

mysql> show databases; +--------------------+ | Database           | +--------------------+ | information_schema | | a1                 | | cloud              | | mysql              | | phpmyadmin         | | playsms            | | sisso              | | test               | | ukolovnik          | | wordpress          | +--------------------+ 10 rows in set (0.14 sec)
问题5: 如何切换到某个数据库并在上面工作?

答案:运行命令use database_name;进入名为 database_name 的数据库。

mysql> use cloud; 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>
问题6:如何列出某个数据库内所有表?

答案:在当前数据库运行命令show tables;

mysql> show tables; +----------------------------+ | Tables_in_cloud            | +----------------------------+ | oc_appconfig               | | oc_calendar_calendars      | | oc_calendar_objects        | | oc_calendar_repeat         | | oc_calendar_share_calendar | | oc_calendar_share_event    | | oc_contacts_addressbooks   | | oc_contacts_cards          | | oc_fscache                 | | oc_gallery_sharing         | +----------------------------+ 10 rows in set (0.00 sec)
问题7:如何获取表内所有 Field 对象的名称和类型?

答案:运行命令describe table_name;

mysql> describe oc_users; +----------+--------------+------+-----+---------+-------+ | Field    | Type         | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ | uid      | varchar(64)  | NO   | PRI |         |       | | password | varchar(255) | NO   |     |         |       | +----------+--------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
问题8:如何删除表?

答案:运行命令drop table table_name;

mysql> drop table lookup; Query OK, 0 rows affected (0.00 sec)
问题9:如何删除数据库?

答案:运行命令drop database database-name;

mysql> drop database a1; Query OK, 11 rows affected (0.07 sec)
问题10:如何查看表内所有数据?

答案:运行命令select * from table_name;

mysql> select * from engines; +------------+---------+----------------------------------------------------------------+--------------+------+------------+ | ENGINE     | SUPPORT | COMMENT                                                        | TRANSACTIONS | XA   | SAVEPOINTS | +------------+---------+----------------------------------------------------------------+--------------+------+------------+ | InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        | | MRG_MYISAM | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         | | BLACKHOLE  | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         | | CSV        | YES     | CSV storage engine                                             | NO           | NO   | NO         | | MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         | | FEDERATED  | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       | | ARCHIVE    | YES     | Archive storage engine                                         | NO           | NO   | NO         | | MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance         | NO           | NO   | NO         | +------------+---------+----------------------------------------------------------------+--------------+------+------------+ 8 rows in set (0.00 sec)
问题11:如何从表(比如 oc_users )中获取一个 field 对象(比如 uid)的所有数据?

答案:运行命令select uid from oc_users;

mysql> select uid from oc_users; +-----+ | uid | +-----+ | avi | +-----+ 1 row in set (0.03 sec)
问题12:假设你有一个名为 ‘xyz’ 的表,它存在多个字段,如 ‘createtime’ 和 ‘engine’。名为 engine 的字段由 ‘Memoty’ 和 ‘MyIsam’ 两种数值组成。如何只列出 ‘createtime’ 和 ‘engine’ 这两列并且 engine 的值为 ‘MyIsam’?

答案:运行命令select create_time, engine from xyz where engine = ”MyIsam”;

mysql> select create_time, engine from xyz where engine="MyIsam";+---------------------+--------+ | create_time         | engine | +---------------------+--------+ | 2013-12-15 13:43:27 | MyISAM | | 2013-12-15 13:43:27 | MyISAM | | 2013-12-15 13:43:27 | MyISAM | | 2013-12-15 13:43:27 | MyISAM | | 2013-12-15 13:43:27 | MyISAM | | 2013-12-15 13:43:27 | MyISAM | | 2013-12-15 13:43:27 | MyISAM | | 2013-12-15 13:43:27 | MyISAM | | 2013-10-23 14:56:38 | MyISAM | | 2013-10-23 14:56:38 | MyISAM | | 2013-10-23 14:56:38 | MyISAM | | 2013-10-23 14:56:38 | MyISAM | | 2013-10-23 14:56:38 | MyISAM | | 2013-10-23 14:56:38 | MyISAM | | 2013-10-23 14:56:38 | MyISAM | +---------------------+--------+ 132 rows in set (0.29 sec)
问题13:如何列出表 ‘xrt’ 内 name 域值为 ‘tecmint’,web_address 域值为 ‘tecmint.com’ 的所有数据?

答案:运行命令select * from xrt where name = “tecmint” and web_address = “tecmint.com”;

mysql> select  * from xrt where name = "tecmint" and web_address = “tecmint.com”;+---------------+---------------------+---------------+ | Id                  | name                   | web_address | +---------------+---------------------+----------------+ | 13                 |  tecmint               | tecmint.com  |+---------------+---------------------+----------------+ | 41                 |  tecmint               | tecmint.com  |+---------------+---------------------+----------------+
问题14:如何列出表 ‘xrt’ 内 name 域值不为 ‘tecmint’,web_address 域值为 ‘tecmint.com’ 的所有数据?

答案:运行命令select * from xrt where name != "tecmint" and web_address = "tecmint.com";

mysql> select * from xrt where name != ”tecmint” and web_address = ”tecmint.com”;+---------------+---------------------+---------------+ | Id            | name                | web_address   | +---------------+---------------------+----------------+ | 1173          |  tecmint            | tecmint.com   |+---------------+---------------------+----------------+
问题15:如何知道表内行数?

答案:运行命令select count(*) from table_name;

mysql> select count(*) from Tables; +----------+ | count(*) | +----------+ |      282 | +----------+ 1 row in set (0.01 sec)

以上是文章的全部内容。这篇‘Linux 面试题’对您有任何帮助吗?别忘了在下面留言,写出您的宝贵意见。

提醒:《15个 MySQL 基础面试题,DBA 们准备好了吗?》最后刷新时间 2024-03-14 01:00:48,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《15个 MySQL 基础面试题,DBA 们准备好了吗?》该内容的真实性请自行鉴别。