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ó.
Bài viết này được đăng tại [kiso.vn]
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.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Cú pháp của lệnh ALTER TABLE trong SQLite2....
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Cú pháp của lệnh ALTER TABLE trong SQLite2. Ví dụ lệnh ALTER TABLE trong SQLite1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux như...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Cú pháp của lệnh ALTER TABLE trong SQLite2. Ví dụ lệnh ALTER TABLE trong SQLiteV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi trang...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Cú pháp của lệnh ALTER TABLE trong SQLite2. Ví dụ lệnh ALTER TABLE trong SQLiteV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi sử...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Cú pháp của lệnh ALTER TABLE trong SQLite2. Ví dụ lệnh ALTER TABLE trong SQLiteIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau, điểm...