Lệnh ALTER TABLE trong SQL Server

Thêm cột trong SQL Server bằng lệnh gì? Cách đổi tên cột trong SQL Server như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!

Nếu muốn phát triển trong ngành lập trình, bạn cần nắm được những ngôn ngữ cơ bản và thông dụng nhất hiện nay. Bên cạnh đó, các công cụ liên quan tới quản trị dữ liệu cũng cần phải biết. Nổi bật trong số đó là SQL Server.

SQL Server do Microsoft phát triển và cực kỳ nổi tiếng trong thế giới lập trình. Nó là hệ thống quản trị cơ sở dữ liệu tuyệt vời, mang tới những tính năng vô cùng hữu ích như:

  • Chèn, update, xóa các hàng trong một quan hệ dữ liệu.
  • Thoải mái chỉnh sửa đối tượng trong cơ sở dữ liệu.
  • Kiểm soát truy cập cơ sở dữ liệu.
  • Đảm bảo tính nhất quán và mối quan hệ ràng buộc của database.

Học SQL Server không khó. Về cơ bản, bạn cần nắm được các lệnh thường dùng khi sử dụng nó. Quantrimang.com sẽ tổng hợp cho bạn những kiến thức cần biết về lệnh đó. Và ở bài viết này là lệnh Alter SQL Server.

Nếu biết tiếng Anh, ắt hẳn bạn đã đoán được cách dùng lệnh này. Tuy nhiên, đó chưa phải là tất cả. Hãy cùng Quantrimang.com tìm hiểu chi tiết về cách dùng Alter trong SQL Server nhé!

Lệnh ALTER trong SQL Server được dùng để tiến hành chỉnh sửa trong một bảng hiện tại. Những thay đổi có thể thực hiện là thêm một cột, xóa một cột, thay đổi kích thước, chỉnh sửa kiểu dữ liệu, thêm hoặc loại bỏ index, thêm hoặc xóa các giới hạn trong một định nghĩa bảng. Nó cũng cho phép người dùng đổi lại tên hoặc xây dựng lại các phân vùng, vô hiệu hoặc kích hoạt giới hạn và nhiều hơn thế nữa. Dưới đây là những điều bạn cần biết về lệnh ALTER trong SQL Server.

Các hướng dẫn được thực hiện trên Microsoft SQL System Sever Management Studio 18 và SQL Server 19.

Các ví dụ trong bài viết này ta sẽ sử dụng cùng một bảng dữ liệu Quantrimang sau, được tạo bằng lệnh Create table. Để xem bảng Quantrimang trong MS SSMS bạn có thể sử dụng truy vấn Select * from Quantrimang, thay Quantrimang bằng tên bảng bạn cần xem nhé.

Dưới đây là bảng Quantrimang:

 -+-------------+--------------+-------------+-------+
 | IDChuyenmuc | Chuyenmuccon |Chuyenmuclon | Sobai |
 +-------------+--------------+-------------+-------+
 |      1      | SQL Server   |  Lap trinh  |  101  |
 |      2      | Facebook     |  Mang xa hoi|  152  |
 |      3      | Python       |  Lap trinh  |  101  |
 |      4      | JavaScript   |  Lap trinh  |  122  |
 |      5      | Chrome       |  Web        |  94   |
 |      6      | Instagram    |  Mang xa hoi|  165  |
 +-------------+--------------+-------------+-------+

Thêm cột vào bảng trong SQL Server

Cú pháp

ALTER TABLE ten_bang
  ADD ten_cot dinh_nghia_cot;

Ví dụ

ALTER TABLE Quantrimang
  ADD Luotxem FLOAT(10);

Lệnh ALTER TABLE trên đây sẽ thêm cột Luotxem vào bảng Quantrimang.

Sau khi chạy lệnh trên thì đây là kết quả của mình:

Thêm nhiều cột vào bảng trong SQL Server

Cú pháp

ALTER TABLE ten_bang
  ADD cot1 dinh_nghia_cot,
      cot2 dinh_nghia_cot,
      …
      cot_n dinh_nghia_cot;

Ví dụ

ALTER TABLE Quantrimang
  ADD Bientap VARCHAR(50),
      Trangthai VARCHAR(50);

Lệnh ALTER TABLE ở ví dụ này sẽ thêm 2 cột là Bientap với trường VARCHAR(50) và Trangthai với trường VARCHAR(50) vào bảng Quantrimang.

Ta có kết quả như sau:

Thêm nhiều cột cùng lúc vào bảng

Chỉnh sửa cột trong bảng trong SQL Server

Cú pháp

ALTER TABLE ten_bang
  ALTER COLUMN ten_cot kieu_cot;

Ví dụ

ALTER TABLE Quantrimang
  ALTER COLUMN Trangthai VARCHAR(75) NOT NULL;

Lệnh trên sẽ sửa cột Trangthai sang kiểu dữ liệu VARCHAR(75) và không chấp nhận giá trị NULL.

Xóa cột của bảng trong SQL Server

Cú pháp

ALTER TABLE ten_bang
  DROP COLUMN ten_cot;

Ví dụ

ALTER TABLE Quantrimang
  DROP COLUMN Bientap;

Lệnh ALTER TABLE trên đây sẽ xóa cột Bientap khỏi bảng Quantrimang.

Đổi tên cột của bảng trong SQL Server

Có thể dùng lệnh ALTER TABLE để đổi tên cột trong bảng. Có thể dùng sp_rename nhưng Microsoft khuyến khích xóa và tạo lại bảng để kịch bản và các quy trình lưu trữ không bị hỏng.

Cú pháp

sp_rename 'ten_bang.ten_cot_cu', 'ten_cot_moi', 'COLUMN';

Ví dụ

sp_rename 'Quantrimang.Chuyenmuccon', 'Muccon','COLUMN';

Ví dụ này sử dụng sp_rename để đổi tên cột Chuyenmuccon trong bảng Quantrimang thành Muccon.

Đổi tên bảng trong SQL Server

Không thể dùng lệnh ALTER TABLE để đổi tên bảng trong SQL Server. Dù vậy bạn có thể dùng sp_rename, nhưng Microsoft khuyến khích xóa và tạo lại bảng để kịch bản và các quy trình lưu trữ không bị hỏng.

Cú pháp

sp_rename ‘ten_bang_cu’, ‘ten_bang_moi’;

Ví dụ

sp_rename 'Quantrimang','Quantrimang.com';

Lệnh này đổi tên bảng Quantrimang thành Quantrimang.com.

Thêm chỉ mục

Bạn có thể thêm chỉ mục vào cột hiện tại của bảng bằng lệnh ADD INDEX cùng với lệnh sửa côt SQL ALTER.

ALTER TABLE table_name ADD INDEX index_name [index_type] (key_part,...) [index_option] .

Ví dụ:

+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| Name     | varchar(255) | YES  |     | NULL    |       |
| Salary   | int          | NO   |     | NULL    |       |
| Location | varchar(255) | YES  |     | NULL    |       |
| Address  | varchar(50)  | YES  |     | NULL    |       |
| Phone    | int          | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
5 rows in set (0.15 sec)

Truy vấn sau thêm chỉ mục vào cột Name và Salary:

ALTER TABLE Employee ADD INDEX sample_index (Name, Salary);

Kết quả:

Kết quả sẽ được hiện như sau:

(0 rows affected)

Xác minh:

Bạn có thể xác minh các chỉ số của bảng bằng lệnh EXEC sp_helpindex như bên dưới. Nó tương đương với lệnh SHOW INDEX trong MySQL.

EXEC sp_helpindex Employee;

Giờ cấu trúc của các index được chỉnh sửa trong bảng sẽ hiện như bên dưới:

+----------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| Table    | Non_unique | Key_name     | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | Expression |
+----------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| employee | 1          | sample_index | 1            | Name        | A         | 0           | NULL     | NULL   | YES  | BTREE      |         |               | YES     | NULL       |
| employee | 1          | sample_index | 2            | Salary      | A         | 0           | NULL     | NULL   |      | BTREE      |         |               | YES     | NULL       |
+----------+------------+--------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
2 rows in set (0.32 sec)

Thêm khóa chính

Sau đây là cú pháp thêm khóa chính trên bảng hiện tại của database:

ALTER TABLE table_name ADD CONSTRAINT MyPrimaryKey PRIMARY KEY (column1, column2...);

Ví dụ:

Tạo một cột ID được đặt tên trong bảng Employee:

ALTER TABLE Employee ADD COLUMN ID INT FIRST;

Kết quả:

(0 rows affected)

Truy vấn sau tạo một khóa chính trên cột ID:

ALTER TABLE Employee ADD CONSTRAINT MyPrimaryKey PRIMARY KEY(ID);

Kết quả:

(0 rows affected)

Xác minh:

Để xác minh truy vấn trên khi bạn mô tả bảng bằng lệnh EXEC sp_help, bạn có thể quan sát PRI dựa trên trường ID trong cột Key:

EXEC sp_help employee;

Kết quả:

+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| ID       | int          | NO   | PRI | NULL    |       |
| Name     | varchar(255) | YES  | MUL | NULL    |       |
| Salary   | int          | NO   |     | NULL    |       |
| Location | varchar(255) | YES  |     | NULL    |       |
| Address  | varchar(50)  | YES  |     | NULL    |       |
| Phone    | int          | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

Bài trước: Khóa chính PRIMARY KEY trong SQL Server

Bài sau: Lệnh DROP TABLE trong SQL Server

Thứ Hai, 11/09/2023 17:15
3,713 👨 222.264
0 Bình luận
Sắp xếp theo
    ❖ SQL Server