35
1 v1.0014106202 1 NGÔN NGTRUY VN DLIU Ging viên: ThS. Trn Ngc Thăng

NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

1v1.0014106202

1

NGÔN NGỮ TRUY VẤN DỮ LIỆU

Giảng viên: ThS. Trần Ngọc Thăng

Page 2: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

2v1.0014106202

2

BÀI 1TỔNG QUAN VỀ NGÔN NGỮ SQL

Giảng viên: ThS. Trần Ngọc Thăng

Page 3: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

3v1.0014106202

3

• Trình bày được đặc điểm chung ngôn ngữ SQL;

• Mô tả cách khai báo và sử dụng biến;

• Cài đặt và sử dụng các hàm và biểu thức cơ bản trong SQL;

• Trình bày được cấu trúc của một đoạn mã nguồn SQL;

• Cài đặt và biên dịch một đoạn mã nguồn đơn giản sử dụngngôn ngữ SQL.

MỤC TIÊU BÀI HỌC

Page 4: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

4v1.0014106202

4

Để hiểu rõ bài này, yêu cầu sinh viên cần có các kiếnthức cơ bản liên quan đến các môn học sau:

• Tin học cơ bản;

• Nhập môn lập trình;

• Cơ sở dữ liệu;

• Hệ quản trị cơ sở dữ liệu SQL Server.

CÁC KIẾN THỨC CẦN CÓ

Page 5: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

5v1.0014106202

5

• Đọc tài liệu và tóm tắt những nội dung chính củatừng bài;

• Luôn liên hệ và lấy ví dụ thực tế khi học đến từngvấn đê và khái niệm;

• Thực hiện các thao tác trên hệ quản trị cơ sở dữliệu SQL Server;

• Làm bài tập và luyện thi trắc nghiệm theo yêu cầutừng bài.

HƯỚNG DẪN HỌC

Page 6: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

6v1.0014106202

6

1.1. Giới thiệu chung về SQL

1.2. Căn bản về ngôn ngữ SQL

1.3. Biến, hàm và biểu thức trong SQL

CẤU TRÚC NỘI DUNG

Page 7: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

7v1.0014106202

7

1.1.1. Ngôn ngữ SQL là gì?1.1.2. Một số đặc điểm

của ngôn ngữ SQL

1.1.3. Mối quan hệ giữaSQL và hệ quản trị cơ sở

dữ liệu SQL Server

1.1. GIỚI THIỆU CHUNG VỀ SQL

1.1.4. Ngôn ngữ DDL, DML, DCL

Page 8: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

8v1.0014106202

8

• Ngôn ngữ truy vấn có cấu trúc (SQL - Structured Query Language) là một ngôn ngữrất phổ dụng trong lĩnh vực cơ sở dữ liệu.

• Microsoft xây dựng SQL dựa trên ngôn ngữ truy vấn có cấu trúc chuẩn (ANSI-SQL:là ngôn ngữ truy vấn có cấu trúc do học viện quốc gia Hoa Kỳ đưa ra), ANSI-SQLthường được gọi là SQL, ngôn ngữ này là cách thức chuẩn để giao tiếp với cơ sởdữ liệu.

• Nó cung cấp một ngôn ngữ bao hàm toàn diện để định nghĩa bảng, chèn, xóa, thayđổi và truy cập dữ liệu trong bảng. (4 chức năng cơ bản: Xem, thêm, xóa, sửa).

• SQL là một ngôn ngữ mạnh, nó hỗ trợ các tính năng khác như: Kiểu dữ liệu, đốitượng tạm thời, thủ tục lưu trữ và thủ tục hệ thống.

• Cho phép chúng ta định nghĩa đối tượng con trỏ, khai báo biến, cấu trúc rẽ nhánh,vòng lặp, bẫy lỗi.

1.1.1. NGÔN NGỮ SQL LÀ GÌ?

Page 9: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

9v1.0014106202

1.1.1. NGÔN NGỮ SQL LÀ GÌ? (tiếp theo)

SELECT * FROM Employee

• Ví dụ về câu lệnh SQL

Page 10: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

10v1.0014106202

10

1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮ SQL

• SQL là ngôn ngữ hỏi có tính tương tác: Người sử dụng có thể dễ dàng thông quacác trình tiện ích để gửi các yêu cầu dưới dạng các câu lệnh SQL đến cơ sở dữliệu và nhận kết quả trả về từ cơ sở dữ liệu.

• SQL là ngôn ngữ lập trình cơ sở dữ liệu: Các lập trình viên có thể nhúng các câulệnh SQL vào trong các ngôn ngữ lập trình để xây dựng nên các chương trìnhứng dụng giao tiếp với cơ sở dữ liệu.

• SQL là ngôn ngữ quản trị cơ sở dữ liệu: Thông qua SQL, người quản trị cơ sởdữ liệu có thể quản lý được cơ sở dữ liệu, định nghĩa các cấu trúc lưu trữ dữliệu, điều khiển truy cập cơ sở dữ liệu,...

• SQL là ngôn ngữ cho các hệ thống khách/chủ (client/server): Trong các hệ thốngcơ sở dữ liệu khách/chủ, SQL được sử dụng như là công cụ để giao tiếp giữacác trình ứng dụng phía máy khách với máy chủ cơ sở dữ liệu.

Page 11: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

11v1.0014106202

1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮ SQL (tiếp theo)

• SQL là ngôn ngữ truy cập dữ liệu trên Internet: Cho đến nay, hầu hết các máy chủ Web cũng như các máy chủ trên Internet sử dụng SQL với vai trò là ngôn ngữ để tương tác với dữ liệu trong các cơ sở dữ liệu.

• SQL là ngôn ngữ cơ sở dữ liệu phân tán: Đối với các hệ quản trị cơ sở dữ liệu phân tán, mỗi một hệ thống sử dụng SQL để giao tiếp với các hệ thống khác trên mạng, gởi và nhận các yêu cầu truy xuất dữ liệu với nhau.

• SQL là ngôn ngữ sử dụng cho các cổng giao tiếp cơ sở dữ liệu: Trong một hệthống mạng máy tính với nhiều hệ quản trị cơ sở dữ liệu khác nhau, SQL thường được sử dụng như là một chuẩn ngôn ngữ để giao tiếp giữa các hệ quản trị cơ sởdữ liệu.

Page 12: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

12v1.0014106202

12

1.1.3. MỐI QUAN HỆ GIỮA SQL VÀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER

• Một cơ sở dữ liệu là một tập dữ liệu;

• Quản trị dữ liệu là xử lý số lượng lớn thông tin, bao gồm sự lưu trữ và thao tác thông tin.

• Hệ quản trị CSDL (DBMS) là một tập các bản ghi có quan hệ và một tập các chương trình có thể truy cập và thao tác trên các bản ghi đó.

• Hệ quản trị SQL Server là hệ quản trị cơ sở dữ liệu quan hệ phổ biến hiện nay cho các ứng dụng dữ liệu của doanh nghiệp, hỗ trợ các ngôn ngữ truy vấn khác nhau, ngôn ngữ truy vấn phổ biến nhất là SQL.

Page 13: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

13v1.0014106202

1.1.3. MỐI QUAN HỆ GIỮA SQL VÀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER (tiếp theo)

• Bản thân SQL không phải là một hệ quản trị cơ sở dữ liệu, nó không thể tồn tại độc lập.

• SQL thực sự là một phần của hệ quản trị cơ sở dữ liệu, nó xuất hiện trong các hệquản trị cơ sở dữ liệu với vai trò ngôn ngữ và là công cụ giao tiếp giữa người sửdụng và hệ quản trị cơ sở dữ liệu.

Page 14: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

14v1.0014106202

14

• Ngôn ngữ định nghĩa dữ liệu (DDL) là một trong số những loại ngôn ngữ của SQL,được sử dụng để định nghĩa và quản lý tất cả các thuộc tính của một cơ sở dữ liệu,bao gồm bố cục của các hàng, định nghĩa cột, khóa, vị trí lưu file…

• Các câu lệnh DDL được dùng để định nghĩa (xây dựng), thay đổi hoặc xóa cấu trúccủa các đối tượng cơ sở dữ liệu, chẳng hạn: Bảng, view, trigger, thủ tục lưu trữ, …

• Các câu lệnh DDL có dạng như sau:

CREATE object_name;

ALTER object_name;

DROP object_name.

1.1.4. NGÔN NGỮ DDL, DML VÀ DCL

Page 15: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

15v1.0014106202

1.1.4. NGÔN NGỮ DDL, DML VÀ DCL (tiếp theo)

• Ngôn ngữ thao tác dữ liệu (DML) bao gồm các câu lệnh: SELECT, INSERT,UPDATE, DELETE, dùng để thao tác với dữ liệu trong bảng.

• Các câu lệnh trong ngôn ngữ thao tác dữ liệu:

Câu lệnh SELECT;

Câu lệnh INSERT;

Câu lệnh UPDATE;

DELETE.

• Ngôn ngữ điều khiển dữ liệu (DCL) dùng để thiết lập quyền truy cập trên các đốitượng cơ sở dữ liệu.

• Ngôn ngữ điều khiển dữ liệu được sử dụng để bảo mật cơ sở dữ liệu.

• Các quyền được điều khiển Câu lệnh bằng cách sử dụng các câu lệnh GRANT,REVOKE và DENY.

Page 16: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

16v1.0014106202

16

1.2. CĂN BẢN VỀ NGÔN NGỮ SQL

1.2.1. Các từ khóa 1.2.2. Định danh trong SQL

1.2.3. Các kiểu dữ liệucơ bản

1.2.4. Tập lệnh (Batch) và Kịch bản (Script)

Page 17: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

17v1.0014106202

17

• Thao tác dữ liệu:

• Định nghĩa dữ liệu:

1.2.1. CÁC TỪ KHÓA

Từ khóa Chức năng

SELECT Truy xuất dữ liệu

INSERT Bổ sung dữ liệu

UPDATE Cập nhật dữ liệu

DELETE Xoá dữ liệu

TRUNCATE Xoá toàn bộ dữ liệu

Từ khóa Chức năng

CREATE TABLE Tạo bảngDROP TABLE Xóa bảng ALTER TABLE Sửa đổi bảngCREATE VIEW Tạo khung nhìnALTER VIEW Sửa đổi khung nhìnDROP VIEW Xoá khung nhìn

Page 18: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

18v1.0014106202

1.2.1. CÁC TỪ KHÓA (tiếp theo)

• Điều khiển truy cập

• Quản lý giao tác

• Lập trình

Từ khóa Chức năngGRANT Cấp phát quyền cho người sử dụng

REVOKE Thu hồi quyền từ người truy cập

Chức năngTừ khóa

ROLLBACK Quay lui giao tác

SAVE TRANSACTION Đánh dấu một điểm trong giao tác

Từ khóa Chức năng

DECLARE Khai báo biến hoặc định nghĩa con trỏ

OPEN Mở một con trỏ để truy xuất kết quả truy vấn

FETCH Đọc một dòng trong kết quả truy vấn (sử dụng con trỏ)

CLOSE Đóng một con trỏ

EXECUTE Thực thi một câu lệnh SQL

Page 19: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

19v1.0014106202

19

• Các đối tượng trong cơ sở dữ liệu dựa trên SQL được xác định thông qua tên củađối tượng. Tên của các đối tượng là duy nhất trong mỗi cơ sở dữ liệu. Tên đượcsử dụng nhiều nhất trong các truy vấn SQL và được xem là nền tảng trong cơ sởdữ liệu quan hệ là tên bảng và tên cột.

• Nếu trong một câu lệnh SQL ta cần chỉ đến một bảng do một người dùng khác sởhữu (hiển nhiên là phải được phép) thì tên của bảng phải được viết sau tên củangười sở hữu và phân cách với tên người sở hữu bởi dấu chấm:Tên_người_sở_hữu.tên_bảng.

• Một số đối tượng cơ sở dữ liệu khác (như khung nhìn, thủ tục, hàm), việc sử dụngtên cũng tương tự như đối với bảng.

• Sử dụng tên cột một cách bình thường trong các câu lệnh SQL bằng cách chỉ cầnchỉ định tên của cột trong bảng. Tuy nhiên, nếu trong câu lệnh có liên quan đến haicột trở lên có cùng tên trong các bảng khác nhau thì bắt buộc phải chỉ định thêmtên bảng trước tên cột, tên bảng và tên cột được phân cách nhau bởi dấu chấm.

1.2.2. ĐỊNH DANH TRONG SQL

SELECT masv,hodem,ten,sinhvien.malop,tenlopFROM dbo.sinhvien,dbo.lopWHERE sinhvien.malop = lop.malop

Page 20: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

20v1.0014106202

20

1.2.3. CÁC KIỂU DỮ LIỆU CƠ BẢN

• Kiểu dữ liệu là thuộc tính định nghĩa loại dữ liệu mà đối tượng có thể chứa SQL bao gồm nhiều kiểu dữ liệu chẳng hạn như: Varchar, text, int,....

• Các đối tượng dưới đây sử dụng kiểu dữ liệu:

Cột trong bảng và trong view;

Tham số trong thủ tục lưu trữ;

Biến;

Hàm trả về giá trị;

Thủ tục lưu trữ trả về giá trị.

Page 21: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

21v1.0014106202

1.2.3. CÁC KIỂU DỮ LIỆU CƠ BẢN (tiếp theo)

Các kiểu dữ liệu trong SQL server 2008

bigint binary bit char

cursor decimal float image

int nchar ntext numeric

nvarchar smalldatetime smallint smallmoney

sql_variant text timestamp tinyint

Varbinary uniqueidentifier xml table

varchar datetime money real

Page 22: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

22v1.0014106202

22

1.2.4. TẬP LỆNH (BATCH) VÀ KỊCH BẢN (SCRIPT)

• SQL Server 2008 cung cấp một vài cách để thực thi các câu lệnh SQL. Các câulệnh có thể được thực thi như là các câu lệnh đơn hoặc như một lô.

• Các câu lệnh đơn:

Xử lý câu lệnh đơn là cách phổ biến mà SQL Server 2008 thực thi các câu lệnh.

Ví dụ:

SELECT * FROM Employee

Page 23: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

23v1.0014106202

1.2.4. TẬP LỆNH (BATCH) VÀ KỊCH BẢN (SCRIPT) (tiếp theo)

• Tập lệnh (Batch)

Tập lệnh là một tập hợp của một hoặc nhiều câu lệnh SQL được gửi cùng mộtthời điểm từ một ứng dụng đến SQL Server để thực thi;

Các câu lệnh này được biên dịch thành một đơn vị thực thi và được gọi là“Execution plan”;

Các câu lệnh trong “Execution plan” được thực hiện cùng một lúc.

Ví dụ:

• Kịch bản (Script)

Các câu lệnh SQL có thể được thực thi trong script bằng cách lưu trên tập tin. Phần mở rộng của file thường lưu dưới dạng *.sql. Tập tin sẽ được đọc khi đượcyêu cầu để thực thi.

USE AdventureWorksGOSELECT * FROM EmployeeGO

Page 24: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

24v1.0014106202

24

1.3. BIẾN, HÀM VÀ BIỂU THỨC TRONG SQL

1.3.1. Khai báo vàgán giá trị cho biến

1.3.2. Các loại hàmtrong SQL

1.3.3. Biểu thức

Page 25: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

25v1.0014106202

25

1.3.1. KHAI BÁO VÀ GÁN GIÁ TRỊ CHO BIẾN

• Biến là một đối tượng để lưu trữ một giá trị dữ liệu. Dữ liệu có thể được truyền đến câu lệnh SQL bằng cách sử dụng tên biến. Tên biến cục bộ phải khai báo bắt đầu bằng ký hiệu @.

• Biến có thể phân thành 2 loại là biến cục bộ và biến toàn cục:

• Biến cục bộ:

Trong SQL, biến cục bộ được khai báo và sử dụng tạm thời khi thực thi câu lệnhSQL.

Cú pháp:

Trong đó,

@local_variable: Tên biến cục bộ, phải bắt đầu bằng ký hiệu @;

data_type: Kiểu dữ liệu hệ thống hoặc kiểu dữ liệu người dùng.

DECLARE{ @local_variable [AS] data_type}

Page 26: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

26v1.0014106202

1.3.1. KHAI BÁO VÀ GÁN GIÁ TRỊ CHO BIẾN (tiếp theo)

• Câu lệnh SET hoặc SELECT dùng để gán giá trị cho biến.

Cú pháp:

• Biến toàn cục:

Biến toàn cục là biến có sẵn và hệ thống

quản lý;

Biến toàn cục trong SQL Server được đặt

tên bắt đầu bởi hai ký hiệu @;

Ví dụ: biến toàn cục được sử dụng để xem

thông tin phiên bản của SQL Server.

SET @local_variable = value OR

SELECT @local_variable = value

Page 27: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

27v1.0014106202

27

1.3.2. CÁC LOẠI HÀM TRONG SQL

• Hàm là tập lệnh SQL để thực hiện công việc nào đó;

• Hàm trong SQL làm việc với dữ liệu, nhóm dữ liệu để trả về một kết quả mong đợi;

• SQL có các loại hàm sau:

Các hàm tập hợp;

Hàm chuyển đổi kiểu dữ liệu;

Hàm ngày tháng;

Hàm toán học;

Các hàm hệ thống.

Page 28: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

28v1.0014106202

1.3.2. CÁC LOẠI HÀM TRONG SQL (tiếp theo)

• Các hàm tập hợp: SQL hỗ trợ các hàm tập hợp để thống kê dữ liệu.Tên hàm Giá trị trả về Ví dụ

SUM(col_name) Hàm tính tổng, trả về tổnggiá trị của col_name

SELECT SUM(OrderQty) AS Total FROM Purchasing.PurchaseOrderDetail

AVG(col_name) Trả tính giá trị trung bình SELECT AVG(UnitPrice * OrderQty) AS AveragePrice FROM Purchasing.PurchaseOrderDetail

COUNT Đếm số bản ghi trongbảng

SELECT COUNT(*) AS ‘Number of Large Orders’ FROM Purchasing.PurchaseOrderDetail WHERE OrderQty > 100

MAX(col_name) Trả về giá trị lớn nhất SELECT MAX(OrderQty * UnitPrice) AS ‘Largest Order’ FROM Purchasing.PurchaseOrderDetail

MIN(col_name) Trả về giá trị nhỏ nhất SELECT MIN(OrderQty * UnitPrice) AS ‘Smallest Order’ FROM Purchasing.PurchaseOrderDetail

Page 29: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

29v1.0014106202

29

1.3.2. CÁC LOẠI HÀM TRONG SQL (tiếp theo)

• Hàm chuyển đổi kiểu dữ liệu:

Hàm chuyển đổi được sử dụng để biến đổi giá trị của một kiểu dữ liệu sang kiểudữ liệu khác.

Cú pháp:

Trong đó,

Datatype: Là kiểu dữ liệu cần chuyển sang;

Length: Chỉ ra độ dài của dữ liệu;

Expression: Chỉ ra tên cột, hằng số, hàm, biến hoặc là câu truy vấn con;

Style: Chỉ ra kiểu hiển thị giá trị ngày tháng (dd/mm/yyyy hay mm/dd/yyyy).

CONVERT(datatype[(length)], expression [,style])

Page 30: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

30v1.0014106202

1.3.2. CÁC LOẠI HÀM TRONG SQL (tiếp theo)• Các hàm ngày tháng:

Hàm ngày tháng được dùng để thao tác giá trị ngày;

Hàm ngày tháng cho phép chúng ta lấy một phần của giá trị ngày tháng như: Lấyngày, tháng hoặc năm;

DATEPART: Là một phần giá trị ngày tháng, được kết hợp sử dụng trong hàmngày tháng để lấy một phần nào đó của giá trị ngày tháng.

Datepart Abbreviation ValuesHour hh 0-23Minute Mi 0-59Second Ss 0-59Millisecond Ms 0-999Day of Year Dy 1-366Day Dd 1-31Week wk 1-53Weekday dw 1-7Month mm 1-12Quarter qq 1-4Year yy 1753-9999

Page 31: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

31v1.0014106202

31

1.3.2. CÁC LOẠI HÀM TRONG SQL (tiếp theo)

Bảng sau hiển thị các hàm được sử dụng trong SQL Server 2008:

Hàm Giá trị trả về Ví dụGETDATE() Trả về ngày hiện tại

của hệ thốngSELECT GETDATE()

DATEADD(datepart,number,date) Cộng vào thêmnumber giá trị vàodate

SELECT DATEADD(mm,4,’01/01/99’) -returns 05/01/99 in the current date format

DATEDIFF(datepart,date1,date2) So sánh giữa haigiá trị ngày tháng

SELECT DATEDIFF(mm,’01/01/99’,’05/01/99’) - returns 4

DATENAME(datepart,date) Trả về giá trị ngàytháng dưới dạngchuỗi

SELECT DATENAME(dw,’01/01/2000’) -returns Saturday

DATEPART(datepart,date) Trả về một phầngiá trị ngày tháng

SELECT DATEPART(day,’01/15/2000’) -returns 15

Page 32: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

32v1.0014106202

1.3.2. CÁC LOẠI HÀM TRONG SQL (tiếp theo)

Hàm Các giá trị trả về Ví dụABS(num_expr) Trả về giá trị tuyệt đối SELECT ABS(-43) return 43

CEILING(num_expr) Trả về giá trị nhỏ nhất lớnhơn hoặc bằng num_expr

SELECT CEILING(43.5) returns 44

FLOOR(num_expr) Trả về giá trị lớn nhất nhỏhơn hoặc bằng num_expr

SELECT FLOOR(43.5) returns 43

POWER(num_expr,y) Hàm lũy thừa SELECT POWER(5,2) returns 25

ROUND(num_expr,length) Hàm làm tròn SELECT ROUND(43.543,1) returns 43.500

SIGN(num_expr) Trả về +1 nếu num_expr làsố dương, -1 nếunum_expr là số âm, 0 nếunum_expr bằng 0

SELECT SIGN(-43) returns -1

SQRT(float_expr) Hàm căn bậc hai SELECT SQRT(9) returns 3

Các hàm toán học trong SQL Server 2008: Thực hiện các phép tính đại số trên trườngdữ liệu/giá trị số.

Page 33: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

33v1.0014106202

33

1.3.2. CÁC LOẠI HÀM TRONG SQL (tiếp theo)

• Hàm hệ thống: Trả về dữ liệu hệ thống hay thông tin cấu hình củaSQL Server.

Hàm Giá trị trả về

DB_ID([‘database_name’]) Trả về số định danh của cơ sở dữ liệu

DB_NAME([database_id]) Trả về tên cơ sở dữ liệuHOST_ID() Trả về số định danh cho máy trạm

HOST_NAME() Trả về tên máy trạmISNULL(expr,value) Nếu expr là NULL thì được thay thế bằng

giá trị VALUE OBJECT_ID(‘obj_name’) Số định danh đối tượngOBJECT_NAME(object_id) Trả về tên đối tượngUSER_ID([‘user_name’]) Số định danh người dùngUSER_NAME([user_id]) Tên người dùng

Page 34: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

34v1.0014106202

34

• Biểu thức: Là kết hợp nhiều phần tử: Toán tử, giá trị, định danh mà SQL Server cóthể ước tính được để trả về một kết quả.

• Biểu thức có thể được sử dụng trong nhiều trường hợp khi truy cập hoặc thay đổidữ liệu.

• Sử dụng toán tử trong biểu thức: Toán tử được dùng để thực hiện tính toán, sosánh, ghép hoặc gán giá trị.

1.3.3. BIỂU THỨC

Toán tử Mô tảSo sánh So sánh các giá trị dữ liệu

Logic Toán tử luận lí, dùng kiểm tra điều kiện đúng hay sai. Cáctoán tử luận lí: AND, OR, NOT, LIKE, ANY, ALL hoặc IN

Số học Toán tử thực hiện các phép tính số học như: +,-,*,/

Toán tử một ngôi Toán tử thực hiện trên một toán hạng

Nhị phân Bitwese Các toán tử thực hiện trên các bit dữ liệu

Hàm ghép chuỗi Ghép hai chuỗi thành một chuỗi

Toán tử gán Gán giá trị cho biến

Page 35: NGÔN NGỮTRUY VẤN DỮLIỆUeldata11.topica.edu.vn/HocLieu/TH108/PDF slide/TH108_Bai1... · 2014. 6. 6. · 11 v1.0014106202 1.1.2. MỘT SỐ ĐẶC ĐIỂM CỦA NGÔN NGỮSQL

35v1.0014106202

35

Trong bài này chúng ta đã xem xét các nội dung sau:

• Một số tính năng chính của SQL;

• Biến, kiểu dữ liệu, chú thích trong SQL;

• Các hàm thống kê, biểu thức trong SQL;

• Giải thích cách thực thi câu lệnh SQL.

TÓM LƯỢC CUỐI BÀI