mysql menagerie_mysql 使用说明

以下内容根据官方文档翻译,但语句执行截图是博主自己实测结果。

3.1 Connecting to and Disconnecting from the Server

连接数据库

要连接到mysql 服务器,你需要用户名user, password 如果你别的电脑上登陆,那么你还需要主机名。你 应该这样登陆:

shell> mysql -hhost-u user -p

Enter password:********host表示你主机的地址,user是你的账号。

shell> mysql -h host -u user -p

Enter password: ********

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 25338 to server version: 5.5.50-standard

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

The mysql> 表示mysql已经准备就绪。

如果你在自己登陆的电脑上安装的mysql,你只需要下面的命令:

shell>mysql -u user -p

如果你遇到:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'说明你的mysql服务没有运行,你得先启动它。有些mysql 安装版本允许匿名登陆,输入下面的命令即可

shell> mysql

登陆成功后你随时都可以输入:QUIT或者(q)退出,本人实测中exit()也可以。

3.2 Entering Queries

输入语句:

本节前提是你已经连接上mysl

下面是一个简单的查询实例:

mysql> SELECT VERSION(), CURRENT_DATE;

0DkA1fMfOwGXy3MkenUAAAAASUVORK5CYII=

这条查询语句说明了mysql的几个特点:

1.每条语句后面都加上分号“;”,有少数例外,如果退出时输入QUIT

2.当你输入一条查询语句时,mysql将其发送给服务器执行并返回结果

3.mysql总是以表格的形式返回结果,第一行是这些列的标签,如果你只是想得到值,mysql也会将其贴上标签,如上面的例子那样。

关键词大小写不敏感:下面三种情况都是可行的。

mysql> SELECT VERSION(), CURRENT_DATE;

mysql> select version(), current_date;

mysql>SeLeCt vErSiOn(), current_DATE;下面是另一条语句 ,它说明你可以把mysql当作一处简单的计算器来使用

mysql>SELECT SIN(PI()/4), (4+1)*5;

Tj3ro78lvkLJmkKWNU8TyT5tq9kVqf5Sij5SwOeoY9y1zMTPcgzPQknwuj00fOdkSMHYmqEhAUYXa1nJmJNIU8i2400ymZW3gHQSBbEiFzZCSpgl6CPFndlSXnMdEity4DcctavGLA78GzHZ0z2CrxPAv4Jv5AAAAAAAAAAAAACAgD9bmeAyvGIsIwAAAABJRU5ErkJggg==下面这样会单列输出,只要你喜欢,你可以输入行多条语句

mysql>SELECT VERSION(); SELECT NOW();

EodW5fBRidmTX3X1m3XgpEn43FI2fGvnwwA4LdDqETjOLWUP55ZSA60eA+eB4d2gVYA8QKsAeYBWAfIArQJkwf+0e5skGfsGagAAAABJRU5ErkJggg==

查询语句如果需要多行,mysql是根据你结束的分号来识别的不,而不是换行。换句话说就是,mysql的输入格式自由,它接收这些语句,但并不执行,直到看到分号为止。

下面是一个简单的例子:

mysql> SELECT

-> USER()

-> ,

-> CURRENT_DATE;

g8hX9O0s1sGPwAAAABJRU5ErkJggg==

在这条语句中注意Mysql的提示,由mysql>变成了-->这是在告诉你,没有看到结束的分号,它在等待你输入剩下的语句,好好利用这些提示吧。

如果你不想执行你输入的语句,那就用"\c"来取消它

mysql> SELECT

-> USER()

-> \c

mysql>

同样的注意看提示,-->变成了mysql>说明,你可以重新输入查询语句了。

下面这张表是可能的mysql的提示:

PromptMeaning

mysql>

准备就绪

->

等待输入多条语句的一下一句

'>

等待输入由单引号开头语句的结束

">

双引号,同上

`>

反撇号,同上

/*>

同上

多行输入经常发生于 由于你输入单条语句而忘记加上分号的情况下

mysql> SELECT USER()

->

如果发生了这种情况,你输入了语句,但mysql在等待你的输入。而你没有意识到发生了什么,你可能停在这里等待,其实你只需要输入分号,mysql就会执行你的语句。

mysql> SELECT USER()

-> ;

L4VnXBRn7vmREAa0AugAHkAhhALoAB5AIYQC6AAeQCGEAugAHkAsL5Dxvb+K0vJpg4AAAAAElFTkSuQmCC

'> 和">说明你的语句中输入了引号的开头,却没输入结尾,这经常发生在你不小心输入了半边引号导致

(博主推荐成对输入,即(),'',""等成对输入,这能有效防止忘记关闭,同样适用于编程)

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

'>

如果你输入了这条语句,按下Enter键,什么也没发生,你可能会奇怪怎么这条查询语句要执行那么久,那么你应该看下'>这条线索。(它说明mysql在等待你的输入,你没注意到它在说,你伢的,怎么不给我加个反引号啊)

如果发生了这种情况,要怎么办呢,这还不简单,输入\c,取消不就行了。事实是这样还真不行,因为mysql会把\c解释成''的一部分,所以最好的办法就是:先加上反引号,再加\c

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

'> '\c

mysql>

此时,提示又回到了mysql>,说明你可以接着输入了。

`>重音符的提示和单双引号的类似,说明你虎头蛇尾,只记得开始,却不结束,做事三分钟热情。

这三种情况非常重要 ,因为如果发生了这种情况,后面不管你输入多少都会被mysql忽略掉(不执行),即使你输入了QUIT也一样,这肯定让人火大。特别是在你以为不能取消这条语句但你又不知道要输入结束的引号的情况下。3.3 Creating and Using a Database

3.3 Creating and Using a Database

创建并使用数据库

现在你知道怎么输入sql语句了,那你就可以创建数据库了。

现在假设你有一些宠物,而且你希望能保存一些它们的信息,那么,你就可以大材小用的建立一张表来保存数据,下面来是步骤:

a.创建数据库

b.创建数据表

c.通过不同的方式从表中取回数据

d.使用多重表格

这个动物园的数据库很简单,但在却不难想到它在现实中的应用。

通过show命令查看有哪些数据库(注意database加了s)

Wl5Fy7T0NUzUBCv1ankGD6fb49I+urPt3l7FRzvxtq4qLDUHs1BsabUG+2owaau7+XBOOa18sJ4Ew0L5JYPOJfY0s28ZYgMny52R8ww2rRmy4+UZGTdrilverSdFWIF241IxLrwrDFciCEsvn2TMkv4qeRuNqYtTzsLbfOsGumX38rAiwpP33ZP05B1y8ePvCgEAAAAAAAAAAHbAfzzb3xPMzvERAAAAAElFTkSuQmCC

其中的mysql数据库保存了用户的权限信息,test数据库一般都会存在,为用户做一些测试用的。

这条命令不会显示那些你没有权限查看的数据库

如果你的机器上也有test数据库,通过下面的命令使用它

mysql> USE test

USE和QUIT一样,不需要分号,当然,如果你有强迫症,为了你的性命着想就加上分号吧,反正加上也没有害处。

USE特殊的另一点是,它不能跨行。

如果你能使用test数据,那就用吧,但是test数据库上的数据可能被任何其他有权限使用test数据的人删除掉,所以最好建立自己的数据库。

假设你需要使用你的数据库(上面建立的动物园),管理员需要执行下面的命令:

mysql> GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';

your_mysql_name 就是你的账户名,your_client_host是你用来登陆服务器的机器地址

3.3.1 Creating and Selecting a Database

如果管理员已经为你建好了数据库,那你只需要用就行了,如果没有,那你得自己动手创建

mysql> CREATE DATABASE menagerie;

注意:在unix上,它是大小写敏感的,在创建数据表时也一样,也就是说,你创建时用的大写使用时也得是大写,在win上,不存在这个问题,但是最好还是保持一致,不要忽大忽小。

如果你遇到了这种错误提示:

ERROR 1044 (42000): Access denied for user 'micah'@'localhost' to database 'menagerie'

说明那个你相信的管理员阴了你一把,没有给你足够的权限,带上砖头找他去吧。

创建数据库并不是说就选择了它,要使用它,你还得选择它

mysql> USE menagerie

4x9gV8vJDlI5P4PKSIt0zs+gMlIhtfMzqAxCCCGEEEIIIYQQQgghhBBCCCE58B+r1Ntxkm+XDAAAAABJRU5ErkJggg==

你的数据库只需要创建一次,但是每次使用前你都得选择它才能用。

当然你也可以在登陆时直接选择它:

shell> mysql -h host -u user -p menagerie

Enter password:********注意,menagerie不是你的密码,如果你非要在第一行输入密码,那么你就不要用空格。

不要写:mysql -h host -u user -p mima 而应该:mysql -h host -u user -pmima 但是,这种写在同一行是不推荐使用的。

任何时候你都可以通过下面这条命令来查看,当前被选择的数据库:

SELECT DATABASE();

3.3.2 Creating a Table

建表

建表是很容易的,但它是空的,可以通过这条命令查看到:

mysql>SHOW TABLES;难的是,要怎么组织数据库的结构,建哪些表格,列。

你想保存你宠物的数据库,那可以建个名叫pet的表,最少也要包含名字,还就包含一些其他信息,比如,如果你家人也养宠物,那你可能想保存主人的信息。

要不要保存年龄呢,事实上建议你保存,生日更合适,因为,年龄会随着时光的飞逝而增加,但生日永远无法改变,而年龄可以通过生日计算出来,blablablabla

我们这里保存的信息包括:name, owner, species, sex, birth, and death.

通过Create Table命令创建这张表的样式

mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),

-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

RFVniSRqG90AAAAASUVORK5CYII=VARCHAR这种数据类型对name,owner,species是不错的选择,因你它们的长度是变化不定的。你可以任意指定从1~65535的值,如果你事先指定的短了,mysql有ALTER TABLE 命令

表示性别的方式有好几种,比如 f,m 或者 female ,male,最简洁的方式是 f ,m.birth ,death 用DATE格式

当你创建数据表后,show tables就能有结果了 :

lyFQAAAABJRU5ErkJggg==

为了确认你的数据表是你想创建的样子,用DESCRIBE命令:

7aPIuv1ej9UxMFu+u60eergAIYzrcJW72I7fx83CNK8PVffTtJOUqP1i7da5w3H17fX9+AjuxnH1Pxluzb2zSmF7JwbBtWyvDPL610EOylddm8EqBYBjKPBJs2L41DKQfgJAIAhuTJzWbBUGT5oBBIPgxgUvBQCYQHABABKB4AIAJALBBQBIBIILAJAIBBcAIBEILgBAIhBcAIBEILgAAIlAcAEAEoHgAgAkAsEFAEgEggsAkAgEFwAgEQguAEAiEFwAgEQguAAAafgfXDkuqopGqnQAAAAASUVORK5CYII=

只要你愿意,DESCEIBE命令随便用。

3.3.3 Loading Data into a Table

加载数据

为了填充数据表,Load 或者Insert 都可以

因为刚建表,你可以将数据写入一个txt文件中,每一条数据之间用tab隔开,然后执行下面的语句导入数据:

FKRdnF1C6rwAAAABJRU5ErkJggg==

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;

我的这个文件在我桌面上:

AAAAAElFTkSuQmCC

结果:

AeGa3hv7PiinwAAAABJRU5ErkJggg==

如果你的编辑器中用的是\r\n来换行,那你应该用下面这条命令:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet

-> LINES TERMINATED BY '\r\n';

在苹果上,你应该换成:TERMINATED BY '\r'

如果命令失败了,应该是你mysql安装时没有选择默认本地文件处理能力。

当你想一条一条输入时,Insert 命令有用武之地了。

mysql> INSERT INTO pet

->VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

字符串,日期,要用引号,空白用NULL

剩下的有时间再译....

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值