Số sánh hai cú pháp của câu lệnh insert trong mysql
Câu lệnh INSERT trong MySQL được sử dụng để chèn dữ liệu vào bảng. Show
Nội dung chính
Cú phápCú pháp SQL cơ bản của lệnh INSERT INTO để chèn dữ liệu vào trong bảng MySQL là: INSERT INTO ten_bang(ten_truong_1, ten_truong_2, ... ten_truong_n) VALUES (gia_tri_1, gia_tri_2, ... gia_tri_n); Bạn có thể không cần phải chỉ rõ tên cột trong truy vấn SQL nếu bạn đang thêm các giá trị cho tất cả các cột của bảng. Nhưng hãy chắc chắn thứ tự của các giá trị theo thứ tự như các cột trong bảng. Cú pháp như sau: INSERT INTO ten_bang VALUES (gia_tri_1, gia_tri_2, ... gia_tri_n); Ví dụ chèn dữ liệu vào bảng trong MySQLVí dụ 1 insert dữ liệu vào bảngĐoạn mã sau đây là một ví dụ, tạo ra một bảng CUSTOMERS với một ID như một khóa chính và NOT NULL là những ràng buộc cho thấy các trường này không thể là NULL trong khi tạo các bản ghi trong bảng này: CREATE TABLE CUSTOMERS ( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) ); Các câu lệnh sau sẽ tạo ra sáu bản ghi trong bảng CUSTOMERS: INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Ha Anh', 32, 'Da Nang', 2000.00 ); INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Van Ha', 25, 'Ha Noi', 1500.00 ); INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Vu Bang', 23, 'Vinh', 2000.00 ); INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Thu Minh', 25, 'Ha Noi', 6500.00 ); INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (5, 'Hai An', 27, 'Ha Noi', 8500.00 ); INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (6, 'Hoang', 22, 'Ha Noi', 4500.00 ); Bạn có thể tạo một bản ghi trong bảng CUSTOMERS bằng cách sử dụng cú pháp thứ hai như hình dưới đây. INSERT INTO CUSTOMERS VALUES (7, 'Binh', 24, 'Ha Noi', 10000.00 ); Tất cả các câu lệnh trên sẽ tạo ra các bản ghi sau trong bảng CUSTOMERS như hình dưới đây. Kết quả: Ví dụ 2 insert dữ liệu vào bảng với trường primary key tự động tăngSử dụng câu lệnh tạo bảng trong MySQL: CREATE TABLE nhanvien ( manv INT NOT NULL AUTO_INCREMENT, hoten VARCHAR(50) NOT NULL, ngaysinh DATETIME NULL, dienthoai VARCHAR(11) NULL, hsluong DECIMAL(3, 2), PRIMARY KEY (manv) ); Dưới đây là ví dụ minh họa việc sử dụng lệnh INSERT INTO để chèn dữ liệu vào trong bảng nhanvien. INSERT INTO nhanvien (hoten, ngaysinh, dienthoai, hsluong) VALUES ('Trịnh Bá Đạo', '1997-10-15 00:00:00', '0989898966', 1.2); INSERT INTO nhanvien (hoten, ngaysinh, dienthoai, hsluong) VALUES ('Phan Văn Vinh', '1990-03-04 00:00:00', '0989898967', 1.8); INSERT INTO nhanvien (hoten, ngaysinh, dienthoai, hsluong) VALUES ('Đào Van Hoa', '1990-03-05 00:00:00', '0989898968', 1.9); Trong ví dụ trên, mình đã không cung cấp mssv bởi vì tại thời điểm tạo bảng này, mình đã cung cấp tùy chọn AUTO_INCREMENT cho trường này. Vì thế, MySQL sẽ xử lý việc chèn các mssv của nó một cách tự động. Sử dụng câu lệnh SELECT để xem dữ liệu của bảng nhanvien: Kết quả: Trong bài này ta sẽ học lệnh Insert trong MySQL, đây là lệnh dùng để thêm dữ liệu vào các table. Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. Trải qua 10 bài vừa rồi quả là hơi căng thẳng nhỉ? Để giải tỏa tâm lý cho các bạn
thì trong bài này chúng ta sẽ tìm hiểu một lệnh rất quan trọng và rất đơn giản đó là lệnh 1. Lệnh INSERT trong MySQLTrước khi vào tìm hiểu lệnh INSERT thì ta cần tạo database, tạo table đã nhé. Giả sử tôi tạo database tên CREATE DATABASE IF NOT EXISTS qlsv; USE qlsv; CREATE TABLE IF NOT EXISTS sinhvien( sv_id INT(11) NOT NULL AUTO_INCREMENT, sv_name VARCHAR(255) NOT NULL, sv_description VARCHAR(500), CONSTRAINT pk_sinhvien PRIMARY KEY(sv_id) ) ENGINE = InnoDB Hình minh họa: Bài viết này được đăng tại [free tuts .net] Thực ra thì Cú pháp 1: Khai báo rõ tên columnINSERT INTO table_name(field1, field2, field2, ..., fieldn) VALUES('field1', 'field2', 'field3', ...,'fieldn') Khi sử dụng cú pháp này thì các field ở vị trí nào sẽ tương ứng với vị trí của nó ở
Ví dụ: INSERT INTO sinhvien(sv_name, sv_description) VALUES ('Nguyen van cuong', 'Sinh vien dai hoc'); Vì Cú pháp 2: Không khai báo rõ tên columnINSERT INTO table_name VALUES ('field_1', 'field_2', ..., 'field_n'); Trong trường hợp này thì bạn bắt buộc phải truyền cho tất cả các column, ví dụ bạn có 10 column thì bạn phải truyền cho cả 20, nếu không sẽ báo lỗi ngay. Ví dụ: INSERT INTO sinhvien VALUES ('2', 'Nguyen van Kinh', 'Hoc sinh trung hoc'); Các bạn thấy tuy là khóa chính và tăng tự động nhưng vẫn phải truyền value cho nó, điều này khác hoàn toàn với cách trên. 2. Insert có khóa ngoại (Primary Key)Bây giờ bạn xóa database mà ta demo ở trên
để làm lại database khác. Giả sử ta có bảng SINHVIEN và bảng LOP, trong đó SINHVIEN sẽ là con của bảng LOP. Vây ta cần tạo hai bảng này và thêm khóa chính CREATE DATABASE IF NOT EXISTS qlsv; USE qlsv; CREATE TABLE IF NOT EXISTS lop( lop_id INT(11) NOT NULL AUTO_INCREMENT, lop_name VARCHAR(255) NOT NULL, CONSTRAINT pk_lop PRIMARY KEY(lop_id) ) ENGINE = INNODB; CREATE TABLE IF NOT EXISTS sinhvien( sv_id INT(11) NOT NULL AUTO_INCREMENT, sv_name VARCHAR(255) NOT NULL, sv_description VARCHAR(500), lop_id INT(11) NOT NULL, CONSTRAINT pk_sinhvien PRIMARY KEY(sv_id), CONSTRAINT fk_sinhvien_lop FOREIGN KEY (lop_id) REFERENCES lop(lop_id) ) ENGINE = INNODB; Hình minh họa: Trong trường hợp
Áp dụng hai lưu ý trên thì vấn đề thêm dữ liệu quá đơn giản. Ví dụ: Thêm dữ liệu bảng INSERT INTO lop(lop_name) VALUES('CNTT'); INSERT INTO lop(lop_name) VALUES('SPTIN') Sau
khi Ok, INSERT INTO sinhvien(sv_name, sv_description, lop_id) VALUES ('Nguyen Van Cuong', 'Hoc sinh guong mau', 1) Chạy câu truy vấn này thì thêm thành công. Nhưng giờ giả sử bạn đổi giá trị của lop_id sang số 4 thử xem? Chạy sẽ bị lỗi tại vì 3. Một số vấn đề khácBây giờ ta tìm hiểu một số vấn đề khác hơi râu ria một chút như sau:
Ví dụ: INSERT INTO sinhvien(sv_name, sv_description, lop_id) VALUES ('Nguyen Van Cuong', 'Hoc sinh guong mau 'nhat lop' ', 1) 4. Lời kếtHè hè, ở trên mình nói bài này
khá đơn giản nhưng đọc vào hơi điên đầu phải không nào :D, các bạn bị lừa rồi đấy nhé. Nếu cảm thấy tức tối khi bị lừa thì hãy chờ bài tiếp theo chúng ta sẽ tìm hiểu một lệnh khác cũng khá đơn giản để bù đắp lỗi lầm của mình đó là lệnh |