1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình mô đun Hệ quản trị cơ sở dữ liệu (Nghề: Công nghệ thông tin - Trình độ: Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Bạc Liêu

62 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hệ quản trị Cơ sở dữ liệu
Người hướng dẫn P. Thầy Nguyễn Văn A
Trường học Trường Cao Đẳng Kinh Tế - Kỹ Thuật Bạc Liêu
Chuyên ngành Công nghệ Thông tin
Thể loại Giáo trình môn học
Năm xuất bản 2021
Thành phố Bạc Liêu
Định dạng
Số trang 62
Dung lượng 2,1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • Chương 1 (7)
    • 1. Dữ liệu (7)
    • 2. Cơ sở dữ liệu (Database) (7)
    • 3. Quản lý dữ liệu (8)
      • 3.1. Quản lý dữ liệu bằng file (8)
      • 3.2. Quản lý dữ liệu bằng CSDL (8)
    • 4. Các mô hình CSDL (8)
      • 4.1. Mô hình dữ liệu file (8)
      • 4.2. Mô hình dữ liệu phân cấp (9)
      • 4.3. Mô hình dữ liệu mạng (9)
      • 4.4. Mô hình dữ liệu quan hệ (10)
      • 4.5. Mô hình dữ liệu hướng đối tượng (10)
    • 5. Hệ quản trị CSDL (11)
    • 6. Hệ quản trị CSDL quan hệ (11)
  • Chương 2 (14)
    • 1. Thực thể (14)
    • 2. Mối kết hợp (15)
      • 2.1. Mối kết hợp 1 – 1 (15)
      • 2.2. Mối kết hợp 1 – N (15)
      • 2.3. Mối kết hợp N – N (15)
    • 3. Sơ đồ ERD (15)
    • 4. Các bước tạo mô hình (16)
  • Chương 3 (19)
    • 1. Qui ƣớc ký hiệu (0)
    • 2. Khái niệm khoá trên các hệ quản trị CSDL (19)
      • 2.1. Khoá chính (Primary Key) (19)
      • 2.2. Khoá ngoại (Foreign Key) (19)
    • 3. Quy tắc chuyển đổi ERD sang mô hình dữ liệu quan hệ (20)
      • 3.1. Tập thực thể (20)
      • 3.2. Mối kết hợp 1 – 1 (20)
      • 3.3. Mối kết hợp 1 – N (20)
      • 3.4. Mối kết hợp N – N (21)
      • 3.5. Mối kết hợp 3 ngôi (Ba thực thể tham gia vào mối kết hợp) (21)
      • 3.6. Thuộc tính đa trị (Thuộc tính có nhiều giá trị cho một thể hiện) (21)
  • Chương 4 (26)
    • 1. Tạo tên cơ sở dữ liệu (26)
    • 2. Tạo bảng (26)
    • 3. Thêm dữ liệu (28)
    • 4. Cập nhật dữ liệu (28)
    • 5. Xoá dữ liệu (29)
  • Chương 5 (36)
    • 1. Giới thiệu ngôn ngữ SQL (36)
    • 2. Truy vấn dữ liệu (DQL-Data Query Language) (36)
      • 2.1. Câu lệnh SELECT (36)
      • 2.2. Câu lệnh SELECT DISTINCT (38)
      • 2.3. Mệnh đề WHERE (39)
      • 2.4. Bí danh (41)
      • 2.5. Hàm MIN() và MAX() (42)
      • 2.6. Các hàm COUNT(), AVG() và SUM() (43)
      • 2.7. Từ khóa INNER JOIN (44)
      • 2.8. Từ khóa ORDER BY (45)
      • 2.9. Mệnh đề GROUP BY (47)
      • 2.10. Mệnh đề HAVING (49)
      • 2.11. Toán tử LIKE (50)
      • 2.12. Toán tử BETWEEN (53)
      • 2.13. Toán tử AND, OR và NOT (55)
      • 2.14. Toán tử IN (56)
      • 2.15. Toán tử ANY, ALL và truy vấn con (57)
      • 2.16. Mệnh đề LIMIT (58)

Nội dung

Giáo trình mô đun Hệ quản trị cơ sở dữ liệu (Nghề: Công nghệ thông tin - Trình độ: Cao đẳng) - Trường CĐ Kinh tế - Kỹ thuật Bạc Liêu có cấu trúc gồm 05 chương: Tổng quan về CSDL; Mô hình thực thể kết hợp; Mô hình dữ liệu quan hệ; Cài đặt CSDL; Truy vấn dữ liệu trong SQL. Mời các bạn cùng tham khảo giáo trình.

Dữ liệu

Dữ liệu là các thông tin của đối tượng (người, vật, một khái niệm, sự việc…) được lưu trữ trên máy tính

Dữ liệu được mô tả dưới nhiều dạng khác nhau (các ký tự, ký số, hình ảnh, ký hiệu, âm thanh…) Mỗi cách mô tả gắn với một ngữ nghĩa nào đó

Dữ liệu về đối tƣợng có thể khác nhau, tùy thuộc vào ngữ cảnh

Ví dụ: dữ liệu về đối tƣợng sinh viên

Quản lý điểm: Tên, mã sinh viên, điểm môn 1, điểm môn 2, điểm môn 3

Quản lý nhân thân: Tên, địa chỉ, ngày sinh, quê quán, lớp.

Cơ sở dữ liệu (Database)

Cơ sở dữ liệu (CSDL) là tập hợp dữ liệu đƣợc tổ chức có cấu trúc liên quan với nhau và được lưu trữ trong máy tính

CSDL được thiết kế, xây dựng cho phép người dùng lưu trữ dữ liệu, truy xuất thông tin hoặc cập nhật dữ liệu

CSDL được tổ chức có cấu trúc: Các dữ liệu được lưu trữ có cấu trúc thành các bản ghi (record), các trường dữ liệu (field) Các dữ liệu lưu trữ có mối quan hệ (relation) với nhau

CSDL đƣợc cấu trúc để dễ dàng truy cập, quản lý và cập nhật.

Quản lý dữ liệu

Quản lý dữ liệu là quản lý một số lượng lớn dữ liệu, bao gồm cả việc lưu trữ và cung cấp cơ chế cho phép Thao tác (thêm, sửa, xóa dữ liệu) và Truy vấn dữ liệu Hai phương pháp quản lý dữ liệu: Hệ thống quản lý bằng file và Hệ thống quản lý bằng CSDL

3.1 Quản lý dữ liệu bằng file

Dữ liệu được lưu trữ trong các file riêng biệt Ví dụ: các chương trình lưu trữ thông tin bằng hệ thống các file dạng text

Nhược điểm của việc quản lý bằng file:

- Dƣ thừa và mâu thuẫn dữ liệu

- Kém hiệu quả trong truy xuất ngẫu nhiên hoặc xử lý đồng thời

- Dữ liệu lưu trữ rời rạc

- Gặp vấn đề về an toàn và bảo mật

3.2 Quản lý dữ liệu bằng CSDL

Quản lý dữ liệu bằng CSDL giúp dữ liệu được lưu trữ một cách hiệu quả và có tổ chức, cho phép quản lý dữ liệu nhanh chóng và hiệu quả.

Các mô hình CSDL

4.1 Mô hình dữ liệu file

CSDL dạng file phẳng thường là file kiểu văn bản chứa dữ liệu dạng bảng

 Ví dụ một file phẳng thể hiện thông tin về Customer (Khách hàng) dưới dạng bảng của công ty Northwind Traders

4.2 Mô hình dữ liệu phân cấp

Tổ chức theo hình cây, mỗi nút biểu diễn một thực thể dữ liệu Liên hệ dữ liệu thể hiện trên liên hệ giữa nút cha và nút con Mỗi nút cha có thể có một hoặc nhiều nút con, nhƣng mỗi nút con chỉ có thể có một nút cha

4.3 Mô hình dữ liệu mạng

Các file riêng biệt trong hệ thống file phẳng đƣợc gọi là các bản ghi Tập hợp bản ghi cùng kiểu tạo thành một kiểu thực thể dữ liệu

Các kiểu thực thể kết nối với nhau thông qua mối quan hệ cha-con

Mô hình dữ liệu mạng biểu diễn bởi một đồ thị có hướng, và các mũi tên chỉ từ kiểu thực thể cha sang kiểu thực thể con

4.4 Mô hình dữ liệu quan hệ

Trong mô hình dữ liệu quan hệ, không có các liên kết vật lý Dữ liệu đƣợc biểu diễn dưới dạng bảng với các hàng và các cột: CSDL là tập hợp các bảng (còn gọi là quan hệ) Mỗi hàng là một bản ghi (record), còn đƣợc gọi là bộ (tuple) Mỗi cột là một thuộc tính, còn được gọi là trường (field)

4.5 Mô hình dữ liệu hướng đối tượng

Mỗi đối tượng bao gồm các thuộc tính, phương thức (hành vi) của đối tượng Các đối tượng trao đổi với nhau thông qua các phương thức Một đối tượng có thể đƣợc sinh ra từ việc thừa kế từ đối tƣợng khác, nạp chồng (hay định nghĩa lại) phương thức của đối tượng khác…

Hệ quản trị CSDL

Các mô hình CSDL đề cập đến các hình thức tổ chức lưu trữ và truy cập dữ liệu Hệ quản trị CSDL (DataBase Management System – DBMS) là các phần mềm giúp tạo các CSDL và cung cấp cơ chế lưu trữ, truy cập theo các mô hình CSDL

Ví dụ: SQL Server, Microsoft Access, Oracle là các hệ quản trị CSDL điển hình cho mô hình quan hệ IMS của IBM là hệ quản trị CSDL cho mô hình phân cấp IDMS là hệ quản trị CSDL cho mô hình mạng

Quản trị các CSDL và cung cấp giao diện truy cập để che dấu các đặc tính phức tạp về mặt cấu trúc tổ chức dữ liệu vật lý

Hỗ trợ các ngôn ngữ giao tiếp Ví dụ: Ngôn ngữ mô tả, định nghĩa dữ liệu – DDL Ngôn ngữ thao tác dữ liệu – DML Ngôn ngữ truy vấn dữ liệu có cấu trúc – SQL có cơ chế an toàn, bảo mật cao.

Hệ quản trị CSDL quan hệ

Hệ quản trị CSDL quan hệ là một dạng DBMS đƣợc sử dụng phổ biến nhất, trong đó tất cả dữ liệu được tổ chức chặt chẽ dưới dạng các bảng dữ liệu Tất cả các thao tác trên CSDL đều diễn ra trên các bảng

Người dùng liên quan đến Hệ quản trị CSDL quan hệ: Người quản trị CSDL (DataBase Administrator), Người thiết kế CSDL (DataBase Designer), Người phân tích hệ thống (System Analyst), Người lập trình ứng dụng (Application Programmer), Người thiết kế và triển khai CSDL (DBMS Designer and Implementer), Người dùng cuối (End User)

Câu 1 Ƣu điểm cơ sở dữ liệu: a Giảm dƣ thừa, nhất quán và toàn vẹn của dữ liệu.* b Các thuộc tính đƣợc mô tả trong nhiều tệp dữ liệu khác nhau c Khả năng xuất hiện mâu thuẫn và không nhất quán dữ liệu d Xuất hiện dị thường thông tin

Câu 2 Dị thường thông tin có thể: a Dữ liệu nhất quán và toàn vẹn b Không xuất hiện mâu thuẫn thông tin c Thừa thiếu thông tin trong lưu trữ.* d Phản ánh đúng hiện thực khách quan dữ liệu

Câu 3 Người sử dụng có thể truy cập: a Toàn bộ cơ sở dữ liệu b Hạn chế c Một phần cơ sở dữ liệu d Phụ thuộc vào quyền truy cập*

Câu 4 Hệ quản trị CSDL DBMS (DataBase Management System) là: a Hệ thống phần mềm điều khiển các chiến lược truy nhập và tổ chức lưu trữ cơ sở dữ liệu.* b Tạo cấu trúc dữ liệu tương ứng với mô hình dữ liệu c Cập nhật, chèn thêm, loại bỏ hay sửa đổi dữ liệu mức tệp d Đảm bảo an toàn, bảo mật dữ liệu và tính toàn vẹn dữ liệu

Câu 5 Đặc trƣng của một mô hình dữ liệu: a Người sử dụng có quyền truy cập tại mọi lúc, mọi nơi b Tính ổn định, tính đơn giản, cần phải kiểm tra dƣ thừa, đối xứng và có cơ sở lý thuyết vững chắc.* c Biểu diễn dữ liệu đơn giản và không cấu trúc d Mô hình dữ liệu đơn giản

Câu 6 Khi thao tác bằng ngôn ngữ thao tác dữ liệu trên CSDL phân cấp: a Có nhiều khả năng xảy ra dị thường thông tin.* b Đảm bảo tính độc lập của dữ liệu c Đảm bảo tính toàn vẹn của dữ liệu d Đảm bảo tính ổn định

Câu 7 Đặc trƣng cấu trúc của mô hình mạng là: a Chứa các liên kết một - một, một - nhiều và nhiều - nhiều b Chứa các liên kết một - một và một - nhiều.* c Chứa các liên kết nhiều - một và một - nhiều

Câu 8 Trong CSDL mạng, khi thêm các bản ghi mới: a Đảm bảo đƣợc tính nhất quán và tính toàn vẹn của dữ liệu.* b Dƣ thừa thông tin c Không đảm bảo tính nhất quán và toàn vẹn của dữ liệu d Mâu thuẫn thông tin

Câu 9 Trong mô hình cơ sở dữ liệu quan hệ: a Thứ tự của các cột là không quan trọng.* b Thứ tự của các hàng là không quan trọng c Thứ tự của các hàng là quan trọng d Thứ tự của các cột là quan trọng

Câu 10 Phụ thuộc nào sau đây là phụ thuộc đầy đủ: a (Số hoá đơn, mã khách hàng) Họ tên khách hàng b (Số chứng minh thƣ, mã nhân viên) Quá trình công tác c (Số thứ tự, mã lớp) Họ tên sinh viên.* d (Mã báo, mã khách hàng) Giá báo

Thực thể

Là đối tƣợng cần quản lý, đƣợc biểu diễn thực thể bởi hình chữ nhật và có danh sách các thuộc tính Ví dụ về thực thể nhân viên

Mối kết hợp

Thể hiện mối liên quan giữa hai hay nhiều thực thể Mỗi liên kết có một tên gọi và thường dùng động từ

Ví dụ, một Nhân viên Làm việc tại một Phòng ban nào đó và một Nhân viên có thể là Trưởng phòng của một Phòng ban

Mỗi đối tượng của thực thể thứ nhất tương ứng với 1 và chỉ 1 đối tượng của thực thể thứ 2 và ngƣợc lại

Ví dụ, mỗi giảng viên đƣợc cấp 1 và chỉ một máy tính Một máy tính chỉ đƣợc cấp cho 1 và chỉ một giảng viên

Mỗi đối tượng của thực thể thứ nhất tương ứng với nhiều đối tượng của thực thể thứ 2

Ví dụ, mỗi sinh viên thuộc một và chỉ một lớp Một lớp có nhiều sinh viên

Mỗi đối tượng của thực thể thứ nhất tương ứng với nhiều đối tượng của thực thể thứ 2 và ngƣợc lại

Ví dụ, Mỗi sinh viên học một hoặc nhiều môn học Một môn học có một hoặc nhiều sinh viên học.

Các bước tạo mô hình

Để tạo ERD, chúng ta thực hiện 2 bước sau:

- Bước 1 Xác định thực thể và thuộc tính bao gồm thuộc tính khoá và thuộc tính đa trị

- Bước 2 Xác định mối quan hệ có thể có giữa các thực thể, thuộc tính mối kết hợp

Câu 1 Trường khóa chính là trường:

Câu 2 Câu nào trong các câu dưới đây sai khi nói về hệ CSDL khách-chủ?

[a] Trong kiến trúc khách-chủ, các thành phần (của hệ QTCSDL) tương tác với nhau tạo nên hệ thống gồm thành phần yêu cầu tài nguyên và thành phần cấp tài nguyên

[b] Hai thành phần yêu cầu tài nguyên và thành phần cấp tài nguyên phải cài đặt trên cùng một máy tính

[c] Thành phần cấp tài nguyên thường được cài đặt tại một máy chủ trên mạng (cục bộ)

[d] Thành phần yêu cầu tài nguyên có thể cài đặt tại nhiều máy khác (máy khách) trên mạng

Câu 3 Hãy chọn phương án đúng Hai bảng trong một CSDL quan hệ liên kết với nhau thông qua:

[a] Địa chỉ của các bảng

[c] Thuộc tính của các trường được chọn (không nhất thiết phải là khóa)

Câu 4 Câu nào trong các câu dưới đây sai khi nói về hệ CSDL cá nhân?

[a] Người dùng đóng vai trò là người quản trị CSDL

[b] Tính an toàn của hệ CSDL cá nhân rất cao

[c] Hệ CSDL cá nhân được lưu trữ trên 1 máy

[d] Hệ CSDL chỉ cho phép 1 người dùng tại một thời điểm

Câu 5 Tiêu chí nào sau đây thường được dùng để chọn khóa chính?

[a] Khóa có ít thuộc tính nhất

[b] Không chứa các thuộc tính thay đổi theo thời gian

[d] Chỉ là khóa có một thuộc tính

Câu 6 Thế nào là cơ sở dữ liệu quan hệ?

[a] Cơ sở dữ liệu đƣợc xây dựng dựa trên mô hình dữ liệu quan hệ

[b] Cơ sở dữ liệu dùng để tạo lập, cập nhật và khai thác CSDL quan hệ

[c] Cơ sở dữ liệu đƣợc xây dựng dựa trên mô hình dữ liệu quan hệ và khai thác CSDL quan hệ

[d] Cơ sở dữ liệu dùng để tạo lập, cập nhật và khai thác CSDL quan hệ dựa trên mô hình dữ liệu quan hệ

Câu 7 Liên kết giữa các bảng đƣợc dựa trên:

[b] Các thuộc tính trùng tên nhau giữa các bảng

[c] Ý định của người quản trị hệ CSDL

[d] Ý định ghép các bảng thành một bảng có nhiều thuộc tính hơn

Câu 8 Câu nào sai trong các câu dưới đây khi nói về ưu điểm của hệ CSDL khách- chủ?

[a] Chi phí cho truyền thông giảm

[b] Bổ sung thêm máy khách là dễ dàng

[c] Phát triển và sử dụng các hệ CSDL khách-chủ khá đơn giản, dễ dàng

[d] Nâng cao khả năng đảm bảo tính nhất quán của dữ liệu

Câu 9 Khẳng định nào sau đây về CSDL quan hệ là đúng?

[a] Tập hợp các bảng dữ liệu

[b] Cơ sở dữ liệu đƣợc tạo ra từ hệ QTCSDL Access

[c] Cơ sở dữ liệu mà giữa các dữ liệu có quan hệ với nhau

[d] Cơ sở dữ liệu đƣợc xây dựng trên mô hình dữ liệu quan hệ

Câu 10 Câu nào sai trong các câu dưới đây?

[a] Mỗi bảng có ít nhất một khóa

[b] Nên chọn khóa chính là khóa có ít thuộc tính nhất

[c] Trong một bảng có thể có nhiều khóa chính

[d] Việc xác định khóa phụ thuộc vào quan hệ logic của các dữ liệu chứ không phụ thuộc vào giá trị các dữ liệu

Bài 1: Thiết kế cơ sở dữ liệu quản lý đào tạo

Mỗi sinh viên gồm họ tên, ngày sinh, giới tính, nơi sinh, số điện thoại và e- mail Đƣợc cấp một mã số sinh viên duy nhất và mỗi sinh viên chỉ thuộc về một lớp

Mỗi lớp học có một mã số lớp duy nhất, tên lớp và mỗi lớp chỉ thuộc về một khoa

Mỗi khoa có một tên khoa và một mã số khoa duy nhất

Mỗi môn học có tên môn học, số giờ và mã số môn học duy nhất

Mỗi giảng viên cần quản lý các thông tin nhƣ họ và tên giảng viên, một chuyên ngành và đƣợc cấp một mã số duy nhất Mỗi giảng viên thuộc một khoa

Mỗi sinh viên với một môn học đƣợc phép thi tối đa 2 lần, mỗi lần thi, điểm thi

Mỗi môn học ở mỗi lớp học chỉ phân công cho một giảng viên dạy và một giảng viên thì có thể dạy nhiều môn ở một lớp

Bài 2: Thiết kế cơ sở dữ liệu quản lý siêu thị

Mỗi khu vực có một mã số phân biệt, tên, chuyên bán 1 loại hàng

Mỗi loại hàng có một mã số, có tên và bao gồm nhiều mặt hàng

Mỗi mặt hàng có một mã số phân biệt, có tên, đơn vị tính, đơn giá bán hiện hành Mỗi mặt hàng có thể cung cấp bởi nhiều nhà cung ứng

Mỗi nhân viên chỉ làm việc tại một khu vực và có một mã số phân biệt, và các thông tin nhƣ: họ tên, ngày sinh ,địa chỉ, ngày vào làm việc

Mỗi nhà cung cấp có một mã số phân biệt, tên công ty, địa chỉ, phone, fax Lưu ý, mỗi nhà cung cấp có thể có nhiều số điện thoại

Mỗi khách hàng khi mua hàng, sẽ có một hóa đơn gồm số hóa đơn, ngày lập hóa đơn, tên khách mua, địa chỉ, và danh sách các mặt hàng mua kèm theo đơn giá bán

Bài 3: Thiết kế cơ sở dữ liệu quản lý forum:

Các thành viên tham gia diễn đàn có mã số là duy nhất, họ tên thành viên và mật khẩu Các bài viết có mã số bài viết, tiêu đề của bài viết và nội dung bài viết Các chủ đề của các bài viết có mã số chủ đề (thuộc tính khóa) và tên của chủ đề

Mỗi bài viết đƣợc đăng bởi một thành viên và mỗi thành viên có thể đăng nhiều bài viết Một bài viết phải thuộc một chủ đề và một chủ đề có thể có nhiều bài viết.

Khái niệm khoá trên các hệ quản trị CSDL

X đƣợc gọi là khoá chính của quan hệ Q nếu giá trị trên X phân biệt giữa các bộ Mỗi quan hệ chỉ đƣợc khai báo một khoá chính

Cho 2 quan hệ Q và R X đƣợc gọi là khoá ngoại của R nếu X là thuộc tính của

R và X là khoá chính của Q Tên thuộc tính trên khóa ngoại và khóa chính có thể khác nhau

Quy tắc chuyển đổi ERD sang mô hình dữ liệu quan hệ

Mỗi thực thể chuyển thành một quan hệ cùng tên và danh sách thuộc tính Thuộc tính khoá trở thành khoá chính của quan hệ

Ví dụ chuyển tập thực thể

Thuộc tính khoá bên này làm khoá ngoại bên kia hoặc ngược lại Bên dưới là ví dụ chuyển mối kết hợp 1 – 1

Thuộc tính khoá bên 1 làm khoá ngoại bên nhiều Ví dụ

Chuyển thành quan hệ mới có khoá chính gồm 2 thuộc tính khoá của 2 quan hệ; thuộc tính mối kết hợp (nếu có) trở thành thuộc tính của quan hệ mới Ví dụ

3.5 Mối kết hợp 3 ngôi (Ba thực thể tham gia vào mối kết hợp)

Chuyển thành quan hệ mới, có khoá chính gồm 3 thuộc tính khoá của 3 thực thể tham gia mối kết hợp Thuộc tính mối kết hợp (nếu có) trở thành thuộc tính của quan hệ mới Ví dụ

3.6 Thuộc tính đa trị (Thuộc tính có nhiều giá trị cho một thể hiện)

Chuyển thành quan hệ mới có khoá chính gồm thuộc tính đa trị và thuộc tính khoá của thực thể Sau khi chuyển thành quan hệ mới, thuộc tính đa trị sẽ biến mất khỏi thực thể cũ

Câu 1: Trường khóa chính là trường:

Câu 2: Hai bảng trong một CSDL quan hệ liên kết với nhau thông qua:

[a] Địa chỉ của các bảng

[c] Thuộc tính của các trường được chọn (không nhất thiết phải là khóa)

Câu 3: Tiêu chí nào sau đây thường được dùng để chọn khóa chính?

[a] Khóa có ít thuộc tính nhất

[b] Không chứa các thuộc tính thay đổi theo thời gian

[d] Chỉ là khóa có một thuộc tính

Câu 4: Thế nào là cơ sở dữ liệu quan hệ?

[a] Cơ sở dữ liệu đƣợc xây dựng dựa trên mô hình dữ liệu quan hệ

[b] Cơ sở dữ liệu dùng để tạo lập, cập nhật và khai thác CSDL quan hệ

[c] Cơ sở dữ liệu đƣợc xây dựng dựa trên mô hình dữ liệu quan hệ và khai thác CSDL quan hệ

[d] Cơ sở dữ liệu dùng để tạo lập, cập nhật và khai thác CSDL quan hệ dựa trên mô hình dữ liệu quan hệ

Câu 5: Liên kết giữa các bảng đƣợc dựa trên:

[b] Các thuộc tính trùng tên nhau giữa các bảng

[c] Ý định của người quản trị hệ CSDL

[d] Ý định ghép các bảng thành một bảng có nhiều thuộc tính hơn

Câu 6: Khẳng định nào sau đây về CSDL quan hệ là đúng?

[a] Tập hợp các bảng dữ liệu

[b] Cơ sở dữ liệu đƣợc tạo ra từ hệ QTCSDL Access

[c] Cơ sở dữ liệu mà giữa các dữ liệu có quan hệ với nhau

[d] Cơ sở dữ liệu đƣợc xây dựng trên mô hình dữ liệu quan hệ

Câu 7: Câu nào sai trong các câu dưới đây?

[a] Mỗi bảng có ít nhất một khóa

[b] Nên chọn khóa chính là khóa có ít thuộc tính nhất

[c] Trong một bảng có thể có nhiều khóa chính

[d] Việc xác định khóa phụ thuộc vào quan hệ logic của các dữ liệu chứ không phụ thuộc vào giá trị các dữ liệu

Câu 8: Trong quá trình cập nhật dữ liệu, đƣợc hệ quản trị CSDL kiểm soát để đảm bảo tính chất nào?

[a] Tính chất ràng buộc toàn vẹn

Câu 9: Hãy cho biết ý kiến nào là đúng Với một bảng dữ liệu, hệ QTCSDL cho phép:

[a] Xem nội dung các bản ghi

[b] Xem mối liên kết giữa bảng đó với các bảng khác

[c] Xem một số trường của mỗi bản ghi

Bài tập 1: Cho mô hình thực thể kết hợp nhƣ sau

Yêu cầu: Xác định bản số và thực hiện chuyển sang mô hình dữ liệu quan hệ Bài 2: Cho mô hình thực thể kết hợp nhƣ sau

Yêu cầu: Chuyển ERD sang mô hình dữ liệu quan hệ

Bài 3: Dựa vào mẫu hoá đơn bán hàng hãy thiết kế mô hình dữ liệu quan hệ

Trong đó: Số hoá đơn xác định đƣợc ngày tạo lập; Mã khách hàng xác định đƣợc tên khách hàng, địa chỉ; Mã hàng xác định đƣợc tên hàng hoá, đơn vị tính, đơn giá và số lƣợng

Bài 4: Thiết kế mô hình dữ liệu quan hệ dựa vào mẫu phiếu mƣợn sách trong thƣ viện

Trong đó: Số phiếu xác định đƣợc ngày mƣợn; Mã sinh viên xác định đƣợc tên sinh viên, mã lớp; Mã sách xác định đƣợc tên sách, nhà xuất bản, ghi chú

Tạo tên cơ sở dữ liệu

 Ví dụ tạo cơ sở dữ liệu QuanLyBanHang:

Tạo bảng

Tên_Cột Kiểu_Dữ_Liệu(Kích cỡ),

Tên_Cột Kiểu_Dữ_Liệu(Kích cỡ),

primary key (Khoá chính), foreign key (Khoá ngoại) references Bảng_Tham_Chiếu(Khoá ngoại)

Bảng tham chiếu phải tồn tại trước và có khoá chính tham gia làm khoá ngoại trong bảng đang đƣợc tạo

Nếu tạo bảng không có khoá ngoại thì loại bỏ dòng: foreign key (Khoá ngoại) references Bảng_Tham_Chiếu(Khoá ngoại)

Kiểu dữ liệu trong SQL Server

Kiểu dữ liệu Miêu tả char(n) Cố định độ rộng chuỗi Tối đa 8000 ký tự varchar(n) Không cố định độ rộng chuỗi Tối đa 8000 ký tự varchar(max) Không cố định độ rộng chuỗi Tối đa 1,073,741,824 ký tự text Không cố định độ rộng chuỗi Tối đa 2GB dữ liệu văn bản nchar(n) Tương tự kiểu dữ liệu char nhưng hỗ trợ Unicode nvarchar(n) Tương tự kiểu dữ liệu varchar nhưng hỗ trợ Unicode nvarchar(max) Tương tự kiểu dữ liệu varchar(max) nhưng hỗ trợ Unicode ntext Tương tự kiểu dữ liệu text nhưng hỗ trợ Unicode

Kiểu dữ liệu Miêu tả

Số nguyên tinyint Chứa các số từ 0 đến 255 smallint Chứa các số từ -32,768 đến 32,767 int Chứa các số từ -2,147,483,648 đến 2,147,483,647

Số thực float Chứa các số từ -1.79E + 308 đến 1.79E + 308

PHONGBAN gồm có tên phòng ban (khoá chính), số điện thoại

NHANVIEN gồm mã nhân viên (khoá chính), tên nhân viên, giới tính và tên phòng ban (khoá ngoại)

SDT varchar(15), primary key(TenPhong) )

TenPhong varchar(30), primary key(MaNv), foreign key(TenPhong) references PHONGBAN(TenPhong)

Thêm dữ liệu

Thêm dữ liệu cho các bảng với lưu ý dữ liệu cho khoá chính không được trùng và dữ liệu cho cột khoá ngoại phải tồn tại ở bảng tham chiếu

Insert Into Tên_Bảng Values (Dữ liệu cho cột thứ nhất, Dữ liệu cho cột thứ hai, )

- Dữ liệu kiểu chuỗi phải đặt trong dấu nháy đơn

- Số lƣợng cột và số lƣợng dữ liệu cho các cột phải giống nhau

Ví dụ thêm dữ liệu cho 2 bảng PHONGBAN và NHANVIEN

Thêm dữ liệu cho bảng PHONGBAN

Tên phòng ban Số điện thoại

Insert Into PHONGBAN Values ('Phòng IT', '(08)12345678');

Insert Into PHONGBAN Values ('Phòng nhân sự', '(08)12345679');

Thêm dữ liệu cho bảng NHANVIEN

Mã nhân viên Tên nhân viên Giới tính Tên phòng ban nv01 Nguyễn Tiến Lên Nam Phòng IT nv02 Trần Bình Nữ Phòng IT nv03 Huỳnh Tiến Tín Nam Phòng nhân sự

Insert Into NHANVIEN Values ('nv01','Nguyễn Tiến Lên','Nam','Phòng IT');

Insert Into NHANVIEN Values ('nv02','Trần Bình','Nữ','Phòng IT');

Insert Into NHANVIEN Values ('nv03','Huỳnh Tiến Tín','Nam','Phòng nhân sự');

Cập nhật dữ liệu

Thay đổi dữ liệu hiện có theo tiêu chí đặt ra và thông thường dữ liệu cho cột khoá chính không đƣợc thay đổi

Update Tên_Bảng Set Tên_Cột = Dữ_Liệu_Thay_Đổi Where Điều_Kiện_Thay_Đổi

 Ví dụ thay đổi tên phòng ban cho nhân viên có mã số nv02 thành Phòng nhân sự Câu lệnh cập nhật nhƣ sau:

Update NHANVIEN Set TenPhong = 'Phòng nhân sự' Where MaNv = 'nv02'

 Lưu ý trong trường hợp có nhiều điều kiện có thể sử dụng toán tử And (và), toán tử Or (hoặc) để lập điều kiện cho mệnh đề Where Ví dụ những nhân viên ở phòng IT và giới tính Nam; những nhân viên ở phòng IT hoặc phòng nhân sự.

Xoá dữ liệu

Xoá dữ liệu đã tồn tại trong các bảng, khi xoá dữ liệu lưu ý ràng buộc khoá ngoại

Delete From Tên_Bảng Where Điều_Kiện_Xoá_Dữ_Liệu

 Ví dụ xoá dữ liệu cho những nhân viên thuộc phòng nhân sự, câu lệnh nhƣ sau:

Delete From NHANVIEN Where TenPhong = 'Phòng nhân sự'

Trong trường hợp không có mệnh đề Where, đồng nghĩa với việc xoá tất cả dữ liệu của bảng

Câu 1 Trong quá trình cập nhật dữ liệu, đƣợc hệ quản trị CSDL kiểm soát để đảm bảo tính chất nào?

[a] Tính chất ràng buộc toàn vẹn

Câu 2 Hãy cho biết ý kiến nào là đúng Với một bảng dữ liệu, hệ QTCSDL cho phép:

[a] Xem nội dung các bản ghi

[b] Xem mối liên kết giữa bảng đó với các bảng khác

[c] Xem một số trường của mỗi bản ghi

Câu 3 Câu nào trong các câu dưới đây sai khi nói về hệ CSDL trung tâm?

[a] Là hệ CSDL được cài đặt trên máy tính trung tâm cho phép nhiều người sử dụng cùng một lúc

[b] Máy tính trung tâm này chỉ là một máy tính duy nhất

[c] Nhiều người dùng từ xa có thể truy cập vào CSDL này thông qua thiết bị đầu cuối và các phương tiện truyền thông

[d] Các hệ CSDL trung tâm thường rất lớn và có nhiều người dùng

Câu 4 Trong các ưu điểm dưới đây, ưu điểm nào không phải của các hệ CSDL phân tán?

[a] Dữ liệu có tính sẵn sàng

[b] Dữ liệu đƣợc chia sẻ trên mạng nhƣng vẫn cho phép quản trị dữ liệu địa phương

[c] Việc thiết kế CSDL đơn giản, chi phí thấp hơn

[d] Dữ liệu có tính tin cậy cao

Câu 5 Câu nào sai trong các câu dưới đây khi nói về ưu điểm của hệ CSDL khách- chủ?

[a] Khả năng truy cập rộng rãi đến các CSDL

[b] Phát triển và sử dụng các hệ CSDL khách-chủ khá đơn giản, dễ dàng

[c] Nâng cao khả năng thực hiện

[d] Chi phí cho phần cứng có thể giảm

Câu 6 Trong các phần mềm sau đây, phần mềm nào không phải là hệ quản trị CSDL quan hệ?

Câu 7 Đâu không phải là các bước xây dựng cơ sở dữ liệu?

Câu 8 Hãy chọn phương án trả lời đúng Có các câu trả lời sau cho câu hỏi : "Tại sao phải khai báo kích thước cho mỗi trường?"

[a] Để giúp hệ thống kiểm tra tính đúng đắn khi nhập dữ liệu

[b] Để có thể tính kích thước của bản ghi (bộ dữ liệu) và xác định vị trí các trường trong bản ghi

[c] Để hệ thống dự trữ vùng nhớ phục vụ ghi dữ liệu

Câu 9 Các bước chính để tạo CSDL:

[a] Tạo bảng; Chọn khóa chính cho bảng; Đặt tên bảng và lưu cấu trúc bảng; Tạo liên kết bảng

[b] Tạo bảng; Chọn khóa chính cho bảng; Đặt tên bảng và lưu cấu trúc bảng [c] Tạo bảng; Chọn khóa chính cho bảng; Lưu cấu trúc bảng; Tạo liên kết bảng; cập nhật và khai thác CSDL

[d] Tạo bảng; Chọn khóa chính cho bảng; Đặt tên bảng; Tạo liên kết bảng

Câu 10 SQL là tên viết tắt của:

Bài 1: Cài đặt cơ sở dữ liệu QuanLyDuAn gồm các bảng sau và thêm dữ liệu cho tất cả các bảng, mỗi bảng ít nhất 5 dòng

Tên cột Kiểu dữ liệu Ghi chú

Tên cột Kiểu dữ liệu Ghi chú

Tên cột Kiểu dữ liệu Ghi chú

Tên cột Kiểu dữ liệu Ghi chú

Tên cột Kiểu dữ liệu Ghi chú

Bài 2: Ứng dụng quản lý tài khoản ngân hàng liên quan đến việc quản lý các đối tƣợng khách hàng và quản lý các tài khoản của khách hàng Xây dựng CSDL quản lý tài khoản ngân hàng chính là việc xác định các thông tin về các đối tƣợng khách hàng và các thông tin về mỗi tài khoản Sau đây là yêu cầu chi tiết

Thông tin về khách hàng gồm có mã, họ tên, địa chỉ và số điện thoại Trong mã khách hàng là duy nhất

Mỗi khách hàng đƣợc cung cấp một tài khoản gồm số tài khoản, kiểu tài khoản, ngày mở tài khoản và số tiền

Một tài khoản có 1 hoặc nhiều giao dịch và mỗi giao dịch gồm mã giao dịch, thời gian giao dịch, số tiền giao dịch, số dƣ tài khoản và mô tả giao dịch

Yêu cầu: Cài đặt cơ sở dữ liệu bao gồm các bảng, tạo liên kết giữa các bảng và thêm dữ liệu tối thiểu là 5 dòng cho tất các bảng

Bài 3: Thực hiện các yêu cầu sau: a/ Tạo cơ sở dữ liệu nhƣ sau:

Tên cột Kiểu dữ liệu Ghi chú

Ten_Giao_Su Text Khoá chính

Tên cột Kiểu dữ liệu Ghi chú

Ma_Sach Int Khoá chính

Tên cột Kiểu dữ liệu Ghi chú

Ma_Sach Int b/ Nhập dữ liệu:

Ten_Giao_Su Khoa Tien_Luong

Ma_Sach Ten_Sach Tac_Gia

9024 Acting for Dummies Nicolas Cage

2122 To Kill a Mockingbird Harper Lee

9001 Achieving Super Saiyan Terry Crews

0022 How to be a Charger Terry Crews

3999 The Art of Learning Josh Waitzkin

8743 How to be a Sweet Cop Terry Crews

3422 IEOR - Master Level John Buckingham

2394 Game of Thrones: Book 1 George R.R Martin

9240 War and Peace Some Dude

3824 Going HAM for Derps A Cool Dude

8141 I Don't Read Much Developer of this App

Giới thiệu ngôn ngữ SQL

SQL viết tắt của Structured Query Language, là ngôn ngữ truy vấn có cấu trúc SQL cho phép chúng ta tạo cơ sở dữ liệu, thao tác trên dữ liệu như lưu trữ dữ liệu, sửa dữ liệu hoặc xóa dữ liệu hoặc truy vấn dữ liệu Đa số các hệ quản trị cơ sở dữ liệu hiện nay sử dụng SQL (MS SQL Server – T- SQL, Microsoft Access, Oracle – PL/SQL, DB2, MySQL…)

SQL có thể chia thành 4 nhóm:

Nhóm truy vấn dữ liệu (DQL): gồm các lệnh truy vấn lựa chọn (Select) để lấy thông tin nhƣng không làm thay đổi dữ liệu trong các bảng

Nhóm định nghĩa dữ liệu (DDL): Gồm các lệnh tạo, thay đổi các bảng dữ liệu (Create, Drop, Alter, …)

Nhóm thao tác dữ liệu (DML): Gồm các lệnh làm thay đổi dữ liệu lưu trong các bảng (Insert, Delete, Update,…)

Nhóm điều khiển dữ liệu (DCL): Gồm các lệnh quản lý quyền truy nhập vào dữ liệu và các bảng (Grant, Revoke, …)

Truy vấn dữ liệu (DQL-Data Query Language)

Bao gồm các lệnh cho phép truy vấn dữ liệu mà không làm thay đổi dữ liệu hoặc các đối tƣợng trong CSDL Đó là các truy vấn bắt đầu bằng từ khóa SELECT Trả về một bộ các thuộc tính hoặc một tập hợp các bộ thuộc tính

Câu lệnh SQL SELECT sử dụng để chọn dữ liệu từ một cơ sở dữ liệu Dữ liệu trả về được lưu trữ trong bảng kết quả, được gọi là tập kết quả

FROM table_name; Ở đây, column1 , column2 , là tên trường của bảng bạn muốn chọn dữ liệu Nếu bạn muốn chọn tất cả các trường sẵn dùng trong bảng, hãy dùng cú pháp sau đây:

Dưới đây là một lựa chọn từ bảng "Customers" trong cơ sở dữ liệu mẫu Northwind:

SELECT CustomerName, City FROM Customers;

Câu lệnh SELECT DISTINCT đƣợc sử dụng để trả về sự riêng biệt (khác nhau) giá trị

Bên trong bảng, một cột thường chứa nhiều giá trị trùng lặp; và đôi khi bạn chỉ muốn liệt kê các giá trị khác nhau (khác biệt)

Dưới đây là một lựa chọn từ bảng “Customers” trong cơ sở dữ liệu mẫu Northwind:

SELECT DISTINCT Country FROM Customers;

Mệnh đề WHERE đƣợc sử dụng để lọc bản ghi

Mệnh đề WHERE đƣợc sử dụng để trích xuất chỉ những bản ghi đáp ứng một điều kiện đƣợc chỉ định

Dưới đây là một lựa chọn từ bảng “Customers” trong cơ sở dữ liệu mẫu Northwind:

Câu lệnh SQL sau chọn tất cả khách hàng từ quốc gia "Mexico", trong bảng

Toán tử trong mênh đề WHERE

Bí danh đƣợc sử dụng để đặt tên tạm thời cho một bảng hoặc một cột trong bảng

Bí danh thường được sử dụng để làm cho tên cột dễ đọc hơn

Bí danh chỉ tồn tại trong thời gian truy vấn

Cú pháp bí danh cột:

SELECT column_name AS alias_name

Cú pháp bí danh bảng:

FROM table_name AS alias_name;

Cơ sở dữ liệu Demo:

Trong hướng dẫn này, chúng tôi sẽ sử dụng cơ sở dữ liệu mẫu Northwind nổi tiếng

Dưới đây là lựa chọn từ bảng "Customers":

Và lựa chọn từ bảng "Orders":

Ví dụ về bí danh cho cột

Câu lệnh SQL sau tạo hai bí danh, một cho cột CustomerID và một cho cột CustomerName:

SELECT CustomerID AS ID, CustomerName AS Customer

Câu lệnh SQL sau tạo hai bí danh, một cho cột CustomerName và một cho cột ContactName Lưu ý: Nó yêu cầu dấu ngoặc kép hoặc dấu ngoặc vuông nếu tên bí danh chứa khoảng trắng:

SELECT CustomerName AS Customer, ContactName AS [Contact Person] FROM Customers;

Câu lệnh SQL sau tạo một bí danh có tên "Address" kết hợp bốn cột (Address, PostalCode, City và Country):

SELECT CustomerName, Address + ', ' + PostalCode + ' ' + City + ', ' + Country AS Address

Ví dụ về bí danh cho bảng

Câu lệnh SQL sau đây chọn tất cả các đơn đặt hàng từ khách hàng với CustomerID = 4 (Around the Horn) Chúng tôi sử dụng bảng "Customers" và

"Orders" và cung cấp cho chúng bí danh bảng tương ứng là "c" và "o" (Ở đây chúng tôi sử dụng bí danh để làm cho SQL ngắn hơn):

FROM Customers AS c, Orders AS o

WHERE c.CustomerName='Around the Horn'

Câu lệnh SQL sau giống nhƣ trên, nhƣng không có bí danh:

SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName FROM Customers, Orders

WHERE Customers.CustomerName='Around the Horn'

AND Customers.CustomerID=Orders.CustomerID;

Bí danh có thể hữu ích khi:

- Có nhiều hơn một bảng liên quan đến một truy vấn

- Các hàm đƣợc sử dụng trong truy vấn

- Tên cột lớn hoặc không dễ đọc

- Hai hoặc nhiều cột đƣợc kết hợp với nhau

Hàm MIN() trả về giá trị nhỏ nhất của cột đã chọn

Hàm MAX() trả về giá trị lớn nhất của cột đã chọn

Dưới đây là một lựa chọn từ bảng "Products" trong cơ sở dữ liệu mẫu Northwind:

Câu lệnh SQL sau đây tìm thấy giá của sản phẩm rẻ nhất:

SELECT MIN(Price) AS SmallestPrice

Câu lệnh SQL sau đây tìm thấy giá của sản phẩm đắt nhất:

SELECT MAX(Price) AS LargestPrice

2.6 Các hàm COUNT(), AVG() và SUM()

Hàm COUNT() trả về số hàng phù hợp với một tiêu chí đƣợc chỉ định

Hàm AVG() trả về giá trị trung bình của một cột số

Hàm SUM() trả về tổng tổng của một cột số

Cơ sở dữ liệu Demo

Dưới đây là lựa chọn từ bảng "Products" trong cơ sở dữ liệu mẫu Northwind:

Câu lệnh SQL sau tìm số lƣợng sản phẩm:

Lưu ý: Giá trị NULL không được tính

Câu lệnh SQL sau tìm giá trung bình của tất cả các sản phẩm:

Lưu ý: Giá trị NULL bị bỏ qua

Cơ sở dữ liệu Demo

Dưới đây là lựa chọn từ bảng "OrderDetails" trong cơ sở dữ liệu mẫu Northwind:

Câu lệnh SQL sau tìm tổng của các trường "Quantity" trong bảng

Lưu ý: Giá trị NULL bị bỏ qua

Từ khóa INNER JOIN chọn các bản ghi có giá trị phù hợp trong cả hai bảng

ON table1.column_name = table2.column_name;

Cơ sở dữ liệu Demo:

Trong hướng dẫn này, chúng tôi sẽ sử dụng cơ sở dữ liệu mẫu Northwind nổi tiếng

Dưới đây là lựa chọn từ bảng "Orders":

Và lựa chọn từ bảng “Customers”:

Ví dụ về INNER JOIN:

Câu lệnh SQL sau chọn tất cả các đơn hàng có thông tin khách hàng:

SELECT Orders.OrderID, Customers.CustomerName

INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

Lưu ý: Từ khóa INNER JOIN chọn tất cả các hàng từ cả hai bảng miễn là có sự trùng khớp giữa các cột Nếu có các bản ghi trong bảng "Orders" không khớp trong

"Customers", các đơn đặt hàng này sẽ không đƣợc hiển thị!

Câu lệnh SQL sau chọn tất cả các đơn đặt hàng có thông tin khách hàng và người giao hàng:

SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName FROM ((Orders

INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID) INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);

Từ khóa ORDER BY đƣợc sử dụng để sắp xếp tập kết quả theo thứ tự tăng dần hoặc giảm dần

Từ khóa ORDER BY sắp xếp các bản ghi theo thứ tự tăng dần theo mặc định Để sắp xếp các bản ghi theo thứ tự giảm dần, hãy dùng từ khóa DESC

ORDER BY column1, column2, ASC|DESC;

Dưới đây là một lựa chọn từ bảng "Customers" trong cơ sở dữ liệu mẫu Northwind:

Câu lệnh SQL sau chọn tất cả khách hàng từ bảng "Customers", đƣợc sắp xếp theo cột "Country":

Câu lệnh SQL sau chọn tất cả khách hàng từ bảng "Customers", đƣợc sắp xếp GIẢM DẦN theo cột "Country":

Câu lệnh SQL sau chọn tất cả khách hàng từ bảng "Customers", đƣợc sắp xếp theo cột "Country" và "CustomerName" Điều này có nghĩa là nó đặt hàng theo Quốc gia, nhƣng nếu một số hàng có cùng Quốc gia, nó sẽ đặt hàng chúng theo CustomerName:

Câu lệnh SQL sau chọn tất cả khách hàng từ bảng "Customers", đƣợc sắp xếp tăng dần theo cột "Country" và giảm dần theo cột "CustomerName":

ORDER BY Country ASC, CustomerName DESC;

Mệnh đề GROUP BY nhóm các hàng có cùng giá trị thành các hàng tóm tắt, nhƣ "tìm số lƣợng khách hàng ở mỗi quốc gia"

Mệnh đề GROUP BY thường được sử dụng với các hàm tổng hợp (COUNT, MAX, MIN, SUM, AVG) để nhóm kết quả đƣợc đặt bởi một hoặc nhiều cột

Câu lệnh SQL sau liệt kê số lƣợng khách hàng ở mỗi quốc gia:

Câu lệnh SQL sau liệt kê số lƣợng khách hàng ở mỗi quốc gia, đƣợc sắp xếp cao đến thấp:

ORDER BY COUNT(CustomerID) DESC;

Mệnh đề HAVING đã đƣợc thêm vào SQL vì không thể sử dụng từ khóa WHERE với các hàm tổng hợp

Cơ sở dữ liệu Demo:

Dưới đây là lựa chọn từ bảng "Customers" trong cơ sở dữ liệu mẫu Northwind:

Câu lệnh SQL sau liệt kê số lƣợng khách hàng ở mỗi quốc gia Chỉ bao gồm các quốc gia có hơn 5 khách hàng:

Câu lệnh SQL sau liệt kê số lƣợng khách hàng ở mỗi quốc gia, đƣợc sắp xếp từ cao đến thấp (Chỉ bao gồm các quốc gia có hơn 5 khách hàng):

ORDER BY COUNT(CustomerID) DESC;

Cơ sở dữ liệu Demo:

Dưới đây là lựa chọn từ bảng "Orders" trong cơ sở dữ liệu mẫu Northwind:

Và lựa chọn từ bảng "Employees":

Thêm các ví dụ có HAVING:

Câu lệnh SQL sau liệt kê các nhân viên đã đăng ký hơn 10 đơn đặt hàng:

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders FROM (Orders

INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID) GROUP BY LastName

Câu lệnh SQL sau liệt kê nếu nhân viên "Davolio" hoặc "Fuller" đã đăng ký hơn 25 đơn đặt hàng:

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders FROM Orders

INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID WHERE LastName = 'Davolio' OR LastName = 'Fuller'

Toán tử LIKE đƣợc sử dụng trong mệnh đề WHERE để tìm kiếm một mẫu đƣợc chỉ định trong một cột

Có hai ký tự đại diện thường được sử dụng kết hợp với toán tử LIKE:

- “%” Dấu phần trăm đại diện cho các ký tự bằng không, một hoặc nhiều ký tự

- “_” Gạch dưới đại diện cho một ký tự duy nhất

Dưới đây là một số ví dụ cho thấy các toán tử LIKE khác nhau có ký tự đại diện '%' và '_':

Bảng dưới đây cho thấy bảng "Customers" hoàn chỉnh từ cơ sở dữ liệu mẫu Northwind:

Câu lệnh SQL sau chọn tất cả khách hàng có CustomerName bắt đầu bằng "a":

Câu lệnh SQL sau chọn tất cả khách hàng có CustomerName kết thúc bằng "a": SELECT * FROM Customers

Câu lệnh SQL sau đây chọn tất cả khách hàng có CustomerName có "hoặc" ở bất kỳ vị trí nào:

Câu lệnh SQL sau chọn tất cả khách hàng có CustomerName có "r" ở vị trí thứ hai:

Câu lệnh SQL sau chọn tất cả khách hàng có CustomerName bắt đầu bằng "a" và dài ít nhất 3 ký tự:

Câu lệnh SQL sau chọn tất cả khách hàng có ContactName bắt đầu bằng "a" và kết thúc bằng "o":

Câu lệnh SQL sau chọn tất cả khách hàng có CustomerName không bắt đầu bằng "a":

Toán tử BETWEEN chọn các giá trị trong một phạm vi nhất định Các giá trị có thể là số, văn bản hoặc ngày tháng

WHERE column_name BETWEEN value1 AND value2;

Cơ sở dữ liệu Demo

Dưới đây là lựa chọn từ bảng "Products" trong cơ sở dữ liệu mẫu Northwind:

Câu lệnh SQL sau đây chọn tất cả các sản phẩm có giá GIỮA 10 và 20:

Ví dụ NOT BETWEEN Để hiển thị các sản phẩm nằm ngoài phạm vi của ví dụ trước, hãy sử dụng NOT

WHERE Price NOT BETWEEN 10 AND 20;

Ví dụ BETWEEN với IN

Câu lệnh SQL sau đây chọn tất cả các sản phẩm có giá GIỮA 10 và 20 Ngoài ra, không hiển thị các sản phẩm có CategoryID là 1,2 hoặc 3:

Ví dụ BETWEEN về giá trị văn bản

Câu lệnh SQL sau chọn tất cả các sản phẩm có Tên sản phẩm GIỮA

‘Carnarvon Tigers’ và ‘Mozzarella di Giovanni’:

WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'

Câu lệnh SQL sau chọn tất cả các sản phẩm có Tên sản phẩm GIỮA

„Carnarvon Tigers’ và „Chef Antons Cajun Seasoning’:

WHERE ProductName BETWEEN ‘Carnarvon Tigers’ AND ‘Chef Antons Cajun Seasoning’

Ví dụ NOT BETWEEN về giá trị văn bản

Câu lệnh SQL sau chọn tất cả các sản phẩm có Tên sản phẩm KHÔNG GIỮA 'Carnarvon Tigers' và 'Mozzarella di Giovanni':

WHERE ProductName NOT BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'

Dưới đây là lựa chọn từ bảng "Orders" trong cơ sở dữ liệu mẫu Northwind:

Ví dụ về BETWEEN Dates

Câu lệnh SQL sau đây chọn tất cả các đơn đặt hàng có Ngày đặt hàng GIỮA '01 -July-1996 ' và '31 -July-1996':

2.13 Toán tử AND, OR và NOT

Mệnh đề WHERE có thể đƣợc kết hợp với các toán tử AND, OR và NOT

Toán tử AND và OR đƣợc sử dụng để lọc các bản ghi dựa trên nhiều hơn một điều kiện:

- Toán tử AND hiển thị một bản ghi nếu tất cả các điều kiện đƣợc phân tách bằng AND đều TRUE

- Toán tử OR hiển thị một bản ghi nếu bất kỳ điều kiện nào đƣợc phân tách bởi

Toán tử NOT hiển thị bản ghi nếu (các) điều kiện KHÔNG ĐÚNG

WHERE condition1 AND condition2 AND condition3 ;

WHERE condition1 OR condition2 OR condition3 ;

Cơ sở dữ liệu Demo:

Bảng "Customers" hoàn chỉnh từ cơ sở dữ liệu mẫu của Northwind:

Câu lệnh SQL sau chọn tất cả các trường từ "Customers" có quốc gia là

"Germany" VÀ thành phố là "Berlin":

WHERE Country='Germany' AND City='Berlin';

Câu lệnh SQL sau chọn tất cả các trường từ "Customers" có thành phố là

WHERE City='Berlin' OR City='München';

Câu lệnh SQL sau chọn tất cả các trường từ "Customers" có quốc gia là

WHERE Country='Germany' OR Country='Spain';

Câu lệnh SQL sau chọn tất cả các trường từ "Customers" mà quốc gia KHÔNG phải là "Germany":

Kết hợp AND, OR và NOT

Bạn cũng có thể kết hợp các toán tử AND, OR và NOT

Câu lệnh SQL sau chọn tất cả các trường từ "Customers" trong đó quốc gia là

"Germany" VÀ thành phố phải là "Berlin" HOẶC "München" (sử dụng dấu ngoặc đơn để tạo biểu thức phức tạp):

WHERE Country='Germany' AND (City='Berlin' OR City='München');

Câu lệnh SQL sau chọn tất cả các trường từ "Customers" trong đó quốc gia KHÔNG phải là "Germany" và KHÔNG phải "USA":

WHERE NOT Country='Germany' AND NOT Country='USA';

Toán tử IN cho phép bạn chỉ định nhiều giá trị trong mệnh đề WHERE

Toán tử IN là cách viết tắt của nhiều điều kiện OR

WHERE column_name IN (value1, value2, ); hoặc là:

WHERE column_name IN (SELECT STATEMENT);

Cơ sở dữ liệu Demo

Bảng dưới đây hiển thị bảng "Customers" hoàn chỉnh từ cơ sở dữ liệu mẫu của Northwind:

Ví dụ về toán tử IN

Câu lệnh SQL sau đây chọn tất cả khách hàng ở "Germany", "France" hoặc

WHERE Country IN ('Germany', 'France', 'UK');

Câu lệnh SQL sau chọn tất cả khách hàng KHÔNG ở "Germany", "France" hoặc "UK":

WHERE Country NOT IN ('Germany', 'France', 'UK');

2.15 Toán tử ANY, ALL và truy vấn con

Toán tử ANY và ALL:

- Toán tử ANY và ALL đƣợc sử dụng với mệnh đề WHERE hoặc HAVING

- Toán tử ANY trả về true nếu bất kỳ giá trị truy vấn con nào đáp ứng điều kiện

- Toán tử ALL trả về true nếu tất cả các giá trị truy vấn con đáp ứng điều kiện

WHERE column_name operator ANY

(SELECT column_name FROM table_name WHERE condition);

WHERE column_name operator ALL

(SELECT column_name FROM table_name WHERE condition);

Lưu ý: Các operator phải là một toán tử so sánh chuẩn (=, , !=, >, >=, 99:

= ANY (SELECT ProductID FROM OrderDetails WHERE Quantity > 99);

Toán tử ALL trả về TRUE nếu tất cả các giá trị truy vấn con đáp ứng điều kiện

Câu lệnh SQL sau trả về TRUE và liệt kê tên sản phẩm nếu TẤT CẢ các bản ghi trong bảng OrderDetails có số lƣợng = 10 (vì vậy, ví dụ này sẽ trả về FALSE, vì không phải TẤT CẢ các bản ghi trong bảng OrderDetails đều có số lƣợng = 10):

= ALL (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);

Mệnh đề LIMIT đƣợc sử dụng để giới hạn số lƣợng dữ liệu đƣợc trả về bởi câu lệnh SELECT

Sau đây là cú pháp cơ bản của câu lệnh SELECT với mệnh đề LIMIT

Sau đây là cú pháp của mệnh đề LIMIT khi nó đƣợc sử dụng cùng với mệnh đề OFFSET

LIMIT [number of rows] OFFSET [row number]

SELECT * FROM COMPANY LIMIT 3 OFFSET 2;

Câu 1 Các toán hạng trong các phép toán là?

Câu 2 Phép sửa đổi là phép toán?

[a] Sửa đổi giá trị của một số thuộc tính

[b] Sửa đổi mô tả các thuộc tính

[c] Sửa đổi giá trị của một quan hệ hay một nhóm các quan hệ

[d] Sửa đổi giá trị của một bộ hay một nhóm các bộ

Câu 3 Thứ tự đúng trong câu lệnh SELECT là?

[a] SELECT, FROM, WHERE, GROUP BY HAVING, ORDER BY

[b] SELECT, FROM, GROUP BY HAVING, ORDER BY

[c] SELECT, FROM, GROUP BY HAVING, ORDER BY

[d] SELECT, FROM, GROUP BY HAVING, WHERE, ORDER BY

Câu 4 Phép toán tập hợp trong mệnh đề WHERE bao gồm?

[a] Các phép đại số quan hệ

[b] Các phép số học và các phép so sánh

Câu 5 Các phép toán gộp nhóm đƣợc sử dụng sau mệnh đề?

Câu 6 Phép chọn đƣợc thực hiện sau mệnh đề nào trong SELECT FROM

Câu 7 Ngôn ngữ đinh nghĩa dữ liệu DDL (Data Definition Language):

[a] Được đặc tả bằng cách chương trình ứng dụng

[b] Đƣợc đặc tả bằng một phần của hệ quản trị cơ sở dữ liệu

[c] Đƣợc đặc tả bằng một ngôn ngữ dữ liệu

[d] Đƣợc đặc tả bằng một ngôn ngữ, một phần của hệ quản trị cơ sở dữ liệu

Câu 8 Hai biểu thức E1 và E2 tương đương với nhau, nếu:

[a] Chúng biểu diễn cùng một ánh xạ

[b] Các quan hệ giống nhau trong biểu thức

[c] Các kết quả giống nhau

[d] Các quan hệ trong các biểu thức cùng miền xác định

Câu 9 An toàn mức độ mạng là?

[a] Bảo vệ thông tin trên đường truyền

[b] Cho phép truy cập từ xa, có kiểm soát

[c] Cho phép truy cập từ xa

[d] Không cho phép truy cập từ xa

Câu 10 Dạng cấp quyền truy xuất trong SQL là?

Cho cơ sở dữ liệu QuanLyNhanSu nhƣ sau:

Câu 1: Tạo cơ sở dữ liệu nhƣ trên

Câu 2: Truy vấn dữ liệu với các yêu cầu nhƣ sau:

1 Hiển thị tất cả thông tin của bảng NHANVIEN

2 Hiển thị thông tin của những nhân viên ở phòng số 5

3 Hiển thị mã nhân viên, họ nhân viên, tên lót và tên nhân viên của những nhân viên ở phòng số 5 và có lương >= 3000

4 Hiển thị mã nhân viên, tên nhân viên của những nhân viên có lương từ 2000 đến 8000

5 Hiển thị thông tin của những nhân viên ở địa chỉ có tên đường là Nguyễn

6 Cho biết số lƣợng nhân viên

7 Cho biết số lƣợng nhân viên trong từng phòng ban

8 Hiển thị thông tin về mã nhân viên, tên nhân viên và tên phòng ban ở phòng kế toán

Ngày đăng: 25/12/2022, 00:01

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm