Bài viết này sẽ chỉ ra cách thay đổi kiểu dữ liệu của các cột trong SQL Server 2019, MySQL Server và PostgreSQL.
Bạn đang xem : sql cách thay đổi kiểu dữ liệu
Bài viết này đề cập đến các truy vấn SQL khác nhau để thay đổi kiểu cột. Chúng ta sẽ tìm hiểu cách chúng ta có thể thay đổi kiểu dữ liệu của các cột của cơ sở dữ liệu sau:
- SQL Server 2019
- Máy chủ MySQL
- PostgreSQL
Truy vấn SQL để thay đổi loại cột trong cơ sở dữ liệu SQL Server
Chúng ta có thể sử dụng câu lệnh ALTER TABLE ALTER COLUMN để thay đổi loại cột của bảng. Cú pháp để
thay đổi loại cột như sau:
1
ALTER
BẢNG < / p>
[
tbl_name
]
ALTER
CỘT
[
col_name_1
]
[
DATA_TYPE < / p>
]
Trong cú pháp,
- Tbl_name: Chỉ định tên bảng
- Col_name: Chỉ định tên cột có kiểu dữ liệu bạn muốn thay đổi. Col_name phải được chỉ định sau từ khóa ALTER COLUMN
- Kiểu dữ liệu: Chỉ định kiểu dữ liệu mới và độ dài của cột
Để minh họa, tôi đã tạo một bảng có tên tblStudent.
1
2
3
4
5
6
7
8
9
10
11
12
TẠO
p>
BẢNG
[
dbo
]
.
[
tblstudent
]
(
[
id
]
[
INT
]
p >
BẢN SẮC
(
1
,
1
)
KHÔNG
NULL
,
p>
[
student_code
]
[
VARCHAR
]
(
20
)
p>
KHÔNG
KHÔNG ĐỦ
,
p>
[
student_firstname
]
[
VARCHAR
]
(
250
)
KHÔNG
KHÔNG ĐỦ
,
[
student_lastname
< p class = "crayon-sy">]
[
VARCHAR
]
(
10
)
< p class = "crayon-h">
KHÔNG
KHÔNG CÓ
,
< p class = "crayon-h">
[
địa chỉ
]
[
VARCHAR p>
]
(
max
)
NULL
,
[
city_code
]
[
VARCHAR
]
(
20
)
< p class = "crayon-h">
KHÔNG
KHÔNG ĐỦ
,
< p class = "crayon-h">
[
school_code
]
[
VARCHAR p>
]
(
20
)
NULL
,
[
tuyển sinh
]
[
DATETIME
]
KHÔNG ĐỦ
,
CONSTRAINT
[
PK_ID
]
CHÍNH
KEY
ĐÃ ĐIỀU CHỈNH p>
(
[
id
]
ASC
)
p>
)
Giả sử bạn muốn thay đổi kiểu dữ liệu của [address] từ varchar (max) thành nvarchar (1500). Chạy truy vấn sau
để thay đổi loại cột.
1
Alter
p>
bảng
tblstudent
alter
cột
địa chỉ
nvarchar
(
1500
)
Xác minh các thay đổi bằng cách chạy tập lệnh sau.
1
2
3
4
sử dụng
p>
StudentDB
go
chọn p >
TABLE_SCHEMA
,
TABLE_NAME
,
COLUMN_NAME
,
DATA_TYPE
,
CHARACTER_MAXIMUM_LENGTH
từ
INFORMATION_SCHEMA
.
CỘT
đâu p>
table_name
=
‘tblStudent’
Như bạn có thể thấy, kiểu dữ liệu cột đã được thay đổi.
Lưu ý Quan trọng:
- Khi chúng ta giảm kích thước của cột, SQL Server sẽ kiểm tra dữ liệu của bảng và nếu độ dài của dữ liệu cao hơn độ dài mới, nó sẽ trả về cảnh báo và kết thúc câu lệnh
- Khi bạn thay đổi kiểu dữ liệu từ nvarchar thành varchar và cột chứa chuỗi Unicode, thì SQL Server trả về lỗi và kết thúc câu lệnh
- Không giống như MySQL, kiểu dữ liệu thay đổi của nhiều cột không được phép
-
Bạn không thể thêm
- Ràng buộc NOT NULL nếu cột chứa các giá trị NULL
- Ràng buộc DUY NHẤT nếu cột có giá trị trùng lặp
Truy vấn SQL để thay đổi loại cột trong MySQL Server
Chúng ta có thể sử dụng câu lệnh ALTER TABLE MODIFY COLUMN để thay đổi kiểu dữ liệu của cột. Cú pháp để
thay đổi kiểu dữ liệu của cột đang theo sau.
1
2
3
ALTER
p>
BẢNG
[
tbl_name
]
SỬA ĐỔI
CỘT
[
col_name_1
]
[
DATA_TYPE
] p>
,
SỬA CHỮA
p >
[
col_name_2
]
[
data_type
]
,
SỬA CHỮA
[
col_name_3
]
[
data_type
< p class = "crayon-sy">]
Trong cú pháp,
- Tbl_name: Chỉ định tên bảng có chứa cột mà bạn muốn thay đổi
- Col_name: Chỉ định tên cột có kiểu dữ liệu bạn muốn thay đổi. Tên cột phải được chỉ định sau từ khóa MODIFY COLUMN. Chúng ta có thể thay đổi kiểu dữ liệu của nhiều cột. Khi chúng ta thay đổi kiểu dữ liệu của nhiều cột, mỗi cột phải được phân tách bằng dấu phẩy (,)
- Kiểu dữ liệu: Chỉ định kiểu dữ liệu mới và độ dài của cột. Kiểu dữ liệu phải được chỉ định sau tên cột
Để minh họa, tôi đã tạo một bảng có tên tblactor trong DemoDatabase. Mã để tạo bảng như sau
1
2
3
4
5
6
7
8
9
tạo
p>
bảng
tblactor
( p>
Actor_id
int
, p>
first_name
varchar
( p>
500
)
,
p >
p >
first_name
varchar
(
500
)
,
địa chỉ p>
varchar
(
500
)
,
CityID
int
,
cập nhật cuối cùng
datetime
)
Bây giờ, chúng ta hãy hiểu khái niệm này bằng cách sử dụng một vài ví dụ.
Ví dụ 1: Truy vấn SQL để thay đổi kiểu dữ liệu của một cột
Chúng tôi muốn thay đổi kiểu cột của cột địa chỉ từ varchar (500) thành kiểu dữ liệu TEXT. Chạy truy vấn sau để thay đổi kiểu dữ liệu.
1
mysql
& gt;
ALTER
BẢNG
tblActor
SỬA CHỮA
address
TEXT
Chạy truy vấn sau để xác minh các thay đổi:
1
mysql
& gt;
mô tả
tblactor
Như bạn có thể thấy, loại dữ liệu của cột địa chỉ đã được thay đổi thành TEXT .
Ví dụ 2: Truy vấn SQL để thay đổi kiểu dữ liệu của nhiều cột
Chúng ta có thể thay đổi kiểu dữ liệu của nhiều cột trong bảng. Trong ví dụ của chúng tôi, chúng tôi muốn thay đổi loại cột của first_name và last_name. Kiểu dữ liệu mới của các cột là varchar (200).
1
mysql
& gt;
ALTER
BẢNG
tblActor
SỬA CHỮA
first_name
TINYTEXT
,
p >
sửa đổi
last_name
TINYTEXT
;
Chạy truy vấn sau để xác minh các thay đổi:
1
mysql
& gt;
mô tả
tblActor
Như bạn có thể thấy, kiểu dữ liệu của cột first_name và last_name đã được thay đổi thành TINYTEXT.
Ví dụ 3: Đổi tên cột trong MySQL Server
Để đổi tên các cột, chúng ta phải sử dụng câu lệnh ALTER TABLE CHANGE COLUMN . Giả sử bạn muốn đổi tên cột CityID thành CityCode , bạn phải thực hiện truy vấn sau.
1
mysql
& gt;
ALTER
BẢNG
tblActor
THAY ĐỔI
CỘT
CityID
Mã thành phố
int
Chạy lệnh description để xem những thay đổi trong cấu trúc bảng.
Như bạn có thể thấy, tên cột đã được thay đổi.
Truy vấn SQL để thay đổi kiểu cột trong cơ sở dữ liệu PostgreSQL
Chúng ta có thể sử dụng câu lệnh ALTER TABLE ALTER COLUMN để thay đổi kiểu dữ liệu của cột. Cú pháp để thay đổi kiểu dữ liệu của cột như sau.
1
2
3
ALTER
p>
BẢNG
[
tbl_name
]
ALTER
CỘT
[
col_name_1
]
LOẠI
[ p >
DATA_TYPE
]
,
ALTER p>
CỘT
[
col_name_2
]
LOẠI
[ p >
data_type
]
,
ALTER p>
CỘT
[
col_name_3
]
LOẠI
[
data_type
]
Trong cú pháp,
- Tbl_name: Chỉ định tên bảng có chứa cột mà bạn muốn thay đổi
- Col_name: Chỉ định tên cột có kiểu dữ liệu bạn muốn thay đổi. Tên cột phải được chỉ định sau từ khóa ALTER COLUMN. Chúng ta có thể thay đổi kiểu dữ liệu của nhiều cột
- Kiểu dữ liệu: Chỉ định kiểu dữ liệu mới và độ dài của cột. Loại dữ liệu phải được chỉ định sau từ khóa TYPE
Để minh họa, tôi đã tạo một bảng có tên tblmovies trong DemoDatabase. Mã để
tạo bảng như sau.
1
2
3
4
5
6
7
8
9
10
tạo
p>
bảng
tblmovies
( p>
movie_id
int
, p>
Movie_Title
varchar
( p>
500
)
,
p >
< / p>
Movie_director
TEXT
,
< / p>
Movie_Productioner
TEXT
,
< / p>
duraion
int
,
< / p>
Chứng chỉ
varchar
(
5
)
,
thuê
số < / p>
(
10
,
2
)
)
Bây giờ, chúng ta hãy hiểu khái niệm này bằng cách sử dụng một vài ví dụ.
Ví dụ 1: Truy vấn SQL để thay đổi kiểu dữ liệu của một cột
Chúng tôi muốn thay đổi kiểu cột của cột movie_id từ int4 thành kiểu dữ liệu int8 . Chạy truy vấn sau để thay đổi kiểu dữ liệu.
1
ALTER
p>
BẢNG
tblmovies
ALTER
COLUMN
movie_id
LOẠI
LỚN
Chạy truy vấn sau để xác minh các thay đổi:
1
2
3
4
5
6
7
8
9
10
CHỌN
p>
table_catalog
,
table_name
,
< p class = "crayon-i"> column_name
,
udt_name
< p class = "crayon-sy">,
character_maximum_length
TỪ
information_schema
.
cột
WHERE
table_name
=
< p class = "crayon-s"> ‘tblmovies’
;
Như bạn có thể thấy, loại dữ liệu của cột movie_id đã được thay đổi thành int8 .
Ví dụ 2: Truy vấn SQL để thay đổi kiểu dữ liệu của nhiều cột
Chúng ta có thể thay đổi kiểu dữ liệu của nhiều cột trong bảng. Trong ví dụ của chúng tôi, chúng tôi muốn thay đổi loại cột của movie_title và movie_director . Loại dữ liệu mới của các cột movie_title là TEXT và mới
loại dữ liệu của movie_producer là varchar (2000).
1
ALTER
p>
BẢNG
tblmovies
ALTER
COLUMN
movie_title
LOẠI
văn bản
,
ALTER
< p class = "crayon-k"> CỘT
movie_producer
LOẠI
varchar p >
(
2000
)
;
Chạy truy vấn sau để xác minh các thay đổi:
1
2
3
4
5
6
7
8
9
10
CHỌN
p>
table_catalog
,
table_name
,
< p class = "crayon-i"> column_name
,
udt_name
< p class = "crayon-sy">,
character_maximum_length
TỪ
information_schema
.
cột
WHERE
table_name
=
< p class = "crayon-s"> ‘tblmovies’
;
Như bạn có thể thấy, kiểu dữ liệu của cột movie_title là TEXT và kiểu dữ liệu của movie_producer là varchar (2000).
Tóm tắt
Trong bài viết này, chúng ta đã tìm hiểu cách thay đổi kiểu dữ liệu của các cột trong SQL Server 2019, MySQL Server và PostgreSQL.
Xem thêm những thông tin liên quan đến chủ đề sql cách thay đổi kiểu dữ liệu
Hướng dẫn lưu thay đổi các cột của bảng trong SQLServer.
- Tác giả: thân triệu
- Ngày đăng: 2017-11-30
- Đánh giá: 4 ⭐ ( 8390 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Hướng dẫn thực hiện cho phép lưu lại thay đổi nội dung các thuộc tính, kiểu dữ liệu sau khi sửa đổi và tạo bảng. sửa lỗi saving changes is not permitted. the changes you have made…
Các kiểu dữ liệu trong SQL
- Tác giả: nq.com.vn
- Đánh giá: 4 ⭐ ( 1891 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Sửa đổi kiểu dữ liệu hoặc kích thước của cột trong SQL Server
- Tác giả: kcntt.duytan.edu.vn
- Đánh giá: 5 ⭐ ( 9226 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Cú pháp:
ALTER TABLE table_name
ALTER COLUMN ColName DataType [(p [, s])] [NULL| NOT NULL]
Ví dụ: Sửa lại kích thước cột tên nhân viên (Name) thành 25 ký tự
ALTER TABLE NhanVien ALTER COLUMN HoTenNV char(25)
Chú ý: Không thể sửa cột:
– Có kiểu…
MySQL thay đổi kiểu dữ liệu của cột trên bảng
- Tác giả: www.codehub.com.vn
- Đánh giá: 4 ⭐ ( 7632 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Em có một cơ sở dữ liệu MySQL với một bảng tên là oc_products và trên bảng oc_products này đang dùng một cột có tên là price với dữ liệu là INT(11) để lưu giá của s…
Các kiểu dữ liệu trong SQL và những thông tin cần biết
- Tác giả: bizflycloud.vn
- Đánh giá: 4 ⭐ ( 3517 lượt đánh giá )
- Khớp với kết quả tìm kiếm: SQL Server đang dần trở nên ưa chuộng bởi người dùng trong công nghệ hiện nay. Vì vậy hãy cùng Bizfly Cloud tìm hiểu về các kiểu dữ liệu trong SQL qua bài viết này nhé!
Thay Đổi Kiểu Dữ Liệu Trong Sql Server? Lệnh Alter Table Trong Sql Server
- Tác giả: jdomain.vn
- Đánh giá: 5 ⭐ ( 8929 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Dẫn nhậpTrong bài lần trước, chúng ta đã tìm hiểu các KHỞI TẠO DATABASE TRONG SQL và một số lưu ý liên quan trong quá trình sử dụngSQL MANAGEMENT STUDIO, Trong bài này, Kteam sẽ hướng dẫn bạn thao tác TẠO, XÓA, SỬA TABLE TRONG SQL
[SQLSERVER] Hướng dẫn chuyển đổi định dạng kiểu Date Time
- Tác giả: laptrinhvb.net
- Đánh giá: 5 ⭐ ( 8101 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Trong bài viết hôm nay, mình sẽ giới thiệu đến các bạn hàm
Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình