Truy vấn hoạt động như thế nào trong mysql?

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 của 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

Truy vấn về cơ bản là yêu cầu lấy thông tin từ bảng cơ sở dữ liệu hoặc 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 nhiều loại truy vấn từ đơn giản đến phức tạp. Truy vấn sẽ lọc các tiêu chí nhất định dựa trên dữ liệu cụ thể được yêu cầu tìm. Nó cũng có thể tự động hóa các tác vụ quản lý dữ liệu và tham gia 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 rõ hơn về cách hoạt động của từng truy vấn

ID nhân viênNameTitle1002Webster W. Điều hành1003Lizzy S. Quản lý1004Oliver T. Software EngineerEmployeeIDDepartmentAge1002HR361003Sales211004IT39

trong bài viết này

Chọn tất cả

Một truy vấn CHỌN đơ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ã số

SELECT *
FROM Employees;

Kết quả

1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer

Để 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 tất cả thông tin có thể được trả về. Thứ hai, nêu từ khóa TỪ để 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 “;”

CHỌN cột

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

Mã số

SELECT Title
FROM Employees;

Kết quả

Title
Executive
Manager
Software 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;

SELECT Title, Name
FROM Employees;

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 khớp với (các) điều kiện.

Mã số.  

SELECT *
FROM Employees
WHERE EmployeeID = 1004 ;

Kết quả.  

1004       Oliver T.          Software Engineer 

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 lựa chọn cột ưa thích của bạn. Khi thêm tên cột, hãy đảm bảo chỉ định loại dữ liệu của chúng.  

Mã số

CREATE TABLE EmployeeInfo (

EmployeeId INT,
Department VARCHAR(25),
Age NUMBER

);

Kết quả bảng dự kiến

EmployeeID
Department
Department
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
1
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
1_______1_______1

Khi bạn chạy lệnh CREATE TABLE và điền vào đó các 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, INSERT INTO

CHÈN VÀO truy vấn

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

Mã số.  

1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
4

Kết quả bảng

Thông tin nhân viên

EmployeeID
Department
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
7
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
8
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
9_______2_______0
SELECT Title
FROM Employees;
1
SELECT Title
FROM Employees;
2
SELECT Title
FROM Employees;
3
SELECT Title
FROM Employees;
4
SELECT Title
FROM Employees;
5
SELECT Title
FROM Employees;
6

Khi viết truy vấn INSERT INTO, lệnh VALUES 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.

Thông tin nhân viên

EmployeeID
Department
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
7
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
8
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
9
Title
Executive
Manager
Software Engineer
2
SELECT Title
FROM Employees;
1
Title
Executive
Manager
Software Engineer
4
Title
Executive
Manager
Software Engineer
5_______2_______4
SELECT Title
FROM Employees;
5
SELECT Title
FROM Employees;
6

 

Mã số.  

Title
Executive
Manager
Software Engineer
9

Kết quả bảng.  

Thông tin nhân viên

EmployeeID
Department
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
7
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
8
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
9
Title
Executive
Manager
Software Engineer
2
SELECT Title
FROM Employees;
1
Title
Executive
Manager
Software Engineer
4
SELECT Title, Name
FROM Employees;
8
SELECT Title
FROM Employees;
4
SELECT Title
FROM Employees;
5
SELECT Title
FROM Employees;
6

Theo lệnh CẬP NHẬT, 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 cho

XÓA KHỎI truy vấn

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

Mã số.  

SELECT *
FROM Employees
WHERE EmployeeID = 1004 ;
2

Kết quả bảng

Người lao động

EmployeeID
5_______4
SELECT *
FROM Employees
WHERE EmployeeID = 1004 ;
5
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
8
SELECT *
FROM Employees
WHERE EmployeeID = 1004 ;
7
SELECT *
FROM Employees
WHERE EmployeeID = 1004 ;
8
SELECT Title
FROM Employees;
4
1004       Oliver T.          Software Engineer 
0
1004       Oliver T.          Software Engineer 
1

Như đã đề cập trước đó trong bài viết; . 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 hầu như luôn được sử dụng với các hàm tổng hợp. Việc sử dụng từ khóa này sẽ nhóm tập hợp 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 kết quả đó. Lý tưởng nhất là bạn sẽ nghĩ rằng mệnh đề WHERE sẽ được đặt thay thế, tuy nhiên, mệnh đề HAVING đưa ra một điều kiện đối với các tập hợp

Thông tin nhân viên

EmployeeID
Department
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
7
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
8
1002       Webster W.     Executive
1003       Lizzy S.       Manager
1004       Oliver T.      Software Engineer
9
Title
Executive
Manager
Software Engineer
2
SELECT Title
FROM Employees;
1
Title
Executive
Manager
Software Engineer
4
Title
Executive
Manager
Software Engineer
5_______2_______4
SELECT Title
FROM Employees;
5
SELECT Title
FROM Employees;
6

 

Mã số

CREATE TABLE EmployeeInfo (

EmployeeId INT,
Department VARCHAR(25),
Age NUMBER

);
4

Kết quả

CREATE TABLE EmployeeInfo (

EmployeeId INT,
Department VARCHAR(25),
Age NUMBER

);
5

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

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

  • ĐẾM. trả về số hàng khớp với một cột đã chỉ định
  • AVG. trả về giá trị trung bình của một cột
  • TỔNG. trả về tổng của tất cả các giá trị trong một cột đã chọn

Thông tin nhân viên

ID nhân viênBộ phậnTuổi1002Nhân sự361003Doanh số21100439

 

Mã cho COUNT

CREATE TABLE EmployeeInfo (

EmployeeId INT,
Department VARCHAR(25),
Age NUMBER

);
6

Kết quả

CREATE TABLE EmployeeInfo (

EmployeeId INT,
Department VARCHAR(25),
Age NUMBER

);
7

 

Mã cho AVG

CREATE TABLE EmployeeInfo (

EmployeeId INT,
Department VARCHAR(25),
Age NUMBER

);
8

Kết quả

CREATE TABLE EmployeeInfo (

EmployeeId INT,
Department VARCHAR(25),
Age NUMBER

);
9

 

Mã cho SUM

EmployeeID
0

Kết quả

EmployeeID
1

 

THAM GIA

Các liên kết được sử dụng để tập hợp các hàng từ ít nhất hai bảng, dựa trên một cột có liên quan giữa các bảng. Các phép nối 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 nối là đúng
  • FULL Join –  trả về tất cả các hàng khi có sự trùng khớp trong bản ghi bảng bên trái hoặc bên phải
  • LEFT Join – 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àn số 1 (Trái)

ID nhân viênTênTiêu đề1002Webster W. Giám đốc 1003Lizzy S. Người quản lý1004Oliver T. Kỹ sư phần mềm

 

Thông tin nhân viên – Bảng #2 (Phải)

ID nhân viênBộ phậnTuổi1002Nhân sự361003Doanh số21100439

 

INNER THAM GIA Mã.  

EmployeeID
2

Kết quả

EmployeeID
3

 

Mã THAM GIA ĐẦY ĐỦ

EmployeeID
4

Kết quả

Sẽ lấy tất cả các hàng và cột từ cả hai bảng, bao gồm cả các bản sao và kết hợp chúng thành một bảng hoàn chỉnh

Mã THAM GIA TRÁI

EmployeeID
5

Kết quả

EmployeeID
6

Cột “EmployeeID” trong bảng “Employee” đề cập đến “EmployeeID” trong bảng “EmployeeInfo”, về cơ bản chỉ ra 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 được sử dụng phổ biến nhất bởi cả người mới bắt đầu và các chuyên gia. Viết các truy vấn MySQL được coi là chức năng thường xuyên nhất trong miền quản lý cơ sở dữ liệu

Truy vấn MySQL hoạt động như thế nào trong nội bộ?

MySQL phân tích cú pháp các truy vấn để tạo cấu trúc bên trong (cây phân tích cú pháp) , sau đó áp dụng nhiều cách tối ưu hóa. Chúng có thể bao gồm viết lại truy vấn, xác định thứ tự truy vấn sẽ đọc các bảng, chọn chỉ mục nào sẽ sử dụng, v.v.

Truy vấn CHỌN hoạt động như thế nào trong MySQL?

Câu lệnh SELECT dùng để chọn dữ liệu từ cơ sở dữ liệu . Dữ liệu trả về được lưu trữ trong một bảng kết quả, được gọi là tập kết quả.

Truy vấn hoạt động như thế nào trong SQL?

Truy vấn SQL chủ yếu hoạt động theo ba giai đoạn. .
1) Lọc hàng - Giai đoạn 1. Lọc hàng - giai đoạn 1 được thực hiện bởi mệnh đề FROM, WHERE, GROUP BY, HAVING
2) Lọc cột. Các cột được lọc theo mệnh đề SELECT
3) Lọc hàng - Giai đoạn 2. Lọc hàng - giai đoạn 2 được thực hiện bởi mệnh đề DISTINCT, ORDER BY, LIMIT

Làm thế nào để một truy vấn làm việc?

Truy vấn hoạt động theo cách tương tự – truy vấn bổ sung ý nghĩa cho mã, cho phép hệ thống hiểu và thực hiện hành động tương ứng . Có thể là SQL hoặc bất kỳ ngôn ngữ truy vấn nào khác, cả người dùng và cơ sở dữ liệu đều có thể trao đổi thông tin miễn là họ sử dụng cùng một ngôn ngữ.