Truy vấn INSERT - DELETE - UPDATE trong mysql


tự học mysql 11/09/2015 Cùng chuyên mục

Tìm hiểu các lệnh truy vấn thêm dữ liệu vào bảng INSERT - xóa dữ liệu DELETE - cập nhật dữ liệu UPDATE...

Ở bài trước, các bạn đã tìm hiểu về cách tạo một cơ sở dữ liệu - tạo một bảng trong mysql. Công việc mang tính chất tạo dựng "khung nền - cấu trúc" đã xong. Bài này, các bạn tìm hiểu các thao tác thêm dữ liệu - xóa dữ liệu - cập nhật dữ liệu trong mysql ( * cơ sở dữ liệu và bảng lấy từ bài trước làm ví dụ)

CHÈN DỮ LIỆU VÀO BẢNG

Chèn từng dòng (single row insert)

Cú pháp:

INSERT INTO <tên bảng> [<danh sách các thuộc tính>] VALUES (<danh sách giá trị>);

Khi thực hiện lệnh này - hệ thống sẽ lưu dữ liệu mới vào bảng - nghĩa là tạo thêm một dòng mới trong bảng.
(*) - Bạn cần ghi nhớ vị trí các thuộc tính để đưa giá trị vào cho phù hợp, không quên lựa chọn cơ sở dữ liệu làm việc trước mọi thao tác khác.

Thực hành tuần tự các bước sau:
Bước 1: Lựa chọn cơ sở dữ liệu làm việc - dùng lệnh USE <database name>;
Bước 2: (tùy chọn) nếu không thật nhớ rõ cấu trúc bảng đã tạo, xem cấu trúc bảng đã tạo bằng lệnh
SHOW CREATE TABLE <tên bảng>
Bước 3: Thực hành thêm dữ liệu vào bảng - kết quả thành công: Query OK, 1 row affected

//chọn cơ sở dữ liệu làm việc
USE my_db;
//xem cấu trúc bảng
SHOW CREATE TABLE teacher;
//chèn dữ liệu vào bảng teacher
INSERT INTO teacher (teacher_name, teacher_birth) VALUES ('Nguyễn Văn C','1990-10-20');
//chèn dữ liệu vào bảng student
INSERT INTO student(teacher,student_name, student_birth) VALUES (1,'Nguyễn Văn A','2003-08-18');

(*) - thuộc tính khóa ngoại (foreign key) ở bảng tham chiếu phải tồn tại thì ở bảng có quan hệ mới chèn dữ liệu được - xét bảng student: một học sinh phải có giáo viên chủ nhiệm
(*) - khóa chính (primary key) của 2 bảng trên không cần phải thêm dữ liệu - vì đã đặt thuộc tính AUTO_INCREMENT ( hệ thống tự động thêm dữ liệu ) - các thuộc tính đặt ràng buộc NOT NULL nếu không chèn dữ liệu vào sẽ báo lỗi.
(*) - các thao tác chèn - xóa - sửa các giá trị đưa vào phải đúng định dạng dữ liệu - kiểu số không dùng dấu '' , kiểu chuỗi và datetime dùng dấu '' hoặc `` , kiểu datime phải đúng định dạng 'YYYY-MM-DD' - có thể bỏ trống 'HH:MM:SS'

Chèn nhiều dòng ( multiple row insert)

Cú pháp:

INSERT INTO <tên bảng> [<danh sách các thuộc tính>] VALUES (<danh sách giá trị 1>), (<danh sách giá trị 2>),....  (<danh sách giá trị n);

Ví dụ: chèn 2 dòng dữ liệu vào bảng student

INSERT INTO student(teacher,student_name, student_birth) 
VALUES (1,'Nguyễn Văn C','2003-06-18'),(1,'Nguyễn Văn D','2003-07-18');

Kết quả thành công: Query OK, 2 row affected

Xóa dữ liệu

Ở câu lệnh xóa hay cập nhật dữ liệu, bạn sẽ dùng tới biểu thức điều kiện trong phát biểu WHERE - trong đó biểu thức điều kiện là các biểu thức logic như a<b; a<[một giá trị], a != [một giá trị],...
Cú pháp:

DELETE FROM <tên bảng> [WHERE <điều kiện>];

Nếu phần điều kiện WHERE <điều kiện> bở trống - sẽ xóa tất cả các dòng trong bảng - nếu đặt điều kiện sau phát biểu WHERE, chỉ xóa dòng thỏa điều kiện - trả ra kết quả 0 row affected nếu như không có dòng nào thỏa điều kiện.

Ví dụ: Xóa dòng dữ liệu trong bảng student - có student_name là 'Nguyễn Văn D'

DELETE FROM student WHERE student_name = 'Nguyễn Văn D';

Cập nhật dữ liệu

Thay đổi giá trị cho các thuộc tính trong bảng (nhận giá trị mới) - với các dòng thỏa điều kiện - nếu bỏ điều kiện (sẽ cập nhật cho cả bảng).
Cú pháp:

UPDATE <tên bảng>
SET <tên thuộc tính> = <giá trị mới>,
	<tên thuộc tính> = <giá trị mới>,
	...
	[WHERE <điều kiện>]

Ví dụ: Cập nhật cho bảng, tới dòng có student_name ='Nguyễn Văn C', sửa giá trị student_name thành 'Nguyễn Văn Công'

UPDATE student
SET student_name = 'Nguyễn Văn Công'
WHERE student_name = 'Nguyễn Văn C';

Tổng kết

Sau bài này các bạn nắm được thao tác trên "row - dòng dữ liệu" đối với bảng, bài trước hình thành khung nền cấu trúc, bài này đổ dữ liệu và chỉnh sửa chúng => đã thành hình. Bài kế tiếp, để hoàn chỉnh phần truy vấn mysql cơ bản - các bạn sẽ tìm hiểu truy vấn SELECT đùng để lấy dữ liệu (lấy kết quả theo điều kiện). 




Bình luận:


cơ sở dữ liệu mysql