Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Các truy vấn MySQL phổ biến nhất

Các truy vấn MySQL thường được viết một lần và sau đó được gói trong các hàm lớp để giảm thiểu việc lặp lại mã. Bài viết này liệt kê 10 truy vấn được sử dụng thường xuyên nhất trong MySQL.

Về cơ bản, một Query là một yêu cầu thông tin được truy xuất từ ​​một bảng cơ sở dữ liệu hoặc một tổ hợp các bảng. Có nhiều ngôn ngữ truy vấn có thể được viết để thực hiện một loạt các truy vấn từ đơn giản đến phức tạp. Các truy vấn sẽ lọc các tiêu chí nhất định dựa trên dữ liệu cụ thể mà nó được yêu cầu tìm. Nó cũng có thể tự động hóa các nhiệm vụ quản lý dữ liệu và tham gia vào các tính toán. Hướng dẫn này thảo luận về 10 truy vấn MySQL phổ biến nhất.

Hãy sử dụng các cơ sở dữ liệu demo này để giúp chúng tôi hiểu thêm về cách hoạt động của từng truy vấn.

ID nhân viên Tên Tiêu đề
1002 Webster W. Giám đốc điều hành
1003 Lizzy S. Người quản lý
1004 Oliver T. Kỹ sư phần mềm
ID nhân viên Phòng Tuổi
1002 Nhân sự 36
1003 Bán hàng 21
1004 CNTT 39

CHỌN tất cả

Một truy vấn SELECT đơn giản được sử dụng để tìm nạp và gửi lại tất cả dữ liệu từ cơ sở dữ liệu. Cú pháp của nó có thể được viết như vậy;

Mã:

 CHỌN * TỪ Nhân viên; 

Kết quả:

 1002 Webster W. Executive1003 Lizzy S. Manager1004 Oliver T. Kỹ sư phần mềm 

Để chọn tất cả các cột có sẵn trong bảng, bạn phải sử dụng “*” để cho biết rằng bạn cần trả lại tất cả thông tin có thể có. Thứ hai, khai báo từ khóa FROM để nhận dữ liệu từ bảng cơ sở dữ liệu. Cuối cùng, hãy luôn nhớ kết thúc câu lệnh của bạn bằng dấu chấm phẩy “;” để hoàn thành yêu cầu đúng cách.

CHỌN Cột

Để lấy dữ liệu từ (các) cột cụ thể chứ không phải tất cả mọi thứ, bạn chỉ muốn nêu tên trường thay vì sử dụng dấu hoa thị (*).

Mã:

 CHỌN Nhân viên TitleFROM; 

Kết quả:

  Tiêu đề  ExecutiveManagerSoftware Engineer 

Khi chọn nhiều cột từ cơ sở dữ liệu, chúng phải được phân tách bằng dấu phẩy. Như vậy;

 CHỌN Chức danh, TênFROM Nhân viên; 

Mệnh đề WHERE

Khi sử dụng mệnh đề WHERE trong truy vấn SELECT, các bản ghi dữ liệu sẽ được lọc, sau đó trích xuất các bản ghi phù hợp với (các) điều kiện.

Mã:

 CHỌN * TỪ NHÂN VIÊNWHERE EmployeeID =1004; 

Kết quả:

 1004 Oliver T. Kỹ sư phần mềm 

Mệnh đề WHERE có thể có nhiều hơn một điều kiện có thể được phân tách bằng cách sử dụng từ khóa AND.

TẠO bảng

Truy vấn này có thể được sử dụng để tạo một bảng mới với sự lựa chọn ưa thích của bạn về các cột. Khi thêm tên cột, hãy nhớ chỉ định kiểu dữ liệu của chúng.

Mã:

 TẠO BẢNG EmployeeInfo (EmployeeId INT, Department VARCHAR (25), Age NUMBER); 

Kết quả Bảng mong đợi:

Bộ phận Bộ phận
 EmployeeID 
 
 
 NULL 
 NULL 
 NULL 

Khi bạn chạy lệnh CREATE TABLE và điền vào nó với tiêu đề cột, Truy vấn trên sẽ tạo một bảng “EmployeeInfo” trong cơ sở dữ liệu. Về cơ bản mỗi cột sẽ trả về NULL vì chúng tôi chưa chèn bất kỳ giá trị cụ thể nào. Điều đó dẫn chúng ta đến truy vấn tiếp theo, CHÈN VÀO.

CHÈN VÀO Truy vấn

Đây là truy vấn phổ biến nhất để chèn giá trị vào một hoặc nhiều hàng bản ghi mới vào bảng. Chúng tôi có thể điền vào bảng EmployeeInfo một số dữ liệu mẫu;

Mã:

 CHÈN VÀO CÁC GIÁ TRỊ CỦA EmployeeInfo (Nhân viên, Bộ phận, Tuổi) (1002, Nhân sự, 46), (1003, Tài chính, 28), (1004, CNTT, 39); 

Kết quả bảng:

EmployeeInfo

Bộ phận
 EmployeeID 
 
 Tuổi 
 1002 
 Nhân sự 
 46 
 1003 
 Tài chính 
 28 
 1004 
 IT 
 39 

Khi viết truy vấn CHÈN VÀO, lệnh GIÁ TRỊ phải là một phần của câu lệnh hoàn chỉnh.

CẬP NHẬT Truy vấn

Từ khóa này được sử dụng để thay đổi một hoặc nhiều cột hiện có trong bảng. Sử dụng truy vấn này sẽ cập nhật các bản ghi bảng với dữ liệu mới dựa trên một số điều kiện.

EmployeeInfo

Bộ phận
 EmployeeID 
 
 Tuổi 
 1002 
 Nhân sự 
 36 
 1003 
 Bán hàng 
 21 
 1004 
 IT 
 39 

Mã:

 CẬP NHẬT EmployeeInfoSET Age =22WHERE EmployeeID =1003; 

Kết quả bảng:

EmployeeInfo

Bộ phận
 EmployeeID 
 
 Tuổi 
 1002 
 Nhân sự 
 36 
 1003 
 Bán hàng 
 22 
 1004 
 IT 
 39 

Sau lệnh UPDATE, sử dụng từ khóa SET để luôn chỉ định (các) cột bạn chọn sửa đổi, sau đó nêu chính xác NƠI bạn cần dữ liệu cập nhật được áp dụng.

XÓA KHỎI Truy vấn

Để xóa bản ghi khỏi bảng dựa trên một hoặc nhiều điều kiện, bạn sẽ cần sử dụng câu lệnh DELETE FROM. Khi sử dụng các điều kiện, nó giới hạn số hàng bị ảnh hưởng bởi truy vấn.

Mã:

 XÓA KHỎI NHÂN VIÊNWHERE Name =‘Lizzy’; 

Kết quả bảng:

Nhân viên

 EmployeeID 
 Tên 
 Tiêu đề 
 1002 
 Webster W. 
 Giám đốc điều hành 
 1004 
 Oliver T. 
 Kỹ sư phần mềm 

Như đã đề cập trước đó trong bài báo; sử dụng điều kiện WHERE xác định chính xác nơi bạn yêu cầu dữ liệu được lọc ra và thực thi. Truy vấn đó là xóa mọi bản ghi khỏi bảng Nhân viên khớp với tên "Lizzy".

Sử dụng mệnh đề GROUP BY, HAVING

Mệnh đề GROUP BY chủ yếu luôn được sử dụng với các hàm tổng hợp. Sử dụng từ khóa này sẽ nhóm kết quả lại với nhau theo một hoặc nhiều cột.

Từ khóa HAVING được sử dụng để lọc tập hợp kết quả đó. Lý tưởng nhất là bạn sẽ nghĩ rằng mệnh đề WHERE sẽ được đưa vào thay thế, tuy nhiên, mệnh đề HAVING đưa ra một điều kiện về tổng hợp.

EmployeeInfo

Bộ phận
 EmployeeID 
 
 Tuổi 
 1002 
 Nhân sự 
 36 
 1003 
 Bán hàng 
 21 
 1004 
 IT 
 39 

Mã:

 SELECT COUNT (Age), EmployeeIDFROM EmployeeInfoGROUP BY EmployeeIDHAVING COUNT (Age)> 21; 

Kết quả:

  COUNT (Tuổi)   EmployeeID39 100436 1002  

Hàm tổng hợp (SUM, AVG &COUNT)

Có ba hàm tổng hợp cực kỳ phổ biến cho phép dữ liệu từ một bảng được diễn giải hoặc chạy các phép tính.

  • COUNT:trả về số hàng phù hợp với một cột được chỉ định.
  • AVG:trả về giá trị trung bình của một cột
  • SUM:trả về tổng của tất cả các giá trị trong một cột đã chọn.

EmployeeInfo

Bộ phận
EmployeeID Tuổi
1002 Nhân sự 36
1003 Bán hàng 21
1004 CNTT 39

Mã cho COUNT:

 CHỌN ĐẾM (Bộ phận) TỪ EmployeeInfo; 

Kết quả:

 COUNT (Bộ phận):3 

Mã cho AVG:

 CHỌN AVG (Tuổi) TỪ EmployeeInfo; 

Kết quả:

 AVG (Tuổi):32 

Mã cho SUM

 CHỌN SUM (Tuổi) TỪ EmployeeInfo; 

Kết quả:

 SUM (Tuổi):96 

THAM GIA

Các phép nối được sử dụng để tập hợp các hàng từ ít nhất hai bảng lại với nhau, dựa trên một cột có liên quan giữa các bảng. Các phép nối thực hành phổ biến nhất là INNER, FULL và LEFT.

  • INNER Join - kết hợp các hàng từ các bảng khác nhau nếu điều kiện kết hợp là đúng.
  • Tham gia ĐẦY ĐỦ - trả về tất cả các hàng khi có sự trùng khớp trong các bản ghi bảng bên trái hoặc bên phải.
  • Tham gia TRÁI - truy xuất tất cả các hàng từ bảng bên trái và các bản ghi phù hợp từ bảng bên phải.

Nhân viên - Bảng # 1 (Trái)

EmployeeID Tên Tiêu đề
1002 Webster W. Điều hành
1003 Lizzy S. Người quản lý
1004 Oliver T. Kỹ sư phần mềm

EmployeeInfo - Bảng # 2 (Phải)

Bộ phận
EmployeeID Tuổi
1002 Nhân sự 36
1003 Bán hàng 21
1004 CNTT 39

Mã THAM GIA INNER:

 CHỌN NHÂN VIÊN.Title, EmployeeInfo.DepartmentFROM Nhân viên INNER THAM GIA EmployeeInfo TRÊN NHÂN VIÊN.EELECTeeID =Nhân viên.E JobeeID; 

Kết quả:

 Phòng chức danh   Giám đốc nhân sự điều hành Giám đốc bán hàng phần mềm Kỹ sư CNTT 

Mã THAM GIA ĐẦY ĐỦ:

 CHỌN * TỪ NHÂN VIÊN ĐẦY ĐỦ THAM GIA EmployeeInfo TRÊN CÁC NHÂN VIÊN. 

Kết quả:

Sẽ lấy tất cả các hàng và cột từ cả hai bảng, kể cả các bảng trùng lặp và kết hợp chúng thành một bảng toàn bộ.

Mã THAM GIA TRÁI:

 CHỌN Nhân viên.Name, EmployeeInfo.AgeFROM Nhân viên TRÁI THAM GIA EmployeeInfo BẬT Nhân viên.EpriseeID =Nhân viên.E JobeeID; 

Kết quả:

 Tên AgeWebster W. 36 Lizzy S. 21 Oliver T. 39 

Cột “EmployeeID” trong bảng “Employee” đề cập đến “EmployeeID” trong bảng “EmployeeInfo”, về cơ bản nêu rõ rằng cột EmployeeID là mối quan hệ giữa cả hai bảng. Các phép nối có thể trở nên phức tạp nhưng đồng thời cực kỳ hữu ích khi sắp xếp thông qua cơ sở dữ liệu lớn hơn.

Người dùng và cơ sở dữ liệu có thể trao đổi thông tin thành công bằng cách nói cùng một ngôn ngữ. Các truy vấn được liệt kê ở trên là những truy vấn phổ biến nhất được sử dụng bởi cả người mới bắt đầu và các chuyên gia. Viết truy vấn MySQL được coi là chức năng thường xuyên nhất trong lĩnh vực quản lý cơ sở dữ liệu.

Bài báo này đã được đánh giá và cập nhật vào tháng 4 năm 2022 bởi Kelsey Perkins.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách đặt Bộ ký tự và đối chiếu của một bảng trong MySQL

  2. Liên kết cơ sở dữ liệu Oracle - MySQL tương đương?

  3. Tại sao kết quả từ một truy vấn SQL không trở lại theo thứ tự tôi mong đợi?

  4. Trình kết nối Python MySQL - tìm thấy kết quả chưa đọc khi sử dụng fetchone

  5. chuyển LIMIT dưới dạng tham số cho MySQL opensc