使用SQL操作MySQL数据库

从本节开始正式介绍各种SQL语句。本节介绍有关数据库级的SQL以及相关操作,查看、建立和删除等操作。

用SHOW显示已有的数据库

句法:SHOW DATABASES [LIKE wild]

如果使用LIKE wild部分,wild字符串可以是一个使用SQL的“%”和“_”通配符的字符串。

功能:SHOW DATABASES列出在MySQL服务器主机上的数据库。

你可以尝试下面举例,观察输出结果,例如:

mysql>show databases;

+———-+

| Database |

+———-+

| first    |

| mysql    |

| mytest   |

| test     |

| test1    |

+———-+

mysql>show databases like ‘my%’;

+—————-+

| Database (my%) |

+—————-+

| mysql          |

| mytest         |

+—————-+

用mysqlshow程序也可以得到已有数据库列表。

用Create Dabase 创建数据库

句法:CREATE DATABASE db_name

功能:CREATE DATABASE用给定的名字创建一个数据库。

如果数据库已经存在,发生一个错误。

在MySQL中的数据库实现成包含对应数据库中表的文件的目录。因为数据库在初始创建时没有任何表,CREATE DATABASE语句只是在MySQL数据目录下面创建一个目录。

例如:

mysql>create database myfirst;

然后利用show databases观察效果。

用DROP DATABASE删除数据库

句法:DROP DATABASE [IF EXISTS] db_name

功能:DROP DATABASE删除数据库中的所有表和数据库。要小心地使用这个命令!

DROP DATABASE返回从数据库目录被删除的文件的数目。通常,这3倍于表的数量,因为每张表对应于一个“.MYD”文件、一个“.MYI”文件和一个“.frm”文件。

在MySQL 3.22或以后版本中,你可以使用关键词IF EXISTS阻止一个错误的发生,如果数据库不存在。

使用mysqladmin工具创建和删除

在命令行环境下可以使用mysqladmin创建和删除数据库。

创建数据库:

shell> mysqladmin create db_name

删除数据库:

shell> mysqladmin drop db_name

如果出现下面的错误:

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user: 'root@localhost' (Using password: YES)'

表示你需要一个可以正常连接的用户,请指定-u -p选项,具体方法与3.2节介绍相同,在第七章中你将会学到用户授权的知识。

直接在数据库目录中创建或删除

用上述方法创建数据库,只是MySQL数据目录下面创建一个与数据库同名目录,同样删除数据库是把这个目录删除。

所以,你可以直接这么做,创建或删除数据库,或者给数据库更名。这对备份和恢复备份有一定意义。

用USE选用数据库

句法:USE db_name

USE db_name语句告诉MySQL使用db_name数据库作为随后的查询的缺省数据库。数据库保持到会话结束,或发出另外一个USE语句:

mysql> USE db1;
mysql> SELECT count(*) FROM mytable;      # selects from db1.mytable
mysql> USE db2;
mysql> SELECT count(*) FROM mytable;      # selects from db2.mytable

如果你不是用USE语句,那么上面的例子应该写成:

mysql> SELECT count(*) FROM db1.mytable;
mysql> SELECT count(*) FROM db2.mytable;

由于use也是一个mysql客户程序的命令,所以你可以在命令行最后不加分号,客户程序可以得到结果。

总结

本节介绍了有关数据库操作的SQL语句、实用程序,其中包括:

SQL语句:CREATE/DROP DATABASE,SHOW DATABASES,USE

程序mysqladmin

直接创建或删除数据库的目录

订阅评论
提醒
guest的头像

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x