歡迎您光臨本站 註冊首頁

15個 MySQL 基礎面試題,DBA 們準備好了嗎?

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

此前我們已經有發表過Linux 面試基礎問答之一、二和三共3篇文章,獲得讀者的好評,同時我們得到反饋,有些讀者希望這種互動式學習方法能夠做得更加靈活。心動不如行動,我們這就為您奉上 15個 MySQL 面試題

問題1:你如何確定 MySQL 是否處於運行狀態?

答案: Debian 上運行命令 service mysql status,在RedHat 上運行命令 service mysqld status。然後看看輸出即可。

 

  [email protected]:/home/avi# service mysql status    /usr/bin/mysqladmin  Ver 8.42 Distrib 5.1.72, for debian-linux-gnu on i486  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.    Server version 5.1.72-2  Protocol version 10  Connection Localhost via UNIX socket  UNIX socket /var/run/mysqld/mysqld.sock  Uptime: 1 hour 22 min 49 sec    Threads: 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 停止服務。

 

  [email protected]:/home/avi# service mysql stop    Stopping MySQL database server: mysqld.    [email protected]:/home/avi# service mysql start    Starting MySQL database server: mysqld.    Checking for corrupt, not cleanly closed and upgrade needing tables..  

問題3:如何通過 Shell 登入 MySQL?

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

 

  [email protected]:/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 面試題’對您有任何幫助嗎?別忘了在下面留言,寫出您的寶貴意見。


via: http://www.tecmint.com/basic-mysql-interview-questions-for-database-administrators/

譯者:bazz2 校對:Caroline



[火星人 ] 15個 MySQL 基礎面試題,DBA 們準備好了嗎?已經有2326次圍觀

http://coctec.com/docs/linux/show-post-74008.html