Giáo trình Quản trị Cơ sở dữ liệu SQL Đại học Kinh doanh và Công nghệ Hà Nội

Tài liệu Giáo trình Quản trị Cơ sở dữ liệu SQL Đại học Kinh doanh và Công nghệ. Cung cấp kiến thức toàn diện từ DDL, DML đến Stored Procedure.

Chuyên ngành

Quản trị CSDL SQL

Người đăng

Ẩn danh

Thể loại

Giáo trình
108
0
0

Phí lưu trữ

35 Point

Tóm tắt

I. Giới thiệu về SQL Server 2005 và các Phiên bản

SQL Server 2005 là một hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) mạnh mẽ, được tối ưu để hoạt động trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte. Nó sử dụng Transact-SQL (T-SQL) để trao đổi dữ liệu giữa Client computer và SQL Server computer. SQL Server 2005 có khả năng phục vụ đồng thời cho hàng ngàn user và kết hợp hoàn hảo với các server khác như Microsoft Internet Information Server (IIS), E-Commerce Server và Proxy Server. Hệ thống này bao gồm databases, database engine và các ứng dụng quản lý dữ liệu chuyên nghiệp. Hiểu rõ về SQL Server 2005 là nền tảng quan trọng để học quản trị cơ sở dữ liệu.

1.1. Các Phiên bản SQL Server 2005

SQL Server 2005 cung cấp bốn phiên bản chính để đáp ứng nhu cầu khác nhau. Phiên bản Enterprise hỗ trợ không giới hạn CPU và kích thước database, kèm hỗ trợ 64bit. Phiên bản Standard tương tự nhưng chỉ hỗ trợ 4 CPU. Phiên bản Workgroup giới hạn 2 CPU và 3GB RAM. Phiên bản Express là bản miễn phí, hỗ trợ 1 CPU, 1GB RAM và database giới hạn 4GB, rất phù hợp cho học tập.

1.2. Tính năng và Ưu điểm của SQL Server 2005

SQL Server 2005 nổi bật với khả năng xử lý dữ liệu lớn và tính ổn định cao. Hệ thống này cung cấp các công cụ quản lý dữ liệu toàn diện, bao gồm tools sao lưu, phục hồi dữ liệu, và bảo mật. Nó tích hợp các tính năng tiên tiến như stored procedures, triggers, viewsuser-defined functions giúp tối ưu hiệu suất ứng dụng. Khả năng tương thích với nhiều ngôn ngữ lập trình làm cho SQL Server 2005 trở thành lựa chọn lý tưởng cho các doanh nghiệp.

II. Cài đặt và Cấu hình SQL Server 2005 Express Edition

Cài đặt SQL Server 2005 Express Edition là bước đầu tiên trong hành trình học quản trị cơ sở dữ liệu. Bản Express được thiết kế dành cho những người mới bắt đầu, nhà phát triển và các doanh nghiệp nhỏ. Quá trình cài đặt tương đối đơn giản nhưng cần đảm bảo yêu cầu hệ thống được thỏa mãn. Trước khi cài đặt, bạn cần kiểm tra các yêu cầu về processor, RAM, hệ điều hành và các phần mềm hỗ trợ. Sau khi cài đặt thành công, bạn sẽ có thể thực hiện các thao tác cơ bản như tạo database, tạo bảng và viết các câu lệnh SQL.

2.1. Yêu cầu Hệ thống cho cài đặt 32 bit

Để cài đặt SQL Server 2005 Express Edition trên hệ thống 32-bit, bạn cần Processor PIII 600MHz hoặc cao hơn (tối ưu là 1GHz trở lên). Bộ nhớ RAM tối thiểu là 192MB, nhưng khuyến nghị 256MB hoặc hơn để hoạt động mượt mà. Hệ điều hành hỗ trợ bao gồm Windows XP SP2, Windows 2000 Server SP4, Windows Server 2003 và các phiên bản Windows mới hơn. Bạn cũng cần cài đặt Microsoft .NET Framework 2.0 trước khi cài SQL Server.

2.2. Các Bước Cài đặt SQL Server 2005 Express Edition

Quá trình cài đặt SQL Server 2005 Express Edition bắt đầu bằng việc tải file cài đặt từ trang chủ Microsoft. Chạy file installer và làm theo hướng dẫn trên màn hình. Chọn loại cài đặt (Default, Named Instance hoặc Local) phù hợp với nhu cầu của bạn. Cấu hình Authentication Mode (Windows Authentication hoặc Mixed Mode). Sau khi cài đặt hoàn tất, khởi động SQL Server Management Studio hoặc SQL Server Management Studio Express để kết nối và kiểm tra cài đặt.

III. Các Thao tác Cơ bản trên SQL Server 2005

Sau khi cài đặt thành công SQL Server 2005 Express Edition, bạn cần nắm vững các thao tác cơ bản. Những thao tác này bao gồm tạo database mới, tạo bảng (table) và viết các câu lệnh SQL trong query editor. Hiểu rõ các thao tác cơ bản là chìa khóa để thành thạo quản trị cơ sở dữ liệu. Bạn sẽ học cách khởi tạo cấu trúc dữ liệu, định nghĩa các cột (columns) với kiểu dữ liệu phù hợp, và tạo các ràng buộc (constraints) để đảm bảo tính toàn vẹn dữ liệu. SQL Server 2005 cung cấp giao diện trực quan giúp bạn thực hiện các tác vụ này một cách hiệu quả.

3.1. Tạo Database mới

Tạo database mới trên SQL Server 2005 rất đơn giản. Mở SQL Server Management Studio, kết nối đến SQL Server instance, sau đó nhấp chuột phải vào thư mục Databases và chọn New Database. Nhập tên database và cấu hình các thuộc tính như kích thước tệp, vị trí lưu trữ trên ổ cứng. Bạn có thể sử dụng giao diện đồ họa hoặc viết câu lệnh SQL: CREATE DATABASE [TenDatabase]. Sau khi tạo thành công, database mới sẽ xuất hiện trong danh sách.

3.2. Tạo Bảng và Query Editor

Tạo bảng (table) là bước quan trọng trong thiết kế cơ sở dữ liệu. Chọn database vừa tạo, nhấp phải trên thư mục Tables và chọn New Table. Định nghĩa các cột (columns), kiểu dữ liệu và ràng buộc. Query Editor cho phép bạn viết các câu lệnh SQL trực tiếp. Mở Query Editor bằng cách chọn File > New > Query with Current Connection, sau đó viết SQL commands như SELECT, INSERT, UPDATE, DELETE.

IV. Cơ bản về Structured Query Language SQL và T SQL

Structured Query Language (SQL) là ngôn ngữ tiêu chuẩn để giao tiếp với các hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS). Transact-SQL (T-SQL) là phiên bản SQL đặc biệt của Microsoft SQL Server 2005, cung cấp các tính năng mở rộng và tối ưu hóa. SQL chia thành ba loại lệnh chính: DDL (Data Definition Language), DML (Data Manipulation Language)DCL (Data Control Language). Nắm vững SQL và T-SQL là điều cần thiết để thực hiện các thao tác quản lý dữ liệu. Hiểu biết về cú pháp, kiểu dữ liệu, và các thành phần điều khiển giúp bạn viết các câu lệnh hiệu quả và tối ưu.

4.1. DDL DML và DCL trong T SQL

DDL (Data Definition Language) dùng để định nghĩa cấu trúc dữ liệu: CREATE, ALTER, DROP. DML (Data Manipulation Language) dùng để thao tác dữ liệu: SELECT, INSERT, UPDATE, DELETE. DCL (Data Control Language) dùng để kiểm soát quyền truy cập: GRANT, REVOKE. Mỗi loại lệnh có vai trò riêng trong quản lý cơ sở dữ liệu. Hiểu rõ sự khác biệt giúp bạn sử dụng đúng lệnh cho từng mục đích quản lý dữ liệu.

4.2. Kiểu dữ liệu và Thành phần Điều khiển

T-SQL hỗ trợ nhiều kiểu dữ liệu khác nhau: INT, VARCHAR, DATETIME, FLOAT, BOOLEAN, v.v. Chọn kiểu dữ liệu phù hợp là quan trọng để đảm bảo hiệu suất. Thành phần điều khiển (Control Flow) bao gồm IF...ELSE, WHILE, BEGIN...END giúp tạo logic phức tạp. Chú thích (Comments) sử dụng -- hoặc /* */ giúp mã rõ ràng. Giá trị NULL đại diện cho dữ liệu không xác định, cần xử lý cẩn thận.

21/12/2025

Trích đoạn nội dung tài liệu

Chương 1. create table Nhanvien ( manv int primary key, tennv nvarchar(50) not null, diachi nvarchar(50) not null ) Để chạy câu lệnh SQL trên, mở một Query Editor, copy câu lệnh vào Query Editor, bôi đen toàn bộ câu lệnh và bấm F5. Tiếp theo, dùng lệnh alter để thay đổi cấu trúc bảng Nhanvien.Cụ thể là một thêm một cột mới có tên ghichu vào bảng Nhanvien. alter table Nhanvien add ghichu nvarchar(50) not null Cuối cùng, dùng lệnh drop để xóa hoàn toàn bảng Nhanvien ra khỏi CSDL, nghĩa là toàn bộ định nghĩa bảng và các dữ liệu bên trong đều bị xóa.

drop table Nhanvien Lưu ý: Lệnh drop khác với lệnh delete. Lệnh delete chỉ xóa các dòng dữ liệu có trong bảng 2.2 Ngôn ngữ điều khiển dữ liệu (Data control language – DCL) Đây là các lệnh quản lý quyền truy cập lên các object (table, view, storedprocedure…). Bao gồm: Grant Deny Revoke 22 Ví dụ: Lệnh grant sẽ cấp quyền Select trên bảng Nhanvien trong CSDL Test cho các Users thuộc Role public grant select on nhanvien to public Sau khi thực hiên lệnh này, có Users trong Role public có thể thực hiện câu lệnh Select trên bảng Nhanvien trong CSDL Test. Dùng lệnh deny để từ chối quyền select trên bảng Nhanvien trong CSDL Test của các Users thuộc Role public deny select on nhanvien to public Sau khi thực hiện lệnh này, có Users trong Role public sẽ không thể thực hiện câu lệnh Select trên bảng Nhanvien trong CSDL Test.

Dùng lệnh revoke để xóa bỏ các quyền được cấp hay từ chối trươc đó. revoke select on nhanvien to public Sau khi thực hiện lệnh này, các quyền được gán hay từ chối của Users trong Role public trên bảng Nhanvien trong CSDL Test sẽ được “xóa” hoàn toàn.3 Ngôn ngữ thao tác dữ liệu (Data manipulation language – DML) Đây là các lệnh phổ biến dùng để xử lý dữ liệu. Bao gồm: Select Insert Update Delete Ví dụ: Câu lệnh sau sẽ lọc ra các nhân viên có tên bắt đầu bằng chữ A trong bảng Nhanvien. select * from Nhanvien as nv where nv.tennv like 'A%' Dấu * hàm ý là lựa chọn tất cả các cột của bảng Nhanvien.

Toán tử like và ký tự đại diện sẽ được nói trong phần sau. Câu lệnh sau sẽ thêm dữ liệu về một nhân viên mới vào trong bảng Nhanvien. 23 insert into Nhanvien values(1, N'Nguyễn Văn An', N'22 Nguyễn Thiện Thuật') Câu lệnh sau sẽ cập nhật lai địa chỉ của nhân viên có manv là 1 update Nhanvien set diachi = N'22 Nguyễn Thị Minh Khai' where manv = 1 Câu lệnh sau sẽ xóa thông tin của nhân viên có manv là 1 trong bảng Nhanvien delete Nhanvien where manv = 1 2.4 Cú pháp của T-SQL Các đối tượng trong cơ sở dữ liệu dựa trên SQL (table, view, index, storedprocedure…) được xác định thông qua tên của đối tượng (hay còn gọi là identifier). Tên của các đối tượng là duy nhất trong mỗi cơ sở dữ liệu.

Tên được sử dụng nhiều nhất trong các truy vấn SQL và được xem là nền tảng trong cơ sở dữ liệu quan hệ là tên bảng và tên cột. Có hai loại Identifiers một loại thông thường (Regular Identifier) và một loại gọi là Delimited Identifier, loại này cần có dấu "" hay dấu [] để ngăn cách. Loại Delimited được dùng đối với các chữ trùng với từ khóa của SQL Server (reserved keyword) hay các chữ có khoảng trống. Ví dụ: Select * From “My table” Where [sum] = 10 Trong các cơ sở dữ liệu lớn với nhiều người sử dụng, khi ta chỉ định tên của một bảng nào đó trong câu lệnh SQL, hệ quản trị cơ sở dữ liệu hiểu đó là tên của bảng do ta sở hữu (tức là bảng do ta tạo ra).

Thông thường, trong các hệ quản trị cơ sở dữ liệu này cho phép những người dùng khác nhau tạo ra những bảng trùng tên với nhau mà không gây ra xung đột về tên. Nếu trong một câu lệnh SQL ta cần chỉ đến một bảng do một người dùng khác sở hữu (hiển nhiên là phải được phép) thì tên của bảng phải được viết sau tên của người sở hữu và phân cách với tên người sở hữu bởi dấu chấm: tên_người_sở_hữu.tên_bảng Một số đối tượng cơ sở dữ liệu khác (như khung nhìn, thủ tục, hàm), việc sử dụng tên cũng tương tự như đối với bảng. Ta có thể sử dụng tên cột một cách bình thường trong các câu lệnh SQL bằng cảch chỉ cần chỉ định tên của cột trong bảng. Tuy nhiên, nếu trong câu lệnh có liên quan đến hai cột trở 24 lên có cùng tên trong các bảng khác nhau thì bắt buộc phải chỉ định thêm tên bảng trước tên cột; tên bảng và tên cột được phân cách nhau bởi dấu chấm Ví dụ: Giả sử chúng ta có CSDL như sau: Để tìm ra khách hàng có tên Nguyễn Văn An đã đặt hàng vào ngày nào, câu truy vấn như sau: Select orderid, orderdate from orders, customers where orders.customerid and customername = N'Nguyễn Văn An' 2.5 Các kiểu dữ liệu 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 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 Int Số nguyên có giá trị từ -231 đến 231 - 1 Tinyint Số nguyên có giá trị từ 0 đến 255. Smallint Số nguyên có giá trị từ -215 đến 215 – 1 25 Bigint Số nguyên có giá trị từ -263 đến 263-1 Numeric Kiểu số với độ chính xác cố định. Decimal Tương tự kiểu Numeric Float Số thực có giá trị từ -1.79E+308 Real Số thực có giá trị từ -3.40E + 38 Money Kiểu tiền tệ 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) Binary Dữ liệu nhị phân với độ dài cố định (tối đa 8000 bytes) Varbinary Dữ liệu nhị phân với độ dài chính xác (tối đa 8000 bytes) Image Dữ liệu nhị phân với độ dài chính xác (tối đa 2,147,483,647 bytes) Text Dữ liệu kiếu chuỗi với độ dài lớn (tối đa 2,147,483,647 ký tự) Ntext Dữ liệu kiếu chuỗi với độ dài lớn và hỗ trợ UNICODE (tối đa 1,073,741,823 ký tự) Ví dụ: Mỗi cột trong bảng sẽ chứa những dữ liệu thuộc về duy nhất một kiểu dữ liệu trong SQL Server. Cột nào chứa những dữ liệu thuộc kiểu nào sẽ được quy định lúc định nghĩa bảng.

Create table Nhanvien ( MANV NVARCHAR(10) NOT NULL, HOTENNVARCHAR(30) NOT NULL, GIOITINH BIT, NGAYSINH SMALLDATETIME, NOISINH NCHAR(50), HSLUONG DECIMAL(4,2), MADV INT ) 2.6 Biến (Variables) Biến trong T-SQL cũng có chức năng tương tự như trong các ngôn ngữ lập trình khác nghĩa là cần khai báo trước loại dữ liệu trước khi sử dụng. Biến được bắt đầu bằng dấu @ (Ðối với các biến toàn cục - global variable - thì có hai dấu @@) 26 Ví dụ: Ví dụ dưới đây khai báo một biến có tên @numberOfCustomers thông qua từ khóa declare. Biến này lưu số khách hàng đếm được thông qua hàm count. Sau đó in ra giá trị của biến.

declare @numberOfCustomers int select @numberOfCustomers = count(*) from Customers print @numberOfCustomers 2.7 Hàm (Function) Có 2 loại hàm: một loại là được xây dựng sẵn trong SQL Server 20005 Express Edition (built-in) và một loại do người dùng tự định nghĩa (user-defined) Các hàm Built-In được chia làm 3 nhóm: Rowset Functions : Loại này thường trả về một object và được đối xử như một table. Ví dụ như hàm OPENQUERY sẽ trả về một recordset và có thể đứng vị trí của một table trong câu lệnh Select. Aggregate Functions : Loại này làm việc trên một số giá trị và trả về một giá trị đơn hay là các giá trị tổng. Ví dụ như hàm AVG sẽ trả về giá trị trung bình của một cột.

Scalar Functions : Loại này làm việc trên một giá trị đơn và trả về một giá trị đơn. Trong loại này lại chia làm nhiều loại nhỏ như các hàm về toán học, về thời gian, xử lý kiểu dữ liệu String.Ví dụ như hàm MONTH('2002-09-30') sẽ trả về tháng 9. Các hàm User-Defined (được tạo ra bởi câu lệnh CREATE FUNCTION và phần body thường được gói trong cặp lệnh BEGIN.END) cũng được chia làm các nhóm như sau: Scalar Functions : Loại này cũng trả về một giá trị đơn bằng câu lệnh RETURNS. Table Functions : Loại này trả về một table 2.8 Các toán tử (Operators) Trong SQL Server các biểu diễn (expression) có thể xuất hiện nhiều toán tử.

Độ ưu tiên của toán tử sẽ quyết định thứ tự thực hiện của các phép tính. Thứ tự thực hiện ảnh hưởng rất lớn đến kết quả. Bảng dưới đây mô tả các toán tử trong SQL Server 2005 Express Edititon và mức độ ưu tiên của các toán tử đó.9 Các thành phần điều khiển (Control of flow) Như BEGIN.END, BREAK, CONTINUE, GOTO, IF.ELSE, RETURN, WHILE… 2.10 Chú thích (Comment) T-SQL dùng kí hiệu -- để chú thích cho một dòng đơn và kí hiệu /*…*/ để chú thích cho một nhóm dòng Ví dụ: /* Minh họa chú thích Chú thích cho một dòng đơn và một nhóm các dòng*/ DECLARE @MyNumber int -- khai báo biến SET @MyNumber = 4 - 2 + 27 -- kết quả là 29 SELECT @MyNumber 2.11 Giá trị NULL Một cơ sở dữ liệu là sự phản ánh của một hệ thống trong thế giới thực, do đó các giá trị dữ liệu tồn tại trong cơ sở dữ liệu có thể không xác định được. Một giá trị không xác định được xuất hiện trong cơ sở dữ liệu có thể do một số nguyên nhân sau: Giá trị đó có tồn tại nhưng không biết.

Không xác định được giá trị đó có tồn tại hay không. Tại một thời điểm nào đó giá trị chưa có nhưng rồi có thể sẽ có. Giá trị bị lỗi do tính toán (tràn số, chia cho không,.) Những giá trị không xác định được biểu diễn trong cơ sở dữ liệu quan hệ bởi các giá trị NULL. Đây là giá trị đặc biệt và không nên nhầm lẫn với chuỗi rỗng (đối với dữ liệu kiểu chuỗi) hay giá trị không (đối với giá trị kiểu số).

Giá trị NULL đóng một vai trò quan trọng trong các cơ sở dữ liệu và hầu hết các hệ quản trị cơ sở dữ liệu quan hệ hiện nay đều hỗ trợ việc sử dụng giá trị này. 28 3 Ngôn ngữ thao tác dữ liệu – DML SQL được xem như là công cụ hữu hiệu để thực hiện các yêu cầu truy vấn và thao tác trên dữ liệu. Trong chương này, ta sẽ bàn luận đến nhóm các câu lệnh trong SQL được sử dụng cho mục đích này. Nhóm các câu lệnh này được gọi chung là ngôn ngữ thao tác dữ liệu (DML: Data Manipulation Language) bao gồm các câu lệnh sau: SELECT: Sử dụng để truy xuất dữ liệu từ môt hoặc nhiều bảng.

INSERT: Thêm dữ liệu.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ