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

Các lệnh cơ bản trong SQL:Cách viết các truy vấn đơn giản với các ví dụ

Bài viết này giải thích cách viết các truy vấn SQL đơn giản từ những truy vấn cơ bản nhất và dần dần cải thiện tập lệnh để giải quyết một số vấn đề liên quan đến toán học và ngày tháng. Ngoài ra, chúng ta sẽ làm rõ các khái niệm xung quanh các truy vấn SQL.

Mặc dù bài viết này chủ yếu dành cho người mới bắt đầu, nhưng nó chứa các gợi ý sẽ hữu ích cho mọi cấp độ kinh nghiệm.

Truy vấn SQL trong Cơ sở dữ liệu là gì?

Trước tiên, chúng ta hãy nói một chút về các truy vấn SQL để hiểu chúng đúng cách trước khi có kinh nghiệm viết thực tế.

SQL là viết tắt của ngôn ngữ truy vấn có cấu trúc đó là ngôn ngữ thiết yếu được sử dụng để truy vấn cơ sở dữ liệu quan hệ.

T-SQL và SQL - Sự khác biệt là gì?

T-SQL hay Transact-SQL là phiên bản SQL của Microsoft với nhiều chức năng và tính năng hơn so với ngôn ngữ SQL truyền thống còn được gọi là ANSI SQL.

Do đó, T-SQL là một ngôn ngữ SQL truyền thống cùng với nhiều thứ khác được Microsoft bổ sung. Nó thường được sử dụng và đề cập nhiều hơn khi chúng ta nói về SQL.

Bài viết này sẽ đề cập đến phiên bản Microsoft SQL cho dù chúng ta sử dụng từ SQL hay T-SQL.

Tại sao chúng ta sử dụng truy vấn SQL trong cơ sở dữ liệu quan hệ?

Cơ sở dữ liệu quan hệ là cơ sở dữ liệu có các khóa được sử dụng để kết nối các bảng hơn là kết nối các bảng một cách vật lý.

Ví dụ:bạn có một bảng được gọi là Sách mà bạn liên kết đến một bảng khác được gọi là BookType thông qua các phím để bổ sung thêm ý nghĩa cho các bản ghi.

Các bảng trên hình minh họa được liên kết với nhau thông qua một khóa. Không cần phải kết nối chúng về mặt vật lý. Đây là quy tắc cơ bản của cơ sở dữ liệu quan hệ - bạn tạo quan hệ giữa hai bảng với sự trợ giúp của (các) khóa.

Đọc thêm cơ sở dữ liệu quan hệ so với NoSQL - nên chọn gì để quản lý dữ liệu lớn?

Truy vấn Cơ sở dữ liệu là gì?

Bạn truy vấn cơ sở dữ liệu để nhận câu trả lời cho các câu hỏi liên quan đến cơ sở dữ liệu đó. Nói cách khác, bạn viết các truy vấn dựa trên cơ sở dữ liệu để lấy thông tin về dữ liệu mà nó chứa.

Ví dụ:bạn muốn xem tất cả các bản ghi sách cùng với các loại của chúng trong cơ sở dữ liệu cụ thể. Bạn cần truy vấn cơ sở dữ liệu đó để xem dữ liệu cần thiết. Để làm được điều đó, bạn phải viết và chạy một tập lệnh dựa trên cơ sở dữ liệu.

Bạn cần gì để thực hiện một truy vấn?

Một số điều kiện tiên quyết phải có để truy vấn cơ sở dữ liệu vì chúng tôi không thể chỉ viết và chạy truy vấn ở bất kỳ đâu chống lại bất kỳ điều gì.

Những điều sau là bắt buộc để truy vấn cơ sở dữ liệu:

  1. Máy chủ cơ sở dữ liệu như SQL Server (được cài đặt cục bộ hoặc từ xa) nơi bạn lưu trữ cơ sở dữ liệu.
  2. Một công cụ quản lý cơ sở dữ liệu như SQL Server Management Studio hoặc dbForge Studio cho SQL Server mà bạn sẽ sử dụng để viết và chạy các truy vấn của mình
  3. Cơ sở dữ liệu mà bạn chạy các truy vấn của mình. Bạn có thể tạo bất kỳ cơ sở dữ liệu mẫu nào cho mục đích học tập.

Ngoài ra, bạn phải có hiểu biết cơ bản về cơ sở dữ liệu của mình, chẳng hạn như bảng nào chứa thông tin mong muốn, v.v. Hiểu biết về các khái niệm cơ sở dữ liệu quan hệ cũng là một lợi thế.

Chúng tôi giả định rằng bạn đã đáp ứng các yêu cầu trên. Nhưng bạn cũng có thể tham khảo bài viết sau để biết thêm chi tiết:

Khái niệm cơ bản về SQL Server Management Studio (SSMS) - Phần 1

Những điều cần làm trước khi viết truy vấn trong SQL

Bây giờ chúng ta sẽ viết các truy vấn SQL đơn giản.

Vui lòng thiết lập môi trường để bắt đầu viết các truy vấn SQL của bạn. Chuẩn bị sẵn sàng các công cụ. Mở dbForge Studio cho SQL Server hoặc SQL Server Management Studio và kết nối với phiên bản SQL. Ở đây chúng ta bắt đầu hành trình SQL của mình:

Sau khi kết nối thành công, nhấn CTRL + N hoặc đi tới Tệp> Mới> Truy vấn với Kết nối Hiện tại :

Bây giờ, bạn đã kết nối thành công với cơ sở dữ liệu chính (cơ sở dữ liệu hệ thống) của máy chủ hiện được kết nối.

Mẹo quan trọng: Luôn tạo cơ sở dữ liệu mẫu để chạy các truy vấn (script) của bạn dựa trên nó. Chạy truy vấn dựa trên cơ sở dữ liệu hệ thống không phải là một phương pháp hay, ngoại trừ ba trường hợp:

  1. Bạn làm việc với cơ sở dữ liệu mẫu và sau đó tập lệnh được tạo sẵn cho nó sẽ thực thi dựa trên cơ sở dữ liệu hệ thống (chính).
  2. Bạn cố ý truy vấn cơ sở dữ liệu chính để lấy một số thông tin từ nó.
  3. Các truy vấn an toàn khi chạy trên cơ sở dữ liệu hệ thống (chính).

Thiết lập cơ sở dữ liệu mẫu

Hãy để chúng tôi tạo cơ sở dữ liệu mẫu có tên BookSimple mà không có bất kỳ bảng nào. Viết tập lệnh sau vào cơ sở dữ liệu chính để tạo cơ sở dữ liệu mẫu và Nhấn F5 để thực hiện truy vấn:

-- Create sample database BookSimple
USE MASTER
GO

CREATE DATABASE BookSimple
GO

USE BookSimple

Khái niệm dựa trên tập hợp đằng sau các truy vấn SQL

Ngay trước khi bạn viết ngay cả một truy vấn SQL đơn giản nhất, bạn phải hiểu rằng SQL là một ngôn ngữ dựa trên tập hợp.

Điều đó có nghĩa là khi bạn muốn truy vấn cơ sở dữ liệu của mình bằng SQL, bạn nên suy nghĩ về nhóm hoặc nhóm.

SQL là theo thiết kế và theo mặc định rất hiệu quả để phục vụ các yêu cầu dựa trên tập hợp. Nếu bạn kiến ​​trúc các tập lệnh (truy vấn) của mình, lưu ý đến logic dựa trên tập hợp, bạn sẽ hiểu và triển khai SQL nhanh hơn so với những tập lệnh theo con đường học tập điển hình (có lợi ích riêng).

Chúng ta hãy nghĩ về một tập hợp xảy ra tự nhiên, chẳng hạn như lớp hoặc nhóm. Khi chúng tôi đề cập đến một lớp học, chúng tôi đề cập đến tất cả học sinh trong lớp đó. SQL có thể giúp truy vấn toàn bộ lớp đó.

Tương tự, một Sách là một bàn sách. Nó chứa tất cả các bản ghi cho sách. Chúng tôi có thể đơn giản truy vấn bảng đó như thể chúng tôi đang nói về một cuốn sách, nhưng trên thực tế, chúng tôi đang truy vấn toàn bộ bảng sách được đại diện bởi Sách bảng.

Chúng ta sẽ thấy nhiều lợi ích hơn của khái niệm dựa trên tập hợp sau khi chúng ta khám phá một số ví dụ cơ bản.

Câu lệnh CHỌN SQL đơn giản

SELECT là một câu lệnh T-SQL lấy tất cả hoặc các hàng và cột đã chọn (dựa trên tiêu chí) từ cơ sở dữ liệu.

Nói cách khác, CHỌN cho phép chúng tôi xem (chọn) dữ liệu từ một bảng hoặc một số bảng dựa trên các tiêu chí nhất định, nếu không được đề cập chung, sẽ hiển thị tất cả dữ liệu.

Do đó, SELECT là câu lệnh đầu tiên cần tìm nếu chúng ta muốn truy xuất các hàng và cột từ cơ sở dữ liệu. Dạng đơn giản nhất của cú pháp SELECT như sau:

SELECT * FROM <Table>

Hãy nhớ rằng chúng tôi sẽ sửa đổi cú pháp theo thời gian để cải thiện dần quá trình học tập.

Một cách khác để sử dụng câu lệnh SELECT như sau:

SELECT <Expression>

Biểu thức có thể là nhiều thứ, bao gồm những thứ sau:

  1. Không đổi (chẳng hạn như một số cố định như 1).
  2. Biến (chẳng hạn như @X có thể được thay đổi thành bất kỳ số nào).
  3. Sự kết hợp của các hằng số hoặc biến (chẳng hạn như 1 + 2 hoặc @X [email protected]).

Tuy nhiên, cho dù bạn sử dụng SELECT hay SELECT * FROM

, bạn phải suy nghĩ về các nhóm.

Cách viết một truy vấn SQL đơn giản

Hãy để chúng tôi truy vấn BookSimple cơ sở dữ liệu bằng cách làm mới Cơ sở dữ liệu trong Trình khám phá đối tượng. Nhấp chuột phải vào BookSimple > Truy vấn mới :

Viết ra truy vấn SQL đơn giản nhất - viết và chạy tập lệnh sau dựa trên cơ sở dữ liệu mẫu:

-- Display 1
SELECT 1

Chạy truy vấn (nhấn F5) sẽ hiển thị các kết quả sau:

Vì vậy, SELECT 1 trả về 1, nhưng với một cột chưa được đặt tên (Không có tên cột).

1 là một hằng số. Nó sẽ vẫn là 1, vì vậy chúng tôi mong đợi kết quả cũng là 1. Tuy nhiên, có một điều quan trọng hơn cần hiểu:đầu ra của chúng ta được chuyển đổi thành một tập hợp gồm 1 cột và 1 hàng. Vì chúng tôi không cung cấp bất kỳ tên nào cho cột và không có bảng nào liên quan (để lấy tên từ đó), chúng tôi đang nhận giá trị 1 cho một cột không tên của một bảng (tập hợp) chưa được đặt tên.

Ngôn ngữ dựa trên tập hợp đã tự động trả lại giá trị được cung cấp của chúng tôi cho một cột không tên của bảng không tên có một hàng.

Hãy để chúng tôi đặt tên cho cột bằng cách sửa đổi tập lệnh như sau:

-- Show value 1 for the column Number of an unnamed table (set)
SELECT 1 AS Number

Chạy tập lệnh để xem kết quả sau được đặt lần này:

Vì truy vấn này luôn trả về cùng một giá trị (số) mà chúng ta nhập vào (cung cấp), nên không có nhiều điều để thảo luận ngoài việc hiểu tại sao tư duy dựa trên tập hợp lại quan trọng để hiểu cách hoạt động của các truy vấn.

Tính toán trong Câu lệnh Chọn

Hãy để chúng tôi sử dụng trường hợp trên để tính toán nhanh trong SQL - chúng tôi biến một giá trị đơn lẻ thành một biểu thức.

Ví dụ:chúng ta muốn thêm nhanh hai số 1000 và 200. Chúng ta có thể chỉ cần viết truy vấn sau mà không cần đề cập đến bất kỳ bảng nào chỉ bằng cách sử dụng câu lệnh SELECT:

-- Adding two numbers 1000 and 200 
SELECT 1000+200 AS [Sum Of 1000 And 200]

Kết quả là bên dưới:

Tương tự, chúng ta có thể cộng, nhiều, chia và trừ các số.

Sẽ rất hữu ích nếu bạn thêm hai cột của bảng chứa các giá trị số. Tuy nhiên, chúng ta cũng có thể sử dụng cách tiếp cận này để thêm hai biến. Sử dụng các biến có lợi vì chúng ta có thể thêm bất kỳ hai số nào bằng cách khởi tạo các biến đó với các giá trị mong muốn. Điều này được minh họa bằng đoạn mã sau:

-- SQL script to add any two numbers
DECLARE @X INT, @Y INT, @Addition INT

SET @X=550 -- Initialise variable X with a value (number)
SET @Y=350 -- Initialise variable Y with a value (number)
 
SET @[email protected]@sqldat.com -- SUM X and Y

SELECT @X AS FirstNumber_X,@Y as SecondNumber_Y,@Addition as SumOfNumbers

Chạy script cho chúng ta thấy kết quả sau:

Chúng tôi có thể lưu truy vấn này để sử dụng lại bất kỳ lúc nào để thêm hai số bất kỳ (bằng cách thay đổi các giá trị của @X và @Y). Nếu chúng ta nghĩ về điều này về mặt tập hợp, chúng ta có thể nói rằng đầu ra được trả về dưới dạng một bảng (tập hợp) không tên với một hàng và ba cột sau:

  1. FirstNumber_X
  2. SecondNumber_Y
  3. SumOfNumbers

Tuy nhiên, bạn có thể làm được nhiều việc hơn với SELECT với cơ sở dữ liệu trống (không có bảng).

Một ví dụ tính toán dữ liệu khác

Ở đây, chúng ta sẽ sử dụng hàm GETDATE () để truy xuất ngày hiện tại và ngày giao hàng dự kiến ​​của một đơn đặt hàng không xác định chưa phải là một phần trong bảng của chúng ta.

Giả sử chúng tôi chưa có bất kỳ bảng đơn hàng nào, nhưng chúng tôi muốn nhanh chóng tính toán ngày giao hàng đơn đặt hàng sản phẩm dự kiến. Nếu chúng ta thêm bất kỳ số nào vào hàm GETDATE (), nó sẽ cho chúng ta biết ngày được thêm với số ngày được cung cấp.

Nói cách khác, nếu chúng tôi dự kiến ​​ngày giao hàng là hai ngày sau khi đặt hàng, chúng tôi có thể tính toán bằng cách sử dụng SELECT với GETDATE () + 2.

Để xem nó hoạt động, hãy chạy tập lệnh SQL sau:

-- Calculating order date and expected delivery date
SELECT GETDATE() AS [Order Date],GETDATE()+2 as [Expected Delivery Date]

Tập hợp kết quả như sau:

Lần này, chúng tôi có thể tính toán ngày giao hàng dự kiến ​​trực tiếp bằng cách sử dụng câu lệnh SELECT với hàm GETDATE () mà không có bất kỳ bảng nào.

Tuy nhiên, nếu chúng tôi có một bảng, chúng tôi sẽ có ngày giao hàng dự kiến ​​cho tất cả các đơn đặt hàng trong bảng đó.

Một lần nữa, nếu chúng ta phân tích đầu ra này dưới dạng Set Logic, chúng ta có một bảng (tập hợp) không tên với hai cột và một hàng. SQL là ngôn ngữ dựa trên Tập hợp hoạt động rất nhanh với các tập hợp, chẳng hạn như bảng. Nếu các bảng không có ở đó, nó sẽ coi các giá trị đầu vào (sẽ được xử lý) là các tập hợp không có tên.

Nói tóm lại, một truy vấn SQL yêu cầu một câu lệnh SELECT theo sau là một biểu thức để thực hiện một số phép tính dựa trên số hoặc ngày ngay cả với cơ sở dữ liệu trống (không có bảng).

Xin chúc mừng! Bạn đã học những kiến ​​thức cơ bản về truy vấn SQL và viết một số truy vấn đơn giản với sự trợ giúp của câu lệnh SELECT dựa trên cơ sở dữ liệu mẫu.

Giữ liên lạc, vì việc viết các truy vấn SQL đơn giản dựa trên các bảng cơ sở dữ liệu vẫn chưa ra mắt.

Những điều cần tìm hiểu cách viết truy vấn SQL tốt hơn

Bây giờ bạn có thể viết một số truy vấn SQL cơ bản, hãy thử các bài tập sau:

  1. Tạo cơ sở dữ liệu mẫu BookSimple2.
  2. Tạo một truy vấn để nhân hai số bất kỳ bằng cách xác định chúng dưới dạng các biến.
  3. Viết một truy vấn để tạo ngày đặt hàng là ngày hiện tại, ngày giao hàng là hai ngày sau ngày đặt hàng và ngày giao hàng dự kiến ​​là hai ngày sau ngày giao hàng.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chạy SQL Scripts trong môi trường Multitenant với catcon.pl

  2. Hiệu suất bất ngờ và giả định:Tùy ý TOP 1

  3. Bạn có mắc phải những sai lầm này khi sử dụng SQL CURSOR không?

  4. Cách tạo bảng với khóa ngoại trong SQL

  5. Một cách để có được chỉ mục là tìm kiếm ký tự đại diện% đứng đầu