Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
1,4 MB
Nội dung
TRƯỜNG CAO ĐẲNG CƠ ĐIỆN HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN GIÁO TRÌNH QUẢN TRỊ SQL SERVER (Tài liệu lưu hành nội bộ) Hà Nội, 2018 MỤC LỤC Bài Tổng quan hệ quản trị Cơ sở liệu Giới thiệu hệ quản trị sở liệu Cài đặt hệ quản trị CSDL MS SQL Server Đăng nhập vào MS SQL Server 13 Các công cụ MS SQL Server 15 Các kiểu liệu MS SQL Server 17 Bài Định nghĩa liệu MS SQL Server 19 Tạo, sử dụng, xóa sở liệu 19 Tạo bảng liệu 19 Tạo loại ràng buộc liệu 20 3.1 Tạo ràng buộc khóa Primary key 20 3.3 Tạo ràng buộc Default 25 3.4 Tạo ràng buộc Unique 26 3.5 Tạo ràng buộc Check 27 Sửa, xóa bảng liệu 29 Bài 3: Thao tác liệu MS SQL Server 34 Thêm dòng liệu 34 Cập nhật liệu 35 Xóa dịng liệu 38 Truy xuất liệu 39 4.1 Lấy thông tin từ cột bảng mệnh đề SELECT 39 4.2 Chọn dòng bảng mệnh đề WHERE 47 4.3 Truy vấn thông tin từ nhiều bảng 51 4.4 Phân nhóm liệu mệnh đề GROUP BY 63 4.5 Lọc nhóm kết truy vấn mệnh đề HAVING 66 4.6 Sắp xếp kết truy vấn mệnh đề ORDER BY 67 4.7 Truy vấn lồng 68 Bài 4: Khung nhìn (View) 72 Tạo khung nhìn 73 Cập nhật, bổ sung xóa liệu thơng qua khung nhìn 76 Sửa, xóa khung nhìn 79 Bài 5: Thủ tục lưu trữ (Stored Procedure) 81 Tạo, gọi thủ tục lưu trữ 82 Khai báo tham số, biến thủ tục 84 Khai báo sử dụng biến thủ tục 84 Sử dụng cấu trúc điều khiển thủ tục 85 4.1 Sử dụng cấu trúc If…Else… 85 4.2 Sử dụng cấu trúc While 86 4.3 Sử dụng cấu trúc Case 87 Sửa, xóa thủ tục lưu trữ 88 5.1 Sửa thủ tục lưu trữ 88 5.2 Xóa thủ tục lưu trữ 89 Bài Tổng quan hệ quản trị Cơ sở liệu Giới thiệu hệ quản trị sở liệu Hệ quản trị sở liệu (Database Management System – DBMS): Là tập hợp chương trình dùng để quản lý cấu trúc liệu sở liệu đồng thời điều khiển việc truy xuất liệu sở liệu Cung cấp cho người dùng ứng dụng môi trường thuận tiện sử dụng hiệu tài nguyên liệu Ví dụ: Một số hệ quản trị CSDL thường gặp: MS Access MS SQL Server MySQL Oracle Microsoft SQL Server: Là hệ quản trị sở liệu Microsoft phát triển Hoạt động theo mơ hình Client/Server cho phép đồng thời lúc nhiều người dùng truy xuất đến sở liệu SQL, viết tắt Structured Query Language (ngôn ngữ hỏi có cấu trúc), cơng cụ sử dụng để tổ chức, quản lý truy xuất liệu đuợc lưu trữ sở liệu SQL hệ thống ngôn ngữ bao gồm tập câu lệnh sử dụng để tương tác với sở liệu quan hệ Tên gọi ngơn ngữ hỏi có cấu trúc phần làm liên tưởng đến công cụ (ngôn ngữ) dùng để truy xuất liệu sở liệu Thực mà nói, khả SQL vượt xa so với công cụ truy xuất liệu, mục đích ban đầu SQL xây dựng nên truy xuất liệu chức quan trọng SQL sử dụng để điều khiển tất chức mà hệ quản trị sở liệu cung cấp cho người dùng bao gồm: Định nghĩa liệu: SQL cung cấp khả định nghĩa sở liệu, cấu trúc lưu trữ tổ chức liệu mối quan hệ thành phần liệu Truy xuất thao tác liệu: Với SQL, người dùng dễ dàng thực thao tác truy xuất, bổ sung, cập nhật loại bỏ liệu sở liệu Điều khiển truy cập: SQL sử dụng để cấp phát kiểm soát thao tác người sử dụng liệu, đảm bảo an toàn cho sở liệu Đảm bảo toàn vẹn liệu: SQL định nghĩa ràng buộc toàn vẹn sở liệu nhờ đảm bảo tính hợp lệ xác liệu trước thao tác cập nhật lỗi hệ thống Như vậy, nói SQL ngơn ngữ hồn thiện sử dụng hệ thống sở liệu thành phần thiếu hệ quản trị sở liệu Mặc dù SQL ngơn ngữ lập trình C, C++, Java, song câu lệnh mà SQL cung cấp nhúng vào ngơn ngữ lập trình nhằm xây dựng ứng dụng tương tác với sở liệu Khác với ngôn ngữ lập trình quen thuộc C, C++, Java, SQL ngơn ngữ có tính khai báo Với SQL, người dùng cần mô tả yêu cầu cần phải thực sở liệu mà không cần phải cách thức thực yêu cầu Chính vậy, SQL ngơn ngữ dễ tiếp cận dễ sử dụng SQL Server sử dụng ngơn ngữ lập trình truy vấn CSDL Transact-SQL (T-SQL), phiên Structured Query Language Ngôn ngữ lập trình truy vấn T-SQL cho phép truy xuất liệu, cập nhật quản lý hệ thống CSDL quan hệ Mỗi máy chủ có hệ quản trị CSDL SQL Server Cài đặt hệ quản trị CSDL MS SQL Server - Bước : Tại hình cài đặt SQL Server 2008 bạn chọn mục Installation sau chọn New SQL Server stand-alone installation or add features to an existing installation - Bước : Tại hình Setup Support Rules chọn OK - Bước : Tại hình "Product Key", chọn Next để tiếp tục - Bước : Tại hình License Term, đánh dấu chọn nút "I accept the licence terms", chọn "Next" - Bước : Tại hình "setup support files" nhấn nút "install" để tiếp tục - Bước : hình "Setup Support Rules", thứ sn sẽ, nhấn nút "Next" để tiếp tục - Bước : Trên hình "features selection", nút "Sellect All" để chọn tất cả, sau nhấn nút "Next" - Bước : hình "instance Configuratio", có lựa chọn : chọn hình dưới, nhấn nút Next để tiếp tục - Bước : Chọn Next để tiếp tục - Bước 10 : Chọn "Account Name" chọn NT AUTHORITY\NETWORK hình sau đây, sau nhấn Next để tiếp tục 10 Bài Định nghĩa liệu MS SQL Server Tạo, sử dụng, xóa sở liệu 1.1 Tạo Cơ sở liệu Cú pháp: CREATE DATABASE Ví dụ: CREATE DATABASE QuanLyDiem 1.2 Sử dụng Cơ sở liệu Cú pháp: USE Ví dụ: USE QuanLyDiem 1.3 Xóa Cơ sở liệu Cú pháp: DROP DATABASE Ví dụ: DROP DATABASE QuanLyDiem Tạo bảng liệu Cú pháp tạo bảng: CREATE TABLE Tên_bảng ( Tên_cột_1 Kiểu_dữ_liệu_của_cột NULL/NOT NULL, Tên_cột_2 Kiểu_dữ_liệu_của_cột NULL/NOT NULL, Tên_cột_n Kiểu_dữ_liệu_của_cột NULL/NOT NULL ) Trong đó: 19 Tên_bảng: Tên bảng cần tạo Quy tắc định danh: xâu ký tự bất kỳ, không chứa ký tự đặc biệt Tên_cột_1, Tên_cột_2, , Tên_cột_n: Tên cột cần định nghĩa Tuân theo quy tắc định danh Trong bảng tên cột Thứ tự cột không quan trọng Kiểu_dữ_liệu_của_cột: Đây thuộc tính bắt buộc phải có cột Các kiểu liệu sử dụng giới thiệu NULL/NOT NULL: Cột có chấp nhận giá trị NULL hay khơng? Mặc định khơng khai báo SQL Server gán cho cột giá trị NULL Giá trị NULL: Những giá trị không xác định biểu diễn CSDL quan hệ giá trị NULL Đây giá trị đặc biệt không nên nhầm lẫn với chuỗi rỗng (đối với liệu kiểu chuỗi) hay giá trị không (đối với giá trị kiểu số) Giá trị NULL đóng vai trị quan trọng CSDL hầu hết hệ quản trị CSDL quan hệ hỗ trợ việc sử dụng giá trị Ví dụ: Tạo bảng Sinh viên: Create table SinhVien ( MaSV nvarchar(10) NOT NULL , TenSV nvarchar(50) NOT NULL , GioiTinh bit NOT NULL , NgaySinh datetime NULL ) Tạo loại ràng buộc liệu 3.1 Tạo ràng buộc khóa Primary key Ràng buộc PRIMARY KEY sử dụng để định nghĩa khố bảng Khố bảng một tập nhiều cột mà giá trị chúng bảng Hay nói cách khác, giá trị khố giúp cho ta xác định dòng (bản ghi) bảng liệu Mỗi 20 bảng có khố thân khố khơng chấp nhận giá trị NULL Ràng buộc PRIMARY KEY sở cho việc đảm bảo tính tồn vẹn thực thể toàn vẹn tham chiếu Để khai báo ràng buộc PRIMARY KEY, ta sử dụng cú pháp sau: [CONSTRAINT tên_ràng_buộc] PRIMARY KEY [(danh_sách_cột)] Nếu khố bảng bao gồm cột ràng buộc PRIMARY KEY định mức cột, ta không cần thiết phải định danh sách cột sau từ khoá PRIMARY KEY Tuy nhiên, việc khai báo khố tiến hành mức bảng (sử dụng số lượng cột tham gia vào khoá từ hai trở lên) bắt buộc phải định danh sách cột sau từ khóa PRIMARY KEY tên cột phân cách dấu phẩy Ví dụ: Câu lệnh định nghĩa bảng SINHVIEN với khoá MASV CREATE TABLE sinhvien ( Masv NVARCHAR(10) CONSTRAINT pk_sinhvien_masv PRIMARY KEY, hodem NVARCHAR(25) NOT NULL , ten NVARCHAR(10) NOT NULL , ngaysinh DATETIME, gioitinh BIT, noisinh NVARCHAR(255), malop NVARCHAR(10) ) Với bảng vừa tạo câu lệnh trên, ta thực câu lệnh: INSERT INTO sinhvien(masv,hodem,ten,gioitinh,malop) VALUES('0261010001','Lê Hoàng Phương','Anh',0,'C26101') ghi bổ sung vào bảng Nhưng ta thực tiếp câu lệnh: INSERT INTO sinhvien(masv,hodem,ten,gioitinh,malop) VALUES('0261010001','Lê Huy','Đan',1,'C26101') 21 câu lệnh bị lỗi trùng giá trị khố với ghi có Ví dụ: Câu lệnh tạo bảng DIEMTHI với khố tập bao gồm hai cột MAMONHOC MASV CREATE TABLE diemthi ( Mamonhoc NVARCHAR(10) NOT NULL , masv NVARCHAR(10) NOT NULL , diemlan1 NUMERIC(4, 2), diemlan2 NUMERIC(4, 2), CONSTRAINT pk_diemthi PRIMARY KEY(mamonhoc,masv) ) Lưu ý: Mỗi bảng có nhiều ràng buộc PRIMARY Một khố bao gồm nhiều cột khơng vượt 16 KEY cột 3.2 Tạo ràng buộc khóa ngoại Foreign key Các bảng sở liệu có mối quan hệ với Những mối quan hệ biểu diễn cho quan hệ đối tượng giới thực Về mặt liệu, mối quan hệ đảm bảo thông qua việc địi hỏi có mặt giá trị liệu bảng phải phụ thuộc vào tồn giá trị liệu bảng khác Ràng buộc FOREIGN KEY sử dụng định nghĩa bảng liệu nhằm tạo nên mối quan hệ bảng sở liệu Một hay tập cột bảng gọi khố ngoại, tức có ràng buộc FOREIGN KEY, giá trị xác định từ khố (PRIMARY KEY) khố phụ (UNIQUE) bảng liệu khác Hình cho ta thấy mối quan hệ bảng DIEMTHI, SINHVIEN MONHOC Trong bảng DIEMTHI, MASV khố ngồi tham 22 chiếu đến cột MASV bảng SINHVIEN MAMONHOC khố ngồi tham chiếu đến cột MAMONHOC bảng MONHOC Với mối quan hệ tạo hình trên, hệ quản trị sở liệu kiểm tra tính hợp lệ ghi bảng DIEMTHI bổ sung hay cập nhật Một ghi bảng DIEMTHI hợp lệ (đảm bảo ràng buộc FOREIGN KEY) giá trị cột MASV phải tồn ghi bảng SINHVIEN giá trị cột MAMONHOC phải tồn ghi bảng MONHOC Ràng buộc FOREIGN KEY định nghĩa theo cú pháp đây: [CONSTRAINT tên_ràng_buộc] FOREIGN KEY [(danh_sách_cột)] REFERENCES tên_bảng_tham_chiếu(danh_sách_cột_tham_chiếu) [ON DELETE CASCADE | NO ACTION | SET NULL | SET DEFAULT] [ON UPDATE CASCADE | NO ACTION | SET NULL | SET 23 DEFAULT] Việc định nghĩa ràng buộc FOREIGN KEY bao gồm yếu tố sau: Tên cột danh sách cột bảng định nghĩa tham gia vào khố ngồi Tên bảng tham chiếu khố ngồi danh sách cột tham chiếu đến bảng tham chiếu Cách thức xử lý ghi bảng định nghĩa trường hợp ghi tham chiếu bảng tham chiếu bị xoá (ON DELETE) hay cập nhật (ON UPDATE) SQL chuẩn đưa cách xử lý: CASCADE: Tự động xoá (cập nhật) ghi tham chiếu bị xoá (cập nhật) NO ACTION: (Mặc định) Nếu ghi bảng tham chiếu tham chiếu ghi bảng định nghĩa bàn ghi khơng phép xố cập nhật (đối với cột tham chiếu) SET NULL: Cập nhật lại khố ngồi ghi thành giá trị NULL (nếu cột cho phép nhận giá trị NULL) SET DEFAULT: Cập nhật lại khố ngồi ghi nhận giá trị mặc định (nếu cột có qui định giá trị mặc định) Ví dụ: Câu lệnh định nghĩa bảng DIEMTHI với hai khố ngồi cột MASV cột MAMONHOC (giả sử hai bảng SINHVIEN MONHOC định nghĩa) CREATE TABLE diemthi ( mamonhoc NVARCHAR(10) NOT NULL , masv NVARCHAR(10) NOT NULL , diemlan1 NUMERIC(4, 2), diemlan2 NUMERIC(4, 2), CONSTRAINT pk_diemthi PRIMARY KEY(mamonhoc,masv), CONSTRAINT fk_diemthi_mamonhoc FOREIGN KEY(mamonhoc) 24 REFERENCES monhoc(mamonhoc) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT fk_diemthi_masv FOREIGN KEY(masv) REFERENCES sinhvien(masv) ON DELETE CASCADE ON UPDATE CASCADE ) Lưu ý: Cột tham chiếu bảng tham chiếu phải khố (hoặc khố phụ) Cột tham chiếu phải có kiểu liệu độ dài với cột tương ứng khóa ngồi Bảng tham chiếu phải định nghĩa trước Do đó, bảng có mối quan hệ vịng, ta định nghĩa ràng buộc FOREIGN KEY câu lệnh CREATE TABLE mà phải định nghĩa thông qua lệnh ALTER 3.3 Tạo ràng buộc Default Câu lệnh định nghĩa bảng NHANVIEN với trường MANV (mã nhân viên), HOTEN (họ tên), NGAYSINH (ngày sinh nhân viên), DIENTHOAI (điện thoại) HSLUONG (hệ số lương) CREATE TABLE nhanvien ( manv NVARCHAR(10) NOT NULL, hoten NVARCHAR(50) NOT NULL, ngaysinh DATETIME NULL dienthoai NVARCHAR(10) NULL, hsluong DECIMAL(3,2) DEFAULT (1.92) ) Trong câu lệnh trên, trường MANV HOTEN bảng NHANVIEN 25 không NULL (tức bắt buộc phải có liệu), trường NGAYSINH DIENTHOAI nhận giá trị NULL ta không nhập liệu cho chúng trường HSLUONG nhận giá trị mặc định 1.92 không nhập liệu Nếu ta thực câu lệnh sau thực câu lệnh để bổ sung liệu cho bảng NHANVIEN INSERT INTO nhanvien VALUES('NV01','Le Van A','2/4/75','886963',2.14) INSERT INTO nhanvien(manv,hoten) VALUES('NV02','Mai Thi B') INSERT INTO nhanvien(manv,hoten,dienthoai) VALUES('NV03','Tran Thi C','849290') Ta có liệu bảng NHANVIEN sau: 3.4 Tạo ràng buộc Unique Trên bảng có nhiều khóa có nhiều cột tập cột có tính chất khố chính, tức giá trị chúng bảng Tập nhiều cột có giá trị khơng chọn làm khố gọi khố phụ (khoá dự tuyển) bảng Như vậy, bảng có nhiều khố có nhiều khoá phụ Ràng buộc UNIQUE sử dụng câu lệnh CREATE TABLE để định nghĩa khoá phụ cho bảng khai báo theo cú pháp sau đây: [CONSTRAINT tên_ràng_buộc] UNIQUE [(danh_sách_cột)] Ví dụ: Giả sử ta cần định nghĩa bảng LOP với khố cột MALOP đồng thời lại không cho phép lớp khác trùng tên lớp với nhau, ta sử dụng câu lệnh sau: CREATE TABLE lop ( malop NVARCHAR(10) NOT NULL, 26 tenlop NVARCHAR(30) NOT NULL, khoa SMALLINT NULL, hedaotao NVARCHAR(25) NULL, namnhaphoc INT makhoa NVARCHAR(5), CONSTRAINT pk_lop PRIMARY KEY (malop), CONSTRAINT unique_lop_tenlop UNIQUE(tenlop) ) 3.5 Tạo ràng buộc Check Ràng buộc CHECK sử dụng nhằm định điều kiện hợp lệ liệu Mỗi có thay đổi liệu bảng (INSERT, UPDATE), ràng buộc sử dụng nhằm kiểm tra xem liệu có hợp lệ hay khơng Ràng buộc CHECK khai báo theo cú pháp sau: [CONSTRAINT tên_ràng_buộc] CHECK (điều_kiện) Trong đó, điều_kiện biểu thức logic tác động lên cột nhằm qui định giá trị khuôn dạng liệu cho phép Trên bảng cột có nhiều ràng buộc CHECK Ví dụ: Câu lệnh tạo bảng DIEMTOTNGHIEP qui định giá trị cột DIEMVAN DIEMTOAN phải lớn nhỏ 10 CREATE TABLE diemtotnghiep ( hoten NVARCHAR(30) NOT NULL, ngaysinh DATETIME, diemvan DECIMAL(4,2) CONSTRAINT chk_diemvan CHECK(diemvan>=0 AND diemvan=0 AND diemtoan