Hướng dẫn sử dụng SQL Server 2019 cho người mới bắt đầu

MỤC LỤC

Các đặc điểm của hệ quản trị CSDL SQL Server 2019 Microsoft SQL Server có các đặc điểm sau

Tích hợp với Internet (Integr tion with Internet): SQL Server hỗ trợ kiểu dữ liệu XML, là một kiểu dữ liệu, một chuẩn trong việc tr o đổi dữ liệu trên Internet. Ngoài r , SQL Server còn hỗ trợ một số đặc tính khác nhƣ hỗ trợ c ng cụ English Query để người phát triển hệ thống có thể truy vấn dữ liệu thân thiện hơn; cung cấp dịch vụ Microsoft Search Services có khả năng t m kiếm rất m nh, đặc biệt thích hợp cho phát triển ứng dụng Web; SQL Server tương tích với ngôn ngữ SQL chuẩn (ANSI/ISO SQL-92); có công cụ hỗ trợ s o lưu dữ liệu nh nh chóng, tự động; Có tài liệu hướng dẫn trực tuyến.

Hệ thống tập tin

Dễ cài đặt (Easy Installation): SQL Server cung cấp các công cụ quản trị và phát triển để cho người sử dụng dễ dàng cài đặt, sử dụng và quản l hệ thống. File log (Log files): File log chứ tất cả các th ng tin về nhật ký làm việc c ng nhƣ tất cả các th ng tin cần thiết cho việc phục hồi CSDL.

Các đối tƣợng bên trong của SQL Server

Là một tập hợp các phát biểu SQL đƣợc bi n dịch trước được lưu l i dưới một cái t n, các lần sử dụng s u ch cần cung cấp t n củ Stored Procedure, SP là một đơn vị xử l trong CSDL. SQL Server 2019 Web: Ấn bản web này là tùy chọn chi phí thấp cho các máy chủ lưu trữ web và VAP Web để cung cấp khả năng mở rộng, chi phí thấp và khả năng quản trị cho các web quy mô nhỏ tới lớn.

Giới thiệu về cài đặt MS SQL Server phiên bản 2019

    20 Chúng ta có thể cài đặt SQL Server 2019 trên Windows, Linux hay Docker container và trong giáo trình này sẽ hướng dẫn cách cài đặt SQL Server 2019 trên Windows. - Phải cài SQL Server 2019 trước khi cài Red Gate SQL(SQL Toolbelt). Các bước cài đặt. Cài đặt Microsoft SQL Server 2019 Express. Có thể vào đường dẫn s u để tải Microsoft SQL Server 2019 Express. https://www.microsoft.com/en-us/sql-server/sql-server-downloads ) Bước 2: T m đến Express edition of SQL Server 2019 và chọn Download now.

    Hình  1-11: Cửa sổ cài đặt SQL Server 2019
    Hình 1-11: Cửa sổ cài đặt SQL Server 2019

    Các thao tác cơ bản trên giao diện người dùng (UI) của SQL Server 1. Đăng nhập vào SQL Server

    Tạo, xóa CSDL

    Cơ sở dữ diệu QLSINHVIEN- quản l điểm sinh viên củ Trường ĐH Quảng N m đƣợc sử dụng làm ví dụ xuyên suốt trong giáo trình.

    Tạo bảng dữ liệu mới và các thuộc tính

    Data Type: Kiểu dữ liệu củ các trường thuộc tính ( sẽ giới thiệu trong mục KIỂU DỮ LIỆU TRONG SQL). Để chọn một hoặc một số thuộc tính nào đó làm khó chính th chọn các thuộc tính đó, kích chuột phải chọn Set Primary Key.

    Hình  2-7: Cơ sở dữ liệu QLSV
    Hình 2-7: Cơ sở dữ liệu QLSV

    Tạo database Diagram (mô hình CSDL)

    S o lưu ( B ckup) và phục hồi (Restore) dữ liệu trong sql server là một trong những thao tác quan trọng mà người quản trị cơ sở dữ liệu phải thực hiện. Nếu như th o tác s o lưu (B ckup database) được thực hiện để lưu dữ liệu và được thực hiện thường xuyên thì thao tác phục hồi dữ liệu (Restore database) ch đƣợc thực hiện khi nào máy chủ bị sự cố như hư ổ cứng hoặc dữ liệu bị mất do người dùng vô tình hoặc cố xoá,… Ngoài r th o tác phục hồi dữ liệu c ng đƣợc thực hiện để sao chép database từ máy chủ này sang máy chủ khác.

    Hình  2-18: Cửa sổ hoàn tất việc tạo database Diagram
    Hình 2-18: Cửa sổ hoàn tất việc tạo database Diagram

    Các loại Backup

    Quá tr nh full b ckup và differenti l b ckup chiếm nhiều tài nguy n hệ thống và ảnh hưởng đến hiệu suất làm việc hệ thống n n thường được thực hiện vào s u giờ làm việc. Tr ns ction log b ckup sử dụng tài nguy n hệ thống ít hơn rất nhiều so với full b ckup và differenti l b ckup, do đó có thể sử dụng transaction log backup bất kỳ thời gi n nào mà kh ng sợ ảnh hưởng đến hiệu suất hệ thống.

    Các thao tác thực hiện quá trình Backup và Restore CSDL trong SQL Server

    Mỗi khi tr ns ction log được s o lưu, SQL Server bỏ đi các tr ns ction đã thực hiện thành c ng (committed tr cs ction) và ghi các tr ns ction vào phương tiện s o lưu. 42 Ch ng t chọn CSDL cần s o lưu, kích chuột phải chọn Properties, trong cử sổ Properties, ch ng t thiết lập các th ng số cần thiết cho quá tr nh s o lưu.

    Hình  2-22: Cửa sổ thiết lập các thông số sao lưu  ữ liệu
    Hình 2-22: Cửa sổ thiết lập các thông số sao lưu ữ liệu

    Bài tập thực hành

    - Giới thiệu các ngôn ngữ truy vấn: Ngôn ngữ định nghĩ dữ liệu, ngôn ngữ thao tác dữ liệu, ngôn ngữ điều khiển dữ liệu. Trong đó, ng n th o tác dữ liệu là ngôn ngữ nhằm thực hiện việc truy xuất trong các bảng nhằm phục vụ nhu cầu khai thác thông tin.

    Bảng MonHoc
    Bảng MonHoc

    Ngôn ngữ truy vấn có cấu trúc (SQL)

      SQL là ngôn ngữ cơ sở dữ liệu phân tán: Đối với các hệ quản trị cơ sở dữ liệu phân tán, mỗi một hệ thống sử dụng SQL để giao tiếp với các hệ thống khác trên m ng, gởi và nhận các yêu cầu truy xuất dữ liệu với nhau. SQL là ngôn ngữ sử dụng cho các cổng giao tiếp cơ sở dữ liệu: Trong một hệ thống m ng máy tính với nhiều hệ quản trị cơ sở dữ liệu khác nhau, SQL thường được sử dụng như là một chuẩn ngôn ngữ để giao tiếp giữa các hệ quản trị cơ sở dữ liệu.

      Bảng dưới đây m  tả các toán tử trong SQL Server và mức độ ưu ti n  của các toán tử đó
      Bảng dưới đây m tả các toán tử trong SQL Server và mức độ ưu ti n của các toán tử đó

      Ngôn ngữ định nghĩa dữ liệu – DDL

        Ví dụ 3-3: Câu lệnh dưới đây định nghĩ bảng Sinhvien với các cột masv (mã sinh viên), ho ten (họ và tên), gioitinh (giới tính), ngaysinh (ngày sinh của sinh viên), dienthoai (điện tho i), diachi (địa ch liên hệ), malop (mã lớp sinh viên theo học). Tuy nhi n, nếu việc khai báo khoá chính đƣợc tiến hành ở mức bảng (sử dụng khi số lƣợng các cột th m gi vào khoá là từ h i trở l n) th bắt buộc phải ch định d nh sách cột ng y s u từ khó primary key và t n các cột đƣợc phân cách nh u bởi dấu phẩy.

        Ngôn ngữ thao tác dữ liệu – DML

        Thêm, cập nhật và xóa dữ liệu

        Lưu : Trong trường hợp một thuộc tính nào được thiết lập kiểu dữ liệu là identity là “YES” th t kh ng cần th m giá trị trường này mà SQL sẽ tự động t o ra một giá trị cho trường này. Mệnh đề WHERE trong câu lệnh UPDATE đƣợc sử dụng để ch định các dòng dữ liệu chịu tác động củ câu lệnh (nếu kh ng ch định, ph m vi tác động củ câu lệnh đƣợc hiểu là toàn bộ các dòng trong bảng).

        Câu lệnh truy xuất dữ liệu SELECT 1. Câu lệnh truy vấn dạng tổng quát

        Mệnh đề GROUP BY sử dụng trong câu lệnh SELECT nhằm phân ho ch các dòng dữ liệu trong bảng thành các nhóm dữ liệu, và tr n mỗi nhóm dữ liệu thực hiện tính toán các giá trị thống k nhƣ tính tổng, tính giá trị trung b nh, ..( sẽ đề cập trong phần thống kê). Một điểm khác biệt giữa HAVING và WHERE là mệnh đề WHERE dùng để lọc các dòng dữ liệu hiện đ ng có trong bảng và điều kiện củ WHERE kh ng đƣợc có các hàm gộp, trong khi đó mệnh đề HAVING ch đƣợc phép sử dụng đi kèm theo mệnh đề GROUP BY dùng để lọc l i dữ liệu s u khi đã nhóm và l i cho phép sử dụng các hàm gộp trong điều kiện củ m nh.

        Phép hợp (UNION)

        Mệnh đề HAVING đƣợc sử dụng nhằm ch định điều kiện đối với các giá trị thống k được sản sinh từ các hàm gộp tương tự như cách thức mệnh đề WHERE thiết lập các điều kiện cho câu lệnh SELECT.  Khi các kiểu dữ liệu khác nh u đƣợc kết hợp với nhau trong câu lệnh UNION, chúng sẽ được chuyển sang kiểu dữ liệu tương thích (nếu có thể chuyển đổi kiểu dữ liệu đƣợc).

        Các loại phép kết nối trong SQL Server

        - Phép kết nối ngoài trái (Left Outer Join, ký hiệu: *=): Phép kết nối này hiển thị trong kết quả truy vấn tất cả các dòng dữ liệu của bảng nằm bên trái trong điều kiện kết nối cho dù những dòng này không thỏ mãn điều kiện của phép kết nối. - Phép kết nối ngoài phải (Right Outer Join, ký hiệu: =*): Phép kết nối này hiển thị trong kết quả truy vấn tất cả các dòng dữ liệu của bảng nằm bên phải trong điều kiện kết nối cho dù những dòng này không thỏ điều kiện của phép kết nối.

        Cấp quyền truy cập – câu lệnh Grant C pháp

        Những câu truy vấn có ANY hay IN đều có thể chuyển thành câu truy vấn có EXISTS.

        Bài tập chương 3 1. Câu hỏi ôn tập

        Bài tập thực hành

        Hiển thị danh sách gồm: MaSV, HoTen, MaLop, NgaySinh (dd/mm/yyyy), GioiTinh (Nam, Nữ) , Namsinh của những sinh viên có họ không bắt đầu bằng chữ N,L,T. Hiển thị danh sách gồm: MaSV, HoTen, MaLop, NgaySinh (dd/mm/yyyy), GioiTinh (Nam, Nữ) , Namsinh của những sinh viên nam học lớp DT20CTT01 có mã lớp là 2.

        Khung nhìn (View) 1. Giới thiệu

        Tạo khung nhìn

        119 The attempted insert or update failed because the target view either specifies WITH CHECK OPTION or spans a view that specifies WITH CHECK OPTION and one or more rows resulting from the operation did not qualify under the CHECK OPTION constraint. - Có thể đặt tên cột trong mỗi khung nhìn bằng cách viết một danh sách tên nằm trong dấu ngoặc đơn ng y s u t n khung nh n, hoặc bằng cách viết các tên mới trong mệnh đề SELECT.

        Sửa cấu trúc khung nhìn

        + Trong kết quả củ câu lệnh SELECT có ít nhất một cột đƣợc sinh r bởi một biểu thức (tức kh ng phải là một t n cột trong bảng cơ sở) và cột đó chƣ đƣợc đặt ti u đề. Nếu nhƣ bảng đƣợc th m chiếu trong View chứ cột có ràng buộc NOT NULL kh ng phải là một phần củ View th ch ng t phải gán giá trị mặc định cho cột này để có thể th m dữ liệu cho bản ghi.

        Bẫy sự kiện ( Trigger) 1. Định nghĩa

          Dùng trigger để kiểm soát, ngăn chặn và có thể hủy bỏ những thao tác kh ng đ ng quy tắc trong việc th y đổi dữ liệu hoặc nhằm đảm bảo tính toàn vẹn cho liệu và cho ra những câu thông báo thích hợp với người dùng. Giao tác là một tiến trình xử l có xác định điểm đầu và điểm cuối, đƣợc chia nhỏ thành các thao tác, tiến tr nh đƣợc thực thi một cách tuần tự và độc lập các th o tác đó theo nguy n tắc hoặc tất cả đều thành công hoặc một thao tác thất b i thì toàn bộ tiến trình thất b i.

          Bài tập chương 6 1. Câu hỏi ôn tập

          Bài tập thực hành 1. Bài tập View

          T o view SVCNTT bao gồm các thông tin: Masv, hoten, tenlop chứa danh sách sinh viên học các lớp CNTT (sinh viên lớp cntt là trong tên lớp có 3 ký tự giữa là CTT ). T o một Trigger khi thêm một sinh viên trong bảng SINHVIEN ở một lớp nào đó th cột Siso của lớp đó trong bảng DMLOP tự động tăng l n 1.

          Bài tập tự giải 1. Bài tập View

          T o view có tên vw_CTPNHAP_VT_PN_DH bao gồm các thông tin sau: số phiếu nhập hàng, ngày nhập hàng, số đơn đặt hàng, mã nhà cung cấp, mã vật tƣ, t n vật tƣ, số lƣợng nhập, đơn giá nhập, thành tiền nhập. Mục tiêu chương 5: Trong các chương trước, khi truy vấn dữ liệu xong chúng ta có thể lưu các nhóm câu lệnh SQL vào một file văn bản (d ng *.sql) để khi cần có thể sử dụng l i.

          Thủ tục lưu trữ 1. Giới thiệu

            Tốc độ truy cập dữ liệu nhanh hơn: Khi thực thi một câu lệnh SQL thì SQL Server phải kiểm tra quyền (permission) xem user gửi câu lệnh đó có đƣợc phép thực hiện h y kh ng đồng thời kiểm tra cú pháp rồi mới t o ra một kế ho ch thực thi và thực thi. Nâng cao khả năng bảo mật dữ liệu: Giả sử chúng ta muốn giới h n việc truy xuất dữ liệu trực tiếp của một user nào đó tr n một số bảng, ta có thể viết một thủ tục lưu trữ để truy xuất dữ liệu và ch cho phép user đó được sử dụng thủ tục lưu trữ đã viết sẵn mà thôi chứ không thể thao tác trực tiếp trên các bảng đó.

            Bài tập chương 5 1. Câu hỏi ôn tập

            Bài tập thực hành

            T o thủ tục: Hiển thị MaLop,TenLop, Tổng số SV mỗi lớp của khoa có mã ch định, Kiểm tr điều kiện MaKhoa có trong bảng Danh mục không, Nếu không có thì hiển thị thông báo Không có lớp này. T o thủ tục: Hiển thị danh sách gồm: MaSV, HoTen, MaLop, MaKhoa, NgaySinh (dd/mm/yyyy),GioiTinh (Nam, Nữ) của những sinh viên ở Khoa có mã ch định, Nếu không có thì hiển thị thông báo Không có sinh viên nào.

            Bảo mật trong SQL Server 1. Khái niệm

            Giới thiệu về cơ chế bảo mật trong SQL Server

            Như ch ng t đã biết trong các chương trước, SQL Server cho phép h i cơ chế chứng thực người dùng, đó là chứng thực cùng với hệ điều hành Windows NT, nghĩ là những i có quyền đăng nhập vào Windows là có quyền đăng nhập vào SQL Server; cách chứng thực thứ h i là chứng thực trực tiếp vào SQL Server bằng một tài khoản do SQL Server quản l. Mức trong cùng (mức thứ 3) là mức xác định quyền củ người dùng s u khi đƣợc phép truy cập vào CSDL có đƣợc phép truy cập, đƣợc phép thực hiện các câu lệnh SQL tr n những đối tƣợng cụ thể (chẳng h n nhƣ một bảng h y một Store Procedure cụ thể nào đó) củ CSDL đó h y kh ng.

            Mã hóa dữ liệu trong SQL Server

            Mức bảo mật này c ng li n qu n đến việc phân quyền mà ch ng t sẽ khảo sát trong các phần tiếp theo. Giờ ch ng t sẽ thử t o một bảng chứ số th tín dụng và số CMND, s u đó sẽ mã hoá dữ liệu này th ng qu phương pháp mã hoá mật khẩu.

            Các lỗ hổng bảo mật thường gặp trong SQL Server

            Điều này có thể xảy r khi một cột có kiểu dữ liệu kiểu số được sử dụng trong truy vấn SQL nhưng lập tr nh vi n l i thiếu bước kiểm tra dữ liệu đầu vào để xác minh kiểu của dữ liệu mà người dùng nhập vào có phải là số h y kh ng. Nó có thể gây r sự s i khác khi hiển thị nội dung của một trang chứ lỗi bảo mật này, hậu quả củ sự tấn c ng SQL injection d ng này khiến cho lập tr nh vi n h y người dùng phải mất rất nhiều thời gi n để phục hồi chính xác từng bit dữ liệu.

            Phân quyền người dùng trong SQL Server 1. Tài khoản đăng nhập vào SQL Server

              Mỗi Login dùng để truy cập vào hệ thống SQL Server, các lo i Login ch có quyền truy cập vào Server chứ chƣ hẳn có quyền truy cập vào các Database trên Server, các quyền truy cập vào D t b se thường được gắn liền với các người dùng CSDL (Users). Quản l t n người dùng (Usern me) và t n đăng nhập (Login name) Ví dụ s u đây ch r quá tr nh cấp quyền đăng nhập cho một người dùng củ Windows có quyền đăng nhập vào SQL Server và s u đó tiếp tục cấp quyền truy cập đến CSDL cho phép người dùng này truy cập vào CSDL BOOKS.

              Hình  6-8:  Đặt tên User
              Hình 6-8: Đặt tên User

              Cấu hình Microsoft SQL Server

              Cho phép tiếp nhận các kết nối từ xa trên SQL Server

              Ch ng t kích ho t chức năng quản l cấu h nh của SQL Server là SQL Server Surface Area Configuration (Click Start -> Programs -> Microsoft SQL Server 2019 -> Configuration Tools -> SQL Server Surface Area Configuration). Lưu : nếu ch ng t kh ng cần sử dụng SQL Server thường xuy n, t có thể để chế độ khởi động củ dịch vụ MSSQLSERVER là m nu l (nghĩ là khi nào cần dùng th sẽ kích ho t) nhằm giảm bớt thời gi n khởi động Windows và tiết kiệm tài nguy n hệ thống.

              Kích hoạt dịch vụ SQL Server Browser

              Để kích ho t dịch vụ SQL Server Browser, cần làm theo các bước sau: Vào Start -> Program -> Microsoft SQL Server 2019 -> Configuration Tools, click SQL Server Surface Area Configuration. Trong trang SQL Server 2019 Surface Area Configuration, nhấn n t Surface Area Configuration for Services and Connections, trong trang Surface Area Configuration for Services and Connections, nhấn n t SQL Server Browser, s u đó chọn Automatic for Startup type và nhấn n t Apply.

              Tạo các ngoại lệ trên Windows Firewall

              194 vụ SQL Server Browser một lần bất kể ch ng t có b o nhi u thể hiện củ SQL Server đ ng đƣợc sử dụng (running). Lưu : tương tự như dịch vụ MSSQLSERVER, nếu chọn st rtup type là Autom tic th dịch vụ SQL Server Browser sẽ đƣợc khởi động khi Windows khởi động.

              Kết nối vào SQL Server trong các ngôn ngữ lập trình

              Kết nối vào SQL Server trong các ngôn ngữ lập trình C#

              Khi xây dựng một ứng dụng có sử dụng CSDL th số lần truy cập vào CSDL thường rất nhiều, việc truy cập thường xuy n ở nhiều đo n mã khác nh u làm ch ng t lặp đi lặp l i việc kết nối vào CSDL, điều này làm cho mã code củ ch ng t phức t p và dài dòng. Chính v vậy, việc xây dựng sẳn một lớp kết nối để từ đó, khi cần ch ng t có thể gọi thực thi việc truy cập vào CSDL là hết sức cần thiết, điều này gi p ch ng t kiểm soát mã tốt hơn, làm giảm c ng sức lập tr nh và mã code củ ch ng t c ng đỡ dài dòng gi p dễ đọc hơn.

              Bài tập chương 7 1. Câu hỏi ôn tập