Bài giảng SQL Server: Phần 1 cung cấp cho người học những kiến thức như: Tổng quan về SQL Server; Ngôn ngữ Transaction SQL (T-SQL); Quản lý cơ sở dữ liệu; Thủ tục lưu trữ và hàm người dùng; Quản lý Trigger. Mời các bạn cùng tham khảo!
TỔNG QUAN VỀ SQL SERVER
Giới thiệu về SQL Server
Vào năm 1970, IBM đã phát triển ngôn ngữ máy tính SEQUEL (Structured English Query Language) để thực hiện các truy vấn trong cơ sở dữ liệu Ngôn ngữ này không chỉ dừng lại ở việc truy vấn mà còn cho phép xây dựng và quản trị cơ sở dữ liệu, và sau đó được phổ biến rộng rãi với tên gọi SQL Năm 1985, IBM đã hợp tác với Microsoft để phát triển các hệ điều hành và phần mềm hệ thống, trong đó hệ điều hành đầu tiên là OS/2, dựa trên MS-DOS của Microsoft.
Vào ngày 16/12/1987, hệ điều hành OS/2 1.0 được phát hành chính thức Sau đó, IBM giới thiệu phiên bản OS/2 mở rộng (Extended), tích hợp thêm cơ sở dữ liệu SQL của IBM (DB2) Điều này khiến Microsoft lo ngại rằng nếu IBM cung cấp giải pháp hoàn chỉnh cho OS/2 mở rộng, khách hàng có thể không còn lựa chọn mua sản phẩm OS/2 của Microsoft nữa.
Vào thời điểm đó, Microsoft chưa có sản phẩm quản trị cơ sở dữ liệu Sau đó, công ty đã hợp tác với Sybase để phát triển một hệ quản trị cơ sở dữ liệu Sự hợp tác này đã dẫn đến việc ra mắt sản phẩm Ashton-Tate vào năm 1985.
Vào năm 1988, sản phẩm này được phát triển trên nền tảng OS/2 Sau đó, Sybase đã mở rộng sản phẩm sang môi trường UNIX và đổi tên thành DataServer, hiện nay được biết đến với tên gọi Sybase Adaptive Server.
Microsoft đã quyết định không phát triển hệ điều hành OS/2, mà thay vào đó cho ra mắt Windows NT Server, khiến SQL Server chỉ hoạt động độc lập trên nền tảng này Kể từ đó, các phiên bản của Microsoft SQL Server đã lần lượt ra đời, bắt đầu từ phiên bản 4.2, sau đó nâng cấp lên 4.21, 6.0, 6.5, và 7.0 Hiện nay, các phiên bản SQL Server phổ biến trên thị trường bao gồm SQL Server 2000, 2005, 2008, và phiên bản mới nhất là SQL Server 2012.
Microsoft SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) cho phép tổ chức dữ liệu bằng cách lưu trữ chúng trong các bảng Dữ liệu quan hệ được quản lý trong các bảng, và các mối quan hệ giữa chúng được xác định rõ ràng Người dùng có thể dễ dàng truy cập và quản lý dữ liệu thông qua hệ thống này.
Người quản trị CSDL có thể truy cập trực tiếp vào Server để thực hiện cấu hình, quản trị và bảo trì cơ sở dữ liệu SQL Server là một hệ thống cơ sở dữ liệu mở rộng, cho phép lưu trữ lượng lớn dữ liệu và hỗ trợ nhiều người dùng truy cập đồng thời.
Các mô hình sử dụng trong SQL Server
Hệ thống sử dụng SQL Server cần xem xét số lượng người dùng truy cập đồng thời và loại công việc thực hiện Các mô hình triển khai có thể bao gồm Client/Server, Desktop và SOA.
Hình 1.1 Mô hình Client/Server
Mô hình khách/chủ cơ bản yêu cầu các máy tính kết nối với nhau qua một giao thức chung để chia sẻ tài nguyên và dữ liệu Hệ thống này bao gồm ba phần chính.
- Hệ thống phía Server: xử lý yêu cầu và phục vụ
- Hệ thống phía Client: nơi yêu cầu và nhận dữ liệu
- Hệ thống giao tiếp giữa Client và Server(Network)
Trong mô hình khách chủ, việc tổ chức các xử lý bên dưới là rất quan trọng để đảm bảo hiệu quả và đáp ứng nhanh chóng các yêu cầu từ máy trạm Hệ thống mạng máy tính cần được thiết kế sao cho không gây tắc nghẽn Khi phát triển ứng dụng, các xử lý được chia thành hai nhánh: nhánh máy trạm và nhánh máy chủ, nhằm tối ưu hóa hiệu suất và khả năng phản hồi.
Nhánh máy trạm (client side) đảm nhận việc đọc và hiển thị dữ liệu từ cơ sở dữ liệu, cũng như thực hiện các phép tính trên dữ liệu đang được trình bày trên màn hình ứng dụng và in ấn dữ liệu Các ứng dụng này thường được phát triển bằng ngôn ngữ Delphi.
Visual Basic, C++, ASP, C# và các ứng dụng khác cho phép người dùng thực hiện các thao tác như xóa, thêm và sửa dữ liệu trong cơ sở dữ liệu trên máy chủ Khi xây dựng ứng dụng, cần tránh việc đọc toàn bộ dữ liệu của bảng mà chỉ nên truy xuất những thông tin cần thiết để xử lý Điều này giúp giảm thiểu lượng thông tin lưu thông trên mạng.
Nhánh máy chủ (server side) thực hiện các xử lý trực tiếp trên máy chủ, đảm bảo an ninh thông qua việc cấp quyền truy cập cho người dùng mạng Điều này cho phép người dùng đồng thời cập nhật dữ liệu, như việc hai người có thể chỉnh sửa thông tin khách hàng trong bảng dữ liệu Hệ thống cũng tự động sao lưu dữ liệu để bảo vệ thông tin khỏi mất mát trong các tình huống không mong muốn.
SQL Server có thể hoạt động như một cơ sở dữ liệu độc lập trên máy tính để bàn hoặc máy tính xách tay, được gọi là mô hình Desktop Trong mô hình này, các ứng dụng Client chạy trên cùng một máy tính với phần mềm SQL Server và cơ sở dữ liệu của nó Do đó, chỉ có một máy tính trong hệ thống, không có kết nối mạng từ client tới server, mà client kết nối cục bộ tới SQL Server đã được cài đặt.
Mô hình Desktop là lựa chọn lý tưởng cho những trường hợp có một người dùng hoặc một nhóm nhỏ người dùng chia sẻ máy tính để truy cập cơ sở dữ liệu vào những thời điểm khác nhau Mô hình này thường được áp dụng cho các cơ sở dữ liệu có kích thước nhỏ.
Mô hình hướng dịch vụ (SOA) là kiến trúc hệ thống giúp cung cấp chức năng nghiệp vụ và quy trình ứng dụng một cách thuận tiện cho người sử dụng thông qua các dịch vụ hoạt động trên môi trường mạng Các dịch vụ này được hiểu là các mô-đun nghiệp vụ hoặc chức năng ứng dụng, với giao diện được thiết kế theo quy định và tương tác thông qua việc gửi nhận thông điệp.
Các tính năng mới của SQL Server 2008
SQL Server 2008, phiên bản tiếp theo của Microsoft SQL Server, mang đến nền tảng dữ liệu toàn diện, bảo mật và đáng tin cậy hơn, đồng thời dễ quản lý và nâng cấp cho các ứng dụng quan trọng Phiên bản này hỗ trợ các nhà phát triển trong việc tạo ra ứng dụng mới có khả năng lưu trữ và sử dụng mọi loại dữ liệu trên mọi thiết bị, giúp người dùng dễ dàng thấu hiểu và đưa ra quyết định.
- Được tín nhiệm: Bảo vệ thông tin quý giá, đảm bảo nghiệp vụ liên tục, tiên đoán được phản ứng
Để tận dụng cơ hội trong môi trường kinh doanh phát triển nhanh, các công ty cần triển khai các giải pháp dữ liệu hiệu quả SQL Server 2008 giúp giảm thời gian và chi phí trong việc quản lý và phát triển ứng dụng, từ quản lý theo chính sách đến đơn giản hóa quy trình phát triển và lưu trữ thông tin đa dạng.
SQL Server 2008 mang đến nền tảng thông minh toàn diện, tích hợp dữ liệu và chuyển giao thông tin liên quan, giúp người dùng dễ dàng thấu hiểu và đưa ra hành động hiệu quả.
Hình 1.4 Đặc tính mới của SQL Server
Các phiên bản của SQL Server 2008
Trước khi khám phá các thành phần của SQL Server 2008, cần lưu ý rằng phiên bản này có nhiều lựa chọn khác nhau Microsoft đã phát triển nhiều phiên bản SQL Server 2008 để đáp ứng nhu cầu đa dạng về chi phí và thời gian thực hiện của các tổ chức và cá nhân.
Most organizations opt for one of the three versions of SQL Server 2008: Enterprise Edition, Standard Edition, or Workgroup Edition The choice among these editions is primarily due to the fact that only the Enterprise, Standard, and Workgroup versions are suitable for installation and use in server environments that support real-world operations.
- Phiên bản phí bảo hiểm (Premium Editions): Datacenter, Parallel Data, Warehouse
- Phiên bản cốt lõi (Core Editions): Enterprise, Standard
Hình 1.5 Một số phiên bản của SQL Server
SQL Server 2008 Enterprise Edition, available in both 32-bit and 64-bit versions, is designed for businesses and organizations with extensive online transaction processing (OLTP) needs, complex data analysis capabilities, data warehousing systems, and web applications This edition is ideal for large organizations and complex requirements.
SQL Server 2008 Standard Edition (32-bit và 64-bit) là phiên bản lý tưởng cho quản trị và phân tích dữ liệu, phù hợp với các doanh nghiệp và tổ chức vừa và nhỏ Phiên bản này cung cấp các giải pháp cần thiết cho thương mại điện tử, kho dữ liệu và dòng doanh nghiệp, giúp tối ưu hóa hiệu suất và quản lý thông tin hiệu quả.
- Phiên bản chuyên ngành (Specialized Editions): Workgroup, Developer, Express, Web, Compact
SQL Server 2008 Workgroup Edition (chỉ hỗ trợ 32-bit) là giải pháp quản trị dữ liệu lý tưởng cho các doanh nghiệp và tổ chức nhỏ, cung cấp cơ sở dữ liệu không giới hạn về kích thước và số lượng người sử dụng Phiên bản này mang lại một hệ thống cơ sở dữ liệu tin cậy, mạnh mẽ và dễ quản trị, phù hợp với nhu cầu của các tổ chức nhỏ.
SQL Server 2008 Developer Edition, available in both 32-bit and 64-bit versions, includes all the features of the SQL Server 2008 Enterprise Edition However, it is specifically designed for application development and testing purposes This edition is ideal for individuals and organizations engaged in building and testing applications.
+ SQL Server 2008 Express Edition (32-bit only): SQL Server Express, dễ sử dụng và quản trị cơ sở dữ liệu đơn giản Được tích hợp với Microsoft Visual Studio
SQL Server Express, ra mắt vào năm 2008, cung cấp một giải pháp dễ dàng để phát triển các ứng dụng dữ liệu an toàn và nhanh chóng Phiên bản miễn phí này có thể hoạt động như cơ sở dữ liệu máy khách hoặc máy chủ đơn giản, là lựa chọn lý tưởng cho người dùng cần một phiên bản SQL Server 2008 gọn nhẹ trên máy chủ cấu hình thấp Nó phù hợp cho các nhà phát triển ứng dụng không chuyên và những người đam mê xây dựng ứng dụng nhỏ.
SQL Server 2008 Web Edition được phát triển dành cho các ứng dụng Web, không bị hạn chế như phiên bản Express và có giá thành thấp hơn so với phiên bản Standard Đặc biệt, phiên bản Web này không giới hạn dung lượng của cơ sở dữ liệu, mang lại sự linh hoạt cho người dùng.
SQL Server 2008 Compact Edition serves as the default database for Microsoft WebMatrix, providing a streamlined stack for web technology that simplifies the process of building and developing websites on the Windows platform.
Cài đặt SQL Server
Trước khi cài đặt SQL Server
Để sử dụng SQL Server 2008, bạn cần đảm bảo rằng máy của mình đáp ứng đầy đủ các yêu cầu hệ thống cần thiết Các yêu cầu này rất đa dạng và quan trọng để đảm bảo hiệu suất và tính ổn định của SQL Server 2008.
Yêu cầu hệ thống cho Server 2008 phụ thuộc vào phiên bản SQL Server và nền tảng hệ điều hành được sử dụng Trước khi tiến hành cài đặt, cần đảm bảo rằng máy tính đáp ứng đầy đủ các tiêu chuẩn này.
SQL Server 2008, bạn nên tham khảo trang web sau Hình 1.7 để xác định các cài đặt máy phù hợp cho môi trường của mình: http://msdn.microsoft.com/en-us/library/ms143506.aspx.
Khi bạn lần đầu tiên đưa đĩa CD SQL Server 2008 vào ổ đĩa, quá trình thiết lập sẽ tự động khởi động Nếu quá trình cài đặt không bắt đầu, bạn có thể tìm tập tin cần thiết để khởi động.
“setup.exe” và chạy nó
Bước 1: Để cài đặt, ta phải chọn mục "I accept the license Terms" để chấp nhận bản quyền của phiên bản cài đặt, sau đó chon nút Next
Hình 1.8 Xác định bản quyền cài đặt
Bước 2: Khi khởi động quá trình cài đặt, hệ thống sẽ kiểm tra máy tính để xác nhận rằng Net Framework và phiên bản cập nhật của bộ cài đặt Windows đã được cài đặt sẵn.
Hình 1.9 Kiểm tra trước khi cài đặt
Để cài đặt SQL Server 2008, trước tiên, nếu quá trình cài đặt không tự động diễn ra, bạn cần thiết lập cài đặt trước Sau khi hoàn tất cài đặt, máy tính sẽ yêu cầu khởi động lại Khi máy tính đáp ứng đủ điều kiện, bạn có thể tiến hành cài đặt bằng cách chọn "New Installation".
Hình 1.10 Các lựa chọn khi cài đặt
Sau khi hoàn tất cài đặt tất cả các file, hệ thống sẽ cung cấp một bản tóm tắt quá trình thiết lập Nếu các điều kiện cần thiết được đáp ứng, chúng ta có thể tiếp tục cài đặt; nếu không, cần khắc phục các vấn đề được báo cáo và thực hiện lại quá trình thiết lập Đường link được thiết lập sẽ cho phép xem lại chi tiết cài đặt, giúp chúng ta kiểm tra kỹ lưỡng các quy tắc trước khi tiến hành Khi đã sẵn sàng, nhấn nút "Next" để tiếp tục.
Hình 1.11 Kiểm tra các yêu cầu của máy tính trước khi cài đặt
Bước 5: Trong cửa sổ hiển thị tính năng của SQL Server 2008, bạn có thể chọn các tính năng muốn cài đặt bằng cách đánh dấu vào các ô tương ứng Bên cạnh đó, bạn cũng có thể chỉ định thư mục lưu trữ các file cài đặt; trong ví dụ này, các tính năng sẽ được cài đặt trên ổ đĩa C Sau khi hoàn tất việc chọn tính năng và xác định vị trí cài đặt, hãy nhấn nút "Next" để tiếp tục.
Hình 1.12 Các tính năng cài đặt
Bước 6: Trong cửa sổ tiếp theo, bạn cần xác định có cài đặt default instance hay named instance, tự điền ID và thư mục gốc Trong ví dụ này, cài đặt mặc định là “default instance” với ID là MSSQLSERVER Địa điểm cho “instance root directory” được chỉ định trong ổ C Quá trình cài đặt sẽ kiểm tra dung lượng còn trống trên ổ đĩa để đảm bảo đủ cho các tính năng đã chọn Hệ thống sẽ báo cáo dung lượng trống cho mỗi ổ đĩa Nếu dung lượng không đủ, bạn cần chỉ định một địa điểm khác bằng cách sử dụng nút “back” để quay lại Nếu đã hài lòng với dung lượng và địa chỉ, bạn chọn nút tiếp theo.
Hình 1.13 Cấu hình cài đặt
Bước 7: Trong cửa sổ tiếp theo, sử dụng thẻ "Server Accounts" để xác định tài khoản cho việc chạy các dịch vụ SQL Server 2008 khác.
"Collation" được sử dụng để chỉ định dãy hòa trộn mong muốn Trong trường hợp này, người dùng nên chọn cùng một tài khoản cho tất cả các dịch vụ của SQL Server Điều này cho phép truy cập vào tài khoản đó nhiều lần cho mỗi dịch vụ, hoặc có thể chọn "Sử dụng cùng một tài khoản cho tất cả dịch vụ SQL Server" để chỉ cần nhập tài khoản và mật khẩu một lần duy nhất.
Bước 8 cho phép bạn chỉ định trạng thái cho từng dịch vụ khi khởi động, cùng với việc cấu hình thông tin cơ sở dữ liệu qua hai thẻ: Account Provisioning và Data Directories Trong phần cấu hình "Account Provisioning", bạn có thể chọn giữa việc sử dụng chế độ xác thực Windows hoặc chế độ hỗn hợp để hỗ trợ SQL Server và xác thực thông tin đăng nhập.
Để hoàn tất quá trình cài đặt SQL Server 2008, bạn cần nhập mật khẩu cho tài khoản SA, vì không nên để tài khoản này trống Ngoài ra, bạn có thể thêm một tùy chọn để chỉ định người dùng thay thế cho "syadmin", với yêu cầu tối thiểu là phải có ít nhất một người dùng được chỉ định Điều này sẽ cho phép người dùng đăng nhập vào SQL Server 2008 sau khi cài đặt hoàn tất.
Chúng ta có thể thêm người dùng bằng cách sử dụng nút "Add" trên màn hình, hoặc sử dụng nút "Add Current User" để thêm người dùng vào quản trị hệ thống Sau khi thực hiện, hãy chọn nút Next để tiếp tục.
Hình 1.15 Cấu hình Database Engine
Bước 9: Chọn mục "Install the Native mode default configuration" Chọn nút Next
Hình 1.16 Cấu hình dịch vụ Report
Bước 10: Trong cửa sổ "Báo cáo Lỗi và Sử Dụng", bạn cần xác định địa điểm gửi lỗi và thông tin về cách sử dụng cho Microsoft Sau khi quyết định báo cáo, sẽ có nút “Tiếp theo” để chuyển sang bước tiếp theo của quá trình cài đặt, đó là xác minh các quy định cài đặt.
Hình 1.17 Xác định phản hồi
Các thành phần SQL Server
SQL Server Database là một hệ thống cơ sở dữ liệu mạnh mẽ, bao gồm Database Engine, cung cấp các dịch vụ lưu trữ, xử lý và bảo mật dữ liệu Nó hỗ trợ các tính năng như sao lưu và đồng bộ hóa (Replication), tìm kiếm toàn văn (Full-Text Search) và các công cụ quản trị cho dữ liệu quan hệ và XML.
Dịch vụ Phân tích bao gồm các công cụ hỗ trợ tạo và quản lý quy trình phân tích trực tuyến (OLAP) cùng với các ứng dụng khai thác dữ liệu hiệu quả.
SQL Server Agent là dịch vụ hỗ trợ lập trình, thực thi tác vụ, cảnh báo, thông báo và kế hoạch bảo trì cơ sở dữ liệu, giúp tự động hóa các tác vụ bảo trì một cách hiệu quả.
Trình quản lý giao dịch phân tán (Distributed Transaction Coordinator) là một công cụ quan trọng, cung cấp khả năng quản lý giao dịch trên nhiều nguồn dữ liệu khác nhau, bao gồm cả các cơ sở dữ liệu từ xa trong các ứng dụng giao dịch.
Dịch vụ Báo cáo bao gồm các thành phần máy chủ và máy khách, giúp tạo, quản lý và triển khai báo cáo Nó cũng đóng vai trò là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo.
Dịch vụ thông báo Notification Services là nền tảng quan trọng cho việc phát triển và triển khai các ứng dụng gửi thông báo Nó có khả năng gửi thông báo theo thời gian thực đến hàng ngàn người dùng trên nhiều loại thiết bị khác nhau.
- Integration Service: Là một tập hợp các công cụ đồ họa và các đối tượng lập trình cho việc di chuyển, sao chép và chuyển đổi dữ liệu
Connectivity Components Là các thành phần cho việc truyền thông giữa clients và servers, và các thư viện mạng như DB-Library, ODBC, and OLE DB
1.6.3 Các công cụ đồ họa
Các công cụ giao diện đồ họa giúp cho việc truy xuất và quản trị SQL Server được thay đổi khá nhiều so với các phiên bản trước đó
Hình 1.20 Các công cụ đồ họa
Quản lý các dịch vụ SQL server
1.7.1 Dịch vụ SQL Server Configuration Manager
Configuration Tools provide foundational management for SQL Server services, server protocols, client protocols, and client aliases.
Khởi động hoặc dừng các dịch vụ SQL Server sử dụng SQL Server Configuration Manager ta thực hiện theo các bước sau:
Bước 1: Vào Start/Programs/Microsoft SQL Server 2008/Configuration Tools/SQL Server Configuration Manager Xuất hiện cửa sổ SQL Server Configuration Manager Chọn mục SQL Server Services
Hình 1.21 Cửa sổ Configuration Manager
Bước 2: Trong khu vực chi tiết bên phải, chọn chuột phải lên thể hiện của SQL Server mà ta muốn khởi chạy hoặc dừng
- Start: Khởi chạy thể hiện của SQL Server
- Stop: Dừng hoạt động của thể hiện SQL Server
- Pause: Tạm dừng hoạt động của thể hiện SQL Server
- Restart: Khởi động lại thể hiện của SQL Server
1.7.2 Sử dụng SQL Server Management Studio
SQL Server Management Studio (SSMS) là công cụ tích hợp mới trên Microsoft SQL Server 2008, cung cấp môi trường truy xuất, cấu hình, quản trị và phát triển cho tất cả các thành phần của SQL Server SSMS kết hợp các tính năng của Enterprise Manager, Query Analyzer và Analysis Manager từ các phiên bản trước, tạo ra một nền tảng duy nhất hỗ trợ phát triển và quản trị SQL Server cho tất cả các mức kỹ năng Các tính năng chính của Microsoft SQL Server Management Studio bao gồm khả năng truy xuất dữ liệu, quản lý cơ sở dữ liệu và phát triển ứng dụng.
- Cung cấp hầu hết các tác vụ quản trị cho SQL Server 2008 và SQL Server 2005
- Là môi trường đơn, tích hợp cho việc quản trị và trao quyền SQL Server Database Engine
New dialog boxes for managing objects in SQL Server Database Engine, Analysis Services, Reporting Services, Notification Services, and SQL Server Mobile enable immediate action execution, sending commands to the Code Editor, or generating scripts for future execution.
- Các hộp thoại cho phép truy cập đến nhiều điều khiển trong khi hộp thoại đó đang được mở
- Lập lịch cho phép ta thực thi các hành động của các hộp thoại quản trị
- Export và import đăng ký server SQL Server Management Studio từ một môi trường Management Studio này đến môi trường khác
- Save hoặc in file XML Showplan hoặc Deadlock files được sinh bởi SQL Server Profiler, xem lại, hoặc gửi chúng tới administrators để phân tích.v.v…
1) Các bước đăng nhập vào SQL Server Management Studio
Bước 1: Start/ Programs (All Program)/Microsoft SQL Server 2008/SQL Server Management Studio
Hình 1.22 Đăng nhập vào SQL Server Management Studio
Bước 2: Đăng nhập hệ thống
- Chọn Database Engine để kết nối đến cỗ máy cơ sở dữ liệu tại Server type
- Chọn hoặc nhập tên server tại mục Server name
- Chọn chế độ đăng nhập tại mục Authentication:
Windows Authentication allows users to log in using their Windows account, while SQL Server Authentication requires a login through an account specifically created within SQL Server, necessitating the provision of relevant credentials.
Login: Nhập tên đăng nhập
Password: Mật khẩu của tên đăng nhập Remember password: Tùy chọn được chọn để là đăng nhập sau không phải đánh mật khẩu
Hình 1.23 Cửa sổ đăng nhập
Sau hộp thoại “Connect to Server ”cho vào cửa sổ SQL Server Management Studio
Hình 1.24 Cửa sổ SQL Server Management Studio.
Giới thiệu về SQL server 2012
Microsoft SQL Server 2012 là nền tảng dữ liệu thế hệ kế tiếp của Microsoft, mang lại cải tiến vượt bậc về hiệu năng và khả năng tương tác với dữ liệu phi quan hệ, giúp người dùng quản lý "dữ liệu bất kỳ, theo kích thước bất kỳ và tại bất kỳ đâu" Sản phẩm này giải quyết thách thức gia tăng khối lượng dữ liệu bằng cách chuyển đổi chúng thành các tầm nhìn quyết định nhanh chóng Ngoài ra, SQL Server 2012 hỗ trợ lập kế hoạch phát hành dịch vụ dựa trên Apache Hadoop cho Windows Azure, cho phép quản lý dữ liệu tại cả cơ sở và trên điện toán đám mây Người dùng còn được hưởng lợi từ hệ đối tác phong phú trong lĩnh vực phần cứng và phần mềm, tạo ra giải pháp tối ưu cho nhu cầu quản lý dữ liệu Bên cạnh đó, SQL Server 2012 đảm bảo bảo mật cho các tác vụ quan trọng, tăng thời gian hoạt động của hệ thống và cung cấp thông tin chuyên sâu với tính năng bảo mật được cải thiện Nền tảng này được ghi nhận với hiệu năng hoạt động nhanh đáng kinh ngạc và các tính năng mới nổi bật.
- Tính năng SQL Server AlwaysOn và đáp ứng 9s
- Hiệu suất nhanh đáng kinh ngạc nhờ công nghệ bộ nhớ trong xVelocity
- Power View và PowerPivot và đột phá khai thác dữ liệu nhanh
- Dữ liệu thống nhất và đáng tin cậy nhờ BI Semantic Model và Data Quality Services
- Chỉ một lần viết ứng dụng, chạy được ở bất cứ đâu với các công cụ dữ liệu của SQL Server
- Quy mô theo yêu cầu từ các thiết bị trung tâm dữ liệu cho tới điện toán đám mây
- Hỗ trợ điện toán đám mây, xử lý và đáp ứng nhanh, kế thừa và tái sử dụng các ứng dụng dễ dàng
Giải pháp AlwaysOn Availability Group trong SQL Server 2012 là một lựa chọn ưu việt thay thế cho Database Mirroring và Log Shipping, mang đến một phương pháp tích hợp cho cả High Availability (HA) và Disaster Recovery (DR) Người dùng có thể lựa chọn giữa hai mô hình triển khai khác nhau để phù hợp với nhu cầu của hệ thống.
- AlwaysOn Availability Group cho cả local HA và site-to-site DR
- Kết hợp AlwaysOn Availability Group cho cả local HA và Failover Cluster Instance (FCI) cho DR b) Một số cải tiến về bảo mật:
Trong phiên bản SQL Server 2008 R2, quản trị viên có thể tạo một Login chung cho một Windows Group, cho phép các Domain User trong nhóm đăng nhập mà không cần tạo tài khoản riêng lẻ, tiết kiệm thời gian cho quản trị Tuy nhiên, khi người dùng lần đầu truy cập cơ sở dữ liệu, một người dùng và giản đồ tương ứng sẽ tự động được tạo, dẫn đến việc mỗi người dùng có một giản đồ khác nhau, gây khó khăn trong quản lý Để khắc phục vấn đề này, SQL Server 2012 đã cung cấp tính năng gán Default Schema cho nhóm, cho phép tất cả người dùng trong nhóm sử dụng chung một giản đồ duy nhất một cách ngầm định.
User -Defined Server Roles là tính năng quản trị được ưa chuộng nhất, cho phép người quản trị tạo và tùy biến các Server Roles mới Thay vì chỉ sử dụng các Role có sẵn ở cấp server như trước đây, người quản trị giờ đây có thể thiết lập các User-Defined Server Roles phù hợp với nhu cầu quản lý cụ thể của họ.
- Contained Databases: Cung cấp khả năng lưu trữ thông tin chứng thực
Thông tin xác thực của người dùng được lưu trữ trong cơ sở dữ liệu riêng biệt thay vì trong cơ sở dữ liệu chính, giúp giảm sự phụ thuộc vào các hệ thống cơ sở dữ liệu khác Điều này nâng cao tính bảo mật và cho phép triển khai ứng dụng một cách linh hoạt hơn Contained Database có hai mức lựa chọn: Partial và Full, tuy nhiên, trong phiên bản SQL Server 2012, tính năng này chỉ hỗ trợ ở mức Partial, với mức Full sẽ có trong các phiên bản tiếp theo.
- Crypto Enchancement: Nhiều thuật toán mã hóa mới cũng như AES256,
SHA2 (256 và 512), … được hỗ trợ giúp cho việc mã hóa dữ liệu trong SQL Server
SQL Server 2012 đã cải tiến đáng kể các tính năng giám sát, bao gồm User-defined Audit cho phép ghi lại log theo yêu cầu của ứng dụng và Filtering Audit giúp lọc thông tin ghi xuống log theo điều kiện đã định nghĩa trước Đặc biệt, các tính năng này được hỗ trợ trên tất cả các phiên bản của SQL Server 2012.
Cả 2 phiên bản x86 và x64, MS đều khuyến cáo dù ng hê ̣ thống file NTFS, ta phải cài PowerShell 2.0 (đây là công cu ̣ command line giám sát SQL Server rất tốt ), NET 3.5 SP1 và NET 4.0
Yêu cầu phần cứng:
- Các HĐH được hỗ trợ : Server 2008 R2 SP1, Windows 7 SP1, Server 2008 SP2, và Vista SP2
+ Tối thiểu cho hệ thống x 64: AMD Opteron, AMD Athlon 64, Intel Xeon with Intel EM64T, Intel Pentium IV with EM64T Tốc độ bô ̣ xử lý: 1.4 GHz
+ Tối thiệu cho hê ̣ thống x 86: Pentium III hoă ̣c cao hơn Tốc đô ̣ bô ̣ xử l ý: 1.0 GHz
- Bộ nhớ: tối thiểu 1 GB
- Các HĐH được hỗ trợ : Server 2008 R2 SP1, Server 2008 SP2, Windows 7 SP1, và Vista SP2
+ Tối thiểu cho hệ thống x 64: AMD Opteron, AMD Athlon 64, Intel Xeon with Intel EM64T, Intel Pentium IV with EM64T Tốc độ bô ̣ xử lý: 1.4 GHz
+ Tối thiệu cho hê ̣ thống x 86: Pentium III hoă ̣c cao hơn Tốc đô ̣ bô ̣ xử lý : 1.0 GHz
Bộ nhớ tối thiểu 512 MB là yêu cầu cần thiết cho WOW64, một phần của phiên bản x86 của hệ điều hành Windows, cho phép các ứng dụng x86 hoạt động trên môi trường x64 Điều này có nghĩa là các ứng dụng ở chế độ x86 vẫn có thể chạy dưới hệ điều hành x64 Tuy nhiên, WOW64 không hỗ trợ cài đặt failover cluster.
Trên các hệ điều hành 64-bit, SQL Server x86 được hỗ trợ và có thể tải về bộ cài đặt tại địa chỉ: http://www.microsoft.com/sqlserver/en/us/get-sql-server.aspx Một số tính năng chính của SQL Server giúp giải quyết các vấn đề liên quan đến chất lượng dữ liệu.
- Data Cleansing: Hỗ trợ điều chỉnh, xóa bỏ hoặc bổ sung thêm dữ liệu sai hoặc không hoàn chỉnh
Matching hỗ trợ xác định trùng lặp ngữ nghĩa trong các tiến trình xử lý thông qua các bộ luật, giúp nhận diện và cấu thành các đặc trưng đối chiếu tương đồng, đồng thời thực hiện việc loại bỏ trùng lắp hiệu quả.
Reference Data Services play a crucial role in assessing data quality through reference data provided by various suppliers Notable providers of data services include the Windows Azure Marketplace Data Market, which offers a range of valuable data solutions.
Profiling là quá trình phân tích dữ liệu nguồn để đảm bảo chất lượng dữ liệu được duy trì xuyên suốt trong các giai đoạn khám phá tri thức, đối chiếu tương đồng và tiến trình làm sạch dữ liệu.
Giám sát là quá trình theo dõi và xác định trạng thái của các tác vụ nhằm đảm bảo chất lượng dữ liệu Việc này đảm bảo rằng các tiến trình xử lý dữ liệu hoạt động đúng theo mô hình đã được thiết kế.
DQS là giải pháp tập trung vào tri thức và phân tích dữ liệu, được xây dựng dựa trên hệ thống tri thức Giải pháp này cho phép thiết lập các quy trình đảm bảo chất lượng dữ liệu, đồng thời nâng cao tri thức trong hệ thống dữ liệu một cách liên tục.
NGÔN NGỮ TRANSACTION SQL (T-SQL)
Ngôn ngữ T-SQL
2.1.1 Giới thiệu phát biểu T-SQL
SQL, viết tắt của Structured Query Language, là ngôn ngữ dùng để tổ chức, quản lý và truy xuất dữ liệu trong các cơ sở dữ liệu Nó bao gồm các câu lệnh tương tác với cơ sở dữ liệu quan hệ, cho phép người dùng thực hiện nhiều chức năng khác nhau Mặc dù SQL được phát triển chủ yếu để truy xuất dữ liệu, khả năng của nó còn vượt xa hơn thế, với vai trò quan trọng trong việc điều khiển các chức năng của hệ quản trị cơ sở dữ liệu.
SQL cho phép người dùng định nghĩa cơ sở dữ liệu, cấu trúc lưu trữ và tổ chức dữ liệu, cũng như thiết lập mối quan hệ giữa các thành phần dữ liệu.
Với SQL, 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.
SQL được sử dụng để cấp phát và kiểm soát quyền truy cập của người dùng đối với dữ liệu, đảm bảo an toàn cho cơ sở dữ liệu.
SQL thiết lập 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 trong quá trình cập nhật và xử lý lỗi hệ thống.
SQL là ngôn ngữ hoàn thiện và thiết yếu trong các hệ thống cơ sở dữ liệu, đóng vai trò quan trọng trong quản trị cơ sở dữ liệu Mặc dù không phải là ngôn ngữ lập trình như C, C++, hay Java, các câu lệnh SQL có thể được tích hợp vào các ngôn ngữ lập trình khác để phát triển ứng dụng tương tác với cơ sở dữ liệu Khác với các ngôn ngữ lập trình truyền thống, SQL mang tính khai báo, cho phép người dùng mô tả yêu cầu mà không cần chỉ định cách thực hiện Điều này khiến SQL trở thành ngôn ngữ dễ tiếp cận và sử dụng cho người mới bắt đầu.
SQL không phải là một hệ quản trị cơ sở dữ liệu độc lập, mà là một phần quan trọng trong các hệ quản trị cơ sở dữ liệu Nó đóng vai trò như ngôn ngữ giao tiếp giữa người sử dụng và hệ thống quản trị cơ sở dữ liệu Trong hầu hết các hệ quản trị cơ sở dữ liệu quan hệ, SQL thực hiện nhiều vai trò thiết yếu.
SQL là ngôn ngữ truy vấn tương tác, cho phép người dùng gửi yêu cầu đến cơ sở dữ liệu thông qua các công cụ dễ sử dụng và nhận kết quả trả về một cách nhanh chóng.
SQL là ngôn ngữ lập trình chuyên dụng cho cơ sở dữ liệu, cho phép lập trình viên tích hợp các câu lệnh SQL vào trong các ngôn ngữ lập trình khác Điều này giúp xây dựng các ứng dụng có khả năng giao tiếp hiệu quả với cơ sở dữ liệu.
SQL là ngôn ngữ quản trị cơ sở dữ liệu, cho phép người quản trị quản lý cơ sở dữ liệu hiệu quả, định nghĩa các cấu trúc lưu trữ dữ liệu và kiểm soát quyền truy cập vào cơ sở dữ liệu.
SQL là ngôn ngữ giao tiếp chính trong các hệ thống cơ sở dữ liệu khách/chủ, cho phép các ứng dụng phía máy khách tương tác hiệu quả với máy chủ cơ sở dữ liệu.
SQL là ngôn ngữ chính để truy cập và tương tác với dữ liệu trên Internet, được sử dụng phổ biến trên hầu hết các máy chủ Web và máy chủ cơ sở dữ liệu hiện nay.
SQL là ngôn ngữ giao tiếp chính trong các hệ quản trị cơ sở dữ liệu phân tán, cho phép các hệ thống khác nhau trên mạng trao đổi thông tin, gửi và nhận yêu cầu truy xuất dữ liệu một cách hiệu quả.
SQL là ngôn ngữ chuẩn dùng để giao tiếp giữa các hệ quản trị cơ sở dữ liệu trong mạng máy tính, giúp kết nối và tương tác hiệu quả với nhiều hệ thống khác nhau.
Transact-SQL is an extended version of SQL based on the ISO and ANSI standards, specifically designed for use in SQL Server, and differs from P-SQL used in Oracle While the standard SQL comprises about 40 commands, various database management systems may have slight modifications in their commands Consequently, the detailed syntax of these commands can vary across different database systems.
T-SQL được chia làm 3 nhóm:
- Ngôn ngữ định nghĩa dữ liệu (Data Definition Language-DDL)
- Ngôn ngữ thao tác dữ liệu (Data manipulation language-DML)
- Ngôn ngữ điều khiển dữ liệu (Data Control Language-DCL)
Ngôn ngữ định nghĩa dữ liệu
Ngôn ngữ định nghĩa dữ liệu (DDL) là một thành phần quan trọng của SQL, dùng để quản lý và định nghĩa các thuộc tính của cơ sở dữ liệu, bao gồm cấu trúc hàng, định nghĩa trường, khóa và vị trí lưu trữ Các câu lệnh DDL cho phép người dùng xây dựng, thay đổi hoặc xóa cấu trúc của các đối tượng cơ sở dữ liệu như cơ sở dữ liệu, bảng và view Trong chương này, chúng ta sẽ tập trung vào việc tìm hiểu các câu lệnh DDL liên quan đến cơ sở dữ liệu, bảng và view, trong khi các đối tượng khác như thủ tục, hàm và trigger sẽ được khám phá trong các chương tiếp theo.
Các câu lệnh DDL có dạng như sau:
2.2.1 Tạo đối tượng Để tạo một đối tượng, dùng cú pháp Create
1) Tạo cơ sở dữ liệu
Tác dụng: Câu lệnh CREATE DATABASE tạo ra một cơ sở dữ liệu
[,MAXSIZE=]
[,FILEGROWTH=]
[,MAXSIZE=]
[,FILEGROWTH=]
Nơi chứa cơ sở dữ liệu được định nghĩa là không gian lưu trữ thông tin, trong khi tên cơ sở dữ liệu là cách gọi để tham chiếu đến nó Tên này không chỉ được sử dụng khi truy cập cơ sở dữ liệu mà còn trong các quá trình như sao lưu, xuất, nhập và thu nhỏ cơ sở dữ liệu.
FILENAME: Định nghĩa tên tệp tin lưu trong ổ cứng
SIZE: Xác định dung lượng của cơ sở dữ liệu khi khởi tạo
MAXSIZE: Xác định dung lượng lớn nhất của cơ sở dữ liệu khi khởi tạo
FILEGROWTH: Xác định dung lượng khởi tạo cùng dung lượng tối đa cho phép tăng trong quá trình thêm dữ liệu vào cơ sở dữ liệu
LOG ON: Cho phép quản lý những chuyển tác xảy ra trong quá trình sử dụng cơ sở dữ liệu của SQL Server
COLLATE là lệnh dùng để xác định bản đối chiếu mặc định cho cơ sở dữ liệu, cho phép người dùng chỉ định tên của bản đối chiếu, có thể là tên của bản đối chiếu Windows hoặc tên bản đối chiếu SQL.
FOR ATTACH: Xác định cơ sở dữ liệu được tạo bằng cách gắn một tập các file hệ thống đang tồn tại
FILENAME=‟D:\BT_SQL\DATA\qlmbhdat.mdf‟
NAME=‟QlmbhLog‟, FILENAME=‟D:\BT_SQL\DATA\qlmbhlog.mdf‟, SIZE=5,
Tác dụng: Câu lệnh CREATE TABLE tạo ra một bảng trong một cơ sở dữ liệu
CREATE TABLE [Database_Name.[ower].]
[IDENTITY(Seed,increament) [NOT FOR REPLICATION]]]
[]
- Database_Name: Tên cơ sở dữ liệu
- Table_Name: Tên bảng dữ liệu
- Column_Name: Tên trường dữ liệu
- Data_Type: Kiểu dữ liệu
- DEFAULT: Giá trị mặc nhiên
- IDENTITY: Xác định giá trị tăng tự động của trường, seed là giá trị khởi đầu, increament là bước tăng
- NULL|NOT NULL: Cho phép trường chấp nhận giá trị Null không
- Column Constraint: Xác định trường có bị ràng buộc không
- Column_Name: Xác định trường ảo (giá trị của trường được xây dựng từ trường khác)
The database schema includes a table with various fields: 'sbd' as a non-null varchar of 20 characters, 'hoten' as nullable text for names, 'ngaysinh' for date of birth in datetime format, and 'gioitinh' as a non-null bit indicating gender with a default value of 0 Additionally, 'quequan' stores nullable text for hometown, while 'dtoan', 'dly', and 'dhoa' are nullable floats representing scores The 'maut' and 'man' fields are non-null nvarchars of 20 characters each, and 'sophong' is an integer that can be null.
Tác dụng: Câu lệnh CREATE VIEW tạo ra một view
CREATE VIEW [Database_Name.[ower].]
- Database_Name: Tên cơ sở dữ liệu
- View_Name: Tên View cần tạo
- COLUMN_NAME_LIST: Danh sách các trường được sử dụng cho view
- SELECT STATEMENT: Câu lệnh SQL định nghĩa View
WITH CHECK OPTION đảm bảo rằng tất cả các câu lệnh thay đổi dữ liệu trong view phải tuân thủ các tiêu chuẩn của SQL Khi một dòng dữ liệu được thay đổi qua View, WITH CHECK OPTION cam kết rằng dữ liệu vẫn sẽ hiển thị chính xác sau khi sửa đổi được thực hiện.
- ENCRYPTION: Ngăn chặn View công bố như là một phần của bản sao SQL Server
SCHEMABINDING là tính năng giúp ngăn chặn sự thay đổi của các bảng dữ liệu mà view sử dụng Khi áp dụng SCHEMABINDING, câu lệnh select_statement cần phải bao gồm tên đầy đủ (schema.object) của bảng, view hoặc hàm do người dùng định nghĩa Tất cả các đối tượng được tham chiếu phải thuộc cùng một cơ sở dữ liệu.
- VIEWMETADATA: Cho phép tất cả dữ liệu các trường có thể được cập nhật khi dữ liệu nguồn thay đổi
Ví dụ: Đưa ra các thông tin gồm số báo danh, họ tên, tổng điểm 3 môn của các thí sinh use qlts go
CREATE VIEW vidu(Sobd, hoten, tongd)
Select sbd, hoten, dtoan+dly+dhoa
1) Sửa cơ sở dữ liệu
Tác dụng: Câu lệnh ALTER DATABASE dùng để chỉnh sửa các thông số của cơ sở dữ liệu
{ADD FILE File_specification[…,n][TO FILEGROUP filegroupname]|
ADD LOG FILE File_specification[…,n]|
ADD FILEGROUP |
MODIFY LOG FILE File_specification|
REMOVE FILE [WITH DELETE]|
REMOVE FILEGROUP
[,MAXSIZE=]
[,FILEGROWTH=]
- ADD FILE: Thêm tệp tin mới
- ADD LOG FILE: Thêm tệp tin log
- ADD FILEGROUP: Thêm nhóm các tệp tin
- MODIFY FILE: Hiệu chỉnh các thuộc tính trong tệp tin
- MODIFY LOG FILE:Hiệu chỉnh các thuộc tính trong tệp tin log
- MODIFY NAME: Thay đổi tên mới của cơ sở dữ liệu
- REMOVE FILE: Xóa bỏ tệp tin
- REMOVE FILEGROUP:Xóa bỏ nhóm các tệp tin
Ví dụ 1: Sửa dung lượng file cơ sở dữ liệu qlmbh
Ví dụ 2: Đổi tên file cơ sở dữ liệu qlmbh
Tác dụng: Lệnh ALTER TABLE dùng để thay đổi cấu trúc bảng Sử dụng ALTER TABLE để thêm, sửa hoặc xóa trường trong bảng cũng như các ràng buộc
[ALTER COLUMN ]|
[ADD ]|
- Table_Name: là tên bảng cần thay đổi;
- ALTER COLUMN: là thay đổi trường;
- Column_Name: là tên trường cần bổ sung, thay đổi hay xóa;
- New_data_type: là kiểu dữ liệu thay đổi cho trường;
- ADD là bổ sung trường hoặc ràng buộc vào bảng;
- DROP COLUMN là xóa trường từ bảng
- DROP CONSTRAINT là xóa ràng buộc
Ví dụ: Thêm trường Số chứng minh thư (SOCMT) vào bảng thí sinh
Tác dụng: Lệnh ALTER VIEW dùng để thay đổi cấu trúc view
ALTER VIEW Database_Name.[ower].]
Ví dụ: Thêm điều kiện tìm kiếm thí sinh theo quê quán là „Nam Dinh‟ cho view Vidu use qlts go
Select sbd, hoten, dtoan+dly+dhoa
1) Xóa cơ sở dữ liệu
Tác dụng: Lệnh DROP DATABASE dùng để xóa cơ sở dữ liệu
Với là tên cơ sở dữ liệu sẽ bị xóa
Lệnh DROP TABLE được sử dụng để xóa bảng khỏi cơ sở dữ liệu, đồng thời loại bỏ tất cả các đối tượng liên quan như chỉ mục, trigger, ràng buộc và quyền truy cập đối với bảng đó.
Với là tên bảng dữ liệu sẽ bị xóa
Lệnh DROP VIEW được sử dụng để xóa view khỏi cơ sở dữ liệu, đồng thời loại bỏ định nghĩa và tất cả thông tin liên quan đến view khỏi danh mục hệ thống Khi thực hiện xóa, mọi quyền truy cập vào view cũng sẽ bị xóa.
Với là tên View sẽ bị xóa
Ví dụ: Xóa view ví dụ
2.2.4 Các loại ràng buộc dữ liệu
Trong cơ sở dữ liệu, khi có sự thay đổi dữ liệu trong bảng, các thay đổi này phải tuân theo quy luật nhất định để đảm bảo tính ràng buộc toàn vẹn giữa các bảng có quan hệ Ràng buộc (Constraints) được sử dụng để kiểm tra sự biến đổi dữ liệu như thêm, xóa, hoặc cập nhật từ nhiều nguồn khác nhau, chẳng hạn như SQL Server, Visual Basic, Java, C#, và nhiều ngôn ngữ khác Khi dữ liệu thay đổi, quá trình kiểm tra ràng buộc sẽ được thực hiện để xác minh tất cả các điều kiện và quy luật đã thiết lập Nếu dữ liệu không thỏa mãn các điều kiện này, SQL Server sẽ thông báo rằng dữ liệu không hợp lệ và không cho phép cập nhật hoặc thay đổi trong cơ sở dữ liệu.
- Ràng buộc miền (Domain constraints)
- Ràng buộc thực thể (Entity constraints)
- Ràng buộc toàn vẹn (Reference intergrity constraints)
- Ràng buộc khóa chính (Primary Key constraints)
- Ràng buộc khóa ngoại (Foreign Key constraints)
- Ràng buộc duy nhất (Unique constraints)
- Ràng buộc kiểm tra (Check constraints)
- Ràng buộc mặc nhiên (Default constraints)
1) Ràng buộc miền (Domain constraints)
Ràng buộc miền liên quan đến một hoặc nhiều trường dữ liệu, với các quy luật và tiêu chuẩn tương ứng cho từng trường Khi thực hiện thêm hoặc cập nhật bản ghi, ràng buộc này sẽ tự động kiểm tra mà không cần xem xét sự liên quan của các bản ghi trong bảng.
2) Ràng buộc thực thể (Entity constraints)
Ràng buộc thực thể là một yếu tố quan trọng liên quan đến việc quản lý bản ghi Khi thực hiện việc thêm hoặc cập nhật các bản ghi, ràng buộc này sẽ kiểm tra xem dữ liệu có đáp ứng đúng tiêu chuẩn đã đề ra hay không.
3) Ràng buộc toàn vẹn (Reference intergrity constraints)
Ràng buộc toàn vẹn là một yếu tố quan trọng trong cơ sở dữ liệu, liên quan đến mối quan hệ giữa bảng hiện tại và các bảng khác Khi thực hiện thao tác thêm hoặc cập nhật bản ghi, ràng buộc sẽ kiểm tra xem giá trị của trường có phù hợp với trường tương ứng trong bảng liên quan hay không.
4) Ràng buộc khóa chính (Primary Key constraints)
Ràng buộc Primary Key xác định khoá chính của bảng, bao gồm một hoặc nhiều trường với giá trị duy nhất trong bảng Giá trị của khoá chính cho phép xác định duy nhất một dòng (bản ghi) trong dữ liệu Mỗi bảng chỉ có thể có một khoá chính duy nhất và khoá chính không chấp nhận giá trị NULL.
Ràng buộc Primary Key đóng vai trò quan trọng trong việc đảm bảo tính toàn vẹn thực thể và toàn vẹn tham chiếu trong cơ sở dữ liệu Mỗi khi có sự thay đổi hoặc cập nhật trên trường Primary Key, hệ thống sẽ thực hiện kiểm tra ràng buộc này để duy trì tính chính xác và nhất quán của dữ liệu.
[CONSTRAINT tên_ràng_buộc]PRIMARY KEY [(danh_sách_trường)]
Nếu khóa chính của bảng chỉ có một trường và ràng buộc Primary Key được áp dụng ở mức trường, thì không cần chỉ định danh sách trường sau từ khóa Primary Key.
Ngôn ngữ thao tác dữ liệu
Ngôn ngữ thao tác dữ liệu bao gồm các câu lệnh: SELECT, INSERT, UPDATE, DELETE, dùng để thao tác với dữ liệu trong bảng
Các câu lệnh trong ngôn ngữ thao tác dữ liệu:
Tác dụng: Dùng để lọc các mẩu tin
SELECT distinct [ ]
FROM
WHERE
GROUPE BY
HAVING
ORDER BY < tên_trường số_thứ_tự_trường biểu_thức>, [ASC/ DESC ]
Để lấy thông tin các mặt hàng đã được bán với tổng số lượng lớn hơn 50, bạn có thể sử dụng câu lệnh SQL sau: "SELECT Mathang.mamh, Mathang.tenmh, SUM(muaban.soluong) AS tongsl FROM qlmbh WHERE tongsl > 50 GROUP BY Mathang.mamh, Mathang.tenmh ORDER BY SUM(muaban.thanhtien) DESC." Danh sách kết quả sẽ hiển thị mã mặt hàng, tên mặt hàng, tổng số lượng và thành tiền, được sắp xếp theo thứ tự giảm dần của thành tiền.
The query calculates the total revenue (thanhtien) by summing the product of quantity (soluong) and unit price (dongia) from the Mathang and Muaban tables It filters the results where the product ID (mamh) matches between the two tables and only includes sales with a specific identifier (muaban=1) The results are grouped by product ID and name, displaying only those with total quantities exceeding 50 Finally, the results are sorted in descending order based on total revenue.
Câu lệnh SELECT cho phép chỉ định các trường và biểu thức cần hiển thị trong kết quả truy vấn Các trường và biểu thức này được liệt kê ngay sau từ khóa SELECT, cách nhau bằng dấu phẩy Để chọn tất cả các trường, bạn có thể sử dụng dấu *.
Khi thực hiện truy vấn trên nhiều bảng hoặc View có các trường trùng tên, các trường này cần được định danh rõ ràng trong danh sách chọn bằng cách sử dụng cú pháp: tên_bảng.tên_trường.
Trong kết quả truy vấn, tiêu đề mặc định của các trường sẽ là tên tương ứng trong bảng Để làm cho các tiêu đề này trở nên thân thiện hơn, chúng ta có thể đổi tên chúng Để đặt tiêu đề cho một trường, ta sử dụng cách viết cụ thể.
- Cách 1: Tiêu_đề_trường = tên_trường
- Cách 2: Tên_trường AS tiêu_đề_trường
- Cách 3: Tên_trường tiêu_đề_trường
Ví dụ: Đưa ra các thông tin gồm: số báo danh, họ tên, ngày sinh, quê quán của mỗi thí sinh use qlts
Select 'Số báo danh' = sbd, Hoten as 'Họ tên', ngaysinh 'Ngày sinh',quequan From Thisinh
Hình 2.3 Kết quả khi xác định tiêu đề trường
Mệnh đề FROM trong SQL được sử dụng để chỉ định các bảng và view mà từ đó dữ liệu sẽ được truy xuất Sau FROM, bạn cần liệt kê danh sách tên các bảng và view tham gia vào truy vấn, với các tên này được phân cách bởi dấu phẩy.
Mệnh đề WHERE được sử dụng để xác định các điều kiện truy xuất dữ liệu, chỉ hiển thị những dòng dữ liệu thỏa mãn điều kiện logic được chỉ định trong kết quả truy vấn.
Mệnh đề where được biểu diễn dạng:
WHERE [NOT]
WHERE [NOT] [ NOT ] LIKE
WHERE [NOT] [ NOT ] BETWEEN WHERE [NOT] [ NOT ] IN ()
WHERE [NOT] EXISTS ()
WHERE [NOT] < phép_sánh > ANY ALL () WHERE [NOT]
WHERE [NOT]
WHERE [NOT] ANDORNOT
Ký tự đại diện cho phép toán Like
STT Ký tự Ý nghĩa Ví dụ
1 % Chuỗi ký tự bất kỳ gồm không hoặc nhiều ký tự
2 _ Một ký tự bất kì
3 [] Một ký tự nằm trong giới hạn được chỉ định
[a-f] chỉ một trong các ký tự: a, b, c, d, e, f
4 [^] Một ký tự không nằm trong giới hạn được chỉ định
[^a-f] hàm ý chỉ một ký tự khác tất cả các ký tự: a, b, c, d, e, f
Giá trị NULL trong cơ sở dữ liệu cho phép một trường không có dữ liệu nhận giá trị NULL khi không có thông tin được nhập hoặc không có giá trị mặc định Người dùng cũng có thể trực tiếp gán giá trị NULL cho trường Đối với các trường có kiểu dữ liệu số, giá trị NULL sẽ xuất hiện nếu giá trị chỉ định gây tràn số Để kiểm tra xem một trường có giá trị NULL hay không trong mệnh đề WHERE, ta sử dụng cú pháp phù hợp.
Cách 1: WHERE tên_trường IS NULL
Cách 2: WHERE tên_trường IS NOT NULL
4) Sắp xếp kết quả truy vấn
Mặc định, dữ liệu trong kết quả truy vấn được sắp xếp theo thứ tự trong bảng hoặc theo chỉ mục Để sắp xếp dữ liệu theo giá trị của một hoặc nhiều trường, cần sử dụng mệnh đề ORDER BY, theo sau là danh sách các trường (tối đa 16 trường) Dữ liệu có thể được sắp xếp theo chiều tăng (ASC) hoặc giảm (DESC), với mặc định là sắp xếp theo chiều tăng Nếu có nhiều trường sau ORDER BY, việc sắp xếp sẽ được ưu tiên từ trái qua phải.
Phép hợp trong SQL cho phép gộp kết quả từ hai hoặc nhiều truy vấn thành một tập kết quả duy nhất, sử dụng toán tử UNION để thực hiện chức năng này.
[ORDER BY trường_sắp_xếp]
[COMPUTE danh_sách_hàm_gộp [BY danh_sách_trường]]
- câu_lệnh_ 1,…., câu_lệnh_ 1 có dạng:
SELECT danh_sách_trường [INTO tên_bảng_mới]
[FROM danh_sách_bảng|View]
[GROUP BY danh_sách_trường]
Mệnh đề ORDER BY và COMPUTE được sử dụng để sắp xếp kết quả truy vấn hoặc tính toán giá trị thống kê, nhưng chỉ có thể áp dụng ở cuối câu lệnh UNION và không được phép sử dụng trong bất kỳ truy vấn thành phần nào.
Mặc định, trong các truy vấn thành phần của phép hợp, những dòng dữ liệu giống nhau sẽ chỉ xuất hiện một lần trong kết quả Để giữ lại tất cả các dòng dữ liệu, bao gồm cả những dòng giống nhau, cần sử dụng từ khóa ALL trong truy vấn.
Các nguyên tắc khi sử dụng toán tử UNION:
- Danh sách trường trong các truy vấn thành phần phải có cùng số lượng
Trong mỗi truy vấn thành phần, các trường tương ứng trong tất cả các bảng hoặc bất kỳ tập con nào của các trường phải có cùng kiểu dữ liệu.
Trong mỗi truy vấn thành phần của câu lệnh UNION, các trường tương ứng phải xuất hiện theo thứ tự giống nhau Điều này là cần thiết vì phép so sánh giữa các trường được thực hiện theo thứ tự đã được chỉ định trong từng truy vấn.
Khi kết hợp các kiểu dữ liệu khác nhau bằng câu lệnh UNION, chúng sẽ được chuyển đổi sang kiểu dữ liệu cao hơn nếu có thể Tiêu đề trường trong kết quả của phép hợp sẽ dựa trên tiêu đề trường được chỉ định trong truy vấn đầu tiên.
- Phép toán UNION có thể được sử dụng bên trong câu lệnh INSERT
- Phép toán UNION không được sử dụng trong câu lệnh CREATE VIEW
Ngôn ngữ điều khiển dữ liệu
Ngôn ngữ điều khiển dữ liệu (DCL) là công cụ quan trọng để thiết lập quyền truy cập cho các đối tượng trong cơ sở dữ liệu, giúp bảo mật thông tin hiệu quả Quyền truy cập được quản lý thông qua các câu lệnh GRANT, REVOKE và DENY, đảm bảo rằng chỉ những người dùng được phép mới có thể truy cập hoặc thay đổi dữ liệu.
Tác dụng: Đặc quyền Grant được sử dụng khi cơ sở dữ liệu được chia sẻ với các người dùng khác
ALL: gán tất cả các quyền cho đối tượng với người dùng đó Statement : các lệnh được gán cho người dùng đó
TO Security_Account: quyền sẽ được gán cho người dùng này
Table_Name : tên của bảng mà các đặc quyền được đưa ra
Ví dụ: Gán quyền SELECT cho người dùng JOHN trên bảng Employee trong cơ sở dữ liệu AdventureWorks
Tác dụng: Lệnh REVOKE dùng để xóa các quyền đã gán trên các đối tượng của người dùng trong cơ sở dữ liệu hiện hành
REVOKE {ALL | statement[, ]} ON Table_Name FROM Security_Account [, ]
Ví dụ: Xóa quyền SELECT trên bảng Employee của người dùng JOHN trong cơ sở dữ liệu AdventureWorks
Tác dụng: Lệnh DENY dùng để ngăn quyền của người dùng
Ví dụ: Ngăn quyền SELECT của người dùng JOHN đối với bảng Employee trong cơ sở dữ liệu AdventureWorks
Thực thi T-SQL
SQL Server 2008 cung cấp nhiều phương pháp để thực thi các câu lệnh Transact-SQL, cho phép thực hiện các câu lệnh này dưới dạng đơn lẻ hoặc theo lô.
- Các câu lệnh đơn: Xử lý câu lệnh đơn là cách phổ biến mà SQL Server 2008 thực thi các câu lệnh
Một lô trong SQL Server là tập hợp các câu lệnh Transact-SQL, được kết thúc bằng từ khóa "Go", và được gửi đồng thời từ một ứng dụng để thực thi.
+ Các câu lệnh này được biên dịch thành một đơn vị thực thi và được gọi là
+ Các câu lệnh trong “execution plan” được thực hiện cùng một lúc
Các câu lệnh SQL có thể được thực thi thông qua script bằng cách lưu trữ trong tập tin có phần mở rộng *.sql Tập tin này sẽ được đọc và thực thi khi có yêu cầu.