既然你知道怎样输入命令,现在是存取一个数据库的时候了。
假定在你的家(你的“动物园”)中有很多宠物,并且你想追踪关于他们各种各样类型的信息。你可以通过创建表来保存你的数据并根据所需要的信息装载他们做到,然后你可以通过从表中检索数据来回答关于你的动物不同种类的问题。本节显示如何做到所有这些事情:
怎样创建一个数据库
怎样创建一个数据库表
怎样装载数据到数据库表
怎样以各种方法从表中检索数据
怎样使用多个表
动物园数据库将会是简单的(故意的),但是不难把它想象成可能用到相似类型数据库的真实世界情况。例如,这样的一个数据库能被一个农夫用来追踪家畜,或由一个兽医追踪病畜记录。
使用SHOW语句找出在服务器上当前存在什么数据库:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql |
| test |
| tmp |
+----------+
数据库列表可能在你的机器上是不同的,但是mysql和test数据库很可能的在其间。mysql是必需的,因为它描述用户存取权限,test数据库经常作为一个工作区提供给用户试试身手。
如果test数据库存在,尝试存取它:
mysql> USE test
Database changed
注意,USE,类似QUIT,不需要一个分号。(如果你喜欢,你可以用一个分号终止这样的语句;这无碍)USE语句在使用上也有另外一个特殊的地方:它必须在一个单行上给出。
你可列在后面的例子中使用test数据库(如果你能访问它),但是你在该数据库创建的任何东西可以被与访问它的其他人删除,为了这个原因,你可能应该询问你的MySQL管理员许可你自己使用的一个数据库。假定你想要调用你的menagerie,管理员需要执行一个这样的命令:
mysql> GRANT ALL ON menagerie.* TO your_mysql_name;
这里your_mysql_name是分配给你的MySQL用户名。
1 创建并选用一个数据库
如果在设置你的权限时,管理员为你创建了数据库,你可以开始使用它。否则,你需要自己创建它:
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)。然而,不建议把你的口令放在命令行上,因为这样做把它暴露出来,能被在你的机器上登录的其他用户窥探到。