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

Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)

95 21 0

Đ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

Tiêu đề Quản Trị Cơ Sở Dữ Liệu SQL Server
Tác giả Trần Xuân Hải, Nguyễn Tiến Dũng
Người hướng dẫn Ths. Trịnh Công Nhựt
Trường học Trường Cao Đẳng Kinh Tế - Kỹ Thuật Vinatex TP.HCM
Chuyên ngành Công Nghệ Thông Tin
Thể loại tài liệu giảng dạy
Năm xuất bản 2019
Thành phố TP. HỒ CHÍ MINH
Định dạng
Số trang 95
Dung lượng 2,07 MB

Cấu trúc

  • Chương 1: Giới thiệu về SQL Server (8)
    • 1.1 Cài đặt SQL Server 2005 (13)
      • 1.1.1 Các yêu cần cho hệ thống 32 bit (0)
      • 1.1.2 Các bước cài đặt SQL Server 2005 Express Edition (15)
    • 1.2 Một số thao tác cơ bản trên SQL Server 2005 (24)
      • 1.2.1 Tạo một CSDL mới (24)
      • 1.2.2 Tạo bảng mới (25)
      • 1.2.3 Xóa bảng, xóa CSDL (27)
      • 1.2.4 Mở một query editor để viết câu lệnh SQL (27)
  • Chương 2: Ngôn ngữ định nghĩa dữ liệu – DDL (30)
    • 2.1 Tạo và chỉnh sửa cơ sở dữ liệu (30)
      • 2.1.1 Tạo CSDL (30)
      • 2.1.2 Chỉnh sửa CSDL (30)
      • 2.1.3 Xóa CSDL (0)
    • 2.2 Các kiểu dữ liệu (8)
    • 2.3 Tạo bảng (8)
    • 2.4 Các loại ràng buộc (8)
      • 2.4.1 Ràng buộc CHECK (33)
      • 2.4.2 Ràng buộc PRIMARY KEY (34)
      • 2.4.3 Ràng buộc FOREIGN KEY (35)
    • 2.5 Sửa đổi định nghĩa bảng (8)
    • 2.6 Xóa bảng (9)
    • 2.7 Thêm, cập nhật và xóa dữ liệu (39)
      • 2.7.1 Thêm dữ liệu (39)
      • 2.7.2 Cập nhật dữ liệu (40)
      • 2.7.3 Xóa dữ liệu (40)
  • Chương 3: Ngôn ngữ thao tác dữ liệu – DML (9)
    • 3.1 Câu lệnh SELECT (50)
    • 3.2 Danh sách chọn trong câu lệnh SELECT (51)
      • 3.2.1 Thay đổi tiêu đề cột (52)
      • 3.2.2 Sử dụng cấu trúc CASE … WHEN (53)
      • 3.2.3 Loại bỏ các dòng dữ liệu trùng nhau (54)
      • 3.2.4 Lựa chọn một số lượng giới hạn (54)
    • 3.3 Mệnh đề WHERE – điều kiện truy vấn dữ liệu (55)
      • 3.3.1 Các toán tử so sánh (55)
      • 3.3.2 Kiểm tra giới hạn của dữ liệu (56)
      • 3.3.3 Toán tử làm việc trên tập hợp (IN/NOT IN) (56)
      • 3.3.4 Toán tử LIKE/NOT LIKE và ký tự đại diện (57)
      • 3.3.5 Giá trị NULL (57)
      • 3.3.6 Sắp xếp truy vấn (0)
    • 3.4 Phép nối (59)
      • 3.4.1 Phép nối bằng (59)
      • 3.4.2 Phép tự nối (60)
      • 3.4.3 Phép nối ngoài (61)
    • 3.5 Mệnh đề GROUP BY (63)
      • 3.5.1 Thống kê trên toàn bộ dữ liệu (63)
      • 3.5.2 Thống kê trên nhóm (0)
      • 3.5.3 Mệnh đề HAVING chỉ định điều kiện trong hàm gộp (0)
    • 3.6 Truy vấn con (65)
      • 3.6.1 Phép so sánh đối với kết quả truy vấn con (0)
      • 3.6.2 Toán tử IN/NOT IN (66)
      • 3.6.3 Truy vấn con với EXISTS (66)
      • 3.6.4 Truy vấn con và mệnh đề HAVING (66)
    • 3.7 Khung nhìn – VIEW (67)
      • 3.7.1 Tạo khung nhìn (67)
      • 3.7.2 Xóa khung nhìn (0)
  • Chương 4: Thủ tục lưu trữ - Strore procedure (0)
    • 4.1 Khái niệm (72)
    • 4.2 Ngôn ngữ T-SQL (72)
      • 4.2.1 Khai báo biến (72)
      • 4.2.2 Gán giá trị cho biến (72)
      • 4.2.3 Các hàm thường dùng trong SQL (72)
      • 4.2.4 Cấu trúc điều khiển (74)
    • 4.3 Tạo – Xóa thủ tục (76)
      • 4.3.1 Tạo thủ tục (76)
      • 4.3.2 Thực thi thủ tục (76)
      • 4.3.3 Biến trong thủ tục lưu trữ (76)
      • 4.3.4 Giá trị trả về trong thủ tục lưu trữ (77)
      • 4.3.5 Tham số với giá trị mặc định (0)
      • 4.3.6 Sửa đổi thủ tục (0)
      • 4.3.7 Xóa thủ tục (0)
  • Chương 5: Hàm (9)
    • 5.1 Khái niệm – Phân loại (81)
    • 5.2 Hàm vô hướng – Scalar UDF (81)
    • 5.3 Hàm nội tuyến – Inline UDF (82)
    • 5.4 Hàm bao gồm nhiều câu lệnh bên trong – Multi statement UDF (83)
    • 5.5 Thay đổi hàm (84)
    • 5.6 Xóa hàm (85)

Nội dung

Tài liệu giảng dạy Quản trị CDSL SQL Server được dùng làm tài liệu học tập cho sinh viên ngành Công nghệ thông tin, cung cấp những kiến thức cơ bản về quản trị cơ sở dữ liệu SQL Server. Nội dung tài liệu bao gồm 6 chương như sau: Chương 1: Giới thiệu về SQL Server 2005; Chương 2: Ngôn ngữ định nghĩa dữ liệu (DDL); Chương 3: Ngôn ngữ thao tác dữ liệu (DML); Chương 4: Thủ tục lưu trữ (Stored Procedure); Chương 5: Hàm (Funtion); Chương 6: Bẫy lỗi (Trigger). Mời các bạn cùng tham khảo.

Giới thiệu về SQL Server

Cài đặt SQL Server 2005

1.1.1 Các yêu cầu cho hệ thống 32bit

Processor PIII 600MHZ hoặc cao hơn

Tốt nhất: 1GHZ hoặc cao hơn

• Microsoft Windows 2000 Server Service Pack 4 hoặc cao hơn

• Windows Server 2003 Standard, Enterprise, or Datacenter editions with Service Pack 1 hoặc cao hơn

• Windows Server 2003 Web Edition SP1

• Windows Small Business Server 2003 with Service Pack 1 hoặc cao hơn

• Vista Home Basic và các phiên bản cao hơn (SQL Express SP1 and SQL Express Advanced SP2)

• Windows XP Embedded SP2 Feature Pack 2007

• Windows Embedded for Point of Service SP2

• 350 MB ổ cứng cho các cài đặt cơ bản

• 425 MB ổ cứng cho các cài đặt SQL Server Books Online, SQL Server Mobile Books Online, và sample databases

Memory 192 MB RAM hoặc cao hơn; tốt nhất: 512 MB hoặc cao hơn

Drive CD-ROM or DVD-ROM drive

Display Super VGA (1,024x768) hoặc cao hơn

Microsoft Internet Explorer 6.0 SP1 hoặc cao hơn

Chi tiết yêu cầu hệ thống cho các phiên bản Microsoft SQL Server 2005 có thể tham khảo tại địa chỉ: http://www.microsoft.com/sql/prodinfo/sysreqs/default.mspx

To successfully install SQL Server Express Edition or other versions of SQL Server 2005, it is essential to download and install Microsoft NET Framework 2.0 first.

Gỡ bỏ các phiên bản Beta, CTP hoặc Tech Preview của SQL Server 2005, Visual Studio

Cài đặt SQL Server 2005 Express Edition là lựa chọn lý tưởng cho những ai tìm kiếm một phiên bản miễn phí và dễ sử dụng của Microsoft SQL Server 2005 Phiên bản này được tích hợp trong Visual Studio 2005, giúp đơn giản hóa quá trình phát triển ứng dụng hướng cơ sở dữ liệu SQL Server 2005 Express Edition có thể được sử dụng tự do trong các ứng dụng thương mại và cho phép người dùng dễ dàng nâng cấp lên các phiên bản cao hơn khi cần thiết.

Installing SQL Server Management Studio Express provides users with an interface to easily interact with the components of Microsoft SQL Server 2005 Express Edition Before proceeding with the installation of SQL Server Management Studio Express, it is essential to have MSXML 6.0 installed.

Download tại địa chỉ: http://www.microsoft.com/express/sql/download/default.aspx

1.1.2 Các bước cài đặt SQL Server 2005 Express Edition

Double click vào file cài đặt Microsoft SQL Server Express Edition

L ư u ý : SQL Server 2005 có hai kiểu authentication (kiểm tra người dùng)

Chế độ xác thực Windows trong SQL Server 2005 yêu cầu người dùng phải có quyền đăng nhập vào Windows để có thể truy cập SQL Server Phương thức này thường được áp dụng khi ứng dụng khai thác dữ liệu và SQL Server được cài đặt trên cùng một máy tính.

Chế độ xác thực SQL Server cho phép kiểm tra người dùng độc lập với hệ thống Windows, nghĩa là quyền đăng nhập vào Windows không đảm bảo quyền truy cập vào SQL Server Để đăng nhập, người dùng cần có tên người dùng và mật khẩu do SQL Server quản lý Phương thức xác thực này thường được áp dụng trong các ứng dụng khai thác dữ liệu khi SQL Server không được cài đặt trên cùng một máy tính.

Khi chọn chế độ Mixed mode, SQL Server cho phép sử dụng bất kỳ kiểu kiểm tra người dùng nào khi cần thiết, điều này rất hữu ích trong việc phát triển ứng dụng cơ sở dữ liệu Để đăng nhập vào SQL Server từ một ứng dụng truy xuất cơ sở dữ liệu trên máy khác, người dùng cần nhập mật khẩu vào hai ô bên dưới.

Cài đặt SQL Server Management Studio Express Sau khi cài đặt, đăng nhập vào SQL Server 2005 Express Edition như sau:

When logging in, users can choose between Windows Authentication and SQL Server Authentication If SQL Server Authentication is selected, a password must be entered, which is set during the installation of SQL Server 2005 Express Edition.

If SQL Server 2005 Express Edition is not set to start automatically during installation, attempting to connect may result in an error To resolve this issue, navigate to Start, then Run, and enter "services.msc" to access the services management console.

Tìm service SQL Server (SQLExpress), double click và trong comboxbox Startup type chọn Automatic -> Apply - >Start -> OK

Giao diện sau khi đăng nhập thành công

Một số thao tác cơ bản trên SQL Server 2005

Microsoft SQL Server Management Studio mang đến giao diện thân thiện cho người dùng, giúp thực hiện các thao tác dễ dàng như tạo và xóa cơ sở dữ liệu (CSDL), tạo và xóa bảng Ngoài ra, các thao tác này cũng có thể được thực hiện thông qua các câu lệnh SQL.

1.2.1 Tạo một CSDL mới Đặt tên Database trong Textbox Database Name, click OK

Bảng dữ liệu bao gồm các cột với tên cột (Column Name), kiểu dữ liệu (Data Type) và thông tin về khả năng chứa giá trị NULL Trong mỗi bảng, ít nhất một cột sẽ được chỉ định làm khóa chính (primary key) và được đánh dấu bằng biểu tượng chìa khóa trước tên cột Sau khi hoàn tất việc tạo các cột, người dùng cần lưu lại bằng cách chọn Save -> OK.

Để xóa một cơ sở dữ liệu trong SQL Server 2005, hãy nhấp chuột phải vào bảng hoặc cơ sở dữ liệu cần xóa, chọn "Delete" và sau đó nhấn "OK" Đối với việc xóa cơ sở dữ liệu, nên chọn tùy chọn "Close existing connections" để SQL Server 2005 ngắt tất cả các kết nối đến cơ sở dữ liệu đó, giúp quá trình xóa diễn ra mà không gặp phải lỗi.

1.2.4 Mở một query editor để viết câu lệnh SQL

Cần chú ý là câu lệnh SQL sẽ có tác dụng trên CSDL đang được chọn trong ComboBox

Do đó cần chú ý lựa chọn đúng CSDL cần tương tác

Bài tập 1 Sử dụng SQL Server Management thực hiện các yêu cầu sau:

1 Tạo CSDL có tên QLSV

2 Tạo bảng và nhập dữ liệu cho bảng như sau:

Bài tập 2 Sử dụng SQL Server Management thực hiện các yêu cầu sau:

1 Tạo CSDL có tên QLNV

2 Tạo bảng và nhập dữ liệu cho bảng (mỗi bảng ít nhất 3 bộ dữ liệu)

Bài tập 3 Sử dụng SQL Server Management thực hiện các yêu cầu sau:

1 Tạo CSDL có tên QLDH

2 Tạo bảng và nhập dữ liệu cho bảng như sau (mỗi bảng ít nhất 3 bộ dữ liệu):

Ngôn ngữ định nghĩa dữ liệu – DDL

Sửa đổi định nghĩa bảng

Thực hành, thí nghiệm, thảo luận, bài tập

1 Chương 1: Giới thiệu về SQL Server 2005 3 1 2

2 Chương 2: Ngôn ngữ định nghĩa dữ liệu

3 Chương 3: Ngôn ngữ thao tác dữ liệu

4 Chương 4: Thủ tục lưu trữ (Stored

Chương 1: Giới thiệu về SQL Server 2005 Thời gian: 3 giờ

- Trình bày được cách cài đặt SQL Server

- Cài đặt được phần mềm vào máy tính

- Nêu các thao tác cơ bản trong SQL Server

- Thực hiện các thao tác cơ bản trong SQL Server

Chương 2: Ngôn ngữ định nghĩa dữ liệu (DDL) Thời gian: 15 giờ

- Trình bày được cách tạo và chỉnh sửa CSDL

- Nêu được các kiểu ràng buộc và cách thêm, cập nhật, xóa dữ liệu trong bảng

- Tạo và chỉnh sửa được CSDL

- Tạo bảng và thực hiện ràng buộc trên các bảng

- Thực hiện được xóa bảng, thêm, cập nhật, xóa dữ liệu trong bảng

2.1 Tạo và chỉnh sửa CSDL Thời gian: 2 giờ

2.2 Các kiểu dữ liệu Thời gian: 1 giờ

2.3 Tạo bảng Thời gian: 2 giờ

Xóa bảng

Kiểm tra Thời gian: 1 giờ

2.7 Khung nhìn (view) Thời gian: 2 giờ

Kiểm tra Thời gian: 2 giờ

2.1 Khái niệm Thời gian: 2 giờ

Chương 3: Ngôn ngữ thao tác dữ liệu (DML) Thời gian: 15 giờ

- Trình bày được cách tạo câu lệnh Select

- Nêu đươc các cú pháp thường dùng trong câu lệnh Select

- Tạo được câu lệnh Select với các cú pháp khác nhau như dùng where, phép nối, group by, truy vấn con…

2.1 Câu lệnh Select Thời gian: 1 giờ

2.2 Danh sách chọn trong câu lệnh SELECT Thời gian: 1 giờ

2.3 Mệnh đề Where Thời gian: 3 giờ

2.4 Phép nối Thời gian: 2 giờ

2.5 Group By Thời gian: 2 giờ

2.6 Truy vấn con Thời gian: 2 giờ

Chương 4: Thủ tục lưu trữ (Stored Procedure) Thời gian: 12 giờ

- Nêu được cách tạo T_SQL, cách tạo và xóa thủ tục

- Tạo được các câu lệnh tạo và xóa thủ tục trong SQL Server

2.2 Ngôn ngữ T_SQL Thời gian: 5 giờ

2.3 Tạo - xóa thủ tục Thời gian: 5 giờ

Chương 5: Hàm (Funtion) Thời gian: 15 giờ

- Nêu được cách tạo các hàm vô hướng, hàm nội tuyến, hàm bao và cách thay đổi và xóa hàm

- Tạo, thay đổi và xóa được các hàm hàm vô hướng, hàm nội tuyến và hàm bao

2.1 Khái niệm Thời gian: 1 giờ

2.2 Hàm vô hướng (Scalar UDF) Thời gian: 2 giờ

2.3 Hàm nội tuyến (Inline UDF) Thời gian: 2 giờ

2.4 Hàm bao gồm nhiều câu lệnh bên trong

(Multi-statement UDF) Thời gian: 3 giờ

2.5 Thay đổi hàm Thời gian: 3 giờ

2.6 Xóa hàm Thời gian: 2 giờ

Kiểm tra Thời gian: 2 giờ

2.3 Tạo Trigger Thời gian: 5 giờ

IV Điều kiện thực hiện môn học:

1 Phòng học chuyên môn hóa/nhà xưởng: phòng lab tin học

2 Trang thiết bị máy móc: máy vi tính có phần mềm chuyên dụng

3 Học liệu, dụng cụ, nguyên vật liệu: sách, tập, máy tính có phần mềm chuyên dụng

4 Các điều kiện khác: không

V Nội dung và phương pháp đánh giá:

+ Trình bày được quá trình cài đặt và quản trị SQL Server

Cấu trúc bên trong của cơ sở dữ liệu (CSDL) bao gồm các bảng với các khóa chính và khóa ngoại, giúp xác định mối quan hệ giữa các bảng RB miền giá trị đảm bảo tính hợp lệ của dữ liệu, trong khi việc tạo chỉ mục tăng tốc độ truy xuất dữ liệu Thiết lập giá trị mặc định giúp đơn giản hóa quá trình nhập liệu View cho phép người dùng truy cập dữ liệu một cách linh hoạt, còn thủ tục nội tại (store procedure) và trigger tự động hóa các thao tác trong CSDL Cơ chế phân quyền đảm bảo an ninh dữ liệu, trong khi các thao tác import, export, backup và restore giúp quản lý và bảo vệ dữ liệu hiệu quả.

Bài viết trình bày cú pháp tạo, thay đổi và xóa cơ sở dữ liệu (CSDL), bảng, khóa chính, khóa ngoại, cùng với các yếu tố như default, check, rule, unique, index, view, stored procedure và trigger Ngoài ra, bài viết cũng đề cập đến các thao tác thêm, xóa và sửa dữ liệu trên bảng, giúp người đọc nắm vững các khái niệm và kỹ thuật cơ bản trong quản lý CSDL.

Trong SQL Server, bạn có thể thực hiện các thao tác quan trọng như import, export, backup và restore dữ liệu Bên cạnh đó, bạn cũng có khả năng thực hiện các thao tác quản trị cơ sở dữ liệu và viết mã lệnh để tối ưu hóa quy trình làm việc.

Quản trị dữ liệu trên hệ quản trị CSDL SQL Server bao gồm các thao tác như import, export, backup, restore và cơ chế phân quyền Người dùng cần nắm vững cú pháp thao tác trên cơ sở dữ liệu, bảng, view, stored procedure, và trigger để hỗ trợ hiệu quả cho công việc lập trình với CSDL.

- Năng lực tự chủ và trách nhiệm:

+ Tích cực tham gia tự học, tham gia xây dựng bài, làm việc nhóm

Các kiến thức và kỹ năng trên sẽ được đánh giá qua các nội dung tự nghiên cứu,

Chương 6: Bẫy lỗi (Trigger) Thời gian: 15 giờ

- Nêu được cách sử dụng và tạo các Trigger

- Tạo được các Trigger trong SQL Server

2.1 Đặc điểm của Trigger Thời gian: 5 giờ

2.2 Các trường hợp sử dụng Trigger Thời gian: 5 giờ ý thức thực hiện môn học, kiểm tra thường xuyên, kiểm tra định kỳ và kiểm tra kết thúc môn học:

Điểm môn học được tính bằng cách kết hợp điểm trung bình từ các hình thức kiểm tra, bao gồm điểm tự nghiên cứu, điểm kiểm tra thường xuyên và điểm kiểm tra định kỳ với trọng số 0,4, cùng với điểm thi kết thúc môn học có trọng số 0,6.

Điểm trung bình các bài kiểm tra được tính bằng cách lấy trung bình cộng của điểm kiểm tra thường xuyên, điểm kiểm tra định kỳ và điểm tự nghiên cứu, với mỗi loại điểm được nhân với hệ số tương ứng Cụ thể, điểm kiểm tra thường xuyên và điểm tự nghiên cứu có hệ số 1, trong khi điểm kiểm tra định kỳ có hệ số 2.

- Hình thức thi: thực hành (90 phút) (được thông báo vào đầu mỗi học kỳ)

VI Hướng dẫn thực hiện môn học:

1 Phạm vi áp dụng môn học: Chương trình môn học được sử dụng để giảng dạy cho trình độ Cao đẳng

2 Hướng dẫn về phương pháp giảng dạy, học tập môn học:

Trước khi bắt đầu giảng dạy, cần căn cứ vào nội dung từng bài học để chuẩn bị đầy đủ các điều kiện cần thiết, nhằm đảm bảo chất lượng giảng dạy.

Khi triển khai chương trình môn học, cần xác định rõ những điểm kiến thức cơ bản và yêu cầu về kiến thức cũng như kỹ năng cho từng nội dung.

 Cần liên hệ kiến thức với thực tế sản xuất và đời sống, đặc biệt là các phần mềm thực tế sử dụng mạng Internet có hiệu quả

 Chủ động, tích cực tiếp thu kiến thức, tự nghiên cứu, chuẩn bị bài theo nội dung giảng viên hướng dẫn, yêu cầu trước khi đến lớp

Để củng cố và ghi nhớ kiến thức đã học, cần thực hiện đầy đủ các bài tập và tự nghiên cứu các bài toán thực tế có sẵn trong môn học.

 Xây dựng kế hoạch tự học, tự nghiên cứu cho cá nhân

Để đạt yêu cầu trong chương trình học, sinh viên cần tham gia ít nhất 70% thời gian học lý thuyết và hoàn thành đầy đủ các bài học tích hợp, bài học thực hành, thực tập cùng các yêu cầu khác của môn học.

3 Những trọng tâm cần lưu ý:

[1] Hệ quản trị CDSL SQL Server 2005 - Trần Xuân Hải, Nguyễn Tiến Dũng

- Ngôn ngữ định nghĩa dữ liệu (DDL)

- Ngôn ngữ thao tác dữ liệu (DML)

- Thủ tục lưu trữ (Stored Procedure)

[2] Đề cương bài giảng HỆ QUẢN TRỊ CSDL SQL SERVER, Trường CĐ Kinh Tế -

Kỹ Thuật Vinatex TP.HCM

[3] Phạm Hữu Khang – Đoàn Thiện Ngân; Quản trị SQL Server 2000; NXB Thống kê

• Windows XP with Service Pack 2 hoặc cao hơn

Chương 1 Giới thiệu về SQL Server 2005

SQL Server 2005 is a Relational Database Management System (RDBMS) that utilizes Transact-SQL for data exchange between client computers and SQL Server An RDBMS comprises databases, a database engine, and applications designed to manage data and various components within the system.

SQL Server 2005 is optimized for operating in very large database environments, capable of handling data sizes up to terabytes while supporting thousands of concurrent users It seamlessly integrates with other servers such as Microsoft Internet Information Server (IIS), E-Commerce Server, and Proxy Server, enhancing its functionality and performance.

Các phiên bản của SQL Server 2005:

Gói Enterprise cung cấp hỗ trợ không giới hạn cho số lượng CPU và kích thước cơ sở dữ liệu, đồng thời cho phép RAM không giới hạn (tùy thuộc vào dung lượng tối đa mà hệ điều hành hỗ trợ) và tương thích với các hệ thống 64bit.

Standard: Tương tự như bản Enterprise nhưng chỉ hỗ trợ 4 CPU Ngoài ra phiên bản này cũng không được trang bị một số tính năng cao cấp khác

Workgroup: Tương tự bản Standard nhưng chỉ hỗ trợ 2 CPU và tối đa 3GB RAM

Express: Bản miễn phí, hỗ trợ tối đa 1CPU, 1GB RAM và kích thước Database giới hạn trong 4GB

Chi tiết có thể tham khảo tại địa chỉ: http://www.microsoft.com/sql/prodinfo/features/compare-features.mspx

1.1 Cài đặt SQL Server 2005 Express Edition

1.1.1 Các yêu cầu cho hệ thống 32bit

Processor PIII 600MHZ hoặc cao hơn

Tốt nhất: 1GHZ hoặc cao hơn

• Microsoft Windows 2000 Server Service Pack 4 hoặc cao hơn

• Windows Server 2003 Standard, Enterprise, or Datacenter editions with Service Pack 1 hoặc cao hơn

• Windows Server 2003 Web Edition SP1

• Windows Small Business Server 2003 with Service Pack 1 hoặc cao hơn

• Vista Home Basic và các phiên bản cao hơn (SQL Express SP1 and SQL Express Advanced SP2)

• Windows XP Embedded SP2 Feature Pack 2007

• Windows Embedded for Point of Service SP2

• 350 MB ổ cứng cho các cài đặt cơ bản

• 425 MB ổ cứng cho các cài đặt SQL Server Books Online, SQL Server Mobile Books Online, và sample databases

Memory 192 MB RAM hoặc cao hơn; tốt nhất: 512 MB hoặc cao hơn

Drive CD-ROM or DVD-ROM drive

Display Super VGA (1,024x768) hoặc cao hơn

Microsoft Internet Explorer 6.0 SP1 hoặc cao hơn

Chi tiết yêu cầu hệ thống cho các phiên bản Microsoft SQL Server 2005 có thể tham khảo tại địa chỉ: http://www.microsoft.com/sql/prodinfo/sysreqs/default.mspx

To successfully install SQL Server Express Edition or other versions of SQL Server 2005, it is essential to first download and install Microsoft NET Framework 2.0.

Gỡ bỏ các phiên bản Beta, CTP hoặc Tech Preview của SQL Server 2005, Visual Studio

Cài đặt SQL Server 2005 Express Edition là lựa chọn lý tưởng cho những ai tìm kiếm một phiên bản miễn phí và dễ sử dụng của Microsoft SQL Server 2005 Phiên bản này được tích hợp sẵn trong Visual Studio 2005, giúp đơn giản hóa quá trình phát triển các ứng dụng hướng cơ sở dữ liệu SQL Server 2005 Express Edition cho phép người dùng sử dụng tự do trong các ứng dụng thương mại và dễ dàng nâng cấp lên các phiên bản cao hơn khi cần thiết.

Ngôn ngữ thao tác dữ liệu – DML

Câu lệnh SELECT

Câu lệnh SELECT là công cụ quan trọng trong SQL, cho phép truy xuất dữ liệu từ các dòng và cột của một hoặc nhiều bảng và khung nhìn Nó có khả năng thực hiện phép chọn để lấy một tập con các dòng, phép chiếu để truy xuất các cột cụ thể, và phép nối để liên kết dữ liệu từ nhiều bảng khác nhau Hơn nữa, câu lệnh này hỗ trợ thực hiện các truy vấn và thống kê dữ liệu phức tạp, giúp người dùng khai thác thông tin hiệu quả.

Cú pháp chung của câu lệnh SELECT có dạng:

SELECT [ALL | DISTINCT][TOP n] danh_sách_ch ọ n

FROM danh_sách_b ả ng/khung_nhìn

Khi sử dụng câu lệnh SELECT trong việc tính toán danh sách hàm gộp theo danh sách cột, điều quan trọng là các thành phần trong câu lệnh phải tuân thủ đúng thứ tự theo cú pháp Nếu không, câu lệnh sẽ bị coi là không hợp lệ.

Câu lệnh SELECT được sử dụng để truy vấn và tác động lên các bảng dữ liệu, với kết quả hiển thị dưới dạng bảng gồm các dòng và cột, trừ trường hợp sử dụng SELECT với mệnh đề COMPUTE.

Ví dụ dưới đây hiển thị tên khách hàng và địa chỉ các khách hàng hiện có select customername, gender, address from customers

Danh sách chọn trong câu lệnh SELECT

Danh sách chọn trong câu lệnh SELECT được sử dụng để xác định các trường và biểu thức cần hiển thị trong kết quả truy vấn Các trường và biểu thức này được liệt kê ngay sau từ khóa SELECT và phân cách bằng dấu phẩy Việc sử dụng danh sách chọn trong câu lệnh SELECT có nhiều ứng dụng khác nhau.

Khi cần chỉ định cụ thể các cột hiển thị trong kết quả truy vấn, bạn cần liệt kê danh sách các tên cột trong phần chọn Thứ tự các cột trong kết quả sẽ theo đúng thứ tự của các trường trong danh sách đã chọn.

Khi thực hiện truy vấn trên nhiều bảng hoặc khung nhìn có trường trùng tên, cần chú ý rằng các trường này phải được chỉ định rõ ràng bằng cách sử dụng cú pháp: tên_bảng.tên_trường trong danh sách chọn.

3.2.1 Thay đổ i tiêu đề các c ộ t:

Trong kết quả truy vấn, tiêu đề cột mặc định là tên trường trong bảng Để làm cho tiêu đề cột thân thiện hơn, có thể đổi tên chúng Để thực hiện điều này, sử dụng cú pháp: tiêu_đề_cột = tên_trường, tên_trường AS tiêu_đề_cột, hoặc tên_trường tiêu_đề_cột.

Ví dụ: select [Mã khách hàng] = Customerid, customername as [Tên khách hàng], address [Địa chỉ] from Customers

Cấu trúc CASE trong SQL cho phép thay đổi kết quả của truy vấn dựa trên các điều kiện khác nhau Cú pháp của cấu trúc này được sử dụng trong danh sách chọn để xử lý các trường hợp cụ thể.

WHEN bi ể u_th ứ c_ki ể m_tra THEN k ế t_qu ả

The SQL command below displays the gender of customers based on the stored values in the database If the value in the database is FALSE, it shows 'FEMALE'; if the value is TRUE, it shows 'MALE' The query used is: `SELECT CUSTOMERNAME, ADDRESS, CASE GENDER WHEN 1 THEN 'MALE' ELSE N'FEMALE' END AS [GENDER] FROM customers`.

Câu lệnh trên cũng có thể viết như sau: select CUSTOMERNAME, ADDRESS, case when GENDER = 1 then 'NAM' else N'NỮ' end as [GIỚI TÍNH] from customers

3.2.3 Lo ạ i b ỏ các dòng d ữ li ệ u trùng nhau:

Từ khóa DISTINCT trong SQL giúp loại bỏ các dòng dữ liệu trùng lặp Ví dụ, khi có hai khách hàng cùng tên Cao Van Trung, ta có thể sử dụng câu lệnh "SELECT DISTINCT CUSTOMERNAME FROM customers" để chỉ truy vấn và hiển thị tên khách hàng một cách duy nhất, tránh sự trùng lặp.

3.2.4 L ự a ch ọ n m ộ t s ố l ượ ng gi ớ i h ạ n các dòng :

Từ khóa TOP n sẽ trả về chỉ n dòng dữ liệu

Ví dụ: ví dụ sau chỉ trả về duy nhất hai dòng dữ liệu select top 2 Customername from customers

Nếu sử dung TOP n PERCENT thì sẽ trả về n % số dòng dữ liệu hiện có trong CSDL.

Mệnh đề WHERE – điều kiện truy vấn dữ liệu

Mệnh đề WHERE trong câu lệnh SELECT được sử dụng để xác định các điều kiện truy xuất dữ liệu Chỉ những dòng dữ liệu thỏa mãn biểu thức logic sau mệnh đề WHERE mới được hiển thị trong kết quả truy vấn.

Ví dụ: Lọc ra thông tin các khách hàng có mã

Trong mệnh đề WHERE thường sử dụng:

Các toán tử kết hợp điều kiện (AND, OR)

Các toán tử so sánh

Kiểm tra giới hạn của dữ liệu (BETWEEN/ NOT BETWEEN)

Kiểm tra khuôn dạng dữ liệu

The following example retrieves the name, birth date in dd/MM/yyyy format, and address of customers named Le Thi Hoa, who are over 20 years old The SQL query used is: "SELECT CUSTOMERNAME, CONVERT(varchar, BIRTHDAY, 103) AS BIRTHDAY, ADDRESS FROM Customers WHERE Customername = 'Le Thi Hoa' AND YEAR(GETDATE()) - YEAR(BIRTHDAY) > 20."

3.3.2 Ki ể m tra gi ớ i h ạ n c ủ a d ữ li ệ u Để kiểm tra xem giá trị dữ liệu nằm trong (ngoài) một khoảng nào đó, ta sử dụng toán tử BETWEEN/ NOT BETWEEN như sau:

Mệnh đề Ý nghĩa variable BETWEEN a AND b a 100000000` This query aggregates order details, calculating the total amount spent by each customer and filtering for those whose total exceeds the specified threshold.

Truy vấn con

Truy vấn con là một câu lệnh SELECT được lồng trong các câu lệnh như SELECT, INSERT, UPDATE hoặc DELETE, hoặc trong một truy vấn con khác Loại truy vấn này cho phép biểu diễn các điều kiện truy vấn dữ liệu cần dựa vào kết quả của một truy vấn khác.

Cú pháp của truy vấn con như sau:

(SELECT [ALL | DISTINCT] danh_sách_ch ọ n

Khi sử dụng truy vấn con cần lưu ý một số quy tắc sau:

Một truy vấn con cần được đặt trong cặp dấu ngoặc và thường chỉ trả về một cột duy nhất trong danh sách chọn.

Mệnh đề COMPUTE và ORDER BY không được phép sử dụng trong truy vấn con

Các tên cột xuất hiện trong truy vấn con có thể là các cột của các bảng trong truy vấn ngoài

Một truy vấn con thường được sử dụng làm điều kiện trong mệnh đề WHERE hoặc HAVING của một truy vấn khác

Nếu truy vấn con chỉ trả về một giá trị duy nhất, giá trị đó có thể được sử dụng như một thành phần trong biểu thức, chẳng hạn như trong phép so sánh bằng.

3.6.1 Phép so sánh đố i v ớ i v ớ i k ế t qu ả truy v ấ n con

Kết quả của truy vấn con có thể được áp dụng để thực hiện phép so sánh số học với biểu thức của truy vấn cha Trong tình huống này, truy vấn con được sử dụng như một công cụ hỗ trợ.

WHERE biểu_thức phép_toán_số_học [ANY|ALL] (truy_vấn_con)

Trong đó phép toán số học có thể sử dụng bao gồm: =, , >, =, = ALL (SELECT AVG(DIEM) FROM KETQUA GROUP BY MASV)

Khi cần kiểm tra xem một biểu thức có nằm trong tập giá trị của truy vấn con hay không, chúng ta có thể sử dụng toán tử IN hoặc NOT IN.

WHERE biểu_thức [NOT] IN (truy_vấn_con)

Ví dụ: Cho biết những sinh viên nào chưa có điểm thi

WHERE MASV = NOT IN (SELECT DISTINCT MASV FROM KETQUA)

EXISTS được sử dụng kết hợp với truy vấn con dưới dạng:

WHERE [NOT] EXISTS (truy_vấn_con)

EXISTS (tương ứng NOT EXISTS) trả về True nếu truy vấn con có ít nhất một dòng, và False nếu không có dòng nào Khác với hai phương pháp đã nêu, EXISTS cho phép truy vấn con có nhiều hơn hai cột trong danh sách chọn.

3.6.4 Truy v ấ n con và m ệ nh đề HAVING

Một truy vấn con có thể được áp dụng trong mệnh đề HAVING của một truy vấn khác Kết quả của truy vấn con này sẽ được sử dụng để thiết lập điều kiện cho các hàm gộp trong truy vấn chính.

Khung nhìn – VIEW

Khung nhìn là một bảng ảo tạm thời trong cơ sở dữ liệu, có cấu trúc tương tự như bảng thông thường Nó không lưu trữ dữ liệu mà được tạo ra khi được sử dụng, và khung nhìn được xem như một đối tượng trong hệ thống cơ sở dữ liệu.

Khung nhìn được tạo ra từ câu lệnh truy vấn dữ liệu (lệnh SELECT), truy vấn từ một hoặc nhiều bảng dữ liệu

Có thể thực hiện truy vấn dữ liệu trên cấu trúc của khung nhìn

Câu lệnh CREATE VIEW được sử dụng để tạo ra khung nhìn và có cú pháp như sau:

CREATE VIEW tên_khung_nhìn[(danh_sách_tên_c ộ t)]

Ví dụ: Tạo khung nhìn (view) danh sách sinh viên có điểm trung bình lớn hơn hay bằng 5

Xem dữ liệu view vừa tạo

Câu lệnh DROP VIEW dùng để xóa khung nhìn có cấu trúc như sau:

DROP VIEW tên_khung_nhìn

Ví dụ: DROP VIEW vw_DSSV

1 Sử dụng CSDL bài tập 2 QLDeAn trong Chương 2

2 Viết các câu lệnh truy vấn SQL như sau:

Thủ tục lưu trữ - Strore procedure

Khái niệm

Thủ tục lưu trữ trong cơ sở dữ liệu (CSDL) là một tập hợp các câu lệnh T-SQL được nhóm lại với nhau, cho phép thực thi đồng thời tất cả các lệnh khi thủ tục này được gọi.

Lợi ích của việc sử dụng thủ tục lưu trữ:

SQL Server chỉ biên dịch thủ tục lưu trữ một lần và tái sử dụng kết quả biên dịch cho các lần gọi tiếp theo, trừ khi có thiết lập khác từ người dùng Việc này không ảnh hưởng đến hiệu suất hệ thống ngay cả khi thủ tục lưu trữ được gọi nhiều lần liên tiếp.

Thủ tục lưu trữ được tối ưu hóa giúp tăng tốc độ thực thi, nhanh hơn đáng kể so với việc thực hiện các câu lệnh SQL rời rạc theo cách truyền thống.

Thủ tục lưu trữ cho phép thực hiện yêu cầu với một câu lệnh đơn giản, giúp giảm thiểu số lượng dòng lệnh SQL cần thiết Điều này không chỉ tối ưu hóa quy trình mà còn giảm lưu lượng truy cập mạng.

Ngôn ngữ T-SQL

DECLARE @tenbien

4.2.2 Gán giá trị cho biến

SET @ten_bien=giá_trị

4.2.3 Các hàm thường dùng trong SQL

Hàm GETDATE trả về ngày giờ lúc thực hiện câu truy vấn

Xem một ngày nào đó thuộc quý mấy trong năm, hay thuộc tuần thứ mấy trong tháng Hàm

DATEPART giúp giải quyết các yêu cầu trên một cách dễ dàng

Cấu trúc hàm DATEPART như sau:

DATEPART (yêu_c ầ u_trích_xu ấ t, giá_tr ị _trích_xu ấ t) giá_trị_trích_xuất là một giá trị thuộc kiểu datetime yêu_cầu_trích_xuất: ngày, tháng, năm, quý,…

Bảng dưới đây mô tả các yêu chữ viết tắt và các yêu cầu trích xuất tương ứng Ý nghĩa Chữ viết tắt

Số ngày đã qua trong năm dy,y

Số ngày đã qua trong tuần Dw

Ví dụ: select datepart(yyyy, orderdate)as YEAROFORDERDATE

Hàm CAST và CONVERT đều cho phép chuyển đổi giá trị giữa các kiểu dữ liệu khác nhau Một ưu điểm nổi bật của hàm CONVERT là khả năng định dạng lại giá trị kết quả theo yêu cầu của người dùng trong quá trình chuyển đổi.

Cấu trúc hàm CAST và CONVERT như sau:

CAST (biểu_thức/giá_ trị AS kiểu_dữ liệu [độ_dài_kiểu_dữ_liệu ])

CONVERT ( kiểu_dữ liệu [độ_dài_kiểu_dữ_liệu ] , biểu_thức/giá_ trị [ ,kiểu_định_dạng] )

Năm 2 chữ số Năm 4 chữ số Output

0 hoặc 100 mon dd yyyy hh:mi AM (PM)

9 hoặc 109 mon dd yyyy hh:mi:ss:mmmAM (PM)

13 hoặc 113 dd mon yyyy hh:mm:ss:mmm(24h)

Ví dụ: select CUSTOMERNAME, convert (varchar, BIRTHDAY, 103) as BIRTHDAY, ADDRESS from Customers where Customername = 'Le Thi Hoa' and year(getdate()) - year(BIRTHDAY) > 20

4.2.4.1 Cấu trúc rẽ nhánh IF … ELSE

IF biểu_thức_điều_kiện

Ví dụ: Tìm số lớn hơn trong 2 số a,b

4.2.4.2 Cấu trúc rẽ nhánh CASE

CASE gia_tri_điều_kiện

WHEN | THEN

- BREAK: thoát khỏi vòng while

- CONTINUE: tiếp tục vòng lặp, bỏ qua các lệnh sau CONTINUE

Ví dụ: In ra 10 số nguyên dương bắt đầu từ 100

Print "So nguyen: " + Convert(Char(3), @songuyen)

Hàm

Khái niệm – Phân loại

Hàm do người dùng định nghĩa được phân thành ba loại chính: (1) hàm vô hướng (scalar), (2) hàm nội tuyến với giá trị trả về dạng bảng (inline table-valued), và (3) hàm đa câu lệnh (multi-statement table-valued) bao gồm nhiều câu lệnh SQL và cũng trả về giá trị dạng bảng.

Scalar UDF là một hàm được sử dụng để trả về một giá trị duy nhất dựa trên các tham số được truyền vào Ví dụ, chúng ta có thể tạo một UDF vô hướng nhận tham số CustomerID và trả về CustomerName tương ứng.

Inline table-valued: trả về một bảng dựa trên một câu lệnh SQL duy nhất định nghĩa các dòng và các cột trả về

Multi-statement table-value: cũng trả về kết quả là một tập hợp nhưng có thể dựa trên nhiều câu lệnh SQL.

Hàm vô hướng – Scalar UDF

Scarlar UDF được tạo ra bằng câu lệnh CREATE FUNCTION có cấu trúc như sau;

([danh_sách_tham_số]) RETURNS (kiểu_trả_về_của_hàm)

AS BEGIN các_câu_lệnh_của_hàm

The following SQL command defines a function to determine the day of the week for a given date value The function, named `f_thu`, takes a datetime parameter `@ngay` and returns an nvarchar string representing the day Inside the function, a variable `@st` is declared, and the `datepart` function is used to extract the day of the week from `@ngay` A case statement then translates the numeric value into the corresponding day name in Vietnamese, returning "Chủ nhật" for Sunday, "Thứ hai" for Monday, "Thứ ba" for Tuesday, "Thứ tư" for Wednesday, "Thứ năm" for Thursday, "Thứ sáu" for Friday, and "Thứ bảy" for Saturday The function concludes by returning the value of `@st`.

Sau khi thực thi thành công, hàm sẽ trở thành một đối tượng trong cơ sở dữ liệu và có thể được truy cập giống như các hàm tích hợp sẵn trong SQL Server 2005 Express Edition.

Ví dụ: select CUSTOMERNAME, dbo.f_thu(BIRTHDAY) from customers

Hàm nội tuyến – Inline UDF

Hàm nội tuyến được định nghĩa bằng lệnh CREATE FUNCTION

CREATE FUNCTION tên_hàm ([danh_sách_tham_số])

Cú pháp của hàm nội tuyến phải tuân theo các qui tắc sau:

Kiểu trả về của hàm phải được chỉ định bởi mệnh đề RETURNS TABLE

Trong phần thân của hàm, chỉ có một câu lệnh RETURN để xác định giá trị trả về thông qua một câu lệnh SELECT duy nhất Không có bất kỳ câu lệnh nào khác được sử dụng trong phần thân của hàm.

Ví dụ: Ví dụ dưới đây lấy ra các khách hàng tùy thuộc vào giá trị mã khách hàng truyền vào cho tham số create function f_SelectCustomer

(@customerid int) returns table as return (select * from customers where customerid > @customerid) Việc gọi các hàm nội tuyến cũng tương tự như việc gọi các hàm vô hướng

Ví dụ: select tmp.CUSTOMERNAME, o.ORDERDATE from orders o inner join dbo.f_SelectCustomer(3) as tmp on o.customerid = tmp.customerid

Hàm bao gồm nhiều câu lệnh bên trong – Multi statement UDF

Hàm này cũng được định nghĩa bằng lệnh CREATE FUNCTION

RETURNS @biến_bảng TABLE định_nghĩa_bảng

BEGIN các_câu_lệnh_trong_thân_hàm

Lưu ý: sau từ khóa RETURNS là một biến bảng được định nghĩa Và sau từ khóa RETURN ở cuối hàm không có tham số nào đi kèm

Ví dụ: create function f_SelectCustomer (@customerid int) returns @myCustomers table

( customerid int, customername nvarchar(50), orderdate datetime

To begin, if the customer ID is 0, the system inserts customer details into the temporary table from the joined customers and orders tables If a specific customer ID is provided, it retrieves and inserts the corresponding customer information into the temporary table The process involves selecting customer IDs, names, and order dates based on the relationship between customers and their orders.

Việc gọi hàm multi statement UDF cũng tương tự các loại hàm khác select * from f_SelectCustomer(0) select * from f_SelectCustomer(3)

Thay đổi hàm

Dùng lệnh ALTER FUNCTION để thay đổi định nghĩa hàm Cấu trúc của câu lệnh ALTER FUNCTION tương tự như CREATE FUNCTION

Ví dụ: alter function f_SelectCustomer

(@customerid int) returns table as return (select * from customers where customerid > @customerid)

Xóa hàm

Dùng lệnh DROP FUNCTION để xóa hàm Cấu trúc lệnh DROP FUNCTION như sau DROP FUNCTION tên_hàm

Ví dụ: drop function f_thu

Khi một hàm bị xóa, tất cả các quyền truy cập của người dùng đối với hàm đó cũng sẽ bị xóa Do đó, khi định nghĩa lại hàm, cần phải cấp lại quyền cho người dùng.

Bài tập 1 Viết hàm đơn giản (không truy xuất dữ liệu)

1 Viết hàm truyền vào ngày sinh, tính số tuổi

2 Viết hàm truyền vào điểm toán, lý, hóa và khối Tính tổng điểm theo công thức sau:

- Nếu khối là A thì Tổng điểm = Toán* 2 + Lý + Hóa

- Nếu khối là B thì Tổng điểm = Toán + Lý + Hóa* 2

Bài tập 2 Viết hàm trả về kiểu cơ sở

- Sử dụng CSDL bài tập Chương 4

1 Viết hàm đếm số sinh viên theo từng khoa với mã khoa là tham số truyền vào cho hàm

2 Viết hàm tính điểm trung bình của sinh viên với mã sinh viên là tham số truyền vào

Bài tập 3 Viết hàm trả về kiểu bảng

1 Viết hàm hiển thị danh sách các sinh viên theo khoa

2 Viết hàm hiển thị danh sách điểm thi của từng sinh viên

3 Viết hàm hiển thị số sinh viên theo mã khoa như sau:

- Nếu mã khoa rỗng thì hiển thị số sinh viên của tất cả các khoa

- Nếu mã khoa khác rỗng thì hiển thị số sinh viên theo khoa

6.1 Các đặc điểm của trigger

Trigger là một loại thủ tục lưu trữ đặc biệt, tự động thực thi khi có sự thay đổi dữ liệu trên bảng thông qua các lệnh INSERT, UPDATE hoặc DELETE Chức năng của Trigger chỉ được kích hoạt bởi các sự kiện mà không cần can thiệp thủ công.

Trigger sử dụng được với khung nhìn

Khi trigger được kích hoạt bởi các sự kiện Insert hoặc Delete, dữ liệu thay đổi sẽ được chuyển vào hai bảng tạm thời là INSERTED và DELETED, chỉ tồn tại trong bộ nhớ và phục vụ cho các lệnh trong trigger Các bảng này thường được sử dụng để khôi phục dữ liệu đã thay đổi, giúp thực hiện thao tác roll back hiệu quả.

Trigger được chia thành hai loại: INSTEAD OF và AFTER Trigger INSTEAD OF sẽ bỏ qua hoạt động của sự kiện kích hoạt và thực hiện các lệnh bên trong trigger Ngược lại, trigger AFTER, loại ngầm định, sẽ thực hiện các lệnh sau khi sự kiện kích hoạt đã hoàn tất.

6.2 Các trường hợp sử dụng trigger

Sử dụng Trigger là cần thiết khi các biện pháp bảo đảm toàn vẹn dữ liệu khác không đủ hiệu quả Các công cụ này sẽ thực hiện kiểm tra tính toàn vẹn trước khi dữ liệu được đưa vào cơ sở dữ liệu, trong khi Trigger đảm bảo tính toàn vẹn sau khi công việc đã hoàn thành.

Khi cơ sở dữ liệu (CSDL) chưa được chuẩn hóa, sẽ xảy ra tình trạng dữ liệu thừa và phân tán ở nhiều vị trí khác nhau Để đảm bảo dữ liệu được cập nhật một cách thống nhất ở tất cả các nơi, việc sử dụng Trigger là cần thiết.

Khi có sự thay đổi trong dữ liệu của một bảng, dữ liệu tương ứng trong các bảng khác cũng sẽ được cập nhật theo Điều này đảm bảo tính nhất quán và đồng bộ của thông tin trong hệ thống cơ sở dữ liệu.

Câu lệnh CREATE TRIGGER được sử dụng để đinh nghĩa trigger và có cấu trúc như sau:

[AND UPDATE(tên_cột)|OR UPDATE(tên_cột)]

] các_câu_lệnh_của_trigger

Trong SQL, hai bảng logic INSERTED và DELETED được định nghĩa để sử dụng trong các trigger, với cấu trúc tương tự như bảng mà trigger tác động Dữ liệu trong hai bảng này thay đổi tùy thuộc vào câu lệnh tác động lên bảng, cụ thể trong các trường hợp khác nhau.

Hoạt động Bảng INSERTED Bảng DELETED

INSERT dữ liệu được insert không có dữ liệu

DELETE không có dữ liệu dữ liệu bị xóa

UPDATE dữ liệu được cập nhật dữ liệu trước khi cập nhật

This example demonstrates how a trigger is activated when data is added to the CUSTOMERS table The trigger, named t_CheckCustomerName, checks the length of the customer name upon insertion If the length of the inserted customer name is less than or equal to one character, it prints 'Invalid name' and rolls back the transaction.

Thêm một khách hàng mới có tên là A insert into customers values('A', '5/5/1978', 'True', '35 Hung Vuong')

Ví dụ 2: Ràng buộc toàn vẹn dữ liệu

2.1 Tạo Trigger ràng buộc khóa chính cho bảng SANPHAM

Select @masp=MASP ON INSERTED if (SELECT Count(*) From SANPHAM Where MASP=@masp)>1

Raiserror('Trung ma san pham',16,1)

2.2 Tạo Trigger ràng buộc khóa chính cho bảng CHITIETHOADON

Declare @masp int, @sohd int

Select @masp=MASP, @sohd=SOHD From INSERTED

IF (Select Count(*) From CHITIETHOADON

Where MASP=@masp And SOHD=@sohd)>1

Raiserror('Trung ma san pham',16,1)

Ví dụ 3: Ràng buộc miền giá trị

Tạo Trigger cập nhật số lượng tồn trong bảng SANPHAM, khi có thao tác cập nhật sản phẩm đó trong bảng CHITIETHOADON

Declare @masp int, @SL int

Select @masp=MASP, @SL=SOLUONG From INSERTED

UPDATE SANPHAM SET SLTON=SLTON-@SL Where MASP=@masp

Trigger cần bị vô hiệu hóa trong một số trường hợp:

Trigger gây ra lỗi trong quá trình xử lý CSDL

Quá trình nhập hay khôi phục những dữ liệu không thỏa trigger

Vô hiệu hóa trigger bằng lệnh DISABLE TRIGGER có cấu trúc như sau:

ON { tên_ đố i_t ượ ng | DATABASE | SERVER }

Ví dụ 1: Ví dụ này sẽ vô hiệu hóa trigger t_DoNotAllowCreateNewLogin disable trigger t_DoNotAllowCreateNewLogin on all server

Tiến hành tạo một account login mới: create login newLogin with password = '12345'

Ví dụ 2: Ví dụ này sẽ khôi phục lại trigger t_ DoNotAllowCreateNewLogin enable trigger t_DoNotAllowCreateNewLogin on all server

Tiến hành tạo một account login mới: create login newLogin1 with password = '12345'

2 Tạo cấu trúc bảng và nhập dữ liệu như sau:

KHACHHANG (MAKH , TENKH, DIACHI, DT, EMAIL)

VATTU (MAVT, TENVT, DVT, GIAMUA, SLTON)

HOADON (MAHD , NGAY, MAKH, TONGTG)

CHITIETHOADON(MAHD, MAVT , SL, KHUYENMAI, GIABAN)

1 Nội dung hướng dẫn thực hành

- Tạo CSDL: Bảng, ràng buộc khóa chính, khóa ngoại, miền giá trị

- Tạo View, Stored Procedure, Function, Trigger

2 Cơ sở dữ liệu “QLBH” như sau

2.1 Tạo cấu trúc bảng sau:

KHACHHANG (MAKH , TENKH, NS, DIACHI, DT, EMAIL)

SAMPHAM (MASP, TENSP, DVT, GIAMUA, SLTON)

HOADON (MAHD , NGAYLAP, MAKH, TONGTG)

CHITIETHOADON (MAHD, MASP , SL, KHUYENMAI, GIABAN)

Các trường được in đậm và gạch dưới là khóa chính của bảng, có kiểu dữ liệu là char(5), trong khi các trường khác có kiểu dữ liệu phù hợp với thông tin nhập vào.

+ Trong bảng SANPHAM, ràng buộc field GIAMUA >0, SLTON >=0

+ Trong bảng HOADON, ràng buộc giá trị nhập cho field NGAYLAP phải trước ngày hiện hành + Tong bảng CHITIETHOADON, ràng buộc field SL>0

2.2 Dữ liệu của các bảng được cho như sau:

MASP TENSP DVT GIAMUA SLTON

MAKH TENKH DIACHI NGAYSINH DT EMAIL

KH01 Nguyễn Thi Bé Thủ đức 12/09/1980 (08)38457895 be@yahoo.com KH02 Lê Hoàng Nam Bình thạnh 03/10/1978 (08)39878987 hoang@yahoo.com KH03 Trần Thị Chiêu Bình 02/07/1975 (08)28457895

KH04 Mai Thị Quế Anh Quận 9 23/09/1982

KH05 Lê Văn Sang Thủ đức 09/12/1956 sang@hcm.vn.vn

KH06 Trần Hoàng Khải Quận 12 04/07/1990 (08)28457890 khai@gmail.com

1 Hiển thị các thông tin gồm Mã hóa đơn, ngày lập hóa đơn, tên khách hàng, địa chỉ khách hàng và số điện thoại

2 Hiển thị danh sách các khách hàng chưa có số điện thoại và email, thông tin gồm: Mã khách hàng, tên khách hàng, địa chỉ

3 Hiển thị danh sách các vật tư gồm mã vật tư, tên vật tư, đơn vị tính và giá mua nằm trong khoảng 2000 đến 40000

4 Lấy ra các thông tin gồm: Mã hóa đơn, ngày lập hóa đơn, tên khách hàng và số điện thoại của ngày 25/7/2000

5 Lấy ra các thông tin gồm Mã hóa đơn, ngày lập hóa đơn, tên khách hàng, địa chỉ khách hàng và số điện thoại của những hóa đơn trong tháng 6/2000

6 Lấy ra danh sách những khách hàng (Tên khách hàng, địa chỉ, số điện thoại) đã mua hàng trong tháng 6/2000

7 Lấy ra danh sách những khách hàng (Tên khách hàng, địa chỉ, số điện thoại) không mua hàng trong tháng 6/2000

8 Lấy ra các thông tin gồm Mã hóa đơn, mã vật tư, tên vật tư, đơn vị tính, giá bán, giá mua, số lượng, trị giá mua (số lượng * giá mua), trị giá bán (số lượng * giá bán)

9 Lấy ra các thông tin gồm Mã hóa đơn, mã vật tư, tên vật tư, đơn vị tính, giá bán, giá mua, số lượng, trị giá mua (số lượng * giá mua), trị giá bán (số lượng * giá bán), khuyến mãi 10% cho những mặt hàng bán trong một hóa đơn lớn hơn 100

10 Tìm ra những mặt hàng chưa bán được

11 Tạo bảng tổng hợp của tháng 5/2000 gồm các thông tin: Mã hóa đơn, ngày hóa đơn, tên khách hàng, địa chỉ, số điện thoại, tên vật tư, đơn vị tính, giá mua, giá bán, số lượng, trị giá mua, trị giá bán

12 Tạo bảng tổng hợp của quý 1 năm 2000 gồm các thông tin: Mã hóa đơn, ngày hóa đơn, tên khách hàng, địa chỉ, số điện thoại, tên vật tư, đơn vị tính, giá mua, giá bán, số lượng, trị giá mua, trị giá bán.\

13 Lấy ra danh sách các hóa đơn gồm các thông tin: Số hóa đơn, ngày, tên khách hàng, địa chỉ khách hàng, tổng trị giá hóa đơn

Ngày đăng: 21/10/2022, 23:09

HÌNH ẢNH LIÊN QUAN

2.5. Sửa đổi định nghĩa bảng Thời gian: 2 giờ - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
2.5. Sửa đổi định nghĩa bảng Thời gian: 2 giờ (Trang 8)
1.2.2 Tạo bảng mới - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
1.2.2 Tạo bảng mới (Trang 25)
1.2.2 Tạo bảng mới - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
1.2.2 Tạo bảng mới (Trang 25)
Bảng gồm các các cột. Mỗi cột gồm tên cột (Column Name), kiểu dữ liệu (Data Type) và một giá trị cho biết cột đó có thể chứa giá trị NULL hay không - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
Bảng g ồm các các cột. Mỗi cột gồm tên cột (Column Name), kiểu dữ liệu (Data Type) và một giá trị cho biết cột đó có thể chứa giá trị NULL hay không (Trang 26)
Click chuột phải lên bảng hay CSDL muốn xóa -> Delet e- >OK. Trong trường hợp xóa một CSDL, nên chọn dấu tích vào Close existing connections - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
lick chuột phải lên bảng hay CSDL muốn xóa -> Delet e- >OK. Trong trường hợp xóa một CSDL, nên chọn dấu tích vào Close existing connections (Trang 27)
1.2.3 Xóa bảng, xóa CSDL - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
1.2.3 Xóa bảng, xóa CSDL (Trang 27)
2. Tạo bảng và nhập dữ liệu cho bảng (mỗi bảng ít nhất 3 bộ dữ liệu) - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
2. Tạo bảng và nhập dữ liệu cho bảng (mỗi bảng ít nhất 3 bộ dữ liệu) (Trang 28)
2. Tạo bảng và nhập dữ liệu cho bảng như sau: - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
2. Tạo bảng và nhập dữ liệu cho bảng như sau: (Trang 28)
Bảng dưới đây liệt kê một số kiểu dữ liệu thông dụng được sử dụng trong SQL. Char(n) Kiểu chuỗi với độ dài cố định  - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
Bảng d ưới đây liệt kê một số kiểu dữ liệu thông dụng được sử dụng trong SQL. Char(n) Kiểu chuỗi với độ dài cố định (Trang 31)
3. Sử dụng câu lệnh INSERT INTO để thêm dữ liệu vào bảng: - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
3. Sử dụng câu lệnh INSERT INTO để thêm dữ liệu vào bảng: (Trang 43)
2. Tạo bảng và nhập dữ liệu cho bảng như sau: (kiểu dữ liệu sinh viên tự chọn cho phù hợp với các trường trong bảng)  - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
2. Tạo bảng và nhập dữ liệu cho bảng như sau: (kiểu dữ liệu sinh viên tự chọn cho phù hợp với các trường trong bảng) (Trang 45)
3. Thiết lập quan hệ giữa các bảng như sau: - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
3. Thiết lập quan hệ giữa các bảng như sau: (Trang 48)
Lưu ý: Nếu truy vấn được thực hiện trên nhiều bảng/khung nhìn và trong các - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
u ý: Nếu truy vấn được thực hiện trên nhiều bảng/khung nhìn và trong các (Trang 52)
Một đặc điểm nổi bật của SQL là cho phép biểu diễn phép nối trên nhiều bảng dữ liệu một cách rõ ràng - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
t đặc điểm nổi bật của SQL là cho phép biểu diễn phép nối trên nhiều bảng dữ liệu một cách rõ ràng (Trang 62)
3. Hàm CAST và CONVERT - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
3. Hàm CAST và CONVERT (Trang 73)
Lưu ý: Như đã nói ở trên, chuẩn SQL định nghĩa hai bảng logic INSERTED - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
u ý: Như đã nói ở trên, chuẩn SQL định nghĩa hai bảng logic INSERTED (Trang 88)
2. Tạo cấu trúc bảng và nhập dữ liệu như sau: - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
2. Tạo cấu trúc bảng và nhập dữ liệu như sau: (Trang 91)
- Tạo CSDL: Bảng, ràng buộc khóa chính, khóa ngoại, miền giá trị - Tạo View, Stored Procedure, Function, Trigger  - Tài liệu giảng dạy Quản trị cơ sở dữ liệu SQL server (Ngành/Nghề: Công nghệ thông tin – Trình độ Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Vinatex TP. HCM (2019)
o CSDL: Bảng, ràng buộc khóa chính, khóa ngoại, miền giá trị - Tạo View, Stored Procedure, Function, Trigger (Trang 92)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN