12/08/2018, 15:42

Các câu lệnh trong Basic SQL Commands - Phần 2

Chúng ta có table Store_Information sau: Store_Name Sales Txn_Date Los Angeles 1500 Jan-05-1999 San Diego 250 Jan-07-1999 Los Angeles 300 Jan-08-1999 Boston 700 Jan-08-1999 Table Geography Region_Name Store_Name East Boston East ...

Chúng ta có table Store_Information sau:

Store_Name Sales Txn_Date
Los Angeles 1500 Jan-05-1999
San Diego 250 Jan-07-1999
Los Angeles 300 Jan-08-1999
Boston 700 Jan-08-1999

Table Geography

Region_Name Store_Name
East Boston
East New York
West Los Angeles
West San Diego

1. SQL SELECT UNIQUE

  • SQL Select unique là một câu lệnh SQL của Oracle. Nó tương đương với SELECT DISTINCT.
  • Cú Pháp
SELECT UNIQUE "column_name" FROM "table_name";
  • Example : Chọn tất cả các cửa hàng riêng biệt trong Bảng thông tin cửa hàng trong Oracle
SELECT UNIQUE Sales FROM Store_Information;
  • Result :
Sales
1500
250
300
700

2. SQL JOIN

  • JOIN là phép kết nối dữ liệu từ nhiều bảng lại với nhau. Khi bạn cần truy vấn các cột dữ liệu từ nhiều bảng khác nhau để trả về trong cùng một tập kết quả, bạn cần dùng JOIN.
  • Một cách khác để xác định một sự kết hợp giữa các bảng là sử dụng JOIN và ON từ khóa.
  • Example:
SELECT A1.Region_Name REGION, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.Store_Name = A2.Store_Name
GROUP BY A1.Region_Name;
  • Result:
Region Sales
East 700
West 2050
  • Có các kiểu JOIN khác nhau như:
  • Inner Join.
  • Outer Join.
  • Left Outer Join.
  • Cross Join.

3. INNER JOIN

  • Trả về kết quả là các bản ghi mà trường được join ở hai bảng khớp nhau, các bản ghi chỉ xuất hiện ở một trong hai bảng sẽ bị loại.
  • Example: Muốn tìm kiếm doanh số bán hàng theo cửa hàng và chúng tôi chỉ muốn xem các cửa hàng có doanh số bán hàng được liệt kê trong báo cáo. Để làm điều này, chúng ta có thể sử dụng câu lệnh SQL sau đây bằng INNER JOIN:
SELECT A1.Store_Name STORE, SUM(A2.Sales) SALES 
FROM Geography A1 
INNER JOIN Store_Information A2 
ON A1.Store_Name = A2.Store_Name 
GROUP BY A1.Store_Name;
  • Results:
Store Sales
Los Angeles 1800
San Diego 250
Boston 700

4. OUTER JOIN

  • Lấy về các bản ghi có mặt trong cả hai bảng và cả các bản ghi chỉ xuất hiện ở một trong hai bảng. Kiểu JOIN này được chia làm hai loại:
  • FULL OUTER JOIN: kết quả gồm tất cả các bản ghi của cả hai bảng. Với các bản ghi chỉ xuất hiện trong một bảng thì các cột dữ liệu từ bảng kia được điền giá trị NULL.
  • HALF OUTER JOIN (LEFT hoặc RIGHT): nếu bảng A LEFT OUTER JOIN với bảng B thì kết quả gồm các bản ghi có trong bảng A, với các bản ghi không có mặt trong bảng B thì các cột từ B được điền NULL. Các bản ghi chỉ có trong B mà không có trong A sẽ không được trả về.
  • Example : muốn tìm ra số tiền bán hàng cho tất cả các cửa hàng
SELECT A1.Store_Name, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.Store_Name = A2.Store_Name (+)
GROUP BY A1.Store_Name;
  • Result :
Store_Name Sales
Boston 700
New York
Los Angeles 1800
San Diego 250

5. LEFT OUTER JOIN

  • Example: Muốn tìm kiếm doanh số bán hàng theo cửa hàng và chúng tôi muốn xem kết quả cho tất cả các cửa hàng bất kể có bán hàng trong bảng Store_Information hay không. Để làm điều này, chúng ta có thể sử dụng câu lệnh SQL sau đây bằng LEFT OUTER JOIN:
SELECT A1.Store_Name STORE, SUM(A2.Sales) SALES 
FROM Geography A1 
LEFT OUTER JOIN Store_Information A2 
ON A1.Store_Name = A2.Store_Name 
GROUP BY A1.Store_Name;
  • Result:
Store Sales
Los Angeles 1800
San Diego 250
New York NULL
Boston 700

6. CROSS JOIN

  • Trả về tích Đề-các của các tập hợp bản ghi từ hai hoặc nhiều bảng đã được kết hợp. Vì thế, nó tương đương như một INNER JOIN khi join-condition luôn luôn ước lượng là True hoặc khi join-condition là vắng mặt trong lệnh.
  • Example: Kết hợp 2 bảng Store_Information và Geography sử dụng CARTESIAN JOIN trong SQL như sau:
SELECT A1.Store_Name STORE1, A2.Store_Name STORE2, A2.Sales SALES 
FROM Geography A1 
JOIN Store_Information A2;
  • Result :
STORE1 STORE2 SALES
Boston Los Angeles 1500
New York Los Angeles 1500
Los Angeles Los Angeles 1500
San Diego Los Angeles 1500
Boston San Diego 250
New York San Diego 250
Los Angeles San Diego 250
San Diego San Diego 250
Boston Los Angeles 300
New York Los Angeles 300
Los Angeles Los Angeles 300
San Diego Los Angeles 300
Boston Boston 700
New York Boston 700
Los Angeles Boston 700
San Diego Boston 700

7. INSERT INTO

  • Lệnh INSERT INTO trong SQL được sử dụng để thêm các hàng dữ liệu mới vào một bảng trong Database.
  • Cú pháp:
INSERT INTO "table_name" ("column1", "column2", ...)
VALUES ("value1", "value2", ...);
  • Ví dụ ta có bảng dữ liệu sau:
Column Name Data Type
Store_Name char(50)
Manager_ID integer
Sales float
Txn_Date datetime
  • Example 1: Tất cả các cột được chỉ định:
INSERT INTO Store_Information (Store_Name, Manager_ID, Sales, Txn_Date)
VALUES ('Los Angeles', 10, 900, 'Jan-10-1999');
  • Result :
Store_Name Manager_ID Sales Txn_Date
Manager_ID 10 900 Jan-10-1999

8. INSERT INTO SELECT

  • Câu lệnh INSERT INTO SELECT được sử dụng để thêm nhiều bản ghi mới vào một bảng cơ sở dữ liệu cùng một lúc.
  • Cú pháp:
INSERT INTO "table1" ("column1", "column2", ...)
SELECT "column3", "column4", ...
FROM "table2";

Ví dụ ta có bảng dữ liệu sau:

  • Table Store_Information
Column Name Data Type
Store_Name char(50)
Sales float
Txn_Date datetime
  • Table Sales_Data
Column Name Data Type
Store_Name char(50)
Product_ID integer
Sales float
Txn_Date datetime
  • Thực hiện câu lệnh sau:
INSERT INTO Store_Information (Store_Name, Sales, Txn_Date)
SELECT Store_Name, SUM(Sales), Txn_Date
FROM Sales_Data
GROUP BY Store_Name, Txn_Date;
  • Result :
Store_Name Product_ID Sales Txn_Date
Mountain View 101 50 Feb-22-1999
Cupertino 120 35 Feb-22-1999
Redwood City 101 40 Feb-22-1999
Sunnyvale 80 60 Feb-22-1999
Redwood City 120 20 Feb-22-1999
Sunnyvale 101 30 Feb-22-1999
Mountain View 120 35 Feb-23-1999
Cupertino 80 25 Feb-23-1999
Mountain View 101 30 Feb-23-1999
Cupertino 120 40 Feb-23-1999
Redwood City 101 40 Feb-23-1999
Sunnyvale 80 50 Feb-23-1999

9. SQL UPDATE

  • Câu lệnh UPDATE được sử dụng để sửa đổi dữ liệu trong một bảng cơ sở dữ liệu.
  • Cú pháp:
UPDATE "table_name"
SET "column_1" = [new value]
WHERE "condition";
  • Example : Update 1 cột.
UPDATE Store_Information
SET Sales = 600, Txn_Date = 'Jan-15-1999'
WHERE Store_Name = 'San Diego';
  • Result :
Store_Name Sales Txn_Date
Los Angeles 1500 Jan-05-1999
San Diego 600 Jan-07-1999
Los Angeles 300 Jan-08-1999
Boston 700 Jan-08-1999

10. SQL DELETE FROM

  • Câu lệnh DELETE FROM trong SQL được sử dụng để xóa các bản ghi từ một bảng.
  • Cú pháp:
DELETE FROM "table_name"
WHERE "condition";
  • Example : DELETE T FROM bằng cách sử dụng một điều kiện đơn giản.
DELETE FROM Store_Information
WHERE Store_Name = 'Los Angeles';
  • Result :
Store_Name Sales Txn_Date
San Diego 600 Jan-07-1999
Boston 700 Jan-08-1999

Nguồn Tham Khảo: http://www.1keydata.com/sql/advanced.html

0