Logo Zephyrnet

SQL: Hướng dẫn đầy đủ từ Kiến thức cơ bản đến Cấp độ Nâng cao

Ngày:

Bài báo này đã được xuất bản như một phần của Blogathon Khoa học Dữ liệu.

Giới thiệu

Theo Cục Thống kê Lao động, triển vọng việc làm cho các nhà khoa học nghiên cứu máy tính và thông tin, các nhà khoa học dữ liệu dự kiến ​​sẽ tăng ít nhất 19% vào năm 2026. Dữ liệu được thu thập và xử lý ở mọi công ty bất kể lĩnh vực nào.
Các nhà khoa học dữ liệu đi sâu vào dữ liệu để tìm ra những thông tin chi tiết có giá trị có lợi cho công ty.

Tại sao phải học SQL?

Hầu hết các công ty lưu trữ và quản lý dữ liệu của họ bằng Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS).
SQL là viết tắt của Structured Query Language (Ngôn ngữ truy vấn có cấu trúc) và nó cho phép người dùng truy cập và thao tác dữ liệu. Các công ty sử dụng các hệ thống khác nhau như MySQL, PostgreSQL, cơ sở dữ liệu Oracle, v.v., để lưu trữ dữ liệu. Có sự khác biệt nhỏ giữa tất cả các phiên bản SQL khác nhau này, nhưng việc chuyển sang phiên bản khác tương đối dễ dàng khi bạn nắm được một hiệu suất.

Đọc thêm về SQL trên Blog của chúng tôi.!

Tôi sẽ sử dụng Oracle trực tiếp SQL trong bài viết này, nhưng bạn cũng có thể dùng thử trên bất kỳ phiên bản nào khác. Trong trường hợp xảy ra lỗi, bạn có thể google để tìm ra giải pháp khắc phục.

Các nhà khoa học dữ liệu xử lý các cơ sở dữ liệu đã được duy trì, nhưng chúng tôi sẽ bắt đầu từ những điều cơ bản.

Bảng cơ sở dữ liệu trong SQL là gì?

Dữ liệu trong cơ sở dữ liệu được lưu trữ trong các bảng có thể được coi như bảng tính Excel. Mỗi bảng tính có các hàng và cột. Mỗi hàng bao gồm dữ liệu liên quan đến một thực thể (như một người, công ty, v.v.) & mỗi cột bao gồm dữ liệu liên quan đến một khía cạnh cụ thể của hàng (như tên, account_id, tuổi, v.v.)

SQL | Bảng cơ sở dữ liệu

Trong bảng trên, mỗi hàng chứa thông tin về một nhân viên và mỗi cột biểu thị thông tin tính năng cụ thể của nhân viên đó.

Quy ước đặt tên SQL

Lưu ý rằng SQL không phân biệt chữ hoa chữ thường. Nó xử lý "bảng" giống như "BẢNG". Nhưng thông thường viết các lệnh SQL bằng tất cả các chữ hoa, các bảng Cơ sở dữ liệu được đặt tên bằng chữ thường và dấu gạch dưới được sử dụng thay vì dấu cách.

Tạo bảng

Cú pháp để tạo bảng mới trong SQL như dưới đây.

TẠO BẢNG Tên_bảng (kiểu dữ liệu column1, kiểu dữ liệu column1,);

Chúng tôi sử dụng TẠO BẢNG  theo sau là tên bảng. Sau đó, chúng tôi đề cập đến tên cột cùng với kiểu dữ liệu của chúng bên trong dấu ngoặc đơn. Lưu ý rằng mọi câu lệnh SQL đều kết thúc bằng dấu chấm phẩy.

Một số kiểu dữ liệu được sử dụng rộng rãi trong SQL là VARCHAR (string), BOOL (boolean), int (integer), FLOAT (số thực), DATETIME (DateTime),… Bạn có thể tham khảo tài liệu để hiểu thêm về các kiểu dữ liệu .

Hãy tạo một bảng mới, như thể hiện trong hình trên.

TẠO BẢNG nhân viên (nhân viên INT, e_name VARCHAR (20), tuổi INT, lương INT, công việc VARCHAR (20));

Lưu ý: Số bên trong VARCHAR biểu thị độ dài tối đa có thể có của chuỗi. Ở đây, chúng tôi giả định rằng độ dài chuỗi sẽ không vượt quá 20.

CHÈN Giá trị trong SQL

Sản phẩm CHÈN BỎ QUA VÀO câu lệnh chèn một bản ghi mới bên trong bảng cơ sở dữ liệu. Cú pháp như dưới đây.

CHÈN BỎ QUA VÀO tên_bảng (column1, column2,...) VALUES (value1, value2,...);

Bây giờ chúng ta hãy chèn các giá trị giả vào bảng mà chúng ta đã tạo ở trên.

CHÈN BỎ QUA VÀO GIÁ TRỊ của nhân viên (1, 'Alex', 27,28000, 'Designer'); CHÈN BỎ QUA VÀO GIÁ TRỊ của nhân viên (2, 'Joe', 30,45000, 'Backend Dev'); CHÈN BỎ QUA VÀO GIÁ TRỊ của nhân viên (3, 'Rick', 25,65000, 'Nhà khoa học dữ liệu'); CHÈN BỎ QUA VÀO GIÁ TRỊ của nhân viên (4, 'Nick', 21,30000, 'Backend Dev'); CHÈN BỎ QUA VÀO GIÁ TRỊ của nhân viên (5, 'Cathy', 21,35000, 'Designer');

Chúng ta có thể xem dữ liệu bảng của mình bằng cách sử dụng câu lệnh SELECT, mà chúng ta sẽ xem xét tiếp theo.
Nhiệm vụ nhỏ: Thêm năm nhân viên nữa vào bảng (đảm bảo rằng worker_id là duy nhất).

CHỌN & TỪ

Sản phẩm CHỌN câu lệnh được sử dụng để chọn dữ liệu từ cơ sở dữ liệu. Các TỪ câu lệnh liệt kê ra bảng cơ sở dữ liệu mà chúng ta sẽ lấy dữ liệu từ đó.

CHỌN tên_mạch_1, tên_mạch_2,. . . TỪ tên_bảng;

Để chọn tất cả các cột trong cột cơ sở dữ liệu, hãy thay thế tên các cột bằng dấu hoa thị (*).
Bây giờ chúng tôi sẽ xem tất cả các cột tập dữ liệu nhân viên bằng cách sử dụng câu lệnh dưới đây.

CHỌN * TỪ nhân viên;
SQL | Bảng - chọn và từ
Đầu ra trong Oracle Live SQL

Nhiệm vụ nhỏ: Hiển thị tên của tất cả nhân viên

Vì vậy, ngay bây giờ, chúng ta có thể hiển thị nội dung của bảng cơ sở dữ liệu mà không cần lọc. Nhưng điều gì sẽ xảy ra nếu chúng ta muốn hiển thị tên của những nhân viên có mức lương hơn 50,000 PokeDollars (vâng, bạn đã đọc đúng). Dưới đây là các câu lệnh khác nhau như WHERE, LIKE, IN, v.v.
Chúng tôi sẽ tập trung vào những tuyên bố như vậy bây giờ.

Ở ĐÂU

Câu lệnh WHERE lọc ra các bản ghi dựa trên điều kiện được đề cập sau câu lệnh, cú pháp như dưới đây.

CHỌN cột1, cột2,. . . Điều kiện FROM tên_bảng WHERE;

 Mã để lọc ra những nhân viên có mức lương hơn 50,000 PokeDollars như dưới đây.

CHỌN * TỪ ĐÓ lương của nhân viên> 50000;
SQL

Lưu ý rằng câu lệnh WHERE được đặt bên dưới câu lệnh FROM.
Bên trong điều kiện, chúng ta có thể sử dụng các biểu thức logic (OR, AND & NOT) cũng như các toán tử so sánh như>, <, =, = (trong SQL, chúng ta sử dụng = thay vì == để so sánh bình đẳng), v.v.
Chúng ta cũng có thể sử dụng các biểu thức cụ thể như IN, BETWEEN, LIKE, v.v.

VÀ, HOẶC & KHÔNG

Ba đây là một số toán tử logic được sử dụng phổ biến nhất. Tôi tin rằng những toán tử này không cần bất kỳ lời giải thích nào, vì vậy đây là một bảng chứa các điều kiện mẫu.

Và, Hoặc và Không

Tương tự

Trước khi giải thích toán tử LIKE, giả sử chúng tôi muốn lọc ra các nhà phát triển phụ trợ đang làm việc trong công ty của chúng tôi. Bạn có thể sử dụng câu lệnh WHERE và toán tử so sánh như bên dưới.

SELECT * FROM nhân viên WHERE job = 'Backend Developer'; 

Vấn đề với loại truy vấn này là, như bạn có thể thấy trong bảng cơ sở dữ liệu của chúng tôi, có một nhà phát triển phụ trợ khác (Nick) trong bảng của chúng tôi đã không được lọc vì chức danh công việc của anh ấy là 'Backend Dev'. Vì vậy, để giải quyết vấn đề này, chúng ta sẽ sử dụng toán tử LIKE.
Vì vậy, chúng tôi có thể tìm Nhà phát triển phụ trợ bằng cách sử dụng truy vấn dưới đây.

CHỌN * TỪ nhân viên TẠI ĐÂU công việc LIKE '% Backend%';

Ký tự% đại diện cho không, một hoặc nhiều ký tự.

Thích | SQL

Nhiệm vụ nhỏ: Tìm nhân viên có tên bắt đầu bằng một nguyên âm (Gợi ý: Bạn cần sử dụng nhiều toán tử HOẶC).

Có một vấn đề ở đây, chữ thường và chữ hoa không giống nhau trong một chuỗi. Tìm kiếm từ “phụ trợ” sẽ bỏ sót tất cả các trường hợp có “phụ trợ” trong chức danh công việc.
Vì vậy, để loại bỏ lỗ hổng này, chúng ta cần tạm thời chuyển đổi chuỗi thành chữ hoa hoặc chữ thường và sau đó so sánh nó.
Ví dụ: truy vấn được sửa đổi sẽ là

CHỌN * TỪ nhân viên NƠI LÊN (công việc) LIKE '% BACKEND%';  

GIỮA

Chúng tôi muốn tìm tất cả nhân viên có mức lương từ 25,000 đến 40,000 (bao gồm cả). Chúng ta có thể làm điều đó bằng cách sử dụng AND và các toán tử so sánh như bên dưới.

SELECT * FROM nhân viên WHERE lương> = 25000 VÀ lương <= 40000;

Một cách khác để làm điều này là với sự trợ giúp của GIỮA Nhà điều hành. Toán tử BETWEEN được bao gồm: giá trị bắt đầu và kết thúc được bao gồm.
Chúng ta có thể thực hiện truy vấn trên bằng toán tử GIỮA.

CHỌN * TỪ nhân viên NÀO mức lương GIỮA 25000 VÀ 40000;

Nhiệm vụ nhỏ: Lọc ra tất cả nhân viên có mức lương từ 30,000 đến 40,000 (độc quyền).

IN

Ở đây chúng tôi xác định rõ ràng một danh sách các giá trị và trả về các bản ghi có chứa bất kỳ giá trị nào từ danh sách. Chúng tôi muốn chọn những nhân viên có worker_id là 1, 3 hoặc 5.

CHỌN * TỪ nhân viên WHERE worker_id IN (1,3,5);
In

Điều này tương tự như việc có nhiều điều kiện được liên kết với nhau bằng cách sử dụng câu lệnh OR (WHERE worker_id = 1 OR worker_id = 3...)
Nhiệm vụ nhỏ: Chọn tất cả các tên nhân viên có worker_id 2 và 5.

LIMIT / FETCH

Được rồi, bây giờ đủ lọc ra dựa trên một số điều kiện. Điều gì sẽ xảy ra nếu chúng ta chỉ muốn chọn 3 nhân viên hàng đầu của bảng. Chúng ta có thể nhanh chóng đạt được điều này bằng cách sử dụng LIMIT và nó được đặt ở cuối mã truy vấn. Chỉ cần nhập LIMIT và số lượng bản ghi chúng tôi muốn hiển thị là xong.

Lưu ý: Hãy nhớ rằng chúng ta đã nói ngắn gọn về các phiên bản SQL khác nhau và cách có thể có sự khác biệt nhỏ trong cú pháp. Chúng ta cần sử dụng “CHỈ TÌM ROWS số ĐẦU TIÊN” thay vì “SỐ GIỚI HẠN” trong Oracle SQL. Tham khảo tài liệu phiên bản SQL để biết thêm thông tin.

Chúng ta hãy hiển thị 2 bản ghi hàng đầu của bảng.

CHỌN * TỪ nhân viên CHỈ NHẬN 2 ĐƯỜNG ĐI ĐẦU TIÊN;
Giới hạn / Tìm nạp | SQL

ĐẶT BỞI

Như tên cho thấy, ĐẶT BỞI câu lệnh sắp xếp kết quả theo thứ tự Tăng dần hoặc Giảm dần.
Cột (hoặc các cột) mà kết quả sẽ được sắp xếp sẽ được thêm vào sau từ khóa ORDER BY.
Nó sắp xếp các kết quả theo thứ tự tăng dần theo mặc định. Để sắp xếp nó theo thứ tự giảm dần, chúng ta cần thêm DESC ở cuối câu lệnh ORDER BY.
Giả sử chúng tôi muốn hiển thị 3 nhân viên có thu nhập cao nhất. Mã sẽ như dưới đây.

CHỌN * TỪ ĐƠN ĐẶT HÀNG của nhân viên THEO mức lương MÔ TẢ CHỈ TÌM 3 LÒNG ĐẦU TIÊN;
Đặt bởi

Nhiệm vụ nhỏ: Chọn ra 3 nhân viên trẻ nhất hàng đầu.

Kết luận về SQL

Vì vậy, đó là nó cho những điều cơ bản. Tôi thực sự khuyên bạn nên thử giải quyết các câu hỏi mã hóa SQL Basic Select trên Hackerrank.
Đây không phải là kết thúc, vì SQL bao gồm các chủ đề phức tạp hơn như Joins, Window function, v.v. Tuy nhiên, đây là một bước đi đúng hướng.

nguồn
Tôi đã tạo tất cả các hình ảnh được hiển thị trong bài viết (tác giả).

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định riêng của Tác giả. 

Nguồn: https://www.analyticsvidhya.com/blog/2022/01/learning-sql-from-basics-to-advance/

tại chỗ_img

Tin tức mới nhất

tại chỗ_img