Lệnh ALTER TABLE trong SQLite - SQLite căn bản và nâng cao
Lệnh ALTER TABLE trong SQLite dùng để sửa đổi một bảng hiện có mà không cần thực hiện dump and reload dữ liệu. Bạn có thể sử dụng ALTER TABLE để đổi tên bảng và bổ sung thêm các cột mới vào trong bảng hiện có. Không có hoạt động nào khác được hỗ trợ bởi lệnh ALTER TABLE ...
Lệnh ALTER TABLE
trong SQLite
dùng để sửa đổi một bảng hiện có mà không cần thực hiện dump and reload dữ liệu. Bạn có thể sử dụng ALTER TABLE
để đổi tên bảng và bổ sung thêm các cột mới vào trong bảng hiện có.
Không có hoạt động nào khác được hỗ trợ bởi lệnh ALTER TABLE
trong SQLite
ngoại trừ 2 tính năng trên đó đổi tên bảng và thêm cột mới vào trong bảng hiện có.
1. Cú pháp của lệnh ALTER TABLE trong SQLite
Sau đây là cú pháp cơ bản của lệnh ALTER TABLE
trong SQLite
để đổi tên một bảng hiện có.
ALTER TABLE database_name.table_name RENAME TO new_table_name;
Sau đây là cú pháp cơ bản của lệnh ALTER TABLE
trong SQLite
để thêm một cột mới trong bảng hiện có.
ALTER TABLE database_name.table_name ADD COLUMN column_def...;
2. Ví dụ lệnh ALTER TABLE trong SQLite
Giả sử chúng ta có bảng COMPANY
có cấu trúc định nghĩa bảng sau:
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
Chúng ta dùng câu lệnh INSERT
để chèn dữ liệu vào bảng COMPANY
như sau:
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Teddy', 23, 'Norway', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (5, 'David', 27, 'Texas', 85000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (6, 'Kim', 22, 'South-Hall', 45000.00 ); INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 );
Như vậy chúng ta đã có bảng COMPANY
có các bản ghi sau:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Bây giờ, chúng ta thử đổi tên bảng này bằng cách sử dụng câu lệnh ALTER TABLE
như sau:
sqlite> ALTER TABLE COMPANY RENAME TO OLD_COMPANY;
Câu lệnh SQLite
ở trên sẽ đổi tên bảng COMPANY
thành OLD_COMPANY
. Bây giờ, hãy thử thêm một cột mới trong bảng OLD_COMPANY
như sau:
sqlite> ALTER TABLE OLD_COMPANY ADD COLUMN SEX char(1);
Bảng COMPANY
hiện đã được thay đổi và sau đây sẽ là kết quả từ câu lệnh SELECT.
ID NAME AGE ADDRESS SALARY SEX ---------- ---------- ---------- ---------- ---------- --- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Cần lưu ý rằng cột mới được thêm vào chứa các giá trị NULL.