数据库管理系统 创建、修改和删除模式

数据库管理系统 创建、修改和删除模式

创建模式

模式基本上是数据库的逻辑表示。有一个名为dbo的默认模式。当使用“create schema”语句时,对象将被创建在一个模式内。在创建模式后为其他用户提供访问权限时,需要模拟权限。

语法:创建模式的语法是−

创建模式模式名称

在这里,我们创建了一个名为模式名称的模式。

示例1:授予权限

在这个示例中,我们将创建一个模式并授予访问权限。

步骤

  • 第一步 - 创建模式。

  • 第二步 - 创建表。

  • 第三步 - 分配是否授予或拒绝权限。

  • 第四步 - 以授予的用户身份执行

  • 第五步 - 使用 select 命令获取输出

输入

Employee

Emp_id Name Dept_name Salary
1 Monu IT 50000
2 Sonu HR 60000
3 Golu Security 70000

代码

Create Schema account#schema is created
   authorization amrendra#authorization is given
grant select on schema ::account to x#granting access to x
Execute as user=’x’; #x is using the schema now
Select * from employee; #data selected
deny select on schema::account to y;denying access to y.

输出

Emp_id Name Dept_name Salary
1 Monu IT 50000
2 Sonu HR 60000
3 Golu Security 70000

示例2:在模式中创建模式和表。

在这个例子中,我们要创建一个模式,然后在这个模式中创建一个表。

步骤

  • 步骤1 - 创建一个模式

  • 步骤2 - 在模式中使用schema_name.table_name创建表。

  • 步骤3 - 使用SELECT语句提取模式内的表

输入

Employee

Employee_id Employee_name department_name salary
1 Rahul developer 40000
2 Monu hr 50000
3 Aman consulting 60000
4 Naman manager 70000

代码

Create Schema account;#schema is created
Create table account.employee(employee_id int,employee_name char(50),department_name char(50),salary int);#table is created
Select * from account.employee;#extracting the table data

输出

Employee

Employee_id Employee_name department_name salary
1 Rahul developer 40000
2 Monu hr 50000
3 Aman consulting 60000
4 Naman manager 70000

示例3:模式所有者

在这个示例中,我们将创建一个模式,然后设置它的所有者。

步骤

  • 步骤1 - 创建模式

  • 步骤2 - 通过设置所有者提供授权

  • 步骤3 - 以所有者的身份执行模式

  • 步骤4 - 使用select获取输出

输入

Employee

Emp_id Name Dept_name Salary
1 Monu IT 50000
2 Sonu HR 60000
3 Golu Security 70000

代码

Create schema account  #schema named account is created
authorization [amrendra] #The schema is owned by amrendra. 
Execute as user = ‘amrendra’ #amrendra is using the schema now
Select * from account;#data selected

输出

Emp_id Name Dept_name Salary
1 Monu IT 50000
2 Sonu HR 60000
3 Golu Security 70000

修改模式

在这里,我们将改变模式,从一个模式转移到同一数据库中的另一个模式。

语法

alter schema schema_name
Transfer[entity_type::] securable_name
  • schema_name是要移动内容的目标架构。

  • securable_name是已存在的架构名称。

示例

在此示例中,我们将通过将表地址从一个架构传输到另一个架构来转移表的所有权。

步骤

  • 步骤1 - 创建一个使用默认架构的表。

  • 步骤2 - 创建要传输的架构。

  • 步骤3 - 使用transfer命令将表内容传输到新的架构。

输入

Employee

Emp_id Name Dept_name Salary
1 Monu IT 50000
2 Sonu HR 60000
3 Golu Security 70000

代码

Create table dbo.employee(employee_id int,employee_name char(50),department_name char(50),salary int);
#table is created in default schema
Create schema patel;#new schema created
ALTER SCHEMA patel TRANSFER object::dbo.employee;
# table objects are transferred in the new schema.

输出

Patel

Emp_id Name Dept_name Salary
1 Monu IT 50000
2 Sonu HR 60000
3 Golu Security 70000

删除模式

在这里,我们将看到如何删除模式。当我们需要完全消除一个模式时,使用drop schema。

语法

Drop schema [if exists] schema_name
schema_name is the name of the schema which will be dropped. 
Note that this query will successfully execute only if the schema already exists.

示例

在这个例子中,我们将看到如何消除现有的模式以及包含该模式的表。

步骤

  • 步骤1 - 创建一个提供所有者的模式

  • 步骤2 - 在模式中创建表

  • 步骤3 - 删除模式中的表

  • 步骤4 - 删除模式

  • 步骤5 - 使用select语句进行交叉检查

输入

Emp_id Name Dept_name Salary
1 Monu IT 50000
2 Sonu HR 60000
3 Golu Security 70000

代码

Create Schema account authorization amrendra#schema created with its owner. 
create table employee(employee_id int,employee_name char(50),department_name char(50),salary int);
#table is created in schema drop table account.employee; 
#table is droppeddrop schema account; 
#schema is dropped
Select * from account;#data selected

输出

No data found

结论

与SQL相关的有三个操作。第一个操作是创建模式,通过三个示例进行解释,第一个是授予模式的权限,第二个是创建包含在模式中的表,第三个是为创建的模式提供特定成员的授权。第二个操作是修改模式,其中从一个模式中移动内容到另一个模式中。第三个操作是删除模式,其中我们删除了模式及其表。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

数据库管理系统 精选笔记