SQL DDL管理数据库

数据库(Database)由一组相关的对象组成,主要包括表、索引、视图、存储过程等。为了方便对象的管理和访问,数据库通常使用模式(Schema)来组织这些对象;模式是一个逻辑单元,或者一个存储对象的容器;它们之间的关系如下图所示:

SQL DDL管理数据库

一个数据库由多个模式组成,一个模式由许多对象组成;在不同模式中可以创建同名的对象。

MySQL 中的模式和数据库是相同的概念,一个数据库对应一个同名的模式

DDL 创建数据库

当我们连接到数据库服务器时,需要指定一个目标数据库。如果需要创建一个新的数据库,可以使用 CREATE DATABASE 语句:

CREATE DATABASE mydb;

以上语句将会创建一个名为 mydb 的数据库。对于 Oracle 而言,通常只有一个数据库;因此很少手动创建数据库。

Oracle 12c 以及更高版本,如果采用容器数据库(Container Database)模式,可以创建多个可插拔的数据库(Pluggable Database)。

我们可以使用以下命令或语句查看 MySQL 中已有的数据库:

-- MySQL 实现
SHOW DATABASES;

SELECT schema_name AS database_name
  FROM information_schema.schemata;

Database          |
------------------|
hrdb              |
information_schema|
mydb              |
mysql             |
performance_schema|
sys               |

其中,hrdb 是我们使用的数据库;mydb 是刚刚创建的数据库;其他都是系统数据库。information_schema 系统数据库存储了 MySQL 服务器中所有数据库的信息,例如数据库名称、表的结构以及访问权限等。

对于 SQL Server 可以使用以下命令:

-- SQL Server 实现
SELECT name AS database_name
  FROM sys.databases;

database_name|
-------------|
master       |
tempdb       |
model        |
msdb         |
mydb         |
hrdb         |

其中,hrdb 是我们使用的数据库;mydb 是刚刚创建的数据库;其他都是系统数据库。sys.databases 是 SQL Server 中的一个系统表,存储了关于数据库的信息。

PostgreSQL 数据库使用以下命令:

-- PostgreSQL 实现
SELECT datname AS database_name
  FROM pg_database;

database_name|
-------------|
postgres     |
hrdb         |
template1    |
template0    |
mydb         |

其中,hrdb 是我们使用的数据库;mydb 是刚刚创建的数据库;其他都是系统数据库。pg_database 是 PostgreSQL 中的一个系统表,存储了关于数据库的信息。

最后,Oracle 使用以下命令:

-- Oracle 实现
SELECT name AS database_name
  FROM v$database;

DATABASE_NAME|
-------------|
ORCL         |

其中,ORCL 是我们使用的数据库。v$database 是 Oracle 中的一个系统视图,提供了关于数据库的信息。

DDL 删除数据库

如果确认不再需要,可以使用 DROP DATABASE 语句删除数据库:

DROP DATABASE mydb;

DROP DATABASE 命令将会删除该数据库中的所有对象,而且操作无法恢复,使用时千万小心!

如果有用户正在连接,无法删除数据库;可以等待用户断开连接,或者强制断开连接后删除。

赞(1)
未经允许不得转载:极客笔记 » SQL DDL管理数据库
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址