intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng SQL server 2005: Chương 4 - Phạm Mạnh Cương

Chia sẻ: Bình Yên | Ngày: | Loại File: PPT | Số trang:51

72
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "SQL server 2005 - Chương 4: Truy vấn dữ liệu" cung cấp cho người học các kiến thức: Một số hàm T-SQL, phát biểu truy vấn dữ liệu, các hàm xếp loại (ranking). Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng SQL server 2005: Chương 4 - Phạm Mạnh Cương

  1. CHƯƠNG IV TRUY VẤN DỮ LIỆU Giảng viên: Phạm Mạnh Cương 1
  2. NỘI DUNG I­ Một số hàm T­SQL: II­ Phát biểu truy vấn dữ liệu III­ các hàm xếp loại (ranking) 2
  3. I­ Một số hàm T­SQL: 1. Hàm toán học 2. Hàm xử lý chuỗi ký tự 3. Hàm xử lý ngày tháng và thời gian 4. Hàm chuyển đổi kiểu giá trị 5. Hàm hệ thống 6. Hàm CASE 3
  4. 1­ Hàm toán học 1. ABS(x) : Trị tuyệt đối của x 2. SQRT(x) : Căn bậc hai của x 3. SQUARE( x) : tính x2 4. POWER( y, x ) : tính yx 5. SIGN( x ) : Lấy dấu của số x (­1: x0) 6. ROUND( x, n ) : Làm tròn tới n số lẻ. 7. CEILING( x ) : Số nguyên nhỏ nhất >= x 8. FLOOR( x ) : Số nguyên lớn nhất 
  5. 2­ Hàm xử lý chuỗi ký tự: • LEN(str) : Trả về số ký tự trong chuỗi str • LOWER( str ) : Trả về chuỗi chữ thường • UPPER(str) : Trả về chuỗi chữ hoa • LTRIM(str) : Trả về chuỗi không có dấu cắt bên trái • RTRIM(str) : Trả về chuỗi không có dấu cắt bên phải • LEFT(str, n): Lấy n ký tự phía trái của dãy str. • RIGHT(str, n): Lấy n ký tự phía phải của dãy str. • SUBSTRING(str, start, n): Trả về chuỗi con n ký tự của chuỗi str kể từ vị trí start. • CHARINDEX(str1, str2): vị trí của str1 trong str2, bằng 0 nếu không tìm  thấy 5
  6. 3­ Hàm xử lý ngày tháng và thời gian 1. GETDATE( ): Ngày giờ của hệ thống Microsoft SQL Server 2. DAY( date_exp ) : Trích ngày trong tháng. 3. MONTH ( date_exp ) : Trích Tháng. 4. YEAR ( date_exp ) : Trích Năm. Chú ý • Hằng số kiểu ngày có thứ tự: ‘m/d/yyyy’ | ‘yyyy/m/d’ • Muốn định lại thứ tự ghi ngày tháng năm trong hằng số kiểu ngày sử dụng lệnh: SET DATEFORMAT  6
  7. 3­ Hàm xử lý ngày tháng và thời  gian (tt) 6.  DATEPART(Mã_TP,  date)  :  trả  về  thành  phần  chỉ  định trong date, kiểu số. 7.  DATENAME(Mã_TP,  date)  :  Trả  về  thành  phần  chỉ  định trong ngày, kiểu chuỗi. 8.  DATEADD(Mã_TP,  n,  date):  Trả  về  một  ngày  giờ  (date  +  n),  với  n  là  số  nguyên  thuộc  thành  phần  chỉ  định 9. DATEDIFF(Mã_TP, date_1, date_2): Khoảng  cách  (date_2  ­  date_1)  theo  thành  phần  chỉ  định select * from HoaDon where Datepart(yy,NgayHD)='1994' 7
  8.  Ví dụ 1.Hôm nay là ngày 27/08/2010. Ta có: SELECT DATEPART(month,GETDATE()) -> Kết quả trả về là một số nguyên là 8 (tức tháng 8 ) SELECT DATENAME(month,GETDATE()) -> Kết quả trả về là một chuỗi là August (tức tháng 8 ) 2. Hôm nay là ngày 28 tháng 8 năm 2010, bạn muốn thăng lên 1 ngày và 1 tháng. Tức giá trị bạn mong muốn là ngày 29 tháng 9 năm 2010, được viết như sau: SELECT DATEADD(month,1,DATEADD(day,1,'8/28/2010')) 3. Use Pubs SELECT DATEDIFF (day, pubdate, getdate ()) AS TongSoNgay From titles 8
  9. 4­ Hàm chuyển đổi kiểu giá trị Thường dùng chuyển dữ liệu kiểu số, ngày giờ sang kiểu chuỗi để hiển thị ra màn hình 1. STR( x [, len [, dec] ]): Chuyển số x sang kiểu chuỗi có tổng chiều dài len (mặc định 10) với phần lẻ dec (mặc định 0). Select MaMH, Str(DonGia, 10, 2) + N' đồng' From MatHang 2. CAST(exp AS new_data_type) Select MaMH, Cast(DonGia As nVarchar(10)) + N' đồng' From MatHang 3. CONVERT (new_data_type, exp [, style]) Select MaMH, Convert(nVarchar(10), DonGia) + N' đồng' From MatHang 9
  10. Style cho kiểu Float hoặc Real • 0 Tối đa 6 chữ số; nếu vượt quá sẽ hiển thị dạng mũ • 1 Hiện dạng mũ có 8 chữ số. • 2 Hiện dạng mũ có 16 chữ số. Ví dụ: Declare @a Float Set @a = 58947.5589745 SELECT Convert(Varchar,@a ,1) Kết quả: 5.8947559e+004 10
  11. Style cho kiểu Money và SmallMoney • 0 Có 2 chữ số thập phân, không dấu phân cách hàng ngàn • 1 Có 2 chữ số thập phân, có dấu phân cách hàng ngàn • 2 Có 4 chữ số thập phân; không dấu phẩy phân cách hàng ngàn. Ví dụ: Declare @a money Set @a = 12345.67895 Print Convert(VarChar, @a, 0) • Kết quả: 12345.68 Print Convert(VarChar, @a, 1) • Kết quả: 12,345.68 Print Convert(VarChar, @a, 2) • Kết quả: 12345.6890 11
  12. Style cho kiểu Datetime và SmallDatetime 12
  13. 5­ Một số hàm hệ thống • ISDATE( exp ): Kiểm tra dạng ngày hợp lệ. Trả về 1 nếu hợp lệ và 0 nếu  không hợp lệ. • ISNUMERIC( exp ): Kiểm tra dạng số hợp lệ. Trả về 1 nếu hợp lệ và 0  nếu không hợp lệ. • ISNULL(exp, value) : Trả về giá trị value nếu exp có giá trị NULL, ngược  lại trả về giá trị của exp. Giá trị trả về cùng kiểu với exp. • @@ROWCOUNT: Trả về số dòng thực hiện bởi phát biểu cuối cùng. • @@ERROR : Trả về mã lỗi (integer) nếu có của phát biểu TSQL cuối  cùng. Trả về số 0 nếu không có lỗi. 13
  14. 6­ Hàm CASE: Chọn lựa giá trị Cú pháp 1: So sánh giá trị biểu thức với giá trị sau WHEN để xác định  kết quả. 14
  15. Hàm CASE : Chọn lựa giá trị  Cú pháp 2: Kiểm tra từng biểu thức điều kiện  để xác định kết quả. 15
  16. II­ Phát biểu truy vấn dữ liệu SELECT select_list [ INTO new_table ] [ FROM table_source ] [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ORDER BY order_expression [ASC | DESC ]] [COMPUTE aggregate_function_list [ BY expression] Thứ tự thực hiện: From>Where>Group By > Having>Select>Order>Compute 16
  17. 17
  18. 1­ Mệnh đề FROM – Chỉ định bảng chứa dữ liệu cần truy vấn. Cú pháp: FROM table_source [ [ AS ] label ]… – Bảng dữ liệu có thể là: Table, View, SubQuery, Function. – Kết nối mấu tin trên nhiều bảng bằng các phép toán: 1. Phép tích Cartesian: FROM B1, B2,… FROM B1 CROSS JOIN B2 2. Phép kết: FROM B1 INNER JOIN B2 ON  FROM B1 LEFT JOIN B2 ON  FROM B1 RIGHT JOIN B2 ON  FROM B1 FULL JOIN B2 ON  18
  19. PHÉP TÍCH CARTESIAN: 19
  20. PHÉP KẾT INNER JOIN 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2