全国资料库应用技能测验MySQL 5模拟试题第二回

这是MySQL 5实力养成暨评量里的全国资料库应用技能测验MySQL 5模拟试题第二回,ㄚ琪试着检验自己的MySQL 5的功力如何,这次的成绩是91分自我感觉良好,不过我们还是得好好改善我们答题的大脑才行。

[adsense][/adsense]

06.‘关于键值的说明,下列叙述何者有错误?’

答案:(D) 候补键可以用来指向其他资料表内的主键

这题错过了,直接参考关联式资料库键值

07.‘下关于关连式资料库的叙述,何者不正确?’

答案:(C)  表格内的资料不可以重复

我选的是(D) 表格内的栏位代表资料的属性,我很纳闷为何是错的,当然(C)虽然有点疑问,不过冷静思考之后表格内应该还是会有重复的。而且没错栏位代表资料的属性这是正确的,奇怪有时考这种邪门的题目就是会错?

15.‘在文字模式下,如果离开MySQL伺服器,需要执行下列哪一个命令?’

答案:(A) exit (B) quit (C) \q

exit有点似曾相似,但是还是没把握,改善一下我们的大脑吧,请看MySQL 5.7 Reference Manual :: 4 MySQL Programs :: 4.5 MySQL Client Programs :: 4.5.1 mysql — The MySQL Command-Line Tool :: 4.5.1.2 mysql Commands

MySQL 5.1参考手册 :: 8. 客户端和实用工具程序::8.3. mysql:MySQL命令行工具::8.3.2. mysql命令

转成繁体中文如下:

mysql将发出的SQL语句发送到待执行的伺服器。还有一系列命令mysql可以自己解释。要查看这些命令,在mysql>提示下输入help或\h:

mysql> help

List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
?         (\?) Synonym for `help'.
clear     (\c) Clear command.
connect   (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
edit      (\e) Edit command with $EDITOR.
ego       (\G) Send command to mysql server, display result vertically.
exit      (\q) Exit mysql. Same as quit.
go        (\g) Send command to mysql server.
help      (\h) Display this help.
nopager   (\n) Disable pager, print to stdout.
notee     (\t) Don't write into outfile.
pager     (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print     (\p) Print current command.
prompt    (\R) Change your mysql prompt.
quit      (\q) Quit mysql.
rehash    (\#) Rebuild completion hash.
source    (\.) Execute a SQL script file. Takes a file name as an argument.
status    (\s) Get status information from the server.
system    (\!) Execute a system shell command.
tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
use       (\u) Use another database. Takes database name as argument.
warnings  (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.

每个命令有长形式和短形式。长形式对大小写不敏感;短形式敏感。长形式后面可以加一个分号结束符,但短形式不可以。

在delimiter命令中,应避免使用反斜线(‘\’),因为这是MySQL的转义符。

Editnopagerpagersystem命令只在Unix中工作。

status命令提供连接和使用的伺服器相关的部分讯息。如果用–safe-updates模式运行,status也打印影响查询的MySQL变数的值。

要想记录查询及其输出,应使用tee命令。荧幕上显示的所有资料被追加到给定的档案后面。这对于调试也很有用。可以用–tee选项在命令行中启用该特性,或者用tee命令交互式启用。可以用notee命令交互式禁用tee档案。再次执行tee可以重新启用日志。前面的档案使用时不带任何参数。请注意执行完每个语句后tee可以将查询结果刷新到一个档案中,并且在mysql打印下一个提示前刷新。

用–pager选项,可以用交互式模式使用Unix程式,例如less、more或者其它类似的程式,来浏览或搜索查询结果。如果未指定该选项的值,mysql检查PAGER环境变数的值并将PAGER设为该值。可以用pager命令交互式启用输出分页,并用nopager禁用。该命令采用可选参数;如果给出,分页程式设置为该值。如果没有给出参数,分页器被设置为在命令行中设置的分页器的值,如果未指定分页器,则设置为stdout。

输出分页只适合Unix,因为它使用popen()函数,该函数在Windows中不存在。在Windows中,可以使用tee选项来保存查询输出,尽管在某些情况下浏览输出时不如pager方便。

关于pager命令的一些技巧:

·         可以使用它写入一个档案,将结果只输出到该档案中:

·                mysql> pager cat > /tmp/log.txt

也可以为将用作分页器的程式传递选项:

mysql> pager less -n -i -S

·         注意前面例子中的-S选项。它可以帮助浏览广范围的查询结果。有时太广的结果很难在荧幕上读出来。less的-S选项可以使结果更易于读,因为可以用左、右箭头水平滚动它。还可以在less中交互式使用-S,以关闭或打开水平浏览模式。详细讯息请阅读手册中的less页:

·                shell> man less

·         可以指定很复杂的pager命令来处理查询输出:

·                mysql> PAGER cat | tee /dr1/tmp/res.txt \
·                          | tee /dr2/tmp/res2.txt | less -n -i -S

在该例子中,该命令将查询结果发送到位于/dr1和/dr2上安装的两个不同的档案系统中的两个不同目录中的两个档案中,但仍然可以通过less将结果显示在荧幕上。

还可以结合使用teepager函数。启用一个tee档案并将pager设置为less,能够使用less 程式浏览结果,并且仍然可以同时将内容新增到一个档案中。结合pager命令使用的Unix tee和 mysql嵌入式tee命令的差别是即使没有可用的Unix tee,嵌入式tee仍然可以工作。嵌入式tee还可以记录在荧幕上输出的内容,而结合pager命令使用的Unix tee不能记录那么多的内容。并且,可以从MySQL中交互式打开或关闭tee档案日志。当您想要将部分查询记录到一个档案中时很有用,但其它不适合。

预设mysql>提示符可以重新配置。定义提示符的字串可以包含下面的特殊序列:

选项 描述
\v 伺服器版本
\d 当前的资料库
\h 伺服器主机
\p 当前的TCP/IP端口或套接字档案
\u 您的帐号
\U 您的全user_name@host_name帐号名
\\ ‘\’反斜线字元
\n 新行字元
\t Tab字元
\ 空格(反斜线后面的空格)
\_ 空格
\R 当前的时间,24-小时军用时间(0-23)
\r 当前的时间,标准12-小时(1-12)
\m 当前时间的分钟
\y 当前的年,两位
\Y 当前的年,四位
\D 当前的日期
\s 当前时间的秒
\w 当前周的天,3字元格式(Mon,Tue,…)
\P am/pm
\o 当前的月,数字格式
\O 当前的月,3字元格式(Jan,Feb,…)
\c 随发出的每个语句递增的计数
\S 分号
\’ 单引号
\” 双引号

‘\’后面跟随的其它字母则变为该字母。

如果不用任何参数指定提示命令,mysql将提示重新设置位预设mysql>。

可以用几种方式设置提示:

·         使用环境变数

可以用MYSQL_PS1环境变数来设置提示字串。例如:

shell> export MYSQL_PS1="(\u@\h) [\d]> "

·         使用选项档案

可以在MySQL选项档案中的[mysql]组设置提示,例如根目录中的/etc/my.cnf或.my.cnf档案。例如:

[mysql]
prompt=(\\u@\\h) [\\d]>\\_

在该例子中,请注意反斜线是双线。如果使用选项档案中的prompt选项来设置提示,当使用特殊提示选项时,建议使用双反斜线。在允许的提示选项和选项档案中可识别的特殊转义序列中有部分重叠。(这些序列列于4.3.2节,“使用选项档案”)。如果使用单反斜线,会遇到问题。例如,\s被解释为空格而不是当前的秒值。下面的例子显示了如何在选项档案中定义提示以包括当前的时间,格式为HH:MM:SS>:

[mysql]
prompt="\\r:\\m:\\s> "

·         使用命令行选项

可以在mysql的命令行中设置–prompt选项。例如:

shell> mysql --prompt="(\u@\h) [\d]> "
(user@host) [database]>

·         交互式

您可以使用prompt(或\R)命令交互地更改提示。例如:

mysql> prompt (\u@\h) [\d]>\_
PROMPT set to '(\u@\h) [\d]>\_'
(user@host) [database]>
(user@host) [database]> prompt
Returning to default PROMPT of mysql>
mysql>