Sql 简明教程

SQL - Rename View

有各种 SQL 语句可对数据库对象执行不同的操作,例如创建、更新、删除以及重命名数据库对象。由于视图也是数据库对象,所有这些操作也可以对视图执行,你可以创建视图、更新视图、删除视图以及重命名视图。

在许多情况下,会建议删除现有视图,然后使用新名称重新创建它。

Renaming a View in MySQL

RENAME TABLE 语句在 MySQL 数据库中用于重命名视图。你只需确保视图的新名称与任何现有视图的名称不重叠。

Syntax

以下是 MySQL 中重命名视图的基本语法 −

RENAME TABLE old_view_name To new_view_name;

在此,我们必须确保旧视图名称存在于数据库中且新视图名称尚不存在。否则,它会发出警告。此外在执行此语句之前,确保表格未锁定且没有活动事务非常重要。

Example

在此示例中,让我们首先创建一个名为 CUSTOMERS 的表格,该表格包含客户的个人详细信息,包括其姓名、年龄、地址和工资等,如下所示 −

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

现在使用 INSERT 语句向该表中插入值,如下所示:

INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

该表将按如下方式创建:

ID

NAME

AGE

ADDRESS

SALARY

1

Ramesh

32

Ahmedabad

2000.00

2

Khilan

25

Delhi

1500.00

3

Kaushik

23

Kota

2000.00

4

Chaitali

25

Mumbai

6500.00

5

Hardik

27

Bhopal

8500.00

6

Komal

22

Hyderabad

4500.00

7

Muffy

24

Indore

10000.00

以下查询基于上述创建的表格创建一个视图 −

CREATE VIEW CUSTOMERS_VIEW AS
SELECT * FROM CUSTOMERS WHERE AGE > 25;

你可以使用 select 查询验证视图的内容,如下所示 −

SELECT * from CUSTOMERS_VIEW;

视图显示如下 −

ID

NAME

AGE

ADDRESS

SALARY

1

Ramesh

32

Ahmedabad

2000.00

5

Hardik

27

Bhopal

8500.00

现在我们知道名为 CUSTOMERS_VIEW 的视图存在于我们的数据库中。因此,我们将直接使用以下查询将此视图重命名为 VIEW_CUSTOMERS

RENAME TABLE CUSTOMERS_VIEW TO VIEW_CUSTOMERS;

Output

获得的结果如下所示 −

Query OK, 0 rows affected (0.08 sec)

Verification

我们可以通过在 SELECT 语句中使用其新名称检索视图的内容来验证视图是否已重命名。以下查询用于显示 VIEW_CUSTOMERS 视图中的记录 −

SELECT * from VIEW_CUSTOMERS;

显示的视图如下 −

ID

NAME

AGE

ADDRESS

SALARY

1

Ramesh

32

Ahmedabad

2000.00

5

Hardik

27

Bhopal

8500.00

Renaming a View in SQL Server

SQL Server 中没有可以直接重命名视图的查询。但是,它确实让你可以使用一个名为 sp_rename 的存储过程,该存储过程可以重命名视图。在使用新名称重命名视图之前,你必须确保没有使用其旧名称对视图执行任何活动事务。

sp_rename 是 SQL 中一个系统存储过程(在数据库中执行任务的一组预建子程序),它可用于重命名各种数据库对象,包括表格、列、索引和约束。

Syntax

以下是 SQL 中重命名视图的基本语法 −

EXEC sp_rename 'old_view_name', 'new_view_name'

在此,我们必须确保旧视图名称存在于数据库中且新视图名称尚不存在。否则,它会发出警告。在执行此语句之前,确保表格未锁定且没有活动事务非常重要。

Example

在此示例中,让我们首先尝试创建一个名为 CUSTOMERS 的表格,该表格包含客户的个人详细信息,包括其姓名、年龄、地址和工资等,如下所示 −

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

现在使用 INSERT 语句向该表中插入值,如下所示:

INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 );

以下查询基于上述创建的表格创建一个视图 −

CREATE VIEW CUSTOMERS_VIEW AS
SELECT * FROM CUSTOMERS WHERE SALARY >2000;

你可以使用 select 查询验证视图的内容,如下所示 −

SELECT * from CUSTOMERS_VIEW;

视图将创建为 −

ID

NAME

AGE

ADDRESS

SALARY

4

Chaitali

25

Mumbai

6500.00

现在,我们知道我们的数据库中有现有视图 CUSTOMERS_VIEW 。因此,我们将使用以下查询将此视图重命名为 VIEW_CUSTOMERS

EXEC sp_rename CUSTOMERS_VIEW, VIEW_CUSTOMERS;

Verification

我们可以通过在 SELECT 语句中使用其新名称检索视图的内容来验证视图是否已重命名。以下查询用于显示 VIEW_CUSTOMERS 视图中的记录 −

SELECT * FROM VIEW_CUSTOMERS;

显示的视图如下 −

ID

NAME

AGE

ADDRESS

SALARY

4

Chaitali

25

Mumbai

6500.00

我们已将视图重命名为 VIEW_CUSTOMERS;如果用户尝试使用旧视图名称获取详细信息,将会抛出视图不存在的错误。

Rules to be followed while Renaming Views

当在 SQL 中重命名视图时,有一些规则和最佳实践应该遵循,以确保重命名过程顺利并且不会造成任何意外的后果或问题。

以下是重命名 SQL 中的视图时要记住的一些一般规则:

  1. Avoid renaming system views − 系统视图是包含有关数据库管理系统的所有信息的视图。重命名这些视图可能会导致数据库系统运行出现问题,因此通常不建议重命名系统视图。

  2. Update all references to the view − 在重命名视图后,任何引用视图的存储过程、触发器或其他数据库对象都需要通过使用视图的新名称进行更新。未更新这些引用可能会导致数据库系统的功能出现错误或问题。

  3. Test thoroughly − 在生产环境中重命名视图之前,务必在开发或测试环境中彻底测试重命名过程,以确保所有对视图的引用都已正确更新,并且数据库系统继续按预期运行。

  4. Use a consistent naming convention − 使用一致的命名约定对视图和其他数据库对象进行命名,以便更轻松地理解和维护数据库系统,这是一种好做法。如果您需要重命名视图,请考虑遵循您在数据库中对其他视图使用的相同命名约定。

  5. Backup the database − 在重命名视图之前,建议对数据库创建备份,以确保在重命名过程中出现问题时您拥有一个还原点。