BaiThucHanh_CSDL Tuần 3

13
BI THC HNH TUN 3 Mc tiêu Nm vững ngôn ngữ truy vấn dữ liệu thông qua cc bi tập. Giới thiệu cc hm cơ bn trong SQL. Tm tt l thuyt Với cú php SELECT...FROM bên dưới kt hợp mệnh đề ORDER BY cho phép bạn c thể lấy dữ liệu của cc cột bên trong một bng, sau đ sp xp lại dữ liệu theo thứ tự chỉ định l tăng hoặc gim. Cú pháp: SELECT <tên_column_1, tên_column_2,..., tên_column_n> FROM <tên_table> WHERE <điều khiện> ORDER BY <Tên_Column> ASC/ DESC Ví dụ: USE Northwind SELECT ProductID,ProductName,UnitPrice FROM Products

description

bai thuc hanh co so du lieu abcxyz

Transcript of BaiThucHanh_CSDL Tuần 3

BAI THC HANH TUN 3Muc tiu Nm vng ngn ng truy vn d liu thng qua cac bai tp. Gii thiu cac ham c ban trong SQL.Tom tt ly thuyt

Vi c php SELECT...FROM bn di kt hp mnh ORDER BY cho php bn c th ly d liu ca cc ct bn trong mt bng, sau sp xp li d liu theo th t ch nh l tng hoc gim.C php: SELECT FROM WHERE ORDER BY ASC/ DESC V d: USE Northwind SELECT ProductID,ProductName,UnitPrice FROM Products WHERE UnitPrice>=34 ORDER BY UnitPrice ASC

Tai liu tham khao:CAC HAM TINH TOAN C BANHm MAX() : Hm ny s tr v gi tr ln nht trong biu thc. N c th dng vi cc kiu d liu s, chui hay ngy thng. Max tr v gi tr ln nht trong ton b gi tr sau khi i chiu.Lu : Hm MAX b qua cc gi tr NULL. V d:USE NorthwindSELECT MAX(UnitPrice) AS MaxPriceFROM Products

Hm MIN() : Ngc li vi hm MAX. Hm MIN tr v gi tr nh nht trong biu thc. Hm ny c th dng vi cc trng s, chui, ngy thng. Ngoi ra hm ny b qua gi tr NULL:V d:USE NorthwindSELECT MIN(UnitPrice) AS MinPrice FROM ProductsHm AGV() : Hm ny tr v gi tr trung bnh ca cc gi tr trong cc trng d liu c ch ra trong biu thc.Lu : Hm AVG ch c dng vi cc trng c kiu d liu l s. Ngoi ra n c kh nng loi b gi tr NULLV d:

USE NorthwindSELECT AVG(UnitPrice) AS AvgPriceFROM ProductsHm SUM() : Hm ny tr v tng ca tt c cc gi tr ca trng d liu trong biu thc. Ngoi ra, bn c th dng ti DISTINCT vi SUM tnh tng cho cc gi tr duy nht ca trng d liu trong biu thc. Cc gi tr NULL s b b qua.Lu : SUM ch dng cho cc trng d liu l kiu s. V d:USE NorthwindSELECT SUM(UnitPrice) AS [Tng Sn Phm] FROM ProductsHm COUNT() : Hm COUNT c s dng m cc bn ghi c select trong chui truy vn. Hm ny c th m c cc gi tr NULL trong biu thc. Nu ta dng n vi t kha DISTINCT, COUNT m c cc gi tr duy nht. Ngoi ra n c th c dng vi cc trng s v k t.Lu : Cc bn c th dng k t * thay cho biu thc trong hm COUNT. Bng cch ny chng ta c th m c tt c cc bn ghi m khng cn quan tm n cc trng d liu.V d: USE NorthwindSELECT COUNT(ProductID) FROM ProductsHm SQUARE() : tnh bnh phngV d:DECLARE @A INT SET @A=5SELECT SQUARE(@A)AS [@A Bnh Phng]

Hm ROUND() : ROUND lun lun tr v mt gi tr. Nu chiu di ln hn s lng cc ch s trc du thp phn, ROUND tr v 0. Round tr v mt biu thc s c lm trn, bt k loi d liu, khi chiu di l mt s m.V dKt qu

ROUND(748.58, -1)750.00

ROUND(748.58, -2)700.00

ROUND(748.58, -3)1000.00

V d sau minh ha cch s dng RoundSELECT ROUND(123.9994, 3), ROUND(123.9995, 3) GO

V d sau minh ha lm trn v xp x SELECT ROUND(123.4545, 2); GOSELECT ROUND(123.45, -2); GO

V d sau s dng hai cu SELECT chng minh s khc bit gia lm trn v ct xn. Cu lnh u tin c kt qu lm trn. Cu lnh th hai c kt qu ct xn.

Hm CHAR()V d:USE Northwind; GOSELECT FirstName + ' ' + LastName, + CHAR(13) + [Address] + CHAR(13) + HomePhone FROM Employees WHERE EmployeeID = 1; GO

Hm UPPER() , LOWER()Vi c php chung bn di ca cc hm UPPER, LOWER c kt qu tr v l mt chui sau khi c chuyn i cc k t bn trong chui thnh ch in (upper), hoc ch thng (lower).V d : hm UPPERUSE Northwind; GOSELECT UPPER(FirstName) + ' ' + UPPER(LastName) AS FullnameFROM EmployeesWHERE EmployeeID=1

V d : hm LOWER USE Northwind;GOSELECT LOWER(UPPER(FirstName)) + ' ' + LOWER(UPPER(LastName)) AS FullnameFROM EmployeesWHERE EmployeeID=1

Hm LEN()Vi c php n gin ca hm LEN bn di c kt qu tr v l mt s nguyn dng dng ch nh chiu di ca mt chui cha bao nhiu k tV d:USE Northwind; GOSELECT LEN(FirstName) AS [Length],FirstNameFROM EmployeesWHERE EmployeeID=1

Hm LTRIM(), RTRIM()Vi c php chung bn di ca cc hm LTRIM, RTRIM c kt qu tr v l mt chui c ct b cc khong trng u chui (ltrim) hoc cc khong trng cui chui (rtrim). C php :LTRIM (chui)RTRIM (Chui)V d : hm LTRIMDECLARE @string_to_trim varchar(60)SET @string_to_trim = ' Five spaces are at the beginning of this string.'SELECT 'Here is the string without the leading spaces: ' + LTRIM(@string_to_trim)GO

V d: hm RTRIM()ECLARE @string_to_trim varchar(60);SET @string_to_trim = 'Four spaces are after the period in this sentence.';SELECT @string_to_trim + ' Next string.';SELECT RTRIM(@string_to_trim) + ' Next string.'; GO

Hm LEFT(),RIGHT(),SUBSTRINGVi c php chung bn di ca cc hm LEFT, RIGHT, SUBSTRING c kt qu tr v l mt chui con c trch ra t chui ngun. Chui con c trch ra ti v tr bt u t bn tri (left), bn phi (right) hoc ti bt k v tr no (substring) v ly ra bao nhiu k t.C php :LEFT (chui ngun , s k t ) RIGHT (chui ngun , s k t ) SUBSTRING (chui ngun ,v tr, s k t ) V d: hm LEFTSELECT LEFT('abcdefg',2) -> Kt qu : abV d: hm RIGHTSELECT RIGHT('abcdefg',2)-> Kt qu fgV d: hm SUBSTRINGSELECT SUBSTRING ('abcdefg',4,3)-> Kt qu defHm GETDATE() : ly ngy hin hnhV d:SELECT GETDATE() AS [Ngy gi hin ti], CONVERT (date, GETDATE()) AS [Ngy hin ti], CONVERT (time, GETDATE()) AS [Gi hin ti]

Hm DATEPART(YY,getdate()) : ly 1 phn ( ngy , thng hoc nm, ) ca ngyV d:SELECT DATEPART(year, '12:10:30.123') AS [Nm],DATEPART(month, '12:10:30.123') AS [Thng],DATEPART(day, '12:10:30.123') AS [Ngy],DATEPART(dayofyear, '12:10:30.123') AS [Ngy trong nm],DATEPART(weekday, '12:10:30.123') AS [Th]

Hm DATEDIFF(X,Y,Z) : tnh khong cch gia hai ngyV d:DECLARE @startdate datetime2 = '2007-05-05 12:10:09.3312722'; DECLARE @enddate datetime2 = '2007-05-07 12:10:09.3312722'; SELECT DATEDIFF(day, @startdate, @enddate) AS [S ngy]

Hm DAY() : ly ngyV d: SELECT DAY(GETDATE()) AS 'Ngy'Hm MONTH() : ly thngV d: SELECT MONTH(GETDATE()) AS 'Thng'Hm YEAR() : ly nmV d: SELECT YEAR(GETDATE()) AS 'Nm'Hm CAST() : chuyn i kiuV d:DECLARE @NgaySinh datetime, @Tuoi intSET @NgaySinh='1986-12-19'SET @Tuoi = YEAR(GETDATE())- YEAR(@NgaySinh)SELECT N'Bn c: ' + CAST(@Tuoi AS varchar(10)) + N' tui'

Hm CONVERT() : chuyn i kiu c nh dngV d:DECLARE @NgaySinh datetime, @Tuoi intSET @NgaySinh='1986-12-19'SET @Tuoi = YEAR(GETDATE())- YEAR(@NgaySinh)SELECT N'Bn c: ' + CONVERT(varchar(10), @Tuoi) + N' tui'

Bai tp thc hanhC th download tp tin kch bn (script) to c s d liu v cc i tng bn trong c s d liu nh bng, cc rng buc ton vn.Phn 1: Loc mu tin (where)1. Hin th danh sch cc thng tin trong bng CTPNHAP c thm ct thnh tin bit rng Thnh tin = SLNhap * DgNhap.2. Hin th danh sch cc nh cung cp trong bng NHACC c ct a ch qun 1 HCM, sp xp theo th t h tn tng dn v s in thoi gim dn.3. Hin th danh sch cc phiu xut c ngy xut nm trong khong [1/1/2007, 31/1/2007].4. Hin th danh sch cc chi tit phiu xut c thm cc ct tn vt t, ngy xut. Lc theo s lng xut ln hn 5 v ngy xut trong thng 1/2007.5. Hin th danh sch cc nh cung cp gm cc thng tin sau: m nh cung cp, tn nh cung cp c t hng. Ch : khng c trng lp d liu.6. Hin th danh sch cc n t hng gn y nht trong bng DONDH.7. Hin th danh sch cc nh cung cp m cha c n t hng.Phn 2: Nhom va tinh toan (Group by) va truy vn con8. Hin th danh sch cc nh cung cp gm cc ct: m nh cung cp, tn nh cung cp v tng s n t hng. Lc ra cc nh cung cp no c tng s n t hng ln hn 1.9. Hin th danh sch cc thng tin trong bng PNHAP c thm ct tng thnh tin, bit rng Tng thnh tin = (s lng nhp x n gi nhp) ca cc mu tin chi tit tng ng trong bng CTPNHAP.10. Hin th danh sch cc phiu xut hng gm cc ct: s phiu xut v tng thnh tin. Trong sp xp theo th t tng thnh tin gim dn.11. Hin th danh sch cc phiu xut hng c tng thnh tin ln nht.12. Hin th cac n t hang ma cha co phiu nhp13. Hin th danh sch cc n t hng c tng s ln nhp l ln nht 14. Hin th danh sch cc nh cung cp m cha c n t hng 15. Hin th danh sch cc nh cung cp gm cc ct: m nh cung cp, tn nh cung cp v tng s n t hng.16. Hin th danh sch cc nh cung cp gm cc ct: m nh cung cp, tn nh cung cp, tng s n t hng v tng s phiu nhp