Giáo Trình Ngôn Ngữ SQL - Từ Cơ Bản, Ràng Buộc, Trigger đến Lập Trình SQL

Tài liệu giáo trình SQL đầy đủ, chi tiết giúp bạn nắm vững kiến thức từ cơ bản đến nâng cao. Học cách truy vấn, quản lý và thao tác dữ liệu hiệu quả.

Chuyên ngành

Cơ sở dữ liệu

Người đăng

Ẩn danh

Thể loại

Giáo trình
157
0
0

Phí lưu trữ

45 Point

Tóm tắt

I. Tổng quan về giáo trình SQL từ cơ bản đến lập trình

SQL (Structured Query Language) là ngôn ngữ truy vấn có cấu trúc, được sử dụng rộng rãi trong hầu hết các hệ quản trị cơ sở dữ liệu hiện đại. Ngôn ngữ này phục vụ hai mục đích chính: thao tác dữ liệu và định nghĩa dữ liệu. SQL hỗ trợ các phép toán đại số quan hệ, đồng thời cung cấp các lệnh sửa đổi và mô tả lược đồ cơ sở dữ liệu. Có nhiều phiên bản SQL khác nhau, bắt đầu từ chuẩn ANSI SQL nguyên bản, phát triển qua SQL-92 (SQL2) và tiến đến SQL-99 (SQL3). Chuẩn SQL-99 mở rộng các tính năng trước đó với đặc trưng quan hệ-đối tượng và nhiều khả năng mới. Giáo trình SQL từ cơ bản đến lập trình thường được cấu trúc thành ba phần chính: các truy vấn cơ bản, các ràng buộc và trigger, cuối cùng là lập trình nâng cao với SQL. Nội dung bao gồm từ phép chiếu, phép chọn đơn giản đến các phép nối phức tạp, truy vấn con tương quan, và các phương pháp lập trình nhúng hay SQL động. Kiến thức nền tảng về cơ sở dữ liệu quan hệ là điều kiện tiên quyết để tiếp cận giáo trình này một cách hiệu quả.

1.1. Các chuẩn SQL và sự phát triển qua các phiên bản

SQL trải qua nhiều phiên bản tiêu chuẩn hóa do các tổ chức quốc tế ban hành. ANSI SQL là chuẩn đầu tiên, thiết lập nền tảng cho ngôn ngữ truy vấn có cấu trúc. Năm 1992, SQL-92 ra đời với tên gọi SQL2, mang đến nhiều cải tiến đáng kể về cú pháp và khả năng xử lý. Gần đây nhất, SQL-99 (trước đó gọi là SQL3) mở rộng SQL2 với đặc trưng quan hệ-đối tượng, hỗ trợ kiểu dữ liệu phức tạp và các hàm đệ quy. Ngoài các chuẩn quốc tế, nhiều nhà sản xuất hệ quản trị cơ sở dữ liệu phát triển phiên bản SQL riêng, tích hợp đầy đủ khả năng của chuẩn ANSI nguyên gốc đồng thời bổ sung các mở extensions đặc thù.

1.2. Cấu trúc nội dung giáo trình SQL ba chương

Giáo trình SQL từ cơ bản đến lập trình được phân chia thành ba chương logic, xây dựng kiến thức từ đơn giản đến phức tạp. Chương một trình bày SQL cơ bản, bao gồm các truy vấn đơn giản trên bảng cơ sở dữ liệu, các kiểu dữ liệu cơ bản và cách tạo cơ sở dữ liệu. Chương hai tập trung vào các ràng buộc và trigger, giới thiệu ràng buộc miền, khóa, toàn vẹn thực thể, toàn vẹn tham chiếu. Chương ba đề cập lập trình với SQL, bao gồm lập trình nhúng, SQL động, các hàm và thủ tục PSM, giao diện gọi, cùng vấn đề an toàn cơ sở dữ liệu. Mỗi chương đều có bài tập tổng kết.

II. Các vấn đề thường gặp khi học SQL cơ bản

Người học SQL cơ bản thường đối mặt với nhiều thách thức khi tiếp cận ngôn ngữ truy vấn dữ liệu này. Một vấn đề phổ biến là hiểu rõ sự khác biệt giữa phép chiếu và phép chọn. Phép chiếu sử dụng mệnh đề SELECT để chọn các cột cụ thể, trong khi phép chọn sử dụng mệnh đề WHERE để lọc các dòng theo điều kiện. Việc xử lý giá trị NULL cũng gây nhầm lẫn, vì NULL không phải là giá trị số không hay chuỗi rỗng mà biểu thị sự không xác định. Các phép so sánh với NULL luôn trả về giá trị logic UNKNOWN thay vì TRUE hay FALSE. Ngoài ra, việc viết các truy vấn trên nhiều quan hệ đòi hỏi hiểu biết về tích Descartes, phép nối và cách làm rõ nghĩa thuộc tính khi trùng tên. Các phép hợp, giao, trừ giữa các tập kết quả cũng yêu cầu số cột và kiểu dữ liệu tương thích. Truy vấn con tương quan là một khái niệm phức tạp, đòi hỏi sự hiểu biết về mối quan hệ giữa truy vấn ngoài và truy vấn bên trong.

2.1. Khó khăn trong xử lý giá trị NULL và logic UNKNOWN

Giá trị NULL trong SQL đại diện cho sự không xác định, không phải giá trị rỗng hay số không. Khi thực hiện các phép so sánh với NULL, kết quả không trả về TRUE hay FALSE mà trả về UNKNOWN. Điều này tạo ra nhiều tình huống bất ngờ cho người mới học. Ví dụ, biểu thức 'NULL = NULL' không trả về TRUE mà trả về UNKNOWN. Để kiểm tra NULL, phải sử dụng toán tử IS NULL hoặc IS NOT NULL thay vì dấu bằng. Mệnh đề WHERE chỉ giữ lại các dòng có điều kiện đánh giá là TRUE, do đó các dòng có giá trị UNKNOWN bị loại bỏ. Hiểu rõ ba giá trị logic TRUE, FALSE, UNKNOWN là yếu tố quan trọng để viết truy vấn chính xác.

2.2. Nhầm lẫn giữa các phép nối và tích trong truy vấn nhiều quan hệ

Khi viết truy vấn trên nhiều quan hệ, người học thường nhầm lẫn giữa tích Descartes và các phép nối. Tích Descartes kết hợp mọi dòng của quan hệ này với mọi dòng của quan hệ khác, tạo ra tập kết quả rất lớn. Phép nối với điều kiện trong mệnh đề WHERE giúp lọc bỏ các tổ hợp không mong muốn. Nối tự nhiên tự động ghép các cặp dòng có giá trị trùng nhau trên thuộc tính chung. Nối ngoài (LEFT, RIGHT, FULL OUTER) giữ lại các dòng không có dòng khớp tương ứng. Việc hiểu rõ từng loại phép nối và khi nào sử dụng chúng là yếu tố quyết định để viết truy vấn hiệu quả và chính xác trên nhiều bảng dữ liệu liên kết.

III. Phương pháp học và áp dụng SQL từ cơ bản đến nâng cao

Học SQL hiệu quả đòi hỏi phương pháp tiếp cận có hệ thống, bắt đầu từ các khái niệm cơ bản trước khi tiến đến nội dung nâng cao. Giai đoạn đầu tập trung nắm vững các lệnh SELECT, FROM, WHERE và hiểu cách hoạt động của phép chiếu, phép chọn. Tiếp theo, thực hành viết truy vấn trên nhiều quan hệ bằng cách sử dụng các phép nối trong, nối ngoài và nối tự nhiên. Truy vấn con là bước đệm quan trọng, bao gồm truy vấn con tạo giá trị vô hướng, điều kiện bao hàm quan hệ, điều kiện bao hàm bộ, và truy vấn con tương quan. Khung nhìn (view) cung cấp cách ẩn độ phức tạp của truy vấn và bảo mật dữ liệu. Phương pháp học nên kết hợp lý thuyết với thực hành liên tục trên hệ quản trị cơ sở dữ liệu thực tế như MySQL, PostgreSQL hay SQL Server. Xây dựng dự án nhỏ áp dụng các kiến thức đã học giúp củng cố hiểu biết và phát triển kỹ năng giải quyết vấn đề thực tế.

3.1. Thực hành truy vấn con và biểu thức nối phức tạp

Truy vấn con là công cụ mạnh mẽ trong SQL, cho phép giải quyết các bài toán phức tạp bằng cách chia nhỏ thành các phần đơn giản. Truy vấn con tương quan tham chiếu đến thuộc tính của truy vấn ngoài, thực thi lại cho mỗi dòng ứng viên. Ví dụ, tìm nhân viên có lương cao nhất trong mỗi đơn vị bằng cách so sánh lương với MAX(Lương) tương ứng. Biểu thức nối bao gồm tích, nối tự nhiên, nối têta và nối ngoài, mỗi loại phù hợp với tình huống cụ thể. Khi sử dụng truy vấn con trong mệnh đề FROM, cần gán bí danh để tham chiếu dễ dàng. Thực hành viết lại cùng một bài toán bằng nhiều cách khác nhau giúp hiểu sâu sắc cách SQL xử lý dữ liệu và tối ưu hóa truy vấn.

3.2. Sử dụng khung nhìn và giải thích cách xử lý truy vấn

Khung nhìn (view) là quan hệ ảo được định nghĩa bằng truy vấn SELECT, không lưu trữ dữ liệu vật lý mà tạo ra mỗi khi được truy cập. Khung nhìn giúp đơn giản hóa truy vấn phức tạp, ẩn chi tiết triển khai và kiểm soát quyền truy cập dữ liệu. Để giải thích truy vấn chứa khung nhìn, hệ thống thay thế tham chiếu khung nhìn bằng định nghĩa tương ứng, tạo cây biểu thức trên các bảng cơ sở. Quá trình này gọi là giải khung nhìn, chuyển đổi truy vấn trên quan hệ ảo thành truy vấn trên quan hệ cơ sở. Hiểu cách hệ thống xử lý khung nhìn giúp viết truy vấn hiệu quả và debug khi gặp lỗi. Khung nhìn cũng hỗ trợ bảo mật bằng cách giới hạn dữ liệu hiển thị cho từng nhóm người dùng.

IV. Kết luận và ứng dụng thực tế của giáo trình SQL

Giáo trình SQL từ cơ bản đến lập trình cung cấp nền tảng kiến thức toàn diện cho việc quản lý và khai thác cơ sở dữ liệu quan hệ. Nội dung bao phủ từ các truy vấn đơn giản đến lập trình nâng cao, bao gồm ràng buộc dữ liệu, trigger và các phương pháp lập trình nhúng. SQL động cho phép xây dựng câu lệnh truy vấn tại thời gian chạy, tăng tính linh hoạt trong phát triển ứng dụng. Các hàm và thủ tục PSM (Persistent Stored Modules) giúp lưu trữ logic nghiệp vụ trực tiếp trên máy chủ cơ sở dữ liệu. Giao diện gọi cho phép tích hợp SQL với các ngôn ngữ lập trình khác như Python, Java hay C#. Vấn đề an toàn cơ sở dữ liệu được đề cập thông qua phân quyền người dùng và kiểm soát truy cập. Kiến thức SQL là kỹ năng cốt lõi cho nhiều vị trí công việc trong ngành công nghệ thông tin, từ phát triển phần mềm, phân tích dữ liệu đến quản trị hệ thống. Nắm vững giáo trình này mở ra cơ hội nghề nghiệp rộng lớn trong thời đại dữ liệu lớn.

4.1. Lập trình nhúng SQL và tích hợp với ngôn ngữ khác

Lập trình nhúng SQL cho phép chèn các câu lệnh SQL trực tiếp vào mã nguồn ngôn ngữ lập trình như C, Java hay Python. Phương pháp này giúp ứng dụng tương tác với cơ sở dữ liệu một cách liền mạch. SQL động mở rộng khả năng bằng cách xây dựng câu lệnh truy vấn dưới dạng chuỗi ký tự tại thời gian chạy, phù hợp với tình huống điều kiện phức tạp. Giao diện gọi (Call-Level Interface) cung cấp cách thức chuẩn để gửi lệnh SQL từ ứng dụng đến hệ quản trị cơ sở dữ liệu. Các công nghệ như JDBC cho Java, ODBC cho Windows và các thư viện như psycopg2 cho Python là minh chứng cho sự phổ biến của lập trình nhúng SQL trong phát triển phần mềm hiện đại.

4.2. An toàn cơ sở dữ liệu và kiểm soát truy cập trong SQL

An toàn cơ sở dữ liệu là khía cạnh quan trọng được đề cập trong giáo trình SQL nâng cao. Hệ thống phân quyền cho phép quản trị viên cấp hoặc thu hồi quyền truy cập của người dùng đối với từng bảng, khung nhìn hay cột cụ thể. Các quyền bao gồm SELECT, INSERT, UPDATE, DELETE và quyền quản trị khác. Kiểm soát truy cập đảm bảo người dùng chỉ có thể xem và sửa đổi dữ liệu được phép. Trigger hỗ trợ kiểm tra tính toàn vẹn dữ liệu và ghi nhật ký thay đổi. Các ràng buộc như ràng buộc khóa, ràng buộc tham chiếu ngăn chặn dữ liệu không hợp lệ. Kết hợp các cơ chế an toàn này giúp bảo vệ cơ sở dữ liệu trước truy cập trái phép và đảm bảo tính nhất quán dữ liệu trong môi trường đa người dùng.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI từ nội dung tài liệu gốc; tài liệu do người dùng đóng góp và được kiểm duyệt trước khi xuất bản. Báo lỗi nội dung.

19/04/2026

Trích đoạn nội dung tài liệu

CHƯƠNG I : SQL CƠ BẢN Giống như các ngôn ngữ bậc cao khác, ngôn ngữ SQL được xây dựng dựa trên các chữ cái, các chữ số, các ký tự ( dấu phép toán, dấu ngăn, dấu cách và các ký tự đặc biệt) và một tập các từ khóa. Một lệnh của SQL có thể được viết trên một dòng hoặc nhiều dòng, kết thúc bằng dấu chấm phẩy “;”. Ngôn ngữ SQL được chia thành ba nhóm: - Ngôn ngữ định nghĩa dữ liệu dùng để mô tả cấu trúc của cơ sở dữ liệu ( các bảng, các khung nhìn, các thuộc tính, các chỉ mục,.) - Ngôn ngữ thao tác dữ liệu cho phép thực hiện các thao tác trên cơ sở dữ liệu như cập nhật cơ sở dữ liệu và truy vấn lấy ra các thông tin từ cơ sở dữ liệu. - Ngôn ngữ kiểm soát dữ liệu bao gồm các lệnh dùng để quản lý các giao tác, các quyền truy cập dữ liệu, kết nối với server.

Ngôn ngữ SQL có thể sử dụng theo hai kiểu: kiểu trực tiếp và lập trình. SQL trực tiếp cho phép thực hiện một truy vấn và nhận được kết quả ngay tức khắc. SQL lập trình cho phép sử dụng SQL trong một chương trình viết bằng ngôn ngữ ngôn ngữ lập trình bậc cao khác ( C, Pascal,.), hoặc viết các chương trình con. Trong chương này chúng ta sẽ làm quen với các lệnh cơ bản của SQL.

Các lệnh này được minh họa dựa trên một cơ sở dữ liêu “CÔNGTY” cho ở phần PHỤLỤC của giáo trình.1 CÁC TRUY VẤN ĐƠN GIẢN TRONG SQL. Giả sử chúng ta muốn đưa ra các nhân viên của đơn vị có MãsốĐV = 5 , chúng ta viết trong SQL như sau SELECT * FROM NHÂNVIÊN WHERE Mã sốĐV = 5 ; Truy vấn này trình bày dạng đặc trưng select-from-where của hầu hết các truy vấn SQL.Mệnh đề FROM cho quan hệ hoặc các quan hệ mà truy vấn tham chiếu đến. Trong ví dụ trên, quan hệ đó là NHÂNVIÊN. • Mệnh đề WHERE là một điều kiện, giống như điều kiện chọn trong đại số quan hệ.

Các bộ phải thoả mãn điều kiện chọn để phù hợp với truy vấn. Điều kiện ở đây là thuộc tính MãsốĐV của bộ phải có giá trị 5. Tất cả các bộ đáp ứng điều kiện đó sẽ thoả mãn điều kiện chọn. 6 Ngôn ngữ SQL – Tác giả: Nguyễn Tuệ • Mệnh đề SELECT nói các thuộc tính nào của các bộ đáp ứng điều kiện sẽ được đưa ra như một phần của câu trả lời.

Dấu * trong ví dụ này chỉ ra rằng tất cả các thuộc tính của bộ sẽ được đưa ra. Kết quả của truy vấn là một quan hệ chứa tất cả các bộ do tiến trình này sản xuất ra. Một cách giải thích truy vấn này là xem xét từng bộ giá trị của quan hệ được kể ra trong mệnh đề FROM. Điều kiện trong mệnh đề WHERE được áp dụng cho bộ.

Chính xác hơn, các thuộc tính được kể ra trong mệnh đề WHERE được thay thế bằng các giá trị của thuộc tính đó ở trong bộ. Sau đó, điều kiện được tính, và nếu đúng thì các thành phần xuất hiện trong mệnh đề SELECT được sản xuất ra như là một bộ của câu trả lời.1 Phép chiếu trong SQL a) Chúng ta có thể chiếu một quan hệ do một truy vấn SQL sản xuất ra lên trên một số thuộc tính của nó. Để làm điều đó, ở vị trí của dấu * trong mệnh đề SELECT ta liệt kê ra một số thuộc tính của của quan hệ được chỉ ra trong mệnh đề FROM. Kết quả sẽ được chiếu lên các thuộc tính được liệt kê.

Ví dụ 1: Đưa ra Họđệm và Tên của các nhân viên ở đơn vị có mã số bằng 5. Chúng ta có thể viết : SELECT Họđệm, Tên FROM NHÂNVIÊN WHERE MãsốĐV =5; Kết quả là một bảng có hai cột, có tên là Họđệm và Tên. Các bộ của bảng này là các cặp, mỗi cặp gồm Họđệm và Tên của nhân viên, đó là các nhân viên của đơn vị có mã số bằng 5. Bảng kết quả có dạng như sau: Họđệm Tên Lê Vân Trần Đức Nam Nguyễn Sơn Vũ Hương Giang b) Đôi khi chúng ta muốn tạo ra một quan hệ với đầu cột khác với các thuộc tính của quan hệ được kể ra trong mệnh đề FROM.

Chúng ta có thể viết sau tên của thuộc tính một từ khoá AS và một bí danh (alias), bí danh đó sẽ trở thành đầu cột 7 Ngôn ngữ SQL – Tác giả: Nguyễn Tuệ của quan hệ kết quả. Từ khoá AS là tuỳ chọn, nghĩa là có thể viết bí danh đi ngay sau tên thuộc tính mà không cần phải có từ khoá AS. Ví dụ 2: Ta có thể sửa đổi ví dụ 1 ở trên để đưa ra một quan hệ có các thuộc tính Họnhânviên và Tênnhânviên thay cho vị trí của Họđệm và Tên như sau: SELECT Họđệm AS Họnhânviên , Tên AS Tênnhânviên FROM NHÂNVIÊN WHERE MãsốĐV = 5 ; Bảng kết quả có dạng như sau: Họnhânviên Tên nhânviên Lê Vân Trần Đức Nam Nguyễn Sơn Vũ Hương Giang c) Một tuỳ chọn khác trong mệnh đề SELECT sử dụng một biểu thức ở vị trí của một thuộc tính. Ví dụ 3 : Chúng ta muốn đưa ra Họđệm, Tên và lương sau khi đã được tăng 10% của các nhân viên ở đơn vị có mã số bằng 5.

Ta viết: SELECT Họđệm, Tên, Lương*1.1 AS Lươngmới FROM NHÂNVIÊN WHERE MãsốĐV =5; Kết quả Họđệm Tên Lươngmới Lê Vân 3300 Trần Đức Nam 4400 Nguyễn Sơn 4180 Vũ Hương Giang 2750 d) Chúng ta cũng có thể cho phép một hằng như là một biểu thức trong mệnh đề SELECT. Ví dụ 4: Ta muốn đưa thêm từ ‘ngàn đồng’ vào sau giá trị của lương, ta viết: SELECT Họđệm, Tên, Lương*1.1 AS Lươngmới, ‘ngàn đồng’ AS Đơnvịtính FROM NHÂNVIÊN WHERE MãsốĐV =5; 8 Ngôn ngữ SQL – Tác giả: Nguyễn Tuệ Kết quả Họđệm Tên Lươngmới Đơnvịtính Lê Vân 3300 ngàn đồng Trần Đức Nam 4400 ngàn đồng Nguyễn Sơn 4180 ngàn đồng Vũ Hương Giang 2750 ngàn đồng Chúng ta đã sắp xếp một cột có tên là Đơnvịtính và mỗi bộ trong câu trả lời sẽ có hằng ‘ngàn đồng’ ở cột thứ tư.2 Phép chọn trong SQL Phép toán chọn của đại số quan hệ và nhiều thứ nữa sẵn có trong mệnh đề WHERE của SQL. Các biểu thức đi sau WHERE bao gồm các biểu thức điều kiện giống như các biểu thức điều kiện trong các ngôn ngữ lập trình. Chúng ta có thể xây dựng các điều kiện bằng cách so sánh các giá trị sử dụng sáu phép toán so sánh =, <>, <, >, <=, >=.

Các giá trị có thể được so sánh bao gồm các hằng và các thuộc tính của các quan hệ được kể ra sau FROM. Chúng ta cũng có thể áp dụng các phép toán số học thông thường như +, -, *, / đối với các giá trị số trước khi chúng ta so sánh chúng và áp dụng phép nối || đối với các xâu. Một ví dụ về phép so sánh là MãsốĐV = 5 Ở trong các ví dụ ở trên. Thuộc tính MãsốĐV được kiểm tra xem có bằng hằng 5 hay không.

Hằng này là một giá trị số. Các hằng số, như các số nguyên và số thực được sử dụng và được ghi như cách thông thường trong các ngôn ngữ lập trình. Ngoài các hằng số còn có các hằng xâu. Các xâu trong SQL được ghi bằng cách đặt chúng và trong cặp dấu nháy đơn, ví dụ, ‘Hà nội’.

Kết quả của một phép so sánh là một giá trị lô gic TRUE hoặc FALSE. Các giá trị lô gic có thể được kết hợp bằng các phép toán logic AND, OR, NOT với các ý nghĩa của chúng. Ví dụ 5 : Truy vấn sau đây hỏi về Họđệm, Tên và Giớitính của các nhân viên ở đơn vị có mã số bằng 5 và Giớitính = ‘Nam’ SELECT Họđệm, Tên, Giớitính FROM NHÂNVIÊN WHERE ( MãsốĐV =5) AND ( Giớitính = ‘Nam’); Kết quả Họđệm Tên Giớitính Lê Vân Nam 9 Ngôn ngữ SQL – Tác giả: Nguyễn Tuệ Trần Đức Nam Nam Nguyễn Sơn Nam Trong điều kiện này, chúng ta có AND của hai giá trị logic. Các giá trị đó là các phép so sánh bình thường.

Tiếp theo, ta xét ví dụ sau: SELECT Họđệm, Tên FROM NHÂNVIÊN WHERE ( MãsốĐV =5) AND ( Giớitính = ‘Nữ’ OR Lương <= 3000); Họđệm Tên Lê Vân Vũ Hương Giang Truy vấn này đòi hỏi các nhân viên hoặc là nữ hoặc có lương nhỏ hơn hoặc bằng 3000. Chú ý rằng các phép so sánh có thể nhóm lại bằng việc sử dụng các dấu ngoặc đơn. Các dấu ngoặc là cần thiết bởi vì thứ tự ưu tiên của các phép toán lô gic trong SQL là giống như trong các ngôn ngữ lập trình, AND có thứ tự cao hơn OR, NOT có thứ tự cao hơn cả AND và OR.3 So sánh các xâu Hai xâu là bằng nhau nếu chúng là cùng một dãy ký tự. SQL cho phép các mô tả các kiểu xâu khác nhau, ví dụ, các mảng ký tự có độ dài cố định và các danh sách ký tự có độ dài thay đổi.

Khi chúng ta so sánh các xâu bằng một trong các phép toán “ nhỏ hơn”như là < hoặc >=, chúng ta đang hỏi xem có phải xâu này đi trước xâu kia trong thứ tự từ điển. Như vậy, nếu a1a2…an và b1b2…bm là hai xâu, thì xâu thứ nhất là “nhỏ hơn” xâu thứ hai nếu hoặc a1 < b1, hoặc nếu a1 = b1 và a2 < b2, hoặc a1 = b1, a2 = b2 và a3 < b3 …Ta cũng nói rằng a1a2…an < b1b2…bm nếu n<m và a1a2…an = b1b2…bn , nghĩa là xâu thứ nhất là một tiền tố đúng của xâu thứ hai. Vídụ ‘na’ < ‘nam’. SQL cũng cung cấp khả năng để so sánh các xâu trên cơ sở một mẫu đối chiếu đơn giản.

Một dạng lựa chon của biểu thức logic là s LIKE p trong đó s là một xâu và p là một mẫu đối chiếu. Một mẫu đối chiếu là một xâu có sử dụng hai ký tự đặc biệt % và _. Các ký tự thông thường trong p chỉ đối sánh được với chính chúng ở trong s, nhưng % có thể đối sánh với một dãy có 0 hoặc nhiều hơn các ký tự trong s, và _ đối sánh với bất kỳ ký tự nào trong s. Giá trị của 10 Ngôn ngữ SQL – Tác giả: Nguyễn Tuệ biểu thức này là đúng khi và chỉ khi xâu s hợp với mẫu p.

Một cách tương tự, s NOT LIKE p là đúng khi và chỉ khi xâu s không hợp với mẫu p. Ví dụ 6 : SELECT Tên FROM NHÂNVIÊN WHERE Tên LIKE ‘N_ _’ ; Truy vấn này đòi hỏi thuộc tính Tên có giá trị gồm 3 ký tự, ký tự đầu tiên là N và sau đó là một dãy nào đó gồm hai ký tự.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ