CƠ SỞ LÝ THUYẾT
Hệ quản trị Cơ sở dữ liệu Microsoft SQL Server
SQL, viết tắt của Structured Query Language, là một công cụ quản lý dữ liệu quan trọng và phổ biến trong nhiều lĩnh vực Nhiều ngôn ngữ lập trình bậc cao như Visual Basic, Oracle và Visual C đều hỗ trợ SQL, giúp người dùng dễ dàng thao tác với cơ sở dữ liệu.
Các chương trình ứng dụng và công cụ quản trị cơ sở dữ liệu (CSDL) cho phép người dùng truy cập vào CSDL mà không cần viết trực tiếp câu lệnh SQL, tuy nhiên, các ứng dụng này vẫn cần sử dụng SQL để hoạt động hiệu quả.
SQL Server được phát triển từ ngôn ngữ SEQUEL2 bởi IBM vào những năm 70, theo mô hình Codd tại trung tâm nghiên cứu ở California, nhằm phục vụ cho hệ thống quản lý cơ sở dữ liệu lớn Ban đầu, SQL Server chỉ được sử dụng trên các máy đơn lẻ, nhưng với nhu cầu ngày càng tăng về việc xây dựng cơ sở dữ liệu lớn theo mô hình khách-chủ, toàn bộ dữ liệu được lưu trữ trên máy chủ Tất cả thao tác xử lý dữ liệu diễn ra trên máy chủ thông qua các lệnh SQL, trong khi máy trạm chỉ thực hiện cập nhật hoặc truy xuất thông tin Hiện nay, SQL được hỗ trợ trong hầu hết các ngôn ngữ lập trình bậc cao và đóng vai trò quan trọng trong phát triển Internet, đặc biệt trong việc tạo ra các trang web động một cách nhanh chóng.
SQL đã được ANSI và ISO công nhận là ngôn ngữ chuẩn cho cơ sở dữ liệu quan hệ, tuy nhiên, tiêu chuẩn này vẫn chưa hoàn thiện 100% Do đó, các phiên bản SQL được tích hợp trong các ngôn ngữ lập trình khác nhau đã được mở rộng để phù hợp với các ứng dụng cụ thể, dẫn đến sự khác biệt rõ rệt giữa các phiên bản SQL.
1.1.2 Đặc điểm của SQL Server và đối tượng làm việc
SQL là một ngôn ngữ phi thủ tục, không yêu cầu người dùng phải chỉ định cách thức truy cập cơ sở dữ liệu Tất cả các câu lệnh trong SQL đều dễ sử dụng và có khả năng mắc lỗi thấp.
• SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp dữ liệu + Chèn, cập nhật, xoá các hàng trong một quan hệ
+ Tạo, sửa đổi, thêm và xoá các đối tượng trong của CSDL
+ Điều khiển việc truy nhập tới CSDL và các đối tượng của CSDL để đảm bảo tính bảo mật của CSDL
+ Đảm bảo tính nhất quán và sự ràng buộc của CSDL
• Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải nắm vững được các cấu trúc CSDL của mình
Cơ sở dữ liệu (CSDL) là các bảng dữ liệu hai chiều, bao gồm nhiều cột (trường) và hàng (bản ghi) Mỗi cột có tên gọi và kiểu dữ liệu duy nhất, tạo nên cấu trúc của bảng Khi các bảng được tổ chức một cách hệ thống cho một mục đích cụ thể, chúng hình thành nên một CSDL hoàn chỉnh.
Tổng quan về cơ sở dữ liệu quan hệ
1.2.1 Mô hình dữ liệu quan hệ
CSDL quan hệ là loại cơ sở dữ liệu mà dữ liệu được tổ chức thành các bảng có mối quan hệ với nhau Mỗi bảng chứa các dòng (bản ghi) và cột (trường), giúp quản lý và truy xuất thông tin một cách hiệu quả.
Tóm lai, một CSDL bao gồm nhiều bảng có mối quan hệ với nhau (relationship) [1]
Bảng bao gồm các yếu tố sau:
- Tên của bảng: được xác định duy nhất
- Cấu trúc của bảng: tập hợp các cột (field/trường/thuộc tính)
- Dữ liệu của bảng: tập hợp các dòng
1.2.3 Khóa chính của bảng (Primary Key)
Mỗi bảng cần có ít nhất một cột hoặc một tập hợp các cột để xác định duy nhất mỗi dòng trong tập hợp các dòng của bảng.
Một cột (hoặc một tập các cột) có tính chất này gọi là khóa chính của bảng (Primary Key)
1.2.4 Mối quan hệ (Relationship) và khóa ngoại (Foreign key)
Mối quan hệ được thể hiện thông qua ràng buộc giá trị dữ liệu xuất hiện ở bảng này phải có xuất hiện trước ở một bảng khác
Khóa ngoại (FK) là một cột hoặc tập hợp các cột trong một bảng, mà giá trị của nó được xác định từ khóa chính (PK) của một bảng khác.
1.2.5 Sơ lược về câu lệnh SQL
SELECT Truy xuất dữ liệu
INSERT Bổ sung dữ liệu
UPDATE Cập nhật dữ liệu
TRUNCATE Xóa toàn bộ dữ liệu trong bảng Định nghĩa dữ liệu
ALTER TABLE Sửa cấu trúc bảng
CREATE Tạo hàm (do người dùng định nghĩa)
ALTER FUNCTION Sửa đổi hàm
1.2.6 Quy tắc sử dụng tên trong SQL
Trong câu lệnh SQL, để truy cập một bảng thuộc sở hữu của người dùng khác, ta cần sử dụng cú pháp tên_người_sở_hữu.tên_bảng, trong đó tên bảng được phân cách với tên người sở hữu bằng dấu chấm.
Trong câu lệnh SQL, khi sử dụng hai cột trở lên có cùng tên từ các bảng khác nhau, cần chỉ định tên bảng trước tên cột Cách viết đúng là sử dụng dấu chấm để phân cách giữa tên bảng và tên cột theo công thức: tên_bảng.tên_cột.
Char(n) Kiểu chuỗi với độ dài cố định
Nchar(n) Kiểu chuổ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 Interger 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 độ dà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.4E+38 đến 3.4E+38
Bit Kiểu bít (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 phân loại thành ba loại chính: Binary, Varbinary và Image Dữ liệu Binary có độ dài cố định tối đa 8000 bytes, trong khi Varbinary cho phép độ dài chính xác cũng tối đa 8000 bytes Đối với loại Image, dữ liệu cũng có độ dài chính xác, phục vụ cho việc lưu trữ hình ảnh và nội dung nhị phân khác.
(=< giá_trị_số_2>,
Toán tử tăng/ giảm : +=, -=, *=, %Toán tử tăng/ giảm 1 đơn vị : ++,
Toán tử gán : Toán tử quan hệ : ==, !=, >, >=,