MySQL TẠO BẢNG với dữ liệu

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 <TABLENAME>(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 <TABLENAME>(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

MySQL TẠO BẢNG với dữ liệu
MySQL TẠO BẢNG với dữ liệu

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

MySQL TẠO BẢNG với dữ liệu
MySQL TẠO BẢNG với dữ liệu

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

MySQL TẠO BẢNG với dữ liệu
MySQL TẠO BẢNG với dữ liệu

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 chi tiết của hai nhân viên trong 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

MySQL TẠO BẢNG với dữ liệu
MySQL TẠO BẢNG với dữ liệu

  • 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';

đầu ra

MySQL TẠO BẢNG với dữ liệu
MySQL TẠO BẢNG với dữ liệu

Giá trị của tham số cấu hình có thể được thay đổi bằng cách thực hiện lệnh sau

1

SET TOÀN CẦU max_allowed_packet=your_desired_size;

CHÈN VÀO Truy vấn CHỌN

Giả sử chúng ta muốn chèn tập kết quả được tạo bởi một truy vấn SELECT khác trong bảng, chúng ta có thể sử dụng INSERT INTO SELECT Query. Cú pháp như sau

1

2

3

4

5

6

7

CHÈN VÀO tên_bảng_điểm_đến(cột_1, column_2)

LỰA CHỌN

   cột_1,cột_2

TỪ

   source_table

Ở ĐÂU

   điều kiện;

Như bạn có thể thấy trong cú pháp, thay vì sử dụng mệnh đề VALUES, chúng tôi đã sử dụng truy vấn SELECT. Ở đây, câu lệnh SELECT lấy dữ liệu từ một bảng khác hoặc bằng cách nối các bảng khác nhau. Truy vấn này rất hữu ích khi bạn muốn tạo bản sao lưu của một bảng cụ thể

Để minh họa kịch bản, tôi sẽ sử dụng bảng diễn viên của cơ sở dữ liệu sakila. Tôi đã tạo một bảng khác có tên là actor_backup. Cấu trúc bảng của bảng actor_backup và diễn viên giống nhau. Thay đổi duy nhất tôi đã thực hiện là tôi đã bỏ khóa ngoại và các ràng buộc khác của bảng actor_backup

Bảng có thể được tạo bằng cách thực hiện truy vấn sau

1

2

3

4

5

TẠO BẢNG actor_backup (

    actor_id smallint ,

    first_name varchar(45) NOT NULL,

    last_name varchar(45) NOT NULL,

   last_update dấu thời gian KHÔNG NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)

Bây giờ, để chèn dữ liệu từ bảng actor vào bảng actor_backup, hãy thực hiện truy vấn sau

1

chèn vào actor_backup chọn actor_id,first_name,last_name,last_update from actor;

Thực hiện truy vấn CHỌN sau để xác minh rằng dữ liệu đã được chèn thành công

1

Chọn * từ actor_backup;

đầu ra

MySQL TẠO BẢNG với dữ liệu
MySQL TẠO BẢNG với dữ liệu

CHÈN câu lệnh BỎ QUA

CHÈN BỎ QUA là một từ khóa rất thú vị. Khi chúng tôi chèn nhiều bản ghi trong câu lệnh sử dụng INSERT hoặc từ khóa INSERT INTO SELECT và đôi khi truy vấn INSERT không thành công do lỗi, toàn bộ truy vấn INSERT sẽ bị chấm dứt. Giả sử chúng ta đang chèn hàng nghìn bản ghi vào một bảng và do lỗi, toàn bộ truy vấn INSERT không thành công và chúng ta phải chạy lại toàn bộ truy vấn. Để tránh những vấn đề như vậy, chúng ta có thể sử dụng câu lệnh INSERT IGNORE

Nếu bạn đang sử dụng câu lệnh INSERT IGNORE để chèn dữ liệu vào bảng, mặc dù truy vấn gặp lỗi, nhưng truy vấn INSERT không bị lỗi

Để chứng minh, tôi đã tạo một bảng có tên là tbldepartment. Sau đây là định nghĩa bảng

1

2

3

4

5

tạo bảng tbldepartment

(

department_id varchar(10) primary key,

department_name varchar(500)

)

Ở đây, cột Department_ID là khóa chính nên bạn không thể chèn giá trị trùng lặp vào đó. Bây giờ, hãy chèn một vài hàng bằng cách thực hiện truy vấn sau

1

2

chèn bỏ qua vào tbldepartment (department_id, department_name) values

('DEP00001', 'IT'),('DEP00001', 'Sales'),('DEP00002', 'MARKETING');

Khi bạn chèn bản ghi, bạn sẽ nhận được cảnh báo sau

MySQL TẠO BẢNG với dữ liệu
MySQL TẠO BẢNG với dữ liệu

Ở đây, chúng tôi đã sử dụng câu lệnh INSERT IGNORE; . Để xác minh điều đó, hãy thực hiện truy vấn CHỌN sau

1

Chọn * từ tbldepartment;

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

MySQL TẠO BẢNG với dữ liệu
MySQL TẠO BẢNG với dữ liệu

Như bạn có thể thấy, thay vì ba giá trị, chỉ có DEP00001 và DEP00002 được chèn vào

Khi chúng ta sử dụng từ khóa INSERT INTO IGNORE, MySQL sẽ đưa ra cảnh báo, nhưng nó sẽ cố gắng điều chỉnh giá trị trong cột. Để hiểu điều đó, hãy chèn một hàng khác vào bảng tbldepartment. Độ dài của cột department_id là 10 ký tự. Trong bảng, chúng ta hãy thử chèn bộ phận_id. Độ dài của giá trị cao hơn độ dài đã xác định. Thực hiện truy vấn sau

1

chèn bỏ qua vào phòng tbl(department_id, department_name)values('DEP000000001', 'Human Resource');

Truy vấn sẽ đưa ra cảnh báo sau

MySQL TẠO BẢNG với dữ liệu
MySQL TẠO BẢNG với dữ liệu

Như bạn có thể thấy, truy vấn tạo ra một cảnh báo. Bây giờ, hãy chạy truy vấn CHỌN để xem dữ liệu

1

Chọn * từ tbldepartment;

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

MySQL TẠO BẢNG với dữ liệu
MySQL TẠO BẢNG với dữ liệu

Như bạn có thể thấy, hàng đó đã được chèn vào, nhưng MySQL đã cắt bớt giá trị của cột department_id

Tóm lược

Trong bài viết này, chúng ta đã học cách chèn một hoặc nhiều hàng vào bảng MySQL bằng cách sử dụng câu lệnh INSERT. Chúng tôi cũng đề cập đến cách chúng tôi có thể chèn tập kết quả, được tạo bởi một truy vấn khác trong bảng. Ngoài ra, chúng tôi đã học cách bỏ qua lỗi do câu lệnh INSERT tạo ra. Trong phần tiếp theo, chúng ta sẽ tìm hiểu về các câu lệnh UPDATE và DELETE trong MySQL và các trường hợp sử dụng của chúng. Giữ nguyên

Bạn sẽ tạo một bảng với dữ liệu từ một bảng hiện có như thế nào?

Có thể tạo bản sao của bảng hiện có bằng cách sử dụng kết hợp câu lệnh CREATE TABLE và câu lệnh SELECT . Bảng mới có cùng định nghĩa cột. Tất cả các cột hoặc cột cụ thể có thể được chọn.

Làm cách nào để tạo bảng trong MySQL cho người mới bắt đầu?

Bạn có thể tạo một bảng mới trong cơ sở dữ liệu mặc định bằng lệnh " CREATE TABLE tableName " và " DROP TABLE tableName " . Bạn cũng có thể áp dụng điều kiện " IF EXISTS " hoặc " IF NOT EXISTS ". Để tạo một bảng, bạn cần xác định tất cả các cột của nó bằng cách cung cấp tên, loại và thuộc tính của các cột.

Chúng ta có thể TẠO BẢNG trong MySQL không?

Sử dụng câu lệnh CREATE TABLE để chỉ định bố cục bảng của bạn . mysql> TẠO BẢNG pet (tên VARCHAR(20), chủ VARCHAR(20), loài VARCHAR(20), giới tính CHAR(1), NGÀY sinh, NGÀY chết); .

Làm cách nào để chèn nội dung bảng trong MySQL?

Khi chèn một hàng vào bảng MySQL, cú pháp như sau. INSERT INTO table_name(column_1,column_2,column_3) VALUES (value_1,value_2,value_3); Trong truy vấn INSERT INTO, bạn nên chỉ định thông tin sau. tên_bảng. Một bảng MySQL mà bạn muốn thêm một hàng mới.