1. Trang chủ
  2. » Công Nghệ Thông Tin

bài tìm hiểu My SQL, SQL sever

122 222 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 122
Dung lượng 8,31 MB

Nội dung

Từ table quản lý nhân viên: hãy đưa ra các bộ phận phòng ban trong công ty Select Distinct Bo_phan From quan_ly_nv; kết quả:... Từ table quản lý nhân viên: hãy cho biết nhân viên làm vi

Trang 1

BÀI BÁO CÁO TÌM HIỂU SQL NHÓM 2 Phụ lục:

Select distinct 3

♣ The SELECT DISTINCT : 3

♣ SELECT COUNT(DISTINCT) 7

♣ SELECT Count(*) AS 9

SQL WHERE Clause: 11

♣ Where Clause: 11

♣ AND, OR, NOT operators: 13

♣ IN operator 13

♣ BETWEEN Operator 20

Aliases: 24

JOINS: 27

♣ INNER JOIN Keyword 27

♣ LEFT JOIN Keyword 37

♣ RIGHT JOIN Keyword: 45

♣ FULL OUTER JOIN Keyword 51

♣ SELF JOIN 54

ORDER BY 61

SQL UNION 65

GROUP BY 74

SQL HAVING 78

SQL EXISTS 82

SQL ANY và ALL 84

SQL INSERT INTO SELECT 87

SQL COMMENTS 91

SQL NULL FUNCTIONS 91

UPDATE Statement 93

DELETE Statement 97

MIN() and MAX() Functions 102

♣ MIN FUNCTIONS: 102

♣ MAX FUNCTIONS: 104

Trang 2

COUNT(), AVG() and SUM() Functions 106

♣ COUNT FUNCTIONS: 106

♣ AVG FUNCTIONS: 108

♣ SUM FUNCTIONS: 110

SQL LIKE Operator 112

INSERT INTO 116

SELECT TOP 120

Trang 3

Select distinct

♣ The SELECT DISTINCT :

Đ/n: Câu lệnh The SELECT DISTINCT được sử dụng để trả về chỉ những giá trị khác

nhau.(trả về những giá trị duy nhất, không bị trùng )

1 Từ table quản lý nhân viên: hãy đưa ra các bộ phận phòng ban trong công ty

Select Distinct Bo_phan

From quan_ly_nv;

kết quả:

Trang 4

2 Từ table quản lý nhân viên: hãy cho biết nhân viên làm việc trong công ty đến

từ các tỉnh nào

Select Distinct Que_Quan

From quan_ly_nv;

kết quả

b SELECT DISTINCT + ORDER BY

SELECT DISTINCT column1, column2,

FROM table_name;

ORDER BY column name DESC/ASC

Example 1: Từ table Customers hãy cho biết khách hàng đến từ những quốc gia nào? Hãy sắp xếp các quốc gia theo thứ tự tăng dần.

Table Customers:

SELECT DISTINCT Country FROM Customers

ORDER BY Country ASC;

Trang 6

c SELECT DISTINCT +WHERE

SELECT DISTINCT column1, column2,

d SELECT DISTINCT + WHERE + ORDER BY

SELECT DISTINCT column1, column2,

FROM table_name;

WHERE condition

ORDER BY column name

Example: Từ table Customers hãy cho biết khách hàng đến từ những quốc gia nào trừ những quốc gia bắt đầu bằng chữ “A”? Hãy sắp xếp các quốc gia theo thứ tự tăng dần.

Table Customers:

Trang 7

SELECT DISTINCT Country

FROM Customers

WHERE Country NOT LIKE 'A%'

ORDER BY Country ASC;

Trang 8

Example 1: Từ table quản lý nhân viên: hãy cho biết trong công ty có bao nhiêu phòng ban.

Select COUNT(Distinct Bo_phan)

From quan_ly_nv;

Kết quả:

Example 2: Từ table quản lý nhân viên: hãy cho biết nhân viên làm việc trong công

ty đến từ bao nhiêu tỉnh thành

Trang 9

Select COUNT(Distinct Que_Quan)

From quan_ly_nv;

Kết quả:

b SELECT COUNT (DISTINCT ) + WHERE

Example: Từ table quan_ly_kh hãy cho biết có bao nhiêu nhân viên đảm nhận khách hàng không đến từ Đà Nẵng

Select COUNT (Distinct NV_damnhan)

Trang 10

SELECT Count(*) AS Name

FROM (SELECT DISTINCT column name FROM Table name);

Example: Từ table customer hãy đếm xem khách hàng đến từ bao nhiêu nước khác nhau và đặt tên tạm thời cho kết quả là DistinctCountries

SELECT Count(*) AS DistinctCountries

FROM (SELECT DISTINCT Country FROM Customers)

Trang 11

SELECT Count(*) AS Distinctproduct

FROM (SELECT DISTINCT productName FROM Products);

Kết quả:

SQL WHERE Clause:

♣ Where Clause:

Đ/n: Mệnh đề Where được dùng để lọc các record Chỉ xuất ra những record đáp ứng được

yêu cầu (điều kiện) cụ thể

Syntax:

SELECT column1, column2,

FROM table_name

WHERE condition;

a Mệnh đề WHERE trong trường hợp thông thường

Example: Từ table quan_ly_nv hãy xuất ra thông tin những nhân viên thuộc bộ phận kinh doanh

Trang 12

Select *From quan_ly_nv

Where Bo_phan = 'Kinh doanh';

Kết quả:

b Mệnh đề WHERE được sử dụng tương đương với INNER JOIN

SELECT table1.column_name, table2.column_name,…

FROM Table1, Table2

WHERE Table1.column_name=Table2.comlumn_name and condition(s);

Example: Từ Table SINHVIEN và Table KHOA, cho biết danh sách sinh viên Nam khoa 'Cong Nghe Thong Tin' sắp xếp tăng dần theo tên

Table SINHVIEN:

Trang 13

Table KHOA:

SELECT HOSV,TENSV,MASV,NGAYSINH,PHAI,SINHVIEN.MAKHOA

FROM SINHVIEN,KHOA

WHERE SINHVIEN.MAKHOA =KHOA.MAKHOA and TENKHOA ='Cong Nghe Thong Tin' and PHAI ='Nam'

ORDER BY TENSV;

Kết quả:

♣ AND, OR, NOT operators:

And, or,not là các toán tử được kết hợp trong mệnh đề Where

AND: A and B (xuất record với điều kiện là cả A và B đều đúng)

Syntax:

SELECT column1, column2,

FROM table_name

WHERE condition1 AND condition2 AND condition3 ;

OR: A or B (xuất record với điều kiện A đúng hoặc B đúng)

Syntax:

SELECT column1, column2,

FROM table_name

WHERE condition1 OR condition2 OR condition3 ;

NOT: Not condition (xuất record với điều kiện đó không đúng)

Syntax:

Trang 14

SELECT column1, column2,…

FROM table_name

WHERE column_name IN (value1, value2, );

Example: and , or, not, in

1 Từ table quan_ly_nv hãy xuất ra những nhân viên thuộc phòng kinh doanh và đến từ Đà Nẵng

Select *From quan_ly_nv

Where Bo_phan = ‘Kinh doanh’ And Que_Quan = 'Đà Nẵng';

Kết quả:

2 Từ table quan_ly_nv hãy xuất ra những nhân viên không đến từ Đà Nẵng

Trang 15

Select *From quan_ly_nv

Where Not Que_Quan = 'Đà Nẵng';

Kết quả:

3 Từ table quan_ly_nv hãy xuất ra những nhân viên thuộc phòng nhân sự hoặc nhân viên đến từ Đà Nẵng

Trang 16

Select *From quan_ly_nv

Where Bo_phan = ‘Nhân sự’ Or Que_Quan = 'Đà Nẵng';

Kết quả:

4 Từ table quan_ly_kh hãy xuất ra những khách hàng không đến từ Đà Nẵng.

Select KH_id, Ten_KH, Email, Dia_chi

From quan_ly_kh

Where Dia_chi Not Like '%Đà Nẵng';

Trang 17

Kết quả:

5 Từ table customer hãy xuất ra những khách hàng có Country='Germany' và

có City='Berlin'

SELECT * FROM Customers

WHERE Country='Germany' AND City='Berlin';

Kết quả:

Trang 18

6 Từ table customer hãy xuất ra những khách hàng có Country='Germany' và

có City='Berlin' hoặc City='München'

SELECT * FROM Customers

WHERE Country='Germany' AND (City='Berlin' OR City='München');

Kết quả:

7 Từ table customer hãy xuất ra những khách hàng có Country='Germany' hoặc country = 'France' hoặc = 'UK'

Trang 19

SELECT * FROM Customers

WHERE Country IN ('Germany', 'France', 'UK');

Kết quả:

8 Từ table customer hãy xuất ra những khách hàng có City=' London ' hoặc có City='Berlin' hoặc City=' Paris '

Trang 20

SELECT * FROM Customers

WHERE City IN ('Berlin', 'London', 'Paris');

Kết quả:

♣ BETWEEN Operator

Đ/n: Chọn ra những giá trị nằm trong 1 khoảng nhất định, từ giá trị nhỏ nhất đến giá trị

lớn nhất được chỉ định Các giá trị có thể ở dạng số, văn bản, ngày tháng

Trang 21

1 Từ table products hãy xuất ra thông tin những sản phẩm có giá từ 10 đến 20.

SELECT * FROM Products

WHERE Price BETWEEN 10 AND 20;

Kết quả:

Trang 22

2 Từ table products hãy xuất ra thông tin những sản phẩm có giá từ 30 đến 50

SELECT * FROM Products

WHERE Price BETWEEN 30 AND 50;

Trang 23

Kết quả:

3 Từ table products hãy xuất ra thông tin những sản phẩm có giá nhỏ hơn 10 và lớn 20.

SELECT * FROM Products

WHERE Price NOT BETWEEN 10 AND 20;

Trang 25

SELECT CustomerID as ID, CustomerName AS CustomerFROM Customers;

Kết quả:

Trang 26

2 Tong table Customer hãy xuất ra cột CustomerName và các cột Address + PostalCode + City + Country lấy tên là Address

Trang 27

♣ INNER JOIN Keyword

Đ/n: Inner Join là từ khóa được dùng để chọn ra các record nằm trong vùng giao của 2

table

Syntax:

SELECT column_name(s)

FROM table1

INNER JOIN table2 ON table1.column_name = table2.column_name;

a INNER JOIN từ 2 tbale

SELECT column_name(s)

FROM table1

INNER JOIN table2 ON table1.column_name = table2.column_name;

Example 1: Từ table quan_ly_nv và quan_ly_kh hay lay ra danh sách khách hàng và danh sách nhân viên đảm nhận chăm sóc kèm theo số điện thoại liên hệ của 2 bên Table quan_ly_nv

Trang 29

Table Customer

Table Order

Trang 30

SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName

INNER JOIN table2 ON table1.column_name = table2.column_name

INNER JOIN table3 ON table1.column_name = table2.column_name;

Example 1: Từ table Customers, table Orders và table Shippers hãy lấy ra OderID, CustomerName và ShipperName tương ứng với từng mãi OrderID

Trang 31

Table Customer

Table Order

Trang 32

Table Shippers

SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperNameFROM ((Orders

INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)

INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);

Kết quả:

Example 2: Từ table BAC_SI, BENH_NHAN, BENH_AN hãy xuất ra thông tin bệnh nhân gồm: TenBenhNhan, NgayNhapVien, TenBacsi

Trang 34

c INNER JOIN kết hợp với WHERE.

INNER JOIN KHOA

ON SINHVIEN.MAKHOA = KHOA.MAKHOA

WHERE TENKHOA ='Cong Nghe Thong Tin' AND PHAI ='Nam';

Kết quả:

d INNER JOIN kết hợp ORDER BY

Trang 35

INNER JOIN KHOA

ON SINHVIEN.MAKHOA = KHOA.MAKHOA

ORDER BY TENKHOA;

Kết quả:

Trang 36

e INNER JOIN kết hợp WHERE và ORDER BY

INNER JOIN KHOA

ON SINHVIEN.MAKHOA = KHOA.MAKHOA

WHERE TENKHOA ='Cong Nghe Thong Tin' AND PHAI ='Nam'

ORDER BY TENSV;

Kết quả:

Trang 37

♣ LEFT JOIN Keyword

Đ/n: Left Join là từ khóa cho phép chọn những record từ table bên trái (table 1) và các

record là giao của table 1 và 2

Table Customers

Trang 39

2 Từ table Customers, table Shippers và table Orders hãy lấy ra danh sách tên khách hàng (CustomerName), tên Shipper, OrderID và sắp xếp theo thứ tự tăng dần của tên khách hàng

Table Customers

Trang 40

Table Shippers

Table Orders

SELECT Customers.CustomerName, Orders.OrderID, Shippers.ShipperNameFROM Customers

LEFT JOIN Orders ON Customers.CustomerID=Orders.CustomerID

LEFT JOIN Shippers ON Shippers.ShipperID = Orders.ShipperID

ORDER BY Customers.CustomerName;

Trang 41

Kết quả:

3 Từ table SINHVIEN và table MUONSACH hãy đưa ra danh sách tên sinh viên và những sinh viên nào có mượn sách, số tiền bao nhiêu và mượn vào ngày nào.

Table SINHVIEN

Table MUONSACH

SELECT ID, TEN, SOTIEN, NGAY

FROM SINHVIEN

Trang 42

LEFT JOIN MUONSACH ON SINHVIEN.ID = MUONSACH.SINHVIEN_ID;

Trang 43

Table OrderDetails

Table Products

Trang 44

SELECT Customers.CustomerName, Products.ProductName, Products.PriceFROM Customers

LEFT JOIN Orders ON Customers.CustomerID=Orders.CustomerID

LEFT JOIN OrderDetails ON Orders.OrderID = OrderDetails.OrderIDLEFT JOIN Products ON OrderDetails.ProductID = Products.ProductIDORDER BY Customers.CustomerName;

Kết quả:

Trang 45

♣ RIGHT JOIN Keyword:

Đ/n: Right join là từ khóa cho phép xuất ra những record từ table bên phải (table 2) và các

record là giao của table 1 và 2

Trang 47

Table Orders

Table Employees

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName

Trang 49

SELECT ID, NAME, AMOUNT, DATE

Trang 50

SELECT COMPANY.COMPANY_ID, COMPANY.COMPANY_NAME,

COMPANY.COMPANY_CITY, FOODS.COMPANY_ID, FOODS.ITEM_NAMEFROM COMPANY

RIGHT JOIN FOODS

ON COMPANY.COMPANY_ID = FOODS.COMPANY_ID;

Kết quả:

Trang 51

♣ FULL OUTER JOIN Keyword

Đ/n: Full outer join là từ khóa cho phép xuất ra tất cả các record là kết hợp (giao) của 2

table hay bên trái của table 1 hoặc bên phải của table 2

Trang 52

SELECT ID, NAME, AMOUNT, DATE

Trang 56

1 Lấy tên khách hàng cùng thành phố nhưng khác CustomerID

Trang 57

SELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2, A.CityFROM Customers A, Customers B

WHERE A.CustomerID <> B.CustomerID

AND A.City = B.City

ORDER BY A.City;

Kết quả:

Trang 58

2 Lấy những khách hàng đến cùng từ 1 thành phố của 1 quốc gia Mexico trong table ‘Customers’

SELECT A.CustomerName AS CustomerName1, B.CustomerName AS

CustomerName2, A.City

FROM Customers A, Customers B

WHERE A.CustomerID <> B.CustomerID

AND A.City = B.City

AND A.Country = 'Mexico'

ORDER BY A.City;

Kết quả:

3 Lấy những khách hàng đến từ cùng thành phố của 1 quốc gia USA

Trang 59

SELECT A.CustomerName AS CustomerName1, B.CustomerName AS

CustomerName2, A.City

FROM Customers A, Customers B

WHERE A.CustomerID <> B.CustomerID

AND A.City = B.City

AND A.Country= 'USA'

IdFirstNameLastNameCityCountryPhone

SELECT B.FirstName AS FirstName1, B.LastName AS LastName1,

A.FirstName AS FirstName2, A.LastName AS LastName2, B.City, B.CountryFROM Customer A, Customer B

WHERE A.Id <> B.Id

AND A.City = B.City

AND A.Country = B.Country

ORDER BY A.Country;

Trang 61

Kết quả:

2 Từ table Customers hãy xuất ra tất cả các record được sắp xếp theo thứ tự giảm dần của Country

Table Customers:

SELECT * FROM Customers

ORDER BY Country DESC;

Kết quả:

Trang 62

3 Từ table Products hãy xuất ra tất cả các record được sắp xếp theo thứ tự tăng dần của Price

Trang 63

SELECT * FROM [Products]

ORDER BY Price DESC;

Kết quả:

5 Từ table Products hãy xuất ra tất cả các record được sắp xếp theo thứ tự tăng dần của ProductName và giảm dần của Price

Table Products

Trang 64

SELECT * FROM [Products]

ORDER BY ProducName ASC Price DESC;

- Dữ liệu trong 2 câu lệnh SELECT phải tương đồng nhau

+ Kiểu dữ liệu trong cột phải giống nhau

+ Các cột trong câu lệnh cũng phải giống nhau về thứ tự

+ Kết hợp ví trí của cột chứ không kết hợp theo tên cột

Trang 65

SELECT column_name(s) FROM table2;

- UNION ALL dùng đề lấy tất cả các giá trị từ 2 hay nhiều bảng tương đồng ( bao gồm cả giá trị trùng lặp)

SELECT column_name(s) FROM table1 UNION ALL

SELECT column_name(s) FROM table2;

Example:

Có 2 table 1 Customer

Table “Customer”

Trang 68

Table 2 Suppliers

Trang 69

1 Lấy tất cả các thành phố từ 2 bảng Customer và Suppliers

SELECT City FROM Customers

UNION

SELECT City FROM Suppliers

ORDER BY City;

Kết quả:

Trang 70

2 Lấy danh sách thông tin liên lạc gồm tên và thành phố từ 2 bảng trên

SELECT CustomerName AS SupplierName, ContactName, Address, City, CountryFROM Customers

Trang 71

4 Lấy tất cả danh sách liên hệ từ 2 bảng trên

SELECT 'Customers' As Type, CustomerName AS SupplierName, ContactName, Address City, PotslCode, Country

Trang 72

5 Lấy tất cả danh sách liên hệ của khách hàng từ bảng Customer và Suppliers CUSTOM

ContactName

CityCountryPhoneFaxSELECT 'Customer' As Type, FirstName + ' ' + LastName AS ContactName, City, Country, Phone

Trang 73

GROUP BY

Đ/n: Dùng để kết hợp với các hàm chức năng (COUNT, MAX, MIN, SUM, AVG) để

nhóm kết quả truy vấn bởi 1 hoặc nhiều cột

- Lấy ra các bản ghi và nhóm lại thành 1 nhóm

Trang 74

1 Đếm số lượng khách hàng của từng đất nước

SELECT COUNT(CustomerID), Country

từ cao đến thấp

SELECT COUNT(CustomerID), Country

FROM Customers

Trang 76

SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders

LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID

GROUP BY ShipperName;

Kết quả:

Trang 77

SQL HAVING

Đ/n: Dùng để filter các record sau khi có kết quả của GROUP BY

Không thể dùng WHERE Vì WHERE dùng cho cá nhân, còn Having dùng cho nhóm (Saukhi đã dùng GROUP BY)

Chỉ những nhóm thỏa mãn điều kiện trong mệnh đề HAVING thì mới được lấy

Khi dùng HAVING thì bắt buộc có mặt của GROUP BY

WHERE và HAVING đều có thể dùng chung trong 1 câu lệnh nhưng thứ tự là: WHERE, GROUP BY, HAVING

Trang 79

3 Liệt kê ra số lượng khách hàng của từng đất nước khác USA, có tổng ID lớn hơn 5 và được sắp xếp thứ tự giảm dần

SELECT COUNT(CustomerID), Country

Trang 80

5 Liệt kê ra số lượng khách hàng của từng đất nước, có tổng ID lớn hơn 10 và được sắp xếp thứ tự giảm dần từ bảng Suppliers.

SELECT COUNT(SupplierID), Country

Trang 81

SQL EXISTS

Đ/n: Dùng để test sự tồn tại của một vài record trong một truy vấn con

Thường được dùng trong truy vấn con

Trả về giá trị là TRUE kết quả của truy vấn con là 1 hoặc nhiều record

Table Products và table Sippliers

1 Liệt kê những nhà cung cấp sản phẩm có mức giá thấp hơn 20

Trang 82

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 trả về TRUE và Liệt kê ra những nhà cung cấp sản phẩm có mức giá = 22

Trang 83

Đ/n: Dùng trong mệnh đề WHERE hoặc HAVING

ANY và ALL đều được sử dụng trong truy vấn con để trả về nhiều giá trị

ANY: Trả về TRUE nếu Bất kì giá trị của truy vấn con thỏa mãn điều kiện

ALL: Trả về TRUE nếu TẤT CẢ giá trị của truy vấn con thỏa mãn điều kiện

Syntax:

SELECT column_name(s)

FROM table_name

WHERE column_name operator ANY/ALL

(SELECT column_name FROM table_name WHERE condition);

Operator có thể là =, <, >, >=, <=, <> !=

Example:

Table Products và table Order Detais

1 Câu lệnh SQL sau trả về TRUE và liệt kê các tên sản phẩm nếu tìm thấy bất

kỳ record nào trong bảng OrderDetails với số lượng = 10:

Ngày đăng: 24/11/2018, 15:00

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w