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;
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;
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;
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;
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;
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;
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');
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:
Column Name |
Data Type |
---|
Store_Name |
char(50) |
Sales |
float |
Txn_Date |
datetime |
Column Name |
Data Type |
---|
Store_Name |
char(50) |
Product_ID |
integer |
Sales |
float |
Txn_Date |
datetime |
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;
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";
UPDATE Store_Information
SET Sales = 600, Txn_Date = 'Jan-15-1999'
WHERE Store_Name = 'San Diego';
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';
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