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

此前我们已经有发表过Linux 面试基础问答之一、二和三共3篇文章,获得读者的好评,同时我们得到反馈,有些读者希望这种交互式学习方法能够做得更加灵活。心动不如行动,我们这就为您奉上 15个 MySQL 面试题

145055eicmn6a2mi6jeg4g.png

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

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

root@localhost:/home/avi#service mysql status

/usr/bin/mysqladminVer8.42Distrib5.1.72,fordebian-linux-gnu on i486

Copyright(c)2000,2013,Oracleand/orits affiliates.Allrights reserved.

Oracleisa registered trademark ofOracleCorporationand/orits

affiliates.Othernames may be trademarks of their respective

owners.

Serverversion5.1.72-2

Protocolversion10

ConnectionLocalhostvia UNIX socket

UNIX socket/var/run/mysqld/mysqld.sock

Uptime:1hour22min49sec

Threads:1Questions:112138Slowqueries:1Opens:1485Flushtables:1Opentables:64Queriesper second avg:22.567.

问题2:如何开启或停止 MySQL 服务?

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

root@localhost:/home/avi#service mysql stop

StoppingMySQLdatabase server:mysqld.

root@localhost:/home/avi#service mysql start

StartingMySQLdatabase server:mysqld.

Checkingforcorrupt,notcleanly closedandupgrade needing tables..

问题3:如何通过 Shell 登入 MySQL?

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

root@localhost:/home/avi#mysql-u root-p

Enterpassword:

Welcometo theMySQLmonitor.Commandsendwith;or\g.

YourMySQLconnectionidis207

Serverversion:5.1.72-2(Debian)

Copyright(c)2000,2013,Oracleand/orits affiliates.Allrights reserved.

Oracleisa registered trademark ofOracleCorporationand/orits

affiliates.Othernames may be trademarks of their respective

owners.

Type'help;'or'\h'forhelp.Type'\c'toclearthe current input statement.

mysql>

问题4:如何列出所有数据库?

答案:运行命令 show databases;

mysql>show databases;

+--------------------+

|Database|

+--------------------+

|information_schema|

|a1|

|cloud|

|mysql|

|phpmyadmin|

|playsms|

|sisso|

|test|

|ukolovnik|

|wordpress|

+--------------------+

10rowsinset(0.14sec)

问题5: 如何切换到某个数据库并在上面工作?

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

mysql>usecloud;

Readingtable informationforcompletion of tableandcolumn names

Youcan turn offthisfeature togeta quicker startupwith-A

Databasechanged

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|

+----------------------------+

10rowsinset(0.00sec)

问题7:如何获取表内所有 Field 对象的名称和类型?

答案:运行命令 describe table_name;

mysql>describe oc_users;

+----------+--------------+------+-----+---------+-------+

|Field|Type|Null|Key|Default|Extra|

+----------+--------------+------+-----+---------+-------+

|uid|varchar(64)|NO|PRI|||

|password|varchar(255)|NO||||

+----------+--------------+------+-----+---------+-------+

2rowsinset(0.00sec)

问题8:如何删除表?

答案:运行命令 drop table table_name;

mysql>drop table lookup;

QueryOK,0rows affected(0.00sec)

问题9:如何删除数据库?

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

mysql>drop database a1;

QueryOK,11rows affected(0.07sec)

问题10:如何查看表内所有数据?

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

mysql>select*fromengines;

+------------+---------+----------------------------------------------------------------+--------------+------+------------+

|ENGINE|SUPPORT|COMMENT|TRANSACTIONS|XA|SAVEPOINTS|

+------------+---------+----------------------------------------------------------------+--------------+------+------------+

|InnoDB|YES|Supportstransactions,row-level locking,andforeign keys|YES|YES|YES|

|MRG_MYISAM|YES|Collectionof identicalMyISAMtables|NO|NO|NO|

|BLACKHOLE|YES|/dev/nullstorage engine(anything youwriteto it disappears)|NO|NO|NO|

|CSV|YES|CSV storage engine|NO|NO|NO|

|MEMORY|YES|Hashbased,storedinmemory,usefulfortemporary tables|NO|NO|NO|

|FEDERATED|NO|FederatedMySQLstorage engine|NULL|NULL|NULL|

|ARCHIVE|YES|Archivestorage engine|NO|NO|NO|

|MyISAM|DEFAULT|DefaultengineasofMySQL3.23withgreat performance|NO|NO|NO|

+------------+---------+----------------------------------------------------------------+--------------+------+------------+

8rowsinset(0.00sec)

问题11:如何从表(比如 oc_users )中获取一个 field 对象(比如 uid)的所有数据?

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

mysql>select uidfromoc_users;

+-----+

|uid|

+-----+

|avi|

+-----+

1rowinset(0.03sec)

问题12:假设你有一个名为 ‘xyz’ 的表,它存在多个字段,如 ‘createtime’ 和 ‘engine’。名为 engine 的字段由 ‘Memoty’ 和 ‘MyIsam’ 两种数值组成。如何只列出 ‘createtime’ 和 ‘engine’ 这两列并且 engine 的值为 ‘MyIsam’?

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

mysql>select create_time,enginefromxyzwhereengine="MyIsam";

+---------------------+--------+

|create_time|engine|

+---------------------+--------+

|2013-12-1513:43:27|MyISAM|

|2013-12-1513:43:27|MyISAM|

|2013-12-1513:43:27|MyISAM|

|2013-12-1513:43:27|MyISAM|

|2013-12-1513:43:27|MyISAM|

|2013-12-1513:43:27|MyISAM|

|2013-12-1513:43:27|MyISAM|

|2013-12-1513:43:27|MyISAM|

|2013-10-2314:56:38|MyISAM|

|2013-10-2314:56:38|MyISAM|

|2013-10-2314:56:38|MyISAM|

|2013-10-2314:56:38|MyISAM|

|2013-10-2314:56:38|MyISAM|

|2013-10-2314:56:38|MyISAM|

|2013-10-2314:56:38|MyISAM|

+---------------------+--------+

132rowsinset(0.29sec)

问题13:如何列出表 ‘xrt’ 内 name 域值为 ‘tecmint’,web_address 域值为 ‘tecmint.com’ 的所有数据?

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

mysql>select*fromxrtwherename="tecmint"andweb_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*fromxrtwherename!=”tecmint”andweb_address=”tecmint.com”;

+---------------+---------------------+---------------+

|Id|name|web_address|

+---------------+---------------------+----------------+

|1173|tecmint|tecmint.com|

+---------------+---------------------+----------------+

问题15:如何知道表内行数?

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

mysql>select count(*)fromTables;

+----------+

|count(*)|

+----------+

|282|

+----------+

1rowinset(0.01sec)

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

原文发布时间为:2014-01-05

本文来自云栖社区合作伙伴“Linux中国”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值