25/05/2018, 08:36

Cập nhật dữ liệu

Nhập dữ liệu trực tiếp từ câu lệnh Câu lênh INSERT ..... VALUES. INSERT INTO TableName ( col_1, col_2,...) VALUES (val_1, val_2) Trong đó, danh sách cột cho biét các giá trị tương ...

Nhập dữ liệu trực tiếp từ câu lệnh

Câu lênh INSERT ..... VALUES.

INSERT INTO TableName

( col_1, col_2,...)

VALUES (val_1, val_2)

Trong đó, danh sách cột cho biét các giá trị tương ứng được chèn vào cột nào, cột nào bị bỏ qua...

Thành phần INTO có thể bỏ qua. Tuy nhiên nếu viết thì dễ đọc hơn.

Ví dụ câu lệnh sau để thêm một khách hàng mới - một dòng mới vào bảng CUSTOMER (Name, Address, Phone) nhưng ta chưa biét địa chỉ.

insert into customers

(Name, Phone)

values ("Caitlin Wynkoop", "520-555-1212")

Các trường hợp :

- Nếu không có danh sách cột thì được hiểu là mọi cột theo đúng thứ tự vốn có trong bảng. Các giá trị trong danh sách gía trị sẽ được thêm tuân tự cho cột thứ nhất, cột thứ 2, ...

insert into customers

values ("Caitlin Wynkoop","123 West St.", "520-555-1212")

- Có thể thay danh sách giá trị bằng DEFAULT. Lúc này sẽ thêm một dòng mới với các giá trị mặc định được định nghĩa khi tạo bảng.

Nhập dữ liệu từ bảng khác.

Câu lệnh INSERT .... SELECT

INSERT INTO DestTableName

( col_1, col_2,...)

SELECT c1, c2, ...

FROM SourceTableName

WHERE Condition

Một số Hệ quan trị CSDL cho phép tạo bảng tạm. Bảng tạm sẽ tự động bị xoá khi két nối kết thúc. Ta đã biét rằng các câu lệnh truy vấn thông tin thường phải nối nhiều bảng. Qúa trình này mất thì giờ. Nếu có nhiều câu truy vấn khác nhau cần nối nhiều bảng thì việc tạo bảng tạm thời một lần sẽ làm tăng tốc độ xử lí.

UPDATE TableName

SET col_1 = val_1, col_2 = val_2 ...

WHERE Condition

update employees

set department = 'SALES', badge = 1232

where name = 'Bob Smith'

Các giá trị vế phải có thể là biểu thức, nhưng phải đảm bảo phù hợp kiểu dữ liệu

Nếu kích thước quá dài sẽ bị cắt đi.

Có thẻ lỗi Overflow nếu giá trị vượt ra ngoài phạm vi hợp lệ.

Nếu không có điều khoản Where thì nghĩa là Update mọi dòng của bảng.

Có thể xoá một dòng, nhiều dòng, mọi dòng

Không thể xoá chỉ một vài cột ( phải Update)

DELETE FROM TableName

WHERE Condition

Thành phần FROM là tuỳ chọn, có thể bỏ qua.

Ví dụ. Xoá hết các dòng liên quan đến department 'SALES'

delete from employees

where department = 'SALES'

Lưu ý : cũng giống như câu lệnh Update, nếu thiếu điều khoản Where thì mọi dòng bị xoá. Vậy hãy thận trọng.

Nếu muốn xoá mọi dòng của bảng trong các xử lí nhưng bảng vẫn giữ nguyên thì có thể dùng câu lệnh TRUNCAT

TRUNCATE TableName

Câu lệnh DELETE TableName chỉ xoá nội dung mọi dòng, khung bảng vẫn còn. Muốn xoá hẳn bảng cần dùng lệnh DROP TableName.

0