SQL 重命名列名
列名的用途是用于标识表中特定的列。对于更清晰和理解的目的,列名必须与列中所包含的数据相关。
有时,我们需要更改数据库中列的名称,以保持其中包含的数据的相关性。SQL允许使用以下命令更改列名:
- ALTER TABLE命令可以更改表中的数据类型、列名和其他属性。
- 重命名列名命令与ALTER TABLE命令一起使用,用于在数据库中重命名列。
重命名SQL中的列名的好处:
- 与列中的数据相关的清晰名称有助于提高清晰度,使得不同列之间更容易区分,避免混淆。
- 更具描述性的列名有助于提高可读性,并使表中的数据更易于理解。
- 它有助于高效地组织数据库中的数据。
- 它简化列名以便更容易理解。
- 它有助于避免在表中使用相似名称导致的错误。
重命名SQL中列名的语法将取决于您使用的数据库,但重命名SQL中列名的基本语法如下:
ALTER TABLE tableName
RENAME COLUMN old_columnName TO new_columnName;
我们将通过示例来了解如何在诸如MySQL、PostgreSQL、Microsoft SQL Server、MariaDB、Oracle等数据库中更改列名。
MySQL、PostgreSQL、MariaDB和Oracle中更改列名的示例:
示例1:
让我们考虑一个名为student_table的表,其中包含stu_number、stu_name、stu_age、stu_address、stu_stream和stu_marks字段。
stu_number | stu_name | stu_age | stu_address | stu_stream | stu_marks |
---|---|---|---|---|---|
1 | Inaya | 20 | Faridabad | Science | 95 |
2 | Jai | 22 | Noida | Commerce | 80 |
3 | Ishaan | 20 | Noida | Arts | 74 |
4 | Milan | 18 | Roorkee | Science | 72 |
5 | Pari | 21 | Gurugram | Science | 81 |
6 | Khushi | 20 | Goa | Commerce | 82 |
7 | Himanshu | 23 | Meerut | Commerce | 75 |
8 | Rohit | 22 | Meerut | Commerce | 86 |
9 | Sadaf | 20 | Goa | Arts | 74 |
10 | Asha | 19 | Gurugram | Arts | 70 |
我将会把列名从stu_number改为stu_id。下面给出的查询将会改变列名:
查询:
ALTER TABLE student_table
RENAME COLUMN stu_number TO stu_id;
SELECT * FROM student_table;
输出:
从输出中可以明显看出,列名已从stu_number更改为stu_id。
stu_id | stu_name | stu_age | stu_address | stu_stream | stu_marks |
---|---|---|---|---|---|
1 | Inaya | 20 | Faridabad | Science | 95 |
2 | Jai | 22 | Noida | Commerce | 80 |
3 | Ishaan | 20 | Noida | Arts | 74 |
4 | Milan | 18 | Roorkee | Science | 72 |
5 | Pari | 21 | Gurugram | Science | 81 |
6 | Khushi | 20 | Goa | Commerce | 82 |
7 | Himanshu | 23 | Meerut | Commerce | 75 |
8 | Rohit | 22 | Meerut | Commerce | 86 |
9 | Sadaf | 20 | Goa | Arts | 74 |
10 | Asha | 19 | Gurugram | Arts | 70 |
示例 2:
让我们来考虑另一个名为product_table的表格,其中包含id、name、quantity和money这些字段。
id | name | quantity | money |
---|---|---|---|
1 | Chocolates | 20 | 200 |
2 | Candies | 22 | 110 |
3 | Lollipops | 20 | 100 |
4 | Chips | 18 | 90 |
5 | Apples | 21 | 600 |
6 | Biscuits | 20 | 200 |
7 | Chochos | 23 | 230 |
8 | Waffle Chips | 22 | 220 |
9 | Jelly Candies | 20 | 400 |
10 | Popcorn | 19 | 380 |
我们将把列名从money改为price。下面给出的查询将更改列名:
查询:
ALTER TABLE product_table
RENAME COLUMN money TO price;
SELECT * FROM product_table;
输出结果:
从输出结果中可以清楚地看到,列名已经从money改为了price。
id | name | quantity | price |
---|---|---|---|
1 | Chocolates | 20 | 200 |
2 | Candies | 22 | 110 |
3 | Lollipops | 20 | 100 |
4 | Chips | 18 | 90 |
5 | Apples | 21 | 600 |
6 | Biscuits | 20 | 200 |
7 | Chochos | 23 | 230 |
8 | Waffle Chips | 22 | 220 |
9 | Jelly Candies | 20 | 400 |
10 | Popcorn | 19 | 380 |
示例3:
我们来考虑一个名为student_table的表,它包含了stu_number(学号)、stu_name(姓名)、stu_age(年龄)、stu_address(地址)、stu_stream(流派)和marks(分数)这些字段。
stu_number | stu_name | stu_age | stu_address | stu_stream | marks |
---|---|---|---|---|---|
11 | Robin | 19 | Seattle | Commerce | 85 |
12 | Jack | 20 | Washington | Arts | 95 |
13 | Michael | 21 | Austin | Science | 84 |
14 | Justin | 19 | Columbus | Commerce | 75 |
15 | Ariana | 20 | Austin | Commerce | 80 |
16 | Selena | 21 | Washington | Arts | 90 |
17 | Katrina | 22 | Columbus | Arts | 89 |
18 | Tom | 23 | Columbus | Commerce | 85 |
19 | Henry | 21 | Austin | Science | 79 |
20 | Alexander | 20 | Seattle | Science | 90 |
我们将把列名从marks改为stu_marks。下面的查询将更改列名:
查询:
ALTER TABLE student_table
RENAME COLUMN marks TO stu_marks;
SELECT * FROM student_table;
输出:
从输出结果可以明显看出,列名已经从marks更改为stu_marks。
stu_number | stu_name | stu_age | stu_address | stu_stream | stu_marks |
---|---|---|---|---|---|
11 | Robin | 19 | Seattle | Commerce | 85 |
12 | Jack | 20 | Washington | Arts | 95 |
13 | Michael | 21 | Austin | Science | 84 |
14 | Justin | 19 | Columbus | Commerce | 75 |
15 | Ariana | 20 | Austin | Commerce | 80 |
16 | Selena | 21 | Washington | Arts | 90 |
17 | Katrina | 22 | Columbus | Arts | 89 |
18 | Tom | 23 | Columbus | Commerce | 85 |
19 | Henry | 21 | Austin | Science | 79 |
20 | Alexander | 20 | Seattle | Science | 90 |
重命名Microsoft SQL Server中列名的示例:
示例1:
让我们再考虑一个名为employee_table的表,该表包含了emp_id、emp_name、emp_address、department和emp_salary这些字段。
emp_id | emp_name | emp_address | department | emp_salary |
---|---|---|---|---|
50 | John | Washington | Sales | 25000 |
51 | Shirley | Austin | Software Testing | 50000 |
52 | Daniel | Columbus | Sales | 40000 |
53 | Anthony | Austin | Content Writing | 20000 |
54 | James | Chicago | HR | 45000 |
55 | Helen | Phoenix | Software Testing | 55000 |
56 | Nicole | Chicago | Sales | 35000 |
57 | Nick | Columbus | HR | 40000 |
58 | Peter | Phoenix | Content Writing | 25000 |
59 | Ashley | Washington | Content Writing | 35000 |
将列名从department改名为emp_department。以下给出的查询将更改列名:
查询:
sp_rename 'department', 'emp_department', 'COLUMN';
SELECT * FROM employee_table;
输出:
从输出中可以清楚地看出,列名称已从department更改为emp_department。
emp_id | emp_name | emp_address | emp_department | emp_salary |
---|---|---|---|---|
50 | John | Washington | Sales | 25000 |
51 | Shirley | Austin | Software Testing | 50000 |
52 | Daniel | Columbus | Sales | 40000 |
53 | Anthony | Austin | Content Writing | 20000 |
54 | James | Chicago | HR | 45000 |
55 | Helen | Phoenix | Software Testing | 55000 |
56 | Nicole | Chicago | Sales | 35000 |
57 | Nick | Columbus | HR | 40000 |
58 | Peter | Phoenix | Content Writing | 25000 |
59 | Ashley | Washington | Content Writing | 35000 |
示例2:
让我们考虑另一个名为book_table的表,其中包含id,book_name,author,pages和price字段。
id | 书名 | 作者 | 页数 | 价格 |
---|---|---|---|---|
1 | 一个叫家的地方 | Preeti Shenoy | 324 | 250 |
2 | 骄傲与偏见与辩论 | Shashi Tharoor | 600 | 630 |
3 | 红色敬礼 | Smriti Irani | 256 | 65 |
4 | 我们这些有故障的人 | John Green | 352 | 250 |
5 | 窃书贼 | Markus Zusak | 624 | 295 |
6 | 动物庄园 | George Orwell | 88 | 120 |
7 | 十万亿美梦 | Subhash Chandra Garg | 712 | 650 |
8 | 未完成的 | Priyanka Chopra Jonas | 280 | 420 |
9 | 公主新娘 | William Goldman | 512 | 780 |
10 | 派的生活 | Yann Martel | 352 | 240 |
我们将把列名从book_name改为book_list。下面给出的查询将更改列名:
查询:
sp_rename 'book_name', 'book_list', 'COLUMN';
SELECT * FROM book_table;
输出:
从输出结果可以明显看出,列名已从book_name更改为book_list。
id | book_list(书籍列表) | author(作者) | pages(页数) | price(价格) |
---|---|---|---|---|
1 | A Place Called Home(一个叫家的地方) | Preeti Shenoy(普里蒂·谢诺伊) | 324 | 250 |
2 | Pride, Prejudice, and Punditry(骄傲、偏见和评论) | Shashi Tharoor(沙西·塔鲁尔) | 600 | 630 |
3 | Lal Salam(红色敬礼) | Smriti Irani(斯米蒂·伊拉尼) | 256 | 65 |
4 | The Fault in Our Stars(这些我们的星星的错误) | John Green(约翰·格林) | 352 | 250 |
5 | The Book Thief(偷书贼) | Markus Zusak(马库斯·祖萨克) | 624 | 295 |
6 | Animal Farm(动物农场) | George Orwell(乔治·奥威尔) | 88 | 120 |
7 | The Ten Trillion Dream(一万亿的梦想) | Subhash Chandra Garg(苏巴什·钱德拉·加尔) | 712 | 650 |
8 | Unfinished(未完成) | Priyanka Chopra Jonas(普里揭卡·乔普拉·乔纳斯) | 280 | 420 |
9 | The Princess Bride(公主新娘) | William Goldman(威廉·戈德曼) | 512 | 780 |
10 | Life of Pi(少年派的奇幻漂流) | Yann Martel(杨·马尔特尔) | 352 | 240 |
示例3:
让我们再考虑一个名为employee_table的表格,它包含了emp_id、emp_name、emp_address、department和salary这些字段。
emp_id | emp_name | emp_address | department | salary |
---|---|---|---|---|
50 | John | Washington | Sales | 25000 |
51 | Shirley | Austin | Software Testing | 50000 |
52 | Daniel | Columbus | Sales | 40000 |
53 | Anthony | Austin | Content Writing | 20000 |
54 | James | Chicago | HR | 45000 |
55 | Helen | Phoenix | Software Testing | 55000 |
56 | Nicole | Chicago | Sales | 35000 |
57 | Nick | Columbus | HR | 40000 |
58 | Peter | Phoenix | Content Writing | 25000 |
59 | Ashley | Washington | Content Writing | 35000 |
我们将把列名从salary改为emp_salary。下面的查询将更改列名:
查询:
sp_rename 'salary', 'emp_salary', 'COLUMN';
SELECT * FROM employee_table;
输出结果:
从输出结果可以明显看出,列名已经从salary改为emp_salary。
emp_id | emp_name | emp_address | department | emp_salary |
---|---|---|---|---|
50 | John | Washington | Sales | 25000 |
51 | Shirley | Austin | Software Testing | 50000 |
52 | Daniel | Columbus | Sales | 40000 |
53 | Anthony | Austin | Content Writing | 20000 |
54 | James | Chicago | HR | 45000 |
55 | Helen | Phoenix | Software Testing | 55000 |
56 | Nicole | Chicago | Sales | 35000 |
57 | Nick | Columbus | HR | 40000 |
58 | Peter | Phoenix | Content Writing | 25000 |
59 | Ashley | Washington | Content Writing | 35000 |
结论:
在本文中,您已经学习了如何在SQL中重命名列名。您已经了解到在不同的SQL数据库中,重命名列名的方式略有不同。您已经学习了在SQL数据库中重命名列名的不同方法,例如MySQL、Oracle、MariaDB、PostgreSQL和Microsoft SQL Server。