数据库系统课上老师介绍了 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
语句指定),则使用 数据库名. 表名
来访问。