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

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

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

root@localhost:/home/avi# service mysql stop
Stopping MySQL database server: mysqld.
root@localhost:/home/avi# service mysql start
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..

問題2:如何開啓或停止 MySQL 服務?

答案:運行命令 service mysqld start 開啓服務;運行命令 service mysqld stop 停止服務。

root@localhost:/home/avi# service mysql stop
Stopping MySQL database server: mysqld.
root@localhost:/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

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:如何刪除表?

答案:運行  delete table table_name;

mysql> drop table lookup;
Query OK, 0 rows affected (0.00 sec)

問題9:如何刪除數據庫?

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

mysql> drop table lookup;
Query OK, 0 rows affected (0.00 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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章