SQL 重命名表格
SQL提供了两种方式来重命名MySQL表格。你可以使用SQL RENAME TABLE或 ALTER TABLE 语句来在MySQL RDBMS中改变表格名称。
SQL RENAME TABLE 语句
你可以使用SQL RENAME TABLE 语句来改变MySQL表格名称。
语法
以下是SQL RENAME TABLE语句的语法:
RENAME TABLE table_name TO new_table_name;
其中, table_name 是现有表的当前名称,而 new_table_name 是该表的新名称。
举例
让我们创建一个名为 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 (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (2, 'Khilan', 25, 'Delhi', 1500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (3, 'kaushik', 23, 'Kota', 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (4, 'Chaitali', 25, 'Mumbai', 6500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (5, 'Hardik', 27, 'Bhopal', 8500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (6, 'Komal', 22, 'MP', 4500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (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 |
以下SQL查询将 CUSTOMERS 表的名称更改为 BUYERS –
RENAME TABLE CUSTOMERS to BUYERS;
验证
一旦您更改表的名称,您可以在您的 SQL 查询中开始使用新的表名。
SELECT * FROM BUYERS;
如果表名成功更改,则应列出在CUSTOMERS表中可用的所有记录。
SQL ALTER TABLE语句
ALTER TABLE语句可以用于更改或修改现有表的结构,即使用此语句可以添加/删除列,创建/销毁索引,更改现有列的数据类型,重命名列甚至重命名表。
语法
以下是SQL ALTER TABLE语句重命名现有表的语法-
ALTER TABLE table_name RENAME [TO|AS] new_table_name
示例
以下SQL ALTER TABLE 语句将会把表名称从 BUYERS 修改为 CUSTOMERS 。
ALTER TABLE BUYERS RENAME TO CUSTOMERS;
验证
一旦你将表的名称更改为CUSTOMERS,你可以在SQL查询中使用这个名称。
SELECT * FROM CUSTOMERS;
这将产生以下结果:
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 |
在SQL Server中重命名表
在SQL Server中没有直接重命名表的查询语句。不过,它提供了一个名为 sp_rename 的存储过程,可以用来重命名表。
sp_rename 是SQL中的系统存储过程(一组在数据库中执行任务的预构建子程序),可用于重命名各种数据库对象,包括表、列、索引和约束。
语法
以下是在SQL Server中重命名表的基本语法:
EXEC sp_rename 'old_table_name', 'new_table_name'
在这里,您必须确保旧表名存在于数据库中,并且新表名不存在。否则,它会发出警告。第二个重要的要点是确保表没有被锁定,并且没有涉及该表的活动事务。
示例
假设我们已经在数据库中有一个名为CUSTOMERS的表。现在,我们将使用以下查询将此表从 CUSTOMERS 重命名为 WORKERS 。
EXEC sp_rename 'CUSTOMERS', 'WORKERS';
输出
得到的结果如下所示:
Completion time: 2023-08-15T19:21:49.1144163+05:30
验证
我们可以通过使用SELECT语句检索其内容来验证更改是否被反映如下:
SELECT * FROM WORKERS;
这将按照以下方式列出WORKERS表中所有的记录:
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 |
因为您已将表格重命名为WORKERS,所以如果您尝试使用旧表格名称获取详细信息,就会抛出错误,显示表格不存在。
重命名表格时需要遵循的规则
在SQL中重命名表格时,有一些规则和最佳实践需要遵循,以确保重命名过程顺利进行,不会引起任何意外后果或问题。
-
避免重命名系统表 - 系统表是由数据库管理系统自身创建和使用的表格。重命名这些表格可能会导致数据库系统的功能出现问题,因此通常不建议重命名系统表。
-
更新所有对表格的引用 - 在重命名表格后,任何引用该表格的存储过程、视图、触发器或其他数据库对象都需要更新,使用表格的新名称。如果不更新这些引用,可能会导致数据库系统出现错误或问题。
-
全面测试 - 在生产环境中重命名表格之前,重要的是在开发或测试环境中全面测试重命名过程,以确保所有对表格的引用已正确更新,并且数据库系统继续正常运行。
-
使用一致的命名规则 - 对于表格和其他数据库对象,使用一致的命名规则是一个好习惯,使得更容易理解和维护数据库系统。如果需要重命名表格,请考虑遵循数据库中使用的其他表格相同的命名规则。
-
备份数据库 - 在重命名表格之前,建议创建数据库的备份,以确保您有一个还原点;以防在重命名过程中出现任何问题。