数据库系统课上老师介绍了2种数据库:Oracle Database和SQL Server,也说了他们之间模式(Schema,也称为架构)的区别,这里我也补充下与我常用的MySQL的模式区别,备忘。

模式相当于数据库系统中的名称空间,一个模式中可以有多种对象,例如基本表、视图、索引。访问某个模式中的对象,需要指定模式名.对象名

Oracle Database

Oracle Database客户端工具登录的时候,需要提供用户名、密码,以及数据库名,登陆后,查询表中的数据,需要提供用户名.表名,即可查询某个用户的数据表,如果是自己的表,可以省略用户名直接提供表名。这里每个用户都可以创建自己的表,模式名就是自己的用户名,Oracle Database创建一个用户的时候就为其创建了一个同名的模式,所以不能创建模式,也不能删除模式。如果要这么做,就创建用户、删除用户来代替。

SQL Server

SQL Server客户端工具登录的时候,无需指定数据库,只需提供用户名、密码,登录进去的是整个数据库服务器,能看到所有数据库、表。它内置了好几种模式,其中一种默认的模式即dbo,所有用户创建表的时候若不指定模式,则归属于dbo模式。

MySQL

MySQL客户端工具登录的时候也无需指定数据库,用用户名+密码登录后也能看到数据库系统中的所有数据库、表。它的模式和前两者不一样,数据库名即模式名,CREATE DATABASE语句和CREATE SCHEMA等价,访问表的时候,若不指定数据库(use语句指定),则使用数据库名.表名来访问。