Make sure you are connected to the server, as discussed in the previous section. Connecting to the server does not select any database, but that's fine. Knowing the basics of how to query is more important than jumping right into creating tables, loading them with data, and retrieving data from them. This section describes the basic principles of entering commands. Using a few queries, you can try to understand how mysql works.
This is a simple command that asks the server to tell it its version number and current date. At the mysql> prompt, enter the following command and press Enter:
mysql> SELECT VERSION(), CURRENT_DATE; +-----------------+--------------+ | VERSION() | CURRENT_DATE | +-----------------+--------------+ | 5.1.2-alpha-log | 2005-10-11 | +-----------------+--------------+ 1 row in set (0.01 sec) mysql>
This query explains several aspects of mysql:
· A command usually consists of SQL statements, Followed by a semicolon. (There are some exceptions that do not require a semicolon. The QUIT mentioned earlier is an example. We will see other examples later.)
· When a command is issued, mysql Send it to the server and display the execution results, and then display another mysql> to show that it is ready to accept other commands.
· mysqlDisplay query output in table (rows and columns) format. The first row contains the column labels, and subsequent rows are the query results. Typically, the column label is the name of the column you take from the database table. If you are retrieving an expression rather than the value of a table column (as in the previous example), mysqlmark the column with the expression itself.
· mysqlShows how many rows were returned and how long the query took, which gives you a general idea of server performance. Because they represent clock time (not CPU or machine time), and because they are affected by factors such as server load and network latency, these values are imprecise. (For the sake of brevity, "rows in collection" are no longer shown in other examples in this chapter.)
Keywords can be entered in upper and lower case (case insensitivity). The following queries are equivalent:
mysql> SELECT VERSION(), CURRENT_DATE; mysql> select version(), current_date; mysql> SeLeCt vErSiOn(), current_DATE; 这是另外一个查询,它说明你能将mysql用作一个简单的计算器: mysql> SELECT SIN(PI()/4), (4+1)*5; +------------------+---------+ | SIN(PI()/4) | (4+1)*5 | +------------------+---------+ | 0.70710678118655 | 25 | +------------------+---------+
1 row in set (0.02 sec)
The commands displayed so far are relatively short single-line statements. You can enter multiple statements on one line by separating each statement with a semicolon:
mysql> SELECT VERSION(); SELECT NOW(); +-----------------+ | VERSION() | +-----------------+ | 5.1.2-alpha-log | +-----------------+ 1 row in set (0.00 sec) +---------------------+ | NOW() | +---------------------+ | 2005-10-11 15:15:00 | +---------------------+ 1 row in set (0.00 sec)
It is not necessary to give a command entirely on one line. Longer commands can be entered on multiple lines. mysqlDetermines where the statement ends by looking for the terminating semicolon rather than the end of the input line. (In other words, mysql accepts free-form input: it collects the input lines but doesn't execute until it sees a semicolon.)
Here is an example of a simple multiline statement:
mysql> SELECT -> USER() -> , -> CURRENT_DATE; +---------------+--------------+ | USER() | CURRENT_DATE | +---------------+--------------+ | jon@localhost | 2005-10-11 | +---------------+--------------+
In this example, after entering the first line of the multi-line query, notice how the prompt changes from mysql> to ->, which is exactly how mysql indicates that it is missing to the complete statement and is waiting for the remaining parts. The prompt is your friend because it provides valuable feedback, and if you use this feedback, you will always know what mysql is waiting for.
If you decide you don’t want to execute a command that is being entered, enter \c to cancel it:
mysql> SELECT -> USER() -> \c mysql>
Also pay attention to the prompt here. After you enter \c, it switches back to mysql>, provides feedback to indicate that mysql is ready to accept a new command.
The following table shows the various prompts that can be seen and briefly describes the status of mysql they represent:
Prompt | Meaning |
mysql> | Ready to accept new commands. |
-> | Wait for the next line of a multi-line command. |
'> | Wait for the next line and the end of the string starting with a single quote ("'"). |
"> | Wait for the next line and the end of the string starting with a double quote ("""). |
`> | Wait for the next line, waiting for the end of the identifier starting with a backslash dot (‘`’). |
/*> | Wait for the next line and the end of the comment starting with /*. |
当你打算在一个单行上发出一个命令时,通常会“偶然”出现多行语句,但是没有终止分号。在这种情况中,mysql等待进一步输入:
mysql> SELECT USER() ->
如果出现这种情况(你认为输完了语句,但是只有一个->提示符响应),很可能mysql正在等待分号。如果你没有注意到提示符的提示,在意识到你需要做什么之前,你可能会呆坐一会儿。输入一个分号完成语句,mysql将执行:
mysql> SELECT USER() -> ; +---------------+ | USER() | +---------------+ | jon@localhost | +---------------+
在字符串收集期间将出现 '> 和 "> 提示符(提示MySQL正等待字符串的结束)。在MySQL中,可以写由‘'’或‘"’字符括起来的字符串 (例如,'hello'或"goodbye"),并且mysql允许输入跨越多行的字符串。当看到一个 '> 或 "> 提示符时,这意味着已经输入了包含以‘'’或‘"’括号字符开始的字符串的一行,但是还没有输入终止字符串的匹配引号。这显示你粗心地省掉了一个引号字符。例如:
mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30; '>
如果你输入SELECT语句,然后按Enter(回车)键并等待结果,什么都没有出现。不要惊讶,“为什么该查询这么长呢?”,注意">提示符提供的线索。它告诉你mysql期望见到一个未终止字符串的余下部分。(你看见语句中的错误吗?字符串"Smith丢掉了第二个引号。)
走到这一步,你该做什么?最简单的是取消命令。然而,在这种情况下,你不能只是输入\c,因为mysql作为它正在收集的字符串的一部分来解释它!相反,应输入关闭的引号字符(这样mysql知道你完成了字符串),然后输入\c:
mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30; '> '\c mysql>
提示符回到mysql>,显示mysql准备好接受一个新命令了。
`> 提示符类似于 '> 和"> 提示符,但表示你已经开始但没有结束以`> 开始的识别符。
知道'>和">提示符的含义很重要,因为如果你错误地输入一个未终止的字符串,任何后面输入的行将要被mysql忽略--包括包含QUIT的行!这可能令人相当困惑,特别是如果取消当前命令前还不知道你需要提供终止引号。
以上就是MySQL入门教程2 —— 输入查询及退出查询命令的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!