Tự học SQL Server 2000

Tự học SQL Server 2000 của Nguyễn Thanh Quang và Hoàng Anh Quang cung cấp một hướng dẫn cơ bản về SQL Server 2000 và ngôn ngữ SQL.

Dưới đây là tóm tắt các nội dung chính:

  • Giới thiệu về SQL Server 2000:
    • SQL Server 2000 là một hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) sử dụng Transact-SQL.
    • Nó được tối ưu hóa cho môi trường cơ sở dữ liệu lớn (Tera-Byte) và có thể phục vụ hàng ngàn người dùng cùng lúc.
    • Giới thiệu 7 phiên bản của SQL Server 2000: Enterprise, Standard, Personal, Developer, Desktop Engine (MSDE), Win CE, Trial. Phiên bản Developer được khuyến nghị cho việc học.
    • Đề cập đến sự phát triển của SQL Server từ phiên bản 6.5 lên 7.0 (bước nhảy vọt) và lên 2000 (mở rộng tính năng Web, đáng tin cậy hơn).
    • Tính năng Multiple Instance (phiên bản 2000 có thể chạy song song với các phiên bản trước).
  • Các thành phần quan trọng trong SQL Server 2000:
    • Relational Database Engine: Lõi của Database, chứa dữ liệu dưới dạng bảng, hỗ trợ các kiểu kết nối thông dụng (ADO, OLE DB, ODBC) và có khả năng tự điều chỉnh tài nguyên.
    • Replication: Cơ chế tạo bản sao dữ liệu giữa các Server để đảm bảo đồng bộ, thường dùng cho báo cáo để tránh ảnh hưởng đến hiệu suất của Server chính.
    • Data Transformation Service (DTS): Dịch vụ chuyển dịch và định dạng dữ liệu giữa các hệ quản trị cơ sở dữ liệu khác nhau (Oracle, DB2, SQL Server, Access…).
    • Analysis Service: Công cụ phân tích dữ liệu mạnh mẽ sử dụng khái niệm hình khối nhiều chiều (Multi-dimension cubes) và kỹ thuật “đào mỏ dữ liệu” (Data mining).
    • English Query: Dịch vụ giúp truy vấn dữ liệu bằng tiếng Anh “trơn”.
    • Meta Data Service: Quản lý và xử lý Meta Data (thông tin mô tả cấu trúc dữ liệu).
    • SQL Server Books Online: Tài liệu hướng dẫn hữu ích, không thể thiếu.
    • SQL Server Tools:
      • Enterprise Manager: Công cụ trực quan để quản lý hệ thống cơ sở dữ liệu, hữu ích cho người mới học.
      • Query Analyzer: Môi trường làm việc cho phép thực thi câu lệnh SQL và debug Stored Procedure.
      • SQL Profiler: Ghi lại các sự kiện và hoạt động trên SQL Server để kiểm soát.
      • Các công cụ dòng lệnh khác như osqi và bep (bulk copy).
  • Cài đặt SQL Server 2000:
    • Yêu cầu cấu hình máy tính: Ít nhất 64MB RAM, 500MB ổ cứng, có thể cài trên Windows Server, Windows XP Professional, Windows 2000 Professional, NT Workstation (không hỗ trợ Win 98 family).
    • Hướng dẫn các bước cài đặt cụ thể với hình ảnh minh họa, bao gồm chọn phiên bản, thông tin người dùng, nhập CD-Key, chọn loại cài đặt (Server and Client Tools), Instance Name, Setup Type (Typical), Services Accounts và Authentication Mode (thiết lập mật khẩu cho tài khoản Sa).
  • Ngôn ngữ SQL:
    • Transact-SQL (T-SQL): Ngôn ngữ SQL mở rộng dựa trên SQL chuẩn của ISO và ANSI, khác với P-SQL trong Oracle.
    • Phân loại lệnh SQL:
      • Data Definition Language (DDL): Dùng để quản lý thuộc tính của Database, định nghĩa cấu trúc (CREATE, ALTER, DROP).
      • Data Control Language (DCL): Quản lý quyền truy cập lên từng Object (GRANT, REVOKE, DENY).
      • Data Manipulation Language (DML): Xử lý dữ liệu (SELECT, UPDATE, INSERT, DELETE).
    • Cấu trúc câu lệnh SQL:
      • Identifiers: Tên của các đối tượng Database (Table, View, Stored procedure…), có Regular Identifier và Delimited Identifier.
      • Biến: Bắt đầu bằng @ (biến cục bộ) hoặc @@ (biến toàn cục), cần khai báo kiểu dữ liệu.
      • Hàm:
        • Built-in Functions: Rowset Functions (trả về Object), Aggregate Functions (tổng hợp giá trị), Scalar Functions (xử lý giá trị đơn).
        • User-defined Functions: Tạo bằng CREATE FUNCTION, có thể là Scalar Functions hoặc Table Functions.
      • Kiểu dữ liệu: String, Binary, Integer, Approximate Numeric, Exact Numeric, Special, Date and Time, Money, Auto-incrementing, Synonyms, User-defined, Computed column.
      • Expressions: Kết hợp Identifier, Operators và Value.
      • Control-Of-Flow: Các lệnh điều khiển luồng (BEGIN…END, IF…ELSE, WHILE…).
      • Chú thích: Dùng -- cho dòng đơn và /*...*/ cho nhóm.
    • Thực thi câu lệnh SQL:
      • Câu lệnh đơn: Được Parser phân tích, SQL Optimizer tìm cách thực thi tối ưu, sau đó SQL Server Engine thực thi.
      • Nhóm lệnh (Batches): Phân tích và biên dịch một lần, lưu Execution plan để chạy nhanh hơn nếu gọi lại.
      • Lệnh GO: Tín hiệu kết thúc một Batch job và yêu cầu thực thi, không phải lệnh T-SQL.
  • Kiểu dữ liệu, hàm (chi tiết hơn):
    • Kiểu dữ liệu: Giải thích chi tiết các nhóm kiểu dữ liệu (String, Binary, Integer, Approximate Numeric, Exact Numeric, Special, Date and Time, Money, Auto-incrementing, Synonyms, User-defined, Computed column).
    • Hàm:
      • Hàm trong SQL thường cụ thể cho mỗi DBMS, không linh động như câu lệnh SQL chuẩn.
      • Bảng so sánh cú pháp của một số hàm thông dụng giữa các DBMS khác nhau (Access, DB2, Oracle, PostgreSQL, MySQL, SQL Server, Sybase).
      • Các loại hàm được hỗ trợ: Text, Numeric, Date and Time, System.
      • Các câu lệnh xử lý Text: UPPER(), LEFT(), DATALENGTH()/LENGTH()/LEN(), LOWER(), LTRIM(), RIGHT(), RTRIM(), SOUNDEX(). Cung cấp ví dụ và lưu ý về SOUNDEX (không được hỗ trợ bởi Access, PostgreSQL).
      • Các hàm xử lý Ngày và Thời gian: DATEPART() (SQL Server, Sybase, Access), DATE_PART() (PostgreSQL), YEAR() (MySQL), TO_NUMBER(TO_CHAR()) và TO_DATE() (Oracle). Nhấn mạnh sự kém nhất quán của các hàm này giữa các DBMS.
      • Các hàm xử lý Số: ABS(), COS(), EXP(), PI(), SIN(), SQRT(), TAN(). Các hàm này thường đồng nhất hơn giữa các DBMS.
      • Các hàm tập hợp (Aggregate Function): AVG(), COUNT(), MAX(), MIN(), SUM(). Các hàm này khá nhất quán giữa các DBMS.
        • Hướng dẫn sử dụng từng hàm với ví dụ.
        • Lưu ý về cách AVG(), COUNT(), MAX(), MIN(), SUM() xử lý giá trị NULL.
        • Sử dụng DISTINCT trong hàm tập hợp để tính toán trên các giá trị duy nhất (không hỗ trợ trong Access cho hàm tập hợp).
        • Có thể kết hợp nhiều hàm tập hợp trong một câu lệnh SELECT.
  • Câu lệnh SQL (chi tiết các mệnh đề):
    • Câu lệnh SELECT:
      • Truy vấn các cột riêng lẻ.
      • Truy vấn nhiều cột (sử dụng dấu phẩy để phân cách).
      • Truy vấn tất cả các cột (sử dụng *), lưu ý về hiệu suất.
      • Lưu ý về kết thúc câu lệnh bằng dấu chấm phẩy và tính không phân biệt chữ hoa/thường của SQL.
    • Sắp xếp dữ liệu được truy vấn (ORDER BY):
      • Sắp xếp dữ liệu theo một cột.
      • Vị trí của ORDER BY: luôn là mệnh đề cuối cùng.
      • Có thể sắp xếp theo các cột không được chọn.
      • Sắp xếp theo nhiều cột (thứ tự ưu tiên từ trái sang phải).
      • Sắp xếp theo vị trí cột liên quan (ORDER BY 2, 3…), lưu ý về ưu nhược điểm.
      • Chỉ định hướng sắp xếp: DESC (giảm dần) và ASC (tăng dần, mặc định).
      • Lưu ý về phân biệt kiểu chữ và thứ tự sắp xếp trong dữ liệu văn bản.
    • Lọc dữ liệu (WHERE):
      • Sử dụng mệnh đề WHERE để chỉ định điều kiện tìm kiếm.
      • Vị trí của WHERE: sau mệnh đề FROM, trước ORDER BY.
      • Các toán tử trong mệnh đề WHERE: =<>!=<<=!>>>=!>, BETWEEN, IS NULL.
      • Kiểm tra một giá trị đơn (dùng =<<=).
      • Kiểm tra các giá trị không phù hợp (dùng <>!=).
      • Kiểm tra một miền các giá trị (dùng BETWEEN … AND …).
      • Kiểm tra các giá trị rỗng (dùng IS NULL).
    • Lọc dữ liệu nâng cao (kết hợp các mệnh đề WHERE):
      • Sử dụng toán tử AND: Kết hợp nhiều điều kiện, tất cả phải thỏa mãn.
      • Sử dụng toán tử OR: Kết hợp nhiều điều kiện, chỉ cần một thỏa mãn.
      • Tìm hiểu thứ tự xét: AND có thứ tự ưu tiên cao hơn OR. Giải pháp là sử dụng dấu ngoặc đơn () để nhóm các toán tử có liên quan.
      • Sử dụng toán tử IN: Chỉ định một dãy điều kiện, bất kỳ giá trị nào trong dãy thỏa mãn. Tiện lợi hơn OR khi danh sách dài. Có thể chứa các câu lệnh SQL khác.
      • Sử dụng toán tử NOT: Phủ định điều kiện đứng sau nó. Hữu ích trong các mệnh đề phức tạp.
  • Lọc bằng các ký tự đại diện (LIKE):
    • Toán tử LIKE phải được sử dụng với ký tự đại diện.
    • Chỉ dùng với trường Text.
    • Ký tự đại diện %: Đại diện cho một hoặc nhiều ký tự (hoặc không có ký tự nào).
      • Trong Microsoft Access, dùng * thay cho %.
      • Lưu ý về tìm kiếm phân biệt kiểu chữ và xử lý khoảng trắng đuôi.
    • Ký tự đại diện _: Đại diện cho một ký tự đơn.
      • Trong Microsoft Access, dùng ? thay cho _.
    • Ký tự đại diện []: Chỉ định một tập hợp các ký tự, một ký tự trong tập phải thỏa mãn tại vị trí xác định.
      • Không được hỗ trợ bởi tất cả các DBMS.
      • Có thể phủ định bằng cách thêm ^ (ví dụ [^JM]%).

Tóm lại, tài liệu cung cấp kiến thức toàn diện từ cài đặt đến sử dụng các lệnh và hàm SQL cơ bản đến nâng cao trong SQL Server 2000, với nhiều ví dụ minh họa và so sánh cú pháp giữa các hệ quản trị cơ sở dữ liệu khác nhau.

Công nghệ thông tin Sách giáo trình

Tự học SQL Server 2000
  • Tác giả: Nguyễn Thanh Quang và Hoàng Anh Quang
  • Ngôn ngữ: Tiếng Việt