1. Trang chủ
  2. » Cao đẳng - Đại học

Giáo trình Hệ quản trị cơ sở dữ liệu (Nghề Lập trình máy tính)

82 10 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 đề Giáo Trình Hệ Quản Trị Cơ Sở Dữ Liệu
Tác giả Phạm Thị Thoa, Nguyễn Xuân Khôi, Đoàn Xuân Luận
Trường học Trường Cao Đẳng Cơ Giới Ninh Bình
Chuyên ngành Lập Trình Máy Tính
Thể loại Giáo Trình
Thành phố Ninh Bình
Định dạng
Số trang 82
Dung lượng 3,1 MB

Cấu trúc

  • Bài 1. Tổng quan về mô hình Client/Server (5)
    • 1. Các kiến thức tổng quan về cơ sở dữ liệu (5)
    • 2. Các giai đoạn phát triển của một hệ quản trị cơ sở dữ liệu (5)
    • 3. Giới thiệu về mô hình Client server và các hệ quản trị cơ sở dữ liệu phục vụ cho mô hình Client/Server (6)
    • 4. Các đặc trưng của mô hình Client/server (6)
  • Bài 2. Hệ quản trị cơ sở dữ liệu Microsoft SQL Server (8)
    • 1. Cài đặt MS SQL Server (8)
    • 2. Làm việc với Microsoft SQL Server Management Studio Express (24)
    • 1. Đăng nhập vào MS SQL Server (32)
    • 2. Tạo cơ sở dữ liệu trong MS SQL Server (34)
    • 3. Tạo bảng trong MS SQL Server (35)
    • 4. Tạo quan hệ trong MS SQL Server (37)
    • 5. Nhập dữ liệu trong SQL Server (39)
    • 6. Truy vấn SQL Server (43)
    • 1. Tạo thủ tục lưu trữ (45)
    • 2. Lời gọi thủ tục lưu trữ (48)
    • 3. Sử dụng biến trong thủ tục (49)
    • 4. Giá trị trả về của tham số trong thủ tục lưu trữ (50)
    • 5. Tham số với giá trị mặc định (50)
    • 7. Xóa thủ tục (52)
    • 1. Định nghĩa trigger (54)
    • 2. Sử dụng mệnh đề IF UPDATE trong trigger (56)
    • 3. ROLLBACK TRANSACTION và trigger (57)
    • 1. Định nghĩa và sử dụng hàm (63)
    • 2. Tạo hàm với giá trị trả về là “dữ liệu kiểu bảng” (64)
    • 1. Bảo mật cơ sở dữ liệu (66)
    • 2. Chuyển đổi cơ sở dữ liệu từ các nguồn cơ sở dữ liệu (69)
    • 3. Sao lưu dự phòng cơ sở dữ lịêu (75)
    • 4. Bảo trì cơ sở dữ liệu (79)

Nội dung

Tổng quan về mô hình Client/Server

Các kiến thức tổng quan về cơ sở dữ liệu

Mục tiêu: Hiểu rõ mô hình cơ sở dữ liệu Client/Server

- Một hệ CSDL (DB system) bao gồm một CSDL (Database) và một hệ quản trị CSDL (DBMS)

Cơ sở dữ liệu (CSDL) là tập hợp dữ liệu được tổ chức và lưu trữ một cách có cấu trúc chặt chẽ, phục vụ cho nhiều đối tượng sử dụng với các mục đích khác nhau.

- Hệ quản trị CSDL (Database Management System - DBMS) là một công cụ phần mềm tổng quát nhằm hỗ trợ việc lưu trữ, truy xuất và quản trị CSDL.

Nó cung cấp cho người dùng và ứng dụng một môi trường thuận tiện và sử dụng hiệu quả tài nguyên dữ liệu.

Kiến trúc của một hệ quản trị CSDL

Các giai đoạn phát triển của một hệ quản trị cơ sở dữ liệu

Mục tiêu: Trình bày được các giai đoạn phát triển của một hệ quản trị cơ sở dữ liệu.

Vào những năm 1975-1976, IBM đã giới thiệu hệ quản trị cơ sở dữ liệu quan hệ đầu tiên mang tên SYSTEM-R, sử dụng ngôn ngữ giao tiếp cơ sở dữ liệu SEQUEL (Structured English QUEry Language), một ngôn ngữ con dùng để thao tác với cơ sở dữ liệu.

Vào năm 1976, ngôn ngữ SEQUEL đã được nâng cấp thành SEQUEL2 Đến khoảng năm 1978-1979, SEQUEL2 tiếp tục được cải tiến và được đổi tên thành Ngôn ngữ truy vấn có cấu trúc (Structured Query Language - SQL) Cuối năm 1979, ngôn ngữ này đã được phát triển thêm và trở thành SYSTEM-R.

- Năm 1986 Viện Tiêu Chuẩn Quốc Gia Mỹ (American National Standards Institute - ANSI) đã công nhận và chuẩn hóa ngôn ngữ SQL, và sau đó

Tổ chức Tiêu chuẩn Thế giới (International Standards Organization - ISO) cũng đã công nhận ngôn ngữ này Đó là chuẩn SQL-86

- Tới nay SQL đã qua 3 lần chuẩn hóa lại (1989, 1992, 1996) để mở rộng các phép toán và tăng cường khả năng bảo mật và tính toàn vẹn dữ liệu

Ngôn ngữ CSDL được triển khai khác nhau tùy thuộc vào từng hệ quản trị cơ sở dữ liệu, nhưng đều phải tuân theo một tiêu chuẩn nhất định Hiện nay, hầu hết các ngôn ngữ truy vấn cơ sở dữ liệu đều dựa trên chuẩn SQL-92.

Giới thiệu về mô hình Client server và các hệ quản trị cơ sở dữ liệu phục vụ cho mô hình Client/Server

vụ cho mô hình Client/Server.

Mục tiêu: Trình bày được khái quát về mô hình Client/Server.

SQL là hệ quản trị cơ sở dữ liệu (CSDL) đa người dùng theo mô hình Client/Server, đóng vai trò quan trọng trong việc lưu trữ dữ liệu cho nhiều ứng dụng lớn hiện nay Mô hình Client/Server của SQL cho phép người dùng truy cập và điều khiển tất cả các chức năng mà hệ quản trị CSDL cung cấp.

• Truy xuất và thao tác dữ liệu

• Đảm bảo toàn vẹn dữ liệu

Các đặc trưng của mô hình Client/server

Mục tiêu: Trình bày được các đặc trưng của mô hình Client/Server.

Một ứng dụng kiểu Client/Server bao gồm 2 phần: Một phần chạy trên Server (máy chủ) và phần khác chạy trên các Workstations (máy trạm).

Mô hình Client/Server trên SQL Server

Phần Server (Máy chủ) là nơi lưu trữ các CSDL và cung cấp các chức năng quản lý, cho phép nhiều người dùng truy cập dữ liệu một cách đồng thời Việc truy xuất dữ liệu chỉ thông qua server không chỉ tiết kiệm mà còn đảm bảo tính nhất quán và bảo mật cao Hệ thống này còn có khả năng chịu lỗi, sao lưu dự phòng, giúp duy trì hoạt động ổn định và an toàn cho dữ liệu.

- Phần Client (Máy khách): Là các phần mềm chạy trên máy trạm cho phép người sử dụng giao tiếp CSDL trên Server

Hệ thống máy tính Client/Server có 5 mô hình kiến trúc dựa trên cấu hình phân tán về truy nhập dữ liệu, gồm:

- Mô hình CSDL tập trung (Centralized database model)

- Mô hình CSDL theo kiểu file - server (File - server database model)

- Mô hình xử lý từng phần CSDL (Database extract proceSQL Servering model)

- Mô hình CSDL Client/Server (Client/Server database model)

- Mô hình CSDL phân tán (Distributed database model)

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

Cài đặt MS SQL Server

- Trình bày lịch sử phát triển của hệ quản trị cơ sở dữ liệu MS SQL Server

- Cài đặt được phần mềm hệ quản trị cơ sở dữ liệu MS SQL Server

- Thực hiện các thao tác an toàn với máy tính

Lịch sử phát triển của hệ quản trị cơ sở MS SQL Server

Những năm 1975-1976, IBM lần đầu tiên đưa ra hệ quản trị CSDL kiểu quan hệ mang tên SYSTEM-R với ngôn ngữ giao tiếp CSDL là SEQUEL (Structured

English QUEry Language), đó một ngôn ngữ con để thao tác với CSDL Năm

1976 ngôn ngữ SEQUEL được cải tiến thành SEQUEL2 Khoảng năm 1978-

1979 SEQUEL2 được cải tiến và đổi tên thành Ngôn ngữ truy vấn có cấu trúc

(Structured Query Language - SQL) và cuối năm 1979 được cải tiến thành

Năm 1986, Viện Tiêu Chuẩn Quốc Gia Mỹ (ANSI) đã công nhận và chuẩn hóa ngôn ngữ SQL, tiếp theo là sự công nhận của Tổ chức Tiêu chuẩn Thế giới (ISO) Chuẩn SQL-86 ra đời đã đánh dấu bước ngoặt quan trọng Đến nay, SQL đã trải qua 3 lần chuẩn hóa vào các năm 1989, 1992 và 1996, nhằm mở rộng các phép toán, đồng thời nâng cao khả năng bảo mật và tính toàn vẹn dữ liệu.

Ngôn ngữ CSDL được cài đặt khác nhau tùy thuộc vào từng hệ quản trị, nhưng đều phải tuân theo một chuẩn nhất định Hiện nay, hầu hết các ngôn ngữ truy vấn CSDL đều dựa trên chuẩn SQL-92.

Giới thiệu hệ quản trị CSDL MS SQL Server

SQL, viết tắt của Structured Query Language, là ngôn ngữ truy vấn có cấu trúc dùng để tổ chức, quản lý và truy xuất dữ liệu trong các cơ sở dữ liệu (CSDL) Đây là một hệ thống ngôn ngữ với tập hợp các câu lệnh để tương tác với CSDL quan hệ, đóng vai trò quan trọng trong ngành công nghiệp máy tính Hiện nay, SQL được công nhận là ngôn ngữ chuẩn trong quản lý CSDL, với nhiều hệ quản trị CSDL quan hệ thương mại phổ biến như Oracle và SQL Server.

Informix, DB2 và nhiều hệ quản trị cơ sở dữ liệu khác đều sử dụng SQL làm ngôn ngữ chính SQL là một hệ quản trị cơ sở dữ liệu nhiều người dùng theo mô hình Client/Server, đóng vai trò quan trọng trong việc lưu trữ dữ liệu cho các ứng dụng lớn hiện nay Mô hình Client/Server trên SQL cho phép người dùng truy cập và điều khiển tất cả các chức năng mà hệ quản trị cơ sở dữ liệu cung cấp.

SQL cho phép định nghĩa cơ sở dữ liệu (CSDL), cấu trúc lưu trữ và tổ chức dữ liệu, đồng thời thiết lập mối quan hệ giữa các thành phần dữ liệu.

Người dùng có khả năng thực hiện các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu một cách dễ dàng trong các cơ sở dữ liệu (CSDL).

SQL cho phép cấp phát và kiểm soát quyền truy cập của người sử dụng đối với dữ liệu, từ đó đảm bảo an toàn cho cơ sở dữ liệu.

SQL định nghĩa các ràng buộc toàn vẹn trong cơ sở dữ liệu, giúp đảm bảo tính hợp lệ và chính xác của dữ liệu Điều này rất quan trọng trước khi thực hiện các thao tác cập nhật và phòng ngừa các lỗi hệ thống.

SQL Server sử dụng ngôn ngữ lập trình và truy vấn CSDL Transact-SQL (T-

T-SQL, một phiên bản của ngôn ngữ truy vấn có cấu trúc (SQL), cho phép người dùng truy xuất, cập nhật và quản lý dữ liệu trong hệ thống cơ sở dữ liệu quan hệ Mỗi máy chủ chỉ hỗ trợ một hệ quản trị cơ sở dữ liệu SQL Server duy nhất.

Giới thiệu về MS SQL Server 2005

SQL Server 2005 có nhiều phiên bản, trong đó phiên bản Express là bản miễn phí thấp nhất do Microsoft cung cấp Phiên bản này được thiết kế cho người dùng học tập và ứng dụng vào các dự án nhỏ, không yêu cầu tính năng cao, chỉ cần lưu trữ và xử lý dữ liệu đơn giản.

Yêu cầu về phần cứng và hệ điều hành sử dụng

• Hệ điều hành tối thiểu: Windows 2000 Service Pack 4; Windows Server

2003 Service Pack 1; Windows XP Service Pack 2

Để đảm bảo hiệu suất tối ưu cho máy tính, yêu cầu phần cứng tối thiểu bao gồm chip Pentium III 600 MHz trở lên, với cấu hình đề nghị là chip 1 GHz hoặc cao hơn Ngoài ra, máy cần có ít nhất 192 MB RAM, nhưng tốt nhất là 512 MB RAM để đáp ứng các tác vụ nặng Cuối cùng, ổ cứng cần có ít nhất 525 MB dung lượng trống để cài đặt và lưu trữ dữ liệu.

Nhấn vào file WindowsInstaller-KB893803-v2-x86.exe

Bước 2: Cài Framework 2.0File cài: dotnetfx.exe

Máy sẽ khởi động lại

Sau đó tiếp tục bước 3

Bước 3: Cài Microsoft SQL Server 2005

Nhấn vào file SQLEXPR.EXE

Trên màn hình tiếp theo, đánh dấu vào mục: "I accept the licensing terms and conditions", nhấn Next

Trên màn hình tiếp theo, nhấn Install

Trên màn hình tiếp theo, bỏ dấu check mở mục "Hide advanced configuration options", nhấn Next.

Nhấn Next trên màn hình tiếp theo

Khai báo Instance name, chọn Default Instance (Server Name sẽ trùng với tên máy)

Nhấn Next trên cửa sổ tiếp theo

Trên cửa sổ tiếp theo, chọn chế độ chứng thực user

• Windows Authentication Mode: Sử dụng chứng thực của Windows

• Mixed Mode: Kết hợp cả chứng thực của Windows và chứng thực của SQL Server Ở đây có thể để mặc định: "Windows Authentication Mode"

Click Install để bắt đầu cài đặt

Quá trình cài đặt có thể mất 5 -> 10 phút

Khi màn hình báo cài đặt thành công như hình dưới, click Next

Bước 4: Cài Microsoft SQL Server Management Studio Express: File cài đặt SQLServer2005_SSMSEE.msi

Click chọn "I accept the terms in the license agreement", nhấn Next

Gõ tên người dùng, đơn vị sử dụng, sau đó nhấn Next

Màn hình tiếp theo, nhấn Next

Click Install Đợi trong vài phút

Làm việc với Microsoft SQL Server Management Studio Express

- Sử dụng được các công cụ hổ trợ của hệ quản trị cơ sở dữ liệu MS SQL Server

- Cấu hình được hệ thống quản trị cơ sở dữ liệu trên Server nội bộ.

- Thực hiện các thao tác an toàn với máy tính

2.1 Tạo CSDL trong SQL Server

Cửa sổ giao diện của Microsoft SQL Server Management Studio Express

+ Vào Start\ Microsoft SQL Server Management Studio Express

+ Điền các thông tin\ NhấnConnect

- Chuột phải vào Database\ Chọn New Database

- Gõ tên cơ sở dữ liệu vào mục Database name\OK

Các thành phần chính của Server

+ Database: gồm toàn bộ cơ sở dữ liệu của máy

Hiển thị nội dung của đối tượng đang được chọn trong của sổ Object Expolrer

Sai hỏng thường gặp, nguyên nhân và biện pháp phòng tránh/ khắc phục

- Nguyên nhân: Tên cơ sở dữ liêu đã tồn tại.

Sửa lại tên cơ sở dữ liệu.

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

CHAR (n) Kiểu chuỗi với độ dài cố định

NCHAR (n) Kiếu chuỗi với độ dài cố định hỗ trợ UNICODE VARCHAR (n) Kiểu chuỗi với độ dài chính xác

NVARCHAR (n) Kiểu chuỗi với độ dài chính xác hỗ trợ UNICODE INTEGER Số nguyên có giá trị từ -2 31 đến 2 31 -1

TINYTINT Số nguyên có giá trị từ 0 đến 255.

SMALLINT Số nguyên có giá trị từ -2 15 đến 2 15 -1

BIGINT Số nguyên có giá trị từ -2 63 đến 2 63 -1

NUMERIC (p,s) Kiểu số với độ chính xác cố định.

DECIMAL (p,s) Tương tự kiểu Numeric

FLOAT Số thực có giá trị từ -1.79E+308 đến 1.79E+308

REAL Số thực có giá trị từ -3.40E + 38 đến 3.40E + 38

BIT Kiểu bit (có giá trị 0 hoặc 1)

DATETIME Kiểu ngày giờ (chính xác đến phần trăm của giây)

SMALLDATETIME Kiểu ngày giờ (chính xác đến phút)

Dữ liệu nhị phân có thể được lưu trữ dưới nhiều dạng khác nhau trong cơ sở dữ liệu BINARY cho phép lưu trữ dữ liệu nhị phân với độ dài cố định tối đa 8000 bytes, trong khi VARBINARY cung cấp dữ liệu nhị phân với độ dài chính xác cũng tối đa 8000 bytes Ngoài ra, kiểu IMAGE cũng cho phép lưu trữ dữ liệu nhị phân nhưng không giới hạn độ dài.

TEXT Dữ liệu kiếu chuỗi với độ dài lớn

NTEXT Dữ liệu kiếu chuỗi với độ dài lớn và hỗ trợ UNICODE

- Mở cửa sổ new Table: dbo.Table_1

Chọn Database\Chuột phải vào Table\New Table

- Điền thông tin cho các cột của bảng:

+ Gõ tên cột vào Column Name

+ Chọn kiểu dữ liệu tương ứng của mỗi cột trong Data Type

Tích vào ô Allow Nulls: Cho phép giá trị rỗng (null)

Không tích là không cho phép giá trị rỗng

+ Nhấn vào biểu tượng Set Primary Key trên thanh Table Designer

Nhấn vào biểu tượng Save Table trên thanh công cụ chuẩn (Standard)

2.3 Tạo mối quan hệ trong MS SQL Server

Mối quan hệ giữa các bảng

- Quan hệ 1-1: Một thực thể của kiểu A có liên kết với một thực thể của kiểu B và ngược lại.

Trong mối quan hệ 1-n, một thực thể thuộc kiểu A có thể liên kết với nhiều thực thể thuộc kiểu B Tuy nhiên, mỗi thực thể của kiểu B chỉ có một liên kết duy nhất với một thực thể của kiểu A.

Trong mối quan hệ giữa các bảng, bảng có chìa khóa dẫn tới sẽ giữ khóa chính, trong khi bảng ngược lại sẽ nắm giữ khóa ngoại.

- Chuột phải vào Database Diagrams\Chọn New Database Diagram

- Chọn bảng\Nhấn Add để cho các bảng vào biểu đồ

Nhấn Close đóng của sổ Add Table

- Kéo và thả thuộc tính khoá chính vào thuộc tính khoá ngoại tạo mối quan hệ giữ các bảng.

- Ghi lại lược đồ quan hệ: Nhấn vào Save\Gõ tên lược đồ\ OK

Sai hỏng thường gặp, nguyên nhân và biện pháp phòng tránh/ khắc phục

Sai hỏng thường gặp Nguyên nhân Bện pháp phòng tránh/ khắc phục

Không tạo được kết nối giữa hai bảng

- Kiểu dữ kiệu không giống nhau

Sửa đổi kiểu dữ liệu cho giống nhau

- Chưa thiết lập khoá chính

2.4 Nhập dữ liệu trong MS SQL Server

- Chuột phải vào tên bảng\ Chọn Open Table

Sai hỏng thường gặp, nguyên nhân và biện pháp phòng tránh/ khắc phục

Sai hỏng thường gặp Nguyên nhân Bện pháp phòng tránh/ khắc phục

Không nhập được dữ liệu makhoa chưa tồn tại ở bảng Khoa

Sửa lại makhoa chop khớp với bảng Khoa

Bài 3 Các thao tác cơ bản trên SQL Server

- Sử dụng được phần mềm quản trị cơ sở dữ liệu MS SQL Server

- Thiết kế được các bảng dữ liệu với các kiểu dữ liệu phù hợp

- Phân biệt các mối quan hệ 1-1, 1-n, n-n và thiết lập được quan hệ cho các bảng.

- Thực hiện được các truy vấn Select, Insert, Update và Delete của ngôn ngữ SQL - Server trong công cụ Query Analyzer.

- Thực hiện các thao tác an toàn với máy tính

Đăng nhập vào MS SQL Server

Mục tiêu: Trình bày được các bước đăng nhập vào MS SQL Server

Hộp thoại Connect to Sever

- Server type: kiểu máy chủ

- Server name: tên máy chủ

Sever name=Computer name+ “\SQLexpress”

- Authentication: Đặc quyền truy nhập bao gồm

- Nếu chọn truy nhập bằng quyền SQL thì ta phải điền:

User name: Tên truy nhập

- Vào Start\SQL Server Management Studio Express

- Điền thông tin vào cửa sổ Connect Server

Chọn quyền truy nhập Window

Sai hỏng thường gặp, nguyên nhân và biện pháp phòng tránh/ khắc phục

- Nguyên nhân: Tên máy bị sai

- Biện pháp khắc phục: Điền đúng tên máy

Tạo cơ sở dữ liệu trong MS SQL Server

- Trình bày được cú pháp tạo Database;

- Mở cở sổ soạn thảo lệnh

Chuột phải vào tên cơ sở dữ liệu/ Chọn New Query

- Viết lệnh create database QlSinhvien

Sai hỏng thường gặp, nguyên nhân và biện pháp phòng tránh/ khắc phục

Sai hỏng thường gặp Nguyên nhân Bện pháp phòng tránh/ khắc phục

Database 'qlsinhvien' already exists Choose a different database name.

Tên database đã tồn tại Đặt tên database khác

Tạo bảng trong MS SQL Server

- Trình bày được cú pháp tạo bảng;

- Tạo được bảng theo yêu cầu.

Cú pháp lệnh tạo bảng

- Not null: thuộc tính không lấy giá trị rỗng Lưu ý thuộc tính khoá mặc nhiên bị ràng buộc not null

- Primary key( khoá chính>): khai báo khoá chính của bảng

- Unique ( khoá ): khai báo các khoá chỉ định khác (nếu có)

- Foreign key( khoá ngoại>) …: khai báo khoá ngoại của bảng

- Check điều kiện ràng buộc>: mô tả các ràng buộc miền giá trị

Ví dụ: Lệnh tạo bảng Khoa create table tblKhoa

( makhoa char(3) not null primary key, tenkhoa nvarchar(30) not null, dienthoa varchar(12)

( mamonhoc char(5) not null primary key, tenmonhoc nvarchar(40) not null, sodvht int not null

- Mở cở sổ soạn thảo lệnh

Chuột phải vào tên cơ sở dữ liệu/ Chọn New Query

- Viết lệnh create table Khoa

( makhoa char(3) not null primary key, tenkhoa nvarchar(30) not null, dienthoa varchar(12)

( mamonhoc char(5) not null primary key, tenmonhoc nvarchar(40) not null, sodvht int not null

The database table includes essential fields such as 'malop' as the primary key, which is a non-null character with a length of 5 It also features 'tenlop', a non-null NVARCHAR field limited to 30 characters, and 'khoa', a non-null character field of 4 Additional attributes include 'hedaotao', a 30-character NVARCHAR field, 'namnhaphoc', an integer indicating the enrollment year, 'siso', an integer representing the class size, and 'makhoa', a non-null character field of 3.

The database schema includes a primary key named 'masv' of type CHAR(10) that cannot be null It also features a 'hodem' field, which is a non-null NVARCHAR(20), and a 'ten' field of NVARCHAR(10) that is also non-null The 'ngaysinh' field captures the date of birth as a non-null DATETIME, while 'gioitinh' is a non-null BIT indicating gender Additionally, the 'noisinh' field records the place of birth as NVARCHAR(40) and the 'malop' field is a non-null VARCHAR(5) representing the class code.

Sai hỏng thường gặp, nguyên nhân và biện pháp phòng tránh/ khắc phục

Sai hỏng thường gặp Nguyên nhân Bện pháp phòng tránh/ khắc phục

There is already an object named

Tên bảng đã tồn tại Sửa tên bảng

Viết sai cú pháp Sửa thành not null

Tạo quan hệ trong MS SQL Server

- Trình bày được cú pháp tạo ràng buộc toàn vẹn trong SQL;

- Tạo được ràng buộc toàn vẹn giữa các bảng trong 1 cơ sở dữ liệu.

Cú pháp tạo ràng buộc

Foreign key (khoá ngoại) references tên_bảng(khóa chính)

To establish a foreign key constraint between the tblLop array and the tblKhoa table using the makhoa field, you can execute the following SQL command: "ALTER TABLE Lop ADD CONSTRAINT fk_Lop_Khoa FOREIGN KEY (makhoa) REFERENCES Khoa(makhoa)."

- Mở cở sổ soạn thảo lệnh

Chuột phải vào tên cơ sở dữ liệu/ Chọn New Query

To establish foreign key relationships in a database, execute the following SQL commands: first, use `ALTER TABLE tblLop ADD CONSTRAINT fk_tblLop_tblKhoa FOREIGN KEY (makhoa) REFERENCES tblKhoa(makhoa);` to link the `tblLop` table to the `tblKhoa` table through the `makhoa` column Next, implement `ALTER TABLE Sinhvien ADD CONSTRAINT fk_Sinhvien_Lop FOREIGN KEY (malop) REFERENCES Lop(malop);` to connect the `Sinhvien` table to the `Lop` table via the `malop` column.

Sai hỏng thường gặp, nguyên nhân và biện pháp phòng tránh/ khắc phục

Sai hỏng thường gặp Nguyên nhân Bện pháp phòng tránh/ khắc phục

Column 'Lop.malop' is not the same data type as referencing column

'Sinhvien.malop' in foreign key

Could not create constraint See previous errors.

Cột malop ở bảng Lop không cùng kiểu với cột malop ở bảng Sinhvien

Sửa lại kiểu dữ liệu của cột malop trong bảngSinhvien cho cùng kiểu với cột malop trong bảngLop

'fk_Sinhvien_Lop' references invalid table 'Lop'.

Could not create constraint See previous errors.

Cột malop ở bảng Lop co cùng kiểu nhưng không cùng kích thước với cột malop ở bảng Sinhvien

Sửa lại kích thước kiểu dữ liệu của cột malop trong bảng Sinhvien cho cùng kích thước kiểu với cột malop trong bảng Lop

There are no primary or candidate keys in the referenced table

'tblLop1' that match the referencing column list in the foreign key

Cột malop của bảng tblLop1 chưa được thiết lập là khoá chính

Thiết lập cột malop của bảng tblLop1 thành khoá chính

Nhập dữ liệu trong SQL Server

- Trình bày được cú pháp các lệnh: Insert, Update, Delete;

- Thực hiện thêm, sửa, xóa dữ liệu

- Cú pháp lệnh thêm 1 bảng ghi vào bảng:

Insert into ([tên_cột1,tên_cột2, …])

Values(giá_trị1, giá_trị2, …)

Trong đó các giá trị phải tương ứng với các cột.

Nếu không có danh sách các cột thì máy sẽ tự hiểu danh sách các cột ứng với thứ tự các cột trong bảng

Nếu có cột nào của bảng không được khai thì giá trị của bộ mới được thêm vào ứng với cột đó sẽ được đặt bằng Null

+ Thêm bản ghi cho bảng Khoa insert into Khoa values('K01','Khoa học cơ bản','0303678898') hoặc insert into Khoa(makhoa,tenkhoa,dienthoa) values('K02','Sư phạm','0303678999')

+ Thêm bản ghi vào bảng Lop

Lop(malop,tenlop,khoa,hedaotao,namnhaphoc,siso,makhoa) values('L01',N'CĐN Lập trình máy tính 1','K45',N'Cao đẳng nghề','2014','40','K01')

Lưu ý: Nếu muốn nhập tiếng việt có dấu thì chúng ta thêm kí tự N vào trước chuỗi

Ví dụ: N'CĐN Lập trình máy tính 1'

- Mở cở sổ soạn thảo lệnh

Chuột phải vào tên cơ sở dữ liệu/ Chọn New Query

- Viết lệnh insert into Khoa values('K01','Khoa học cơ bản','0303678898') insert into Khoa(makhoa,tenkhoa,dienthoa) values('K02','Sư phạm','0303678999')

Lop(malop,tenlop,khoa,hedaotao,namnhaphoc,siso,makhoa) values('L01',N'CĐN Lập trình máy tính 1','K45',N'Cao đẳng nghề','2014','40','K01')

Sai hỏng thường gặp, nguyên nhân và biện pháp phòng tránh/ khắc phục

Sai hỏng thường gặp Nguyên nhân Bện pháp phòng tránh/ khắc phục

'namnhanhoc' Bảng không có cột namnhanhoc

Sửa lại cho đúng tên cột

String or binary data would be truncated.

The statement has been terminated.

Giá trị nhập vào bị vượt quá kích thước của cột tương ứng trong bảng

Sửa lại giá trị nhập vào

Cú pháp lệnh sửa dữ liệu:

Set = [,=][,…] Where

Trong câu lệnh cập nhật, giá_trị1, giá_trị2,… là các giá trị mới dùng để thay thế cho giá trị cũ Điều_kiện là tiêu chí xác định các bản ghi sẽ được cập nhật Nếu không chỉ định điều kiện, tất cả các bản ghi trong bảng sẽ được cập nhật.

Sửa tên lớp của lớp có mã lớp là K01 thành CĐN LTMT1 update Lop set tenlop=N'CĐN LTMT1' where malop='L01'

- Mở cở sổ soạn thảo lệnh

Chuột phải vào tên cơ sở dữ liệu/ Chọn New Query

- Viết lệnh update Lop set tenlop=N'CĐN LTMT1' where malop='L01'

Sai hỏng thường gặp, nguyên nhân và biện pháp phòng tránh/ khắc phục

Sai hỏng thường gặp Nguyên nhân Bện pháp phòng tránh/ khắc phục

Invalid column name 'tlop' Không có cột tên lớp Sửa lại chgo đúng tên cột

Cú pháp lệnh xoá dữ liệu trong bảng:

Trong đó: điều_kiện giới hạn những bản ghi xoá

Nếu không có điều kiện thì tất cả các bản ghi sẽ bị xoá.

Xoá lóp có mã L02 delete from Lop where malop='L02'

- Mở cở sổ soạn thảo lệnh

Chuột phải vào tên cơ sở dữ liệu/ Chọn New Query

- Viết lệnh delete from Lop where malop='L02'

Sai hỏng thường gặp, nguyên nhân và biện pháp phòng tránh/ khắc phục

Sai hỏng thường gặp Nguyên nhân Bện pháp phòng tránh/ khắc phục

'Lop1' Bảng Lop1 không tồn tại Sửa lại tên bảng cho đúng

Truy vấn SQL Server

- Trình bày được cú pháp lệnh truy vấn dữ liệu;

- Thực hiện được truy vấn dữ liệu theo yêu cầu.

Câu lệnh SELECT là công cụ chủ yếu để truy xuất dữ liệu từ các bảng và khung nhìn trong cơ sở dữ liệu Nó cho phép thực hiện các phép chọn, chiếu và nối, giúp người dùng lấy được các dòng và cột mong muốn từ một hay nhiều bảng Với SELECT, bạn có thể dễ dàng truy xuất một tập con dữ liệu cần thiết cho các phân tích và báo cáo.

Cú pháp câu lệnh Select:

SELECT [ALL | DISTINCT][TOP n] danh_sách_cột_chọn [INTO tên_bảng_mới]

FROM danh_sách_bảng/khung_nhìn

[GROUP BY danh_sách_cột]

[ORDER BY cột_sắp_xếp]

[COMPUTE danh_sách_hàm_gộp [BY danh_sách_cột]]

+ SELECT: lựa chọn những cột nào

ALL: tất cả các bản ghi sẽ được lấy

DISTICNT: chỉ lấy các bản ghi không trùng nhau

TOP n: Lấy n bản ghi đầu

+ FROM dùng để chỉ định dữ liệu sẽ được lấy ra từ những bảng nào, và các bảng đó quan hệ với nhau như thế nào.

+ WHERE điều kiện để liên kết các bảng hoặc điều kiện để lấy những thuộc tính từ bảng from.

GROUP BY được sử dụng để nhóm các bản ghi có giá trị liên quan, tạo thành các phần tử trong một tập hợp nhỏ hơn các bản ghi.

+ HAVING dùng để xác định những bản ghi nào, là kết quả từ từ khóa GROUP

BY, sẽ được lấy ra.

+ ORDER BY dùng để xác định dữ liệu lấy ra sẽ được sắp xếp theo những cột nào.

Hiển thị danh sách sinh viên lớp Tin K24, thông tin hiển thị gồm: Mã sinh viên, họ đệm, tên, giới tính, Ngày sinh, nơi sinh

- Mở cở sổ soạn lệnh

Select MASV,HODEM,TEN,GIOITINH,NGAYSINH, NOISINH

Where SINHVIEN.MALOP=LOP.MALOP and TENLOP= ‘Tin K24’ Oder By TEN, HODEM

-Thực thi lệnh: Chọn lệnh và nhấn F5

Sai hỏng thường gặp, nguyên nhân và biện pháp phòng tránh/ khắc phục

Sai hỏng thường gặp Nguyên nhân Bện pháp phòng tránh/ khắc phục

Bài 4 Tạo thủ tục lưu trữ

- Định nghĩa được thủ tục lưu trữ với các kiểu tham số.

- Sửa đổi được thủ tục đã định nghĩa.

- Xóa được các thủ tục.

- Rèn luyện tính nghiêm túc, tỉ mỉ

Tạo thủ tục lưu trữ

- Trình bày được cú pháp định nghĩa thủ tục;

- Trình bày được các bước tạo thủ tục;

- Tạo được thủ tục theo yêu cầu;

- Rèn luyện tính nghiêm túc, tỉ mỉ, chính xác.

Một thủ tục là một đối tượng trong cơ sở dữ liệu, bao gồm một tập hợp các câu lệnh SQL được nhóm lại, cho phép thực hiện nhiều tác vụ khác nhau một cách hiệu quả.

• Các cấu trúc điều khiển (IF, WHILE, FOR) có thể được sử dụng trong thủ tục.

Trong thủ tục lưu trữ, người dùng có thể sử dụng các biến tương tự như trong ngôn ngữ lập trình để lưu trữ các giá trị đã được tính toán và các giá trị truy xuất từ cơ sở dữ liệu.

Một thủ tục lưu trữ trong SQL là một tập hợp các câu lệnh SQL được kết hợp thành một khối lệnh Thủ tục này có khả năng nhận tham số đầu vào và trả về giá trị thông qua các tham số, tương tự như trong các ngôn ngữ lập trình Sau khi được định nghĩa, thủ tục có thể được gọi bằng tên của nó, nhận tham số, thực thi các câu lệnh SQL bên trong và trả về giá trị sau khi hoàn tất.

Sử dụng các thủ tục lưu trữ trong cơ sở dữ liệu sẽ giúp tăng hiệu năng của cơ sở dữ liệu, mang lại các lợi ích sau:

• Đơn giản hoá các thao tác trên cơ sở dữ liệu nhờ vào khả năng module hoá các thao tác này.

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

Thủ tục lưu trữ giúp tối ưu hóa quy trình thực hiện yêu cầu bằng cách sử dụng một câu lệnh đơn giản thay vì nhiều dòng lệnh SQL, từ đó giảm thiểu lưu lượng truy cập trên mạng.

Thay vì cấp quyền trực tiếp cho người dùng trên các câu lệnh SQL và đối tượng cơ sở dữ liệu, việc cấp quyền thông qua các thủ tục lưu trữ giúp tăng cường bảo mật cho hệ thống.

Thủ tục bao gồm 2 loại: Thủ tục hệ thống và thủ tuc do người dung tạo ra.

Cú pháp tạo thủ tục

CREATE PROCEDURE tên_thủ_tục

Các_câu_lệnh_của_thủ_tục

Để tạo thủ tục, bạn cần cung cấp tên thủ tục theo quy tắc định danh, với độ dài tối đa không vượt quá 128 ký tự Ngoài ra, cần xác định danh sách tham số liên quan.

Các tham số của thủ tục được định nghĩa ngay sau tên thủ tục, và nếu có nhiều tham số, chúng sẽ được phân cách bằng dấu phẩy Mỗi tham số cần có ít nhất hai phần khai báo.

• tên tham số được bắt đầu bởi dấu @.

• kiểu dữ liệu của tham số

Khi khai báo tham số nếu muốn là tham số trả lại giá trị thì ta sẽ thêm từ khoá OUTPUT vào sau khi khai báo tham số đó

Ví dụ: @tongsl float OUTPUT các câu lệnh của thủ tục Tập hợp các câu lệnh này có thể được đặt trong cặp từ khóa BEGIN END hoặc không.

- Mở cở sổ soạn thảo lệnh

Chuột phải vào tên cơ sở dữ liệu/ Chọn New Query

- Viết thủ tục create procedure Them_Khoa

) as begin if exists (select * from Khoa where makhoa=@makhoa) raiserror('Mã khoa đã tồn tại') else

Begin if@makhoa='' or @tenkhoa='' raiserror('Bạn chưa nhập đầy đủ thông tin') else

Insert into Khoa(makhoa,tenkhoa,dienthoai) values(@makhoa,@tenkhoa,@dienthoai) end end

- Thực thi tạo thủ tục: Nhấn F5

Lời gọi thủ tục lưu trữ

- Trình bày được cú pháp gọi thủ tục;

- Trình bày được các bước gọi thủ tục;

- Sử dụng được thủ tục đã tạo;

- Rèn luyện tính nghiêm túc, tỉ mỉ, chính xác.

Cú pháp lệnh gọi thủ tục tên_thủ_tục [danh_sách_các_đối_số]

Số lượng các đối số cũng như thứ tự của chúng phải phù hợp với số lượng và thứ tự của các tham số khi định nghĩa thủ tục

Khi thực hiện lời gọi thủ tục trong một thủ tục khác, trong trigger hoặc kết hợp với các câu lệnh SQL khác, cần sử dụng cú pháp phù hợp để đảm bảo tính chính xác và hiệu quả.

EXECUTE tên_thủ_tục [danh_sách_các_đối_số]

Thứ tự của các đối số khi truyền cho thủ tục không nhất thiết phải theo thứ tự của các tham số trong định nghĩa thủ tục, miễn là tất cả các đối số được chỉ định rõ ràng.

@tên_tham_số = giá_trịb

- Mở cửa sổ soản thảo lệnh

Chuột phải vào tên cơ sở dữ liệu/ Chọn New Query

Exec Them_Khoa ‘K01’, ‘Khoa học cơ bản’, ‘0303567890’

Sử dụng biến trong thủ tục

- Trình bày được cú pháp khai báo biến;;

- Tạo được thủ tục theo yêu cầu;

- Rèn luyện tính nghiêm túc, tỉ mỉ, chính xác.

Cú pháp khai báo biến

DECLARE @tên_biến kiểu_dữ_liệu

Tên biến phải bắt đầu bởi ký tự @ và tuân theo qui tắc về định danh

- Mở cửa sổ soạn thảo lệnh

- Viết lệnh tạo thủ tục

FROM lop WHERE malop=@malop1

FROM lop WHERE malop=@malop2

PRINT @tenlop1+' nhap hoc nam '+str(@namnhaphoc1) print @tenlop2+' nhap hoc nam '+str(@namnhaphoc2)

PRINT 'Hai lớp nhập học cùng năm'

PRINT 'Hai lớp nhập học khác năm'

Giá trị trả về của tham số trong thủ tục lưu trữ

- Trình bày được cú pháp khai báo tham số trả về giá trị trong thủ tục;

- Tạo được thủ tục theo yêu cầu;

- Rèn luyện tính nghiêm túc, tỉ mỉ, chính xác.

Để giữ lại giá trị của đối số sau khi kết thúc thủ tục, cần khai báo tham số của thủ tục theo cú pháp cụ thể.

@tên_tham_số kiểu_dữ_liệu OUTPUT hoặc:

Trong lời gọi thủ tục, khi sử dụng tham số kiểu dữ liệu OUT, cần chỉ định thêm từ khóa OUTPUT (hoặc OUT) sau đối số được truyền cho thủ tục để đảm bảo rằng kết quả được trả về đúng cách.

- Mở cửa sổ soạn lệnh

EXECUTE sp_Conghaiso 100,200,@tong OUTPUT

Tham số với giá trị mặc định

- Trình bày được cú pháp khai báo tham số với giá trị mặc định cho thủ tục;

- Tạo được thủ tục theo yêu cầu;

- Rèn luyện tính nghiêm túc, tỉ mỉ, chính xác.

Các tham số trong thủ tục có thể có giá trị mặc định, và những giá trị này sẽ được sử dụng khi không có đối số nào được truyền vào trong quá trình gọi thủ tục.

Tham số với giá trị mặc định được khai báo theo cú pháp như sau:

@tên_tham_số kiểu_dữ_liệu = giá_trị_mặc_định

- Mở cửa sổ soạn thảo lệnh

@tenlop NVARCHAR(30)=NULL, @noisinh NVARCHAR(100)='Huế')

FROM sinhvien INNER JOIN lop

ON sinhvien.malop=lop.malop

FROM sinhvien INNER JOIN lop

ON sinhvien.malop=lop.malop

WHERE noisinh=@noisinh AND tenlop=@tenlop

- Thực thi tạo thủ tục: Nhấn F5

• Cho biết họ tên của các sinh viên sinh tại Huế: sp_testdefault

• Cho biết họ tên của các sinh viên lớp Tin K24 sinh tại Huế: sp_testdefault @tenlop='Tin K24'

• Cho biết họ tên của các sinh viên sinh tại Nghệ An: sp_testDefault @noisinh=N'Nghệ An'

• Cho biết họ tên của các sinh viên lớp Tin K26 sinh tại Đà Nẵng: sp_testdefault @tenlop='Tin K26',@noisinh='Đà Nẵng'

- Trình bày được cú pháp sửa thủ tục;

- Trình bày được các bước sửa thủ tục;

- Sửa được thủ tục theo yêu cầu;

- Rèn luyện tính nghiêm túc, tỉ mỉ, chính xác.

Khi một thủ tục đã được tạo ra, ta có thể tiến hành định nghĩa lại thủ tục đó bằng câu lệnh ALTER PROCEDURE có cú pháp như sau:

ALTER PROCEDURE tên_thủ_tục [(danh_sách_tham_số)] [WITH RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION]

Các_câu_lệnh_Của_thủ_tục

- Mở cửa sổ soạn thảo lệnh

- Viết lệnh sửa thủ tục

@tenlop NVARCHAR(30), @noisinh NVARCHAR(100)='Huế')

FROM sinhvien INNER JOIN lop

ON sinhvien.malop=lop.malop

WHERE noisinh=@noisinh AND tenlop=@tenlop

- Thực thi sửa thủ tục: Nhấn F5

Xóa thủ tục

- Trình bày được cú pháp xóa thủ tục;

- Trình bày được các bước xóa thủ tục;

- Xóa được thủ tục theo yêu cầu;

- Rèn luyện tính nghiêm túc, tỉ mỉ, chính xác. Để xoá một thủ tục đã có, ta sử dụng câu lệnh DROP PROCEDURE với cú pháp như sau:

DROP PROCEDURE tên_thủ_tục

- Mở cửa sổ viết lệnh

- Viết lệnh xoá thủ tục sp_TestDefault DROP PROCEDURE sp_TestDefault

- Áp dụng được mệnh đề IF UPDATE trong Trigger để đảm bảo tính toàn vẹn dữ liệu cho các thao tác INSERT, UPDATE, DELETE

- Thực hiện đựợc các biện pháp an toàn cho máy tính

Định nghĩa trigger

- Trình bày được khái quát về trigger;

- Trình bày được cú pháp tạo trigger;

- Tạo được trigger theo yêu cầu;

- Thực hiện đựợc các biện pháp an toàn cho máy tính.

Trigger là một đối tượng chứa một tập các câu lệnh SQL và tập các câu lệnh này sẽ được thực thi khi trigger được gọi.

Thủ tục lưu trữ và trigger có sự khác biệt quan trọng: thủ tục lưu trữ chỉ được thực thi khi người dùng gọi đến chúng, trong khi trigger tự động được kích hoạt khi có các giao tác thay đổi dữ liệu trong các bảng.

Mỗi trigger trong cơ sở dữ liệu được liên kết với một bảng cụ thể và sẽ tự động kích hoạt khi có sự thay đổi dữ liệu trong bảng đó, bao gồm các thao tác INSERT, UPDATE hoặc DELETE.

• Một trigger có thể nhận biết, ngăn chặn và huỷ bỏ được những thao tác làm thay đổi trái phép dữ liệu trong cơ sở dữ liệu

Các thao tác trên dữ liệu như xóa, cập nhật và bổ sung có thể được phát hiện thông qua trigger, cho phép tự động thực hiện nhiều thao tác khác trên cơ sở dữ liệu, từ đó đảm bảo tính hợp lệ của dữ liệu.

Thông qua trigger, chúng ta có khả năng tạo và kiểm tra các mối quan hệ phức tạp giữa các bảng trong cơ sở dữ liệu, điều mà các ràng buộc thông thường không thể thực hiện được.

- Định nghĩa một trigger bao gồm các yếu tố sau:

• Trigger sẽ được áp dụng đối với bảng nào?

• Trigger được kích hoạt khi câu lệnh nào được thực thi trên bảng: INSERT, UPDATE, DELETE?

• Trigger sẽ làm gì khi được kích hoạt?

- Cú pháp lệnh tạo trigger

AS 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 Cấu trúc của chúng tương tự như cấu trúc của bảng mà trigger tác động Dữ liệu trong các bảng này phụ thuộc vào câu lệnh kích hoạt trigger, cụ thể trong các trường hợp khác nhau.

Khi câu lệnh DELETE được thực hiện trên bảng, các dòng dữ liệu bị xoá sẽ được lưu trữ trong bảng DELETED, trong khi bảng INSERTED sẽ không chứa dữ liệu nào.

Dữ liệu trong bảng INSERTED chứa các dòng dữ liệu mới được thêm vào bảng, kích hoạt trigger thông qua câu lệnh INSERT, trong khi bảng DELETED không có dữ liệu trong trường hợp này.

Khi câu lệnh UPDATE được thực hiện trên bảng, các dòng dữ liệu cũ sẽ được sao chép vào bảng DELETED, trong khi bảng INSERTED sẽ lưu trữ các dòng dữ liệu đã được cập nhật.

Giả sử ta có các bảng sau:

Bảng MATHANG lưu trữ dữ liệu về các mặt hàng:

( mahang NVARCHAR(5) PRIMARY KEY, /*mã hàng*/ tenhang NVARCHAR(50) NOT NULL, /*tên hàng*/ soluong INT, /*số lượng hàng hiện có*/

Bảng NHATKYBANHANG lưu trữ thông tin về các lần bán hàng

The article outlines a database schema for a sales transaction table, which includes an identity primary key (stt) and a datetime field (ngay) to record the date of the sale It features a customer name field (nguoimua) with a maximum length of 30 characters, a product code field (mahang) limited to 5 characters that references the product table, and an integer field (soluong) for the quantity sold Additionally, it includes a monetary field (giaban) to capture the selling price of the items sold.

Tạo Trigger trg_nhatkybanhang_insert Trigger này có chức năng tự động giảm số lượng hàng hiện có khi một mặt hàng nào đó được bán.

- Mở cửa sổ soạn thảo lệnh

CREATE TRIGGER trg_nhatkybanhang_insert

SET mathang.soluong=mathang.soluong- inserted.soluong FROM mathang INNER JOIN inserted

ON mathang.mahang=inserted.mahang

- Viết lệnh thêm 1 bản ghi vào bảng nhật ký bán hàng

(ngay,nguoimua,mahang,soluong,giaban)

Sử dụng mệnh đề IF UPDATE trong trigger

- Trình bày được cú pháp sử dụng mệnh đề IF UPDATE trong trigger;

- Tạo được trigger theo yêu cầu;

- Thực hiện đựợc các biện pháp an toàn cho máy tính.

Thay vì chỉ định một trigger cho toàn bộ bảng, chúng ta có thể sử dụng mệnh đề IF UPDATE để kích hoạt trigger khi có sự thay đổi dữ liệu chỉ liên quan đến một số cột cụ thể Điều này cho phép thực hiện các thao tác cụ thể dựa trên những cột đã được cập nhật.

- IF UPDATE không sử dụng được đối với câu lệnh DELETE

[AND UPDATE(tên_cột)|OR UPDATE(tên_cột)] ] các_câu_lệnh_của_trigger

- Trigger chỉ được gọi khi update đúng cột có trong IF UPDATE

Mệnh đề IF UPDATE có thể xuất hiện nhiều lần trong thân của trigger, và khi trigger được kích hoạt, chỉ những mệnh đề IF UPDATE đúng sẽ thực thi câu lệnh tương ứng.

- Mở cửa sổ soạn thảo lệnh

CREATE TRIGGER trg_nhatkybanhang_update_soluong

SET mathang.soluong = mathang.soluong –

FROM (deleted INNER JOIN inserted ON deleted.stt = inserted.stt) INNER JOIN mathang

ON mathang.mahang = deleted.mahang

ROLLBACK TRANSACTION và trigger

- Trình bày được ý nghĩa của lệnh ROLLBACK TRANSACTION trong trigger;

- Sử dụng được lệnh ROLLBACK TRANSACTION trong trigger;

- Thực hiện đảm bảo an toàn cho người và máy tính.

Một trigger có khả năng nhận diện sự thay đổi dữ liệu trên bảng, giúp phát hiện và hủy bỏ các thao tác không đảm bảo tính toàn vẹn của dữ liệu Để hủy bỏ tác động của câu lệnh kích hoạt trigger, ta sử dụng câu lệnh phù hợp trong trigger.

Tạo Trigger cho bảng NHATKYBANHANG khi thực hiện câu lệnh INSERT để thêm bản ghi mới Trigger này kiểm tra điều kiện dữ liệu, yêu cầu số lượng hàng bán ra phải nhỏ hơn hoặc bằng số lượng hàng có sẵn Nếu điều kiện không được thoả mãn, thao tác thêm dữ liệu sẽ bị huỷ bỏ.

- Mở cửa sổ soạn thảo lệnh

CREATE TRIGGER trg_nhatkybanhang_insert

The code snippet initializes two integer variables, `@sl_co` to represent the current stock quantity and `@sl_ban` for the quantity of items sold It also declares a variable `@mahang` to store the product code of the sold item The subsequent SELECT statement assigns values to `@mahang` and `@sl_ban` from the corresponding fields in the database.

FROM mathang where mahang=@mahang

/*Nếu số lượng hàng hiện có nhỏ hơn số lượng bán thì huỷ bỏ thao tác bổ sung dữ liệu */

IF @sl_co

Ngày đăng: 26/12/2021, 17:22

TỪ KHÓA LIÊN QUAN

w