CHÈN MySQL

Câu lệnh MySQL INSERT được sử dụng để lưu trữ hoặc thêm dữ liệu trong bảng MySQL trong cơ sở dữ liệu. Chúng ta có thể thực hiện chèn bản ghi theo hai cách bằng một truy vấn duy nhất trong MySQL

  1. Chèn bản ghi vào một hàng
  2. Chèn bản ghi vào nhiều hàng

cú pháp

Dưới đây là cú pháp chung của lệnh SQL INSERT INTO để chèn một bản ghi vào bảng MySQL

Trong cú pháp trên, trước tiên chúng ta phải chỉ định tên bảng và danh sách các cột được phân tách bằng dấu phẩy. Thứ hai, chúng tôi cung cấp danh sách các giá trị tương ứng với tên cột sau mệnh đề VALUES

GHI CHÚ. Tên trường là tùy chọn. Nếu chúng tôi muốn chỉ định các giá trị một phần, tên trường là bắt buộc. Nó cũng đảm bảo rằng tên và giá trị cột phải giống nhau. Ngoài ra, vị trí của các cột và giá trị tương ứng phải giống nhau

Nếu chúng ta muốn chèn nhiều bản ghi trong một lệnh, hãy sử dụng câu lệnh sau

Trong cú pháp trên, tất cả các hàng phải được phân tách bằng dấu phẩy trong các trường giá trị

Ví dụ CHÈN MySQL

Hãy cho chúng tôi hiểu cách các câu lệnh INSERT hoạt động trong MySQL với sự trợ giúp của nhiều ví dụ. Đầu tiên, tạo một bảng "People" trong cơ sở dữ liệu bằng lệnh sau

1. Nếu chúng tôi muốn lưu trữ các bản ghi duy nhất cho tất cả các trường, hãy sử dụng cú pháp như sau

2. Nếu chúng tôi muốn lưu trữ nhiều bản ghi, hãy sử dụng các câu lệnh sau nơi chúng tôi có thể chỉ định tất cả các tên trường hoặc không chỉ định bất kỳ trường nào

3. Nếu chúng tôi muốn lưu trữ các bản ghi mà không đưa ra tất cả các trường, chúng tôi sử dụng các câu lệnh trường một phần sau đây. Trong trường hợp này, bắt buộc phải chỉ định tên trường

Trong kết quả bên dưới, chúng ta có thể thấy rằng tất cả các câu lệnh INSERT đã được thực thi thành công và lưu trữ giá trị trong bảng một cách chính xác

Chúng ta có thể sử dụng cú pháp dưới đây để hiển thị các bản ghi của bảng People

Ta sẽ được kết quả như sau

Chèn ngày vào bảng MySQL

Chúng ta cũng có thể sử dụng INSERT STATEMENT để thêm ngày vào bảng MySQL. MySQL cung cấp một số kiểu dữ liệu để lưu trữ ngày như DATE, TIMESTAMP, DATETIME, và YEAR. Định dạng mặc định của ngày trong MySQL là YYYY-MM-DD

Trong bài viết trước của tôi, Tìm hiểu MySQL. Sắp xếp và lọc dữ liệu trong bảng, chúng ta đã học về sắp xếp và lọc dữ liệu bằng mệnh đề WHERE và ORDER BY

Câu lệnh chèn là câu lệnh DML [Ngôn ngữ sửa đổi dữ liệu] được sử dụng để chèn dữ liệu vào bảng MySQL. Sử dụng truy vấn Chèn, chúng ta có thể thêm một hoặc nhiều hàng trong bảng. Sau đây là cú pháp cơ bản của Câu lệnh INSERT trong MySQL

1

2

CHÈN VÀO [COLUMN_1, COLUMN_2,.. ]

VALUES [VALUE_1,VALUE_2,.. ]

Trong cú pháp,

  1. Trước tiên, bạn phải chỉ định tên của bảng. Sau đó, trong ngoặc đơn, bạn phải chỉ định tên cột của bảng và các cột phải được phân tách bằng dấu phẩy
  2. Các giá trị mà bạn muốn chèn phải nằm trong dấu ngoặc đơn và phải được theo sau bởi mệnh đề GIÁ TRỊ

Nếu bạn muốn chèn nhiều hàng cùng lúc thì cú pháp hơi khác một chút. Trong từ khóa giá trị, bạn phải chỉ định danh sách các hàng được phân tách bằng dấu phẩy. Ở đây, mỗi phần tử được coi là một hàng. Tất cả các hàng phải được phân tách bằng dấu phẩy. Sau đây là cú pháp

1

2

3

4

5

CHÈN VÀO [COLUMN_1, COLUMN_2,.. ]

GIÁ TRỊ

[VALUE_1,VALUE_2,.. ],

[VALUE_3,VALUE_4,.. ],

[VALUE_5,VALUE_6,.. ]  

  • Ghi chú. Tại đây, hãy đảm bảo rằng số lượng cột phải khớp với số lượng giá trị. Bạn có thể loại trừ cột nhận dạng của bảng hoặc ràng buộc mặc định được chỉ định trên bất kỳ cột nào của bảng. Trong các bài viết sắp tới, tôi sẽ giải thích các ràng buộc mặc định và các cột nhận dạng

Để chứng minh việc sử dụng Câu lệnh INSERT, tôi đã tạo một bảng có tên là tblemployees trên cơ sở dữ liệu VSData. Dưới đây là định nghĩa của bảng tblemployees

1

2

3

4

5

6

7

8

9

10

tạo bảng tblEmployee

[

Employee_id int auto_increment khóa chính,

Employee_first_name varchar[500] NOT null,

Employee_last_name varchar[500] NOT null,

Employee_Address varchar[1000],

Employee_emailID varchar[500],

Employee_department_ID int default 9,

Ngày_ngày_tham_gia của nhân viên ngày

];

Hãy để tôi chỉ ra các trường hợp sử dụng khác nhau của truy vấn chèn. Trong bài viết này, tôi sẽ đề cập đến những điều sau đây

  1. Câu lệnh INSERT đơn giản để thêm dữ liệu vào bảng
  2. Sử dụng câu lệnh INSERT để thêm nhiều hàng trong bảng
  3. Mệnh đề INSERT INTO SELECT để chèn đầu ra được tạo bởi truy vấn SELECT
  4. INSERT IGNORE mệnh đề để bỏ qua lỗi được tạo ra trong quá trình thực hiện truy vấn

Ví dụ truy vấn INSERT đơn giản

Giả sử tôi muốn chèn họ và tên của nhân viên. Chạy truy vấn sau

1

CHÈN VÀO tblemployee [employee_first_name, employee_last_name] values ['Nisarg','Upadhyay']

Sau khi truy vấn được thực thi thành công, chúng ta hãy chạy truy vấn CHỌN để xác minh dữ liệu. Thực hiện truy vấn sau

1

chọn * từ tblEmployee;

Sau đây là ảnh chụp màn hình của đầu ra

Như bạn có thể thấy trong ảnh chụp màn hình đầu ra ở trên, hàng đã được chèn thành công và giá trị của các cột tương ứng cũng được chèn chính xác. Trong truy vấn INSERT, tôi đã chỉ định các giá trị của cột first_name và last_name, nhưng chúng tôi đã đặt giá trị mặc định cho cột department_id, vì vậy nếu chúng tôi không chỉ định giá trị của cột, nó sẽ chèn giá trị mặc định. Cột employee_id là auto_increment để nó tự động tăng

Chèn một ngày trong bảng

Giả sử bạn muốn chèn ngày gia nhập cụ thể cho một nhân viên. Ngày tham gia sẽ được chèn vào cột employee_joining_date. Truy vấn nên được viết như sau

1

CHÈN VÀO tblemployee [employee_first_name, employee_last_name, employee_joining_date] values ['Nisarg','Upadhyay','2020-06-26'];

Chạy truy vấn chọn để xác minh đầu ra

1

CHỌN * từ tblemployee

đầu ra

Như bạn có thể thấy, ngày tham gia được chèn chính xác. Bây giờ thay vì chỉ định ngày tham gia, chúng tôi muốn sử dụng ngày hiện tại. Trong trường hợp này, chúng ta có thể sử dụng hàm tích hợp có tên CURRENT_DATE[]. Hàm này lấy ngày của máy chủ. Nó giống như hàm getdate[] của SQL Server

Truy vấn nên được viết như sau

1

CHÈN VÀO tblemployee [employee_first_name, employee_last_name, employee_joining_date] values ['Nirali','Upadhyay',current_date[]];

Chạy truy vấn CHỌN

1

CHỌN * từ tblemployee;

Dưới đây là đầu ra

Như bạn có thể thấy, ngày tham gia của ID nhân viên là ngày hiện tại

Chèn nhiều hàng vào bảng

Chúng tôi muốn chèn thông tin chi tiết của hai nhân viên vào bảng tblemployee. Để làm điều đó, hãy thực hiện truy vấn sau

1

CHÈN VÀO tblemployee [employee_first_name, employee_last_name, employee_joining_date] values ['Dixit','Upadhyay',current_date[]],['Bharti','Upadhyay',current_date[]]  ;

Khi các hàng được chèn vào, hãy thực hiện câu lệnh SELECT để xác minh đầu ra

1

Chọn * từ tblemployee;

Sau đây là đầu ra

  • Ghi chú. Trong MySQL có một tham số cấu hình tên là max_allowed_packat_size để giới hạn kích thước của gói tin. Kích thước gói tối đa trong MySQL 8. 0 máy chủ và máy khách là 1GB

Nếu bạn đang chèn nhiều hàng và kích thước của truy vấn INSERT cao hơn giá trị được định cấu hình trong max_allowed_packat_size, thì truy vấn sẽ báo lỗi ER_NET_PACKET_TOO_LARGE và đóng kết nối. Bạn có thể xem giá trị của tham số bằng cách thực hiện lệnh sau

1

HIỂN THỊ BIẾN THÍCH 'max_allowed_packet';

Chủ Đề