> 数据库 > MySQL >

MySQL命令行使用入门教程

如果服务器运行在登录服务器之外的其它机器上,还需要指定主机名。


shell> mysql -h host -u user -p
Enter password: ********


一些MySQL安装允许用户以匿名(未命名)用户连接到本地主机上运行的服务器。如果你的机器是这种情况,你应该能不带任何选项地调用mysql与该服务器连接:


shell> mysql


成功地连接后,可以在mysql>提示下输入QUIT (或\q)随时退出:
mysql> QUIT
Bye


·         一个命令通常由SQL语句组成,随后跟着一个分号。(有一些例外不需要分号。早先提到的QUIT是一个例子。后面我们将看到其它的例子。)

能够以大小写输入关键词。下列查询是等价的:


mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;


mysql接受自由格式的输入:它收集输入行但直到看见分号才执行。

这里是一个简单的多行语句的例子:


mysql> SELECT
    -> USER()
    -> ,
    -> CURRENT_DATE;


如果你决定不想执行正在输入过程中的一个命令,输入\c取消它:


mysql> SELECT
    -> USER()
    -> \c
mysql>


下表显示出可以看见的各个提示符并简述它们所表示的mysql的状态:

提示符
含义

mysql>
准备好接受新命令。

->
等待多行命令的下一行。

'>
等待下一行,等待以单引号(“'”)开始的字符串的结束。

">
等待下一行,等待以双引号(“"”)开始的字符串的结束。

`>
等待下一行,等待以反斜点(‘`’)开始的识别符的结束。

/*>
等待下一行,等待以/*开始的注释的结束。


当你打算在一个单行上发出一个命令时,通常会“偶然”出现多行语句,但是没有终止分号。在这种情况中,mysql等待进一步输入:


mysql> SELECT USER()
    ->


如果出现这种情况(你认为输完了语句,但是只有一个->提示符响应),很可能mysql正在等待分号。如果你没有注意到提示符的提示,在意识到你需要做什么之前,你可能会呆坐一会儿。输入一个分号完成语句,mysql将执行:
mysql> SELECT USER()
    -> ;



mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
    '>


mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
    '> '\c
mysql>


使用SHOW语句找出服务器上当前存在什么数据库:
mysql> SHOW DATABASES;



请注意如果没有SHOW DATABASES权限,则不能看见所有数据库。
如果test数据库存在,尝试访问它:


mysql> USE test
Database changed


注意,USE,类似QUIT,不需要一个分号。(如果你喜欢,你可以用一个分号终止这样的语句;这无碍)USE语句在使用上也有另外一个特殊的地方:它必须在一个单行上给出。
自己创建数据库:


mysql> CREATE DATABASE menagerie;


在Unix下,数据库名称是区分大小写的(不像SQL关键字),因此你必须总是以menagerie访问数据库,而不能用Menagerie、MENAGERIE或其它一些变量。对表名也是这样的。(在Windows下,该限制不适用,尽管你必须在一个给定的查询中使用同样的大小写来引用数据库和表。但是,由于多种原因,作为最好的惯例,一定要使用与数据库创建时的同样的大小写。)
创建数据库并不表示选定并使用它,你必须明确地操作。为了使menagerie成为当前的数据库,使用这个命令:


mysql> USE menagerie
Database changed

数据库只需要创建一次,但是必须在每次启动mysql会话时在使用前先选择它。你可以根据上面的例子执行一个USE语句来实现。还可以在调用mysql时,通过命令行选择数据库,只需要在提供连接参数之后指定数据库名称。例如:
shell> mysql -h host -u user -p menagerie
Enter password: ********


注意,刚才显示的命令行中的menagerie不是你的 密码。如果你想要在命令行上在-p选项后提供密码,则不能插入空格(例如,如-pmypassword,不是-p mypassword)。但是,不建议在命令行输入密码,因为这样会暴露密码,能被在机器上登录的其它用户窥探到。
创建数据库是很容易的部分,但是在这时它是空的,正如SHOW TABLES将告诉你的:


mysql> SHOW TABLES;


使用一个CREATE TABLE语句指定你的数据库表的布局:


mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
    -> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);


为了验证你的表是按你期望的方式创建,使用一个DESCRIBE语句:
mysql> DESCRIBE pet;

(责任编辑:IT)