Khớp từng phương thức đặt hàng (ở bên trái) với một ví dụ (ở bên phải).

Trình so khớp được tạo từ một mẫu bằng cách gọi phương thức của mẫu. Sau khi được tạo, một công cụ đối sánh có thể được sử dụng để thực hiện ba loại thao tác đối sánh khác nhau

  • Phương thức cố gắng khớp toàn bộ chuỗi đầu vào với mẫu

  • Phương thức cố gắng khớp chuỗi đầu vào, bắt đầu từ đầu, theo mẫu

  • Phương thức quét chuỗi đầu vào để tìm chuỗi con tiếp theo khớp với mẫu

Mỗi phương thức này trả về một giá trị boolean cho biết thành công hay thất bại. Thông tin thêm về một trận đấu thành công có thể thu được bằng cách truy vấn trạng thái của trận đấu

Trình so khớp tìm các kết quả phù hợp trong một tập con đầu vào của nó được gọi là vùng. Theo mặc định, khu vực chứa tất cả thông tin đầu vào của trình so khớp. Vùng có thể được sửa đổi thông qua phương thức và được truy vấn thông qua phương thức và. Cách mà các ranh giới khu vực tương tác với một số cấu trúc mẫu có thể được thay đổi. Xem và để biết thêm chi tiết

Lớp này cũng định nghĩa các phương thức để thay thế các chuỗi con phù hợp bằng các chuỗi mới có nội dung có thể được tính từ kết quả phù hợp nếu muốn. Các phương thức và có thể được sử dụng song song để thu thập kết quả vào bộ đệm chuỗi hiện có hoặc phương thức thuận tiện hơn có thể được sử dụng để tạo một chuỗi trong đó mọi chuỗi con phù hợp trong chuỗi đầu vào được thay thế

Trạng thái rõ ràng của đối sánh bao gồm các chỉ số bắt đầu và kết thúc của đối sánh thành công gần đây nhất. Nó cũng bao gồm các chỉ số bắt đầu và kết thúc của chuỗi con đầu vào được ghi lại bởi mỗi chuỗi trong mẫu cũng như tổng số lượng của các chuỗi con đó. Để thuận tiện, các phương thức cũng được cung cấp để trả về các chuỗi con đã bắt này ở dạng chuỗi

Trạng thái rõ ràng của một trình so khớp ban đầu không được xác định; . Trạng thái rõ ràng của công cụ so khớp được tính toán lại bởi mọi thao tác so khớp

Trạng thái ngầm định của bộ đối sánh bao gồm chuỗi ký tự đầu vào cũng như vị trí nối thêm, ban đầu bằng 0 và được cập nhật theo phương thức

Một trình so khớp có thể được đặt lại một cách rõ ràng bằng cách gọi phương thức của nó hoặc, nếu muốn một chuỗi đầu vào mới, phương thức của nó. Việc đặt lại trình so khớp sẽ loại bỏ thông tin trạng thái rõ ràng của nó và đặt vị trí nối thêm thành 0

Mệnh đề

 key | value
-----+-------
 a   | foo
 b   | bar
56 được sử dụng để kết hợp các hàng từ hai hoặc nhiều bảng, dựa trên cột liên quan giữa chúng

Hãy xem xét một lựa chọn từ bảng "Đơn hàng"

OrderIDCustomerIDOrderDate1030821996-09-1810309371996-09-1910310771996-09-20

Sau đó, hãy xem một lựa chọn từ bảng "Khách hàng"

Khách hàngIDKhách hàngTênLiên hệTênQuốc gia1Alfreds FutterkisteMaria AndersĐức2Ana Trujillo Emparedados y heladosAna TrujilloMexico3Antonio Moreno TaqueríaAntonio MorenoMexico

Lưu ý rằng cột "CustomerID" trong bảng "Orders" đề cập đến "CustomerID" trong bảng "Customers". Mối quan hệ giữa 2 bảng trên là cột "CustomerID"

Sau đó, chúng ta có thể tạo câu lệnh SQL sau (có chứa

 key | value
-----+-------
 a   | foo
 b   | bar
57), chọn các bản ghi có giá trị khớp trong cả hai bảng

Thí dụ

CHỌN Đơn đặt hàng. OrderID, khách hàng. Tên khách hàng, đơn đặt hàng. OrderDate
TỪ Đơn đặt hàng
INNER THAM GIA KHÁCH HÀNG TRÊN Đơn đặt hàng. CustomerID=Khách hàng. ID khách hàng;

Tự mình thử »

và nó sẽ tạo ra một cái gì đó như thế này

OrderIDCustomerNameOrderDate10308Ana Trujillo Emparedados y helados9/18/199610365Antonio Moreno Taquería11/27/199610383Xung quanh Horn12/16/199610355Xung quanh Horn15/11/199610278Berglunds snabbköp8/12/1996



Các loại THAM GIA SQL khác nhau

Dưới đây là các loại THAM GIA khác nhau trong SQL

  •  key | value
    -----+-------
     a   | foo
     b   | bar
    
    58. Trả về các bản ghi có giá trị khớp trong cả hai bảng
  •  key | value
    -----+-------
     a   | foo
     b   | bar
    
    59. Trả về tất cả các bản ghi từ bảng bên trái và các bản ghi phù hợp từ bảng bên phải
  •  key | value
    -----+-------
     a   | foo
     b   | bar
    
    60. Trả về tất cả các bản ghi từ bảng bên phải và các bản ghi phù hợp từ bảng bên trái
  •  key | value
    -----+-------
     a   | foo
     b   | bar
    
    61. Trả về tất cả các bản ghi khi có sự trùng khớp trong bảng bên trái hoặc bên phải

Khớp từng phương thức đặt hàng (ở bên trái) với một ví dụ (ở bên phải).
 
Khớp từng phương thức đặt hàng (ở bên trái) với một ví dụ (ở bên phải).
 
Khớp từng phương thức đặt hàng (ở bên trái) với một ví dụ (ở bên phải).
 
Khớp từng phương thức đặt hàng (ở bên trái) với một ví dụ (ở bên phải).


Kiểm tra bản thân với các bài tập

Tập thể dục

Chèn các phần còn thiếu trong mệnh đề

 key | value
-----+-------
 a   | foo
 b   | bar
56 để nối hai bảng
 key | value
-----+-------
 a   | foo
 b   | bar
63 và
 key | value
-----+-------
 a   | foo
 b   | bar
64, sử dụng trường
 key | value
-----+-------
 a   | foo
 b   | bar
560 trong cả hai bảng làm mối quan hệ giữa hai bảng

Hàm Trả về Kiểu Mô tả Ví dụ Ví dụ Kết quả

 key | value
-----+-------
 a   | foo
 b   | bar
1

 key | value
-----+-------
 a   | foo
 b   | bar
2

 key | value
-----+-------
 a   | foo
 b   | bar
3 Trả về số phần tử trong mảng JSON ngoài cùng.
 key | value
-----+-------
 a   | foo
 b   | bar
4
 key | value
-----+-------
 a   | foo
 b   | bar
5

 key | value
-----+-------
 a   | foo
 b   | bar
6

 key | value
-----+-------
 a   | foo
 b   | bar
7

 key | value
-----+-------
 a   | foo
 b   | bar
8

 key | value
-----+-------
 a   | foo
 b   | bar
9

Mở rộng đối tượng JSON ngoài cùng thành một tập hợp các cặp khóa/giá trị.
 json_object_keys
------------------
 f1
 f2
0
 key | value
-----+-------
 a   | foo
 b   | bar
0

 json_object_keys
------------------
 f1
 f2
1

 json_object_keys
------------------
 f1
 f2
2

 json_object_keys
------------------
 f1
 f2
3 Mở rộng đối tượng JSON ngoài cùng thành một tập hợp các cặp khóa/giá trị. Các giá trị được trả về sẽ thuộc loại
 json_object_keys
------------------
 f1
 f2
4.
 json_object_keys
------------------
 f1
 f2
5
 key | value
-----+-------
 a   | foo
 b   | bar

 json_object_keys
------------------
 f1
 f2
6

 json_object_keys
------------------
 f1
 f2
7

 json_object_keys
------------------
 f1
 f2
8

 json_object_keys
------------------
 f1
 f2
9

Trả về giá trị JSON được trỏ bởi
 key | value
-----+-------
 a   | foo
 b   | bar
10 (tương đương với toán tử
 key | value
-----+-------
 a   | foo
 b   | bar
11).
 key | value
-----+-------
 a   | foo
 b   | bar
12
 key | value
-----+-------
 a   | foo
 b   | bar
13

 key | value
-----+-------
 a   | foo
 b   | bar
14

 key | value
-----+-------
 a   | foo
 b   | bar
15

 json_object_keys
------------------
 f1
 f2
4 Trả về giá trị JSON được chỉ ra bởi
 key | value
-----+-------
 a   | foo
 b   | bar
10 là
 json_object_keys
------------------
 f1
 f2
4 (tương đương với toán tử
 key | value
-----+-------
 a   | foo
 b   | bar
19).
 key | value
-----+-------
 a   | foo
 b   | bar
10
 key | value
-----+-------
 a   | foo
 b   | bar
11

 key | value
-----+-------
 a   | foo
 b   | bar
12

 key | value
-----+-------
 a   | foo
 b   | bar
13

 key | value
-----+-------
 a   | foo
 b   | bar
14 Trả về bộ khóa trong đối tượng JSON ngoài cùng.
 key | value
-----+-------
 a   | foo
 b   | bar
15
 json_object_keys
------------------
 f1
 f2

 key | value
-----+-------
 a   | foo
 b   | bar
16

 key | value
-----+-------
 a   | foo
 b   | bar
17

 key | value
-----+-------
 a   | foo
 b   | bar
18 Mở rộng đối tượng trong
 key | value
-----+-------
 a   | foo
 b   | bar
19 thành một hàng có các cột khớp với loại bản ghi được xác định bởi
 key | value
-----+-------
 a   | foo
 b   | bar
20 (xem ghi chú bên dưới).
 key | value
-----+-------
 a   | foo
 b   | bar
21
 key | value
-----+-------
 a   | foo
 b   | bar
1

 key | value
-----+-------
 a   | foo
 b   | bar
22

 key | value
-----+-------
 a   | foo
 b   | bar
23

 key | value
-----+-------
 a   | foo
 b   | bar
24 Mở rộng mảng đối tượng ngoài cùng trong
 key | value
-----+-------
 a   | foo
 b   | bar
19 thành một tập hợp các hàng có cột khớp với loại bản ghi được xác định bởi
 key | value
-----+-------
 a   | foo
 b   | bar
20 (xem ghi chú bên dưới).
 key | value
-----+-------
 a   | foo
 b   | bar
27
 key | value
-----+-------
 a   | foo
 b   | bar
1

 key | value
-----+-------
 a   | foo
 b   | bar
28

 key | value
-----+-------
 a   | foo
 b   | bar
29

 key | value
-----+-------
 a   | foo
 b   | bar
40

 key | value
-----+-------
 a   | foo
 b   | bar
41

Mở rộng một mảng JSON thành một tập hợp các giá trị JSON.
 key | value
-----+-------
 a   | foo
 b   | bar
42
 key | value
-----+-------
 a   | foo
 b   | bar
2

 key | value
-----+-------
 a   | foo
 b   | bar
43

 key | value
-----+-------
 a   | foo
 b   | bar
44

 key | value
-----+-------
 a   | foo
 b   | bar
14 Mở rộng một mảng JSON thành một tập hợp các giá trị
 json_object_keys
------------------
 f1
 f2
4.
 key | value
-----+-------
 a   | foo
 b   | bar
47
 key | value
-----+-------
 a   | foo
 b   | bar
4

 key | value
-----+-------
 a   | foo
 b   | bar
48

 key | value
-----+-------
 a   | foo
 b   | bar
49

 json_object_keys
------------------
 f1
 f2
4 Trả về loại giá trị JSON ngoài cùng dưới dạng chuỗi văn bản. Các loại có thể là ________ 671, ________ 672, _______ 673, _______ 674,
 key | value
-----+-------
 a   | foo
 b   | bar
75 và
 key | value
-----+-------
 a   | foo
 b   | bar
76.
 key | value
-----+-------
 a   | foo
 b   | bar
77
 key | value
-----+-------
 a   | foo
 b   | bar
74

 key | value
-----+-------
 a   | foo
 b   | bar
79

 key | value
-----+-------
 a   | foo
 b   | bar
60

 key | value
-----+-------
 a   | foo
 b   | bar
61 Tạo bản ghi tùy ý từ đối tượng JSON (xem ghi chú bên dưới). Như với tất cả các hàm trả về
 key | value
-----+-------
 a   | foo
 b   | bar
61, người gọi phải xác định rõ ràng cấu trúc của bản ghi bằng mệnh đề
 key | value
-----+-------
 a   | foo
 b   | bar
63.
 key | value
-----+-------
 a   | foo
 b   | bar
64
 key | value
-----+-------
 a   | foo
 b   | bar
7

 key | value
-----+-------
 a   | foo
 b   | bar
65

 key | value
-----+-------
 a   | foo
 b   | bar
66

 key | value
-----+-------
 a   | foo
 b   | bar
67 Xây dựng một bộ bản ghi tùy ý từ một mảng đối tượng JSON (xem ghi chú bên dưới). Như với tất cả các hàm trả về
 key | value
-----+-------
 a   | foo
 b   | bar
61, người gọi phải xác định rõ ràng cấu trúc của bản ghi bằng mệnh đề
 key | value
-----+-------
 a   | foo
 b   | bar
63.
 key | value
-----+-------
 a   | foo
 b   | bar
70
 key | value
-----+-------
 a   | foo
 b   | bar
6

 key | value
-----+-------
 a   | foo
 b   | bar
71

 key | value
-----+-------
 a   | foo
 b   | bar
72

 json_object_keys
------------------
 f1
 f2
8

 json_object_keys
------------------
 f1
 f2
9

Trả về
 key | value
-----+-------
 a   | foo
 b   | bar
19 với tất cả các trường đối tượng có giá trị null bị bỏ qua. Các giá trị null khác không bị ảnh hưởng.
 key | value
-----+-------
 a   | foo
 b   | bar
76
 key | value
-----+-------
 a   | foo
 b   | bar
77

 key | value
-----+-------
 a   | foo
 b   | bar
78

 json_object_keys
------------------
 f1
 f2
9

Trả về
 key | value
-----+-------
 a   | foo
 b   | bar
00 với phần được chỉ định bởi
 key | value
-----+-------
 a   | foo
 b   | bar
01 được thay thế bằng
 key | value
-----+-------
 a   | foo
 b   | bar
02 hoặc thêm
 key | value
-----+-------
 a   | foo
 b   | bar
02 nếu
 key | value
-----+-------
 a   | foo
 b   | bar
04 là đúng (mặc định là
 key | value
-----+-------
 a   | foo
 b   | bar
05) và mục được chỉ định bởi
 key | value
-----+-------
 a   | foo
 b   | bar
01 không tồn tại. Cũng giống như các toán tử hướng đường dẫn, các số nguyên âm xuất hiện trong
 key | value
-----+-------
 a   | foo
 b   | bar
01 được tính từ cuối mảng JSON

 key | value
-----+-------
 a   | foo
 b   | bar
08

 key | value
-----+-------
 a   | foo
 b   | bar
09

 key | value
-----+-------
 a   | foo
 b   | bar
10

 key | value
-----+-------
 a   | foo
 b   | bar
11

 key | value
-----+-------
 a   | foo
 b   | bar
12

 json_object_keys
------------------
 f1
 f2
9

Trả về
 key | value
-----+-------
 a   | foo
 b   | bar
00 với
 key | value
-----+-------
 a   | foo
 b   | bar
02 được chèn vào. Nếu phần
 key | value
-----+-------
 a   | foo
 b   | bar
00 được chỉ định bởi
 key | value
-----+-------
 a   | foo
 b   | bar
01 nằm trong một mảng JSONB, thì
 key | value
-----+-------
 a   | foo
 b   | bar
02 sẽ được chèn vào trước hoặc sau mục tiêu nếu
 key | value
-----+-------
 a   | foo
 b   | bar
19 là đúng (mặc định là
 key | value
-----+-------
 a   | foo
 b   | bar
20). Nếu phần
 key | value
-----+-------
 a   | foo
 b   | bar
00 được chỉ định bởi
 key | value
-----+-------
 a   | foo
 b   | bar
01 nằm trong đối tượng JSONB, thì
 key | value
-----+-------
 a   | foo
 b   | bar
02 sẽ chỉ được chèn nếu
 key | value
-----+-------
 a   | foo
 b   | bar
00 không tồn tại. Cũng giống như các toán tử hướng đường dẫn, các số nguyên âm xuất hiện trong
 key | value
-----+-------
 a   | foo
 b   | bar
01 được tính từ cuối mảng JSON

 key | value
-----+-------
 a   | foo
 b   | bar
26

 key | value
-----+-------
 a   | foo
 b   | bar
27

 key | value
-----+-------
 a   | foo
 b   | bar
28

 key | value
-----+-------
 a   | foo
 b   | bar
29

 key | value
-----+-------
 a   | foo
 b   | bar
30

 json_object_keys
------------------
 f1
 f2
4

Trả về
 key | value
-----+-------
 a   | foo
 b   | bar
19 dưới dạng văn bản JSON được thụt lề.
 key | value
-----+-------
 a   | foo
 b   | bar
33
 key | value
-----+-------
 a   | foo
 b   | bar
7

 key | value
-----+-------
 a   | foo
 b   | bar
34

 key | value
-----+-------
 a   | foo
 b   | bar
75 Kiểm tra xem đường dẫn JSON có trả về bất kỳ mục nào cho giá trị JSON được chỉ định hay không

 key | value
-----+-------
 a   | foo
 b   | bar
36

 key | value
-----+-------
 a   | foo
 b   | bar
05

 key | value
-----+-------
 a   | foo
 b   | bar
38

 key | value
-----+-------
 a   | foo
 b   | bar
75 Trả về kết quả kiểm tra vị từ đường dẫn JSON cho giá trị JSON được chỉ định. Chỉ mục đầu tiên của kết quả được tính đến. Nếu kết quả không phải là Boolean, thì trả về
 key | value
-----+-------
 a   | foo
 b   | bar
76

 key | value
-----+-------
 a   | foo
 b   | bar
41

 key | value
-----+-------
 a   | foo
 b   | bar
05

 key | value
-----+-------
 a   | foo
 b   | bar
43

 key | value
-----+-------
 a   | foo
 b   | bar
41 Nhận tất cả các mục JSON được trả về bởi đường dẫn JSON cho giá trị JSON được chỉ định

 key | value
-----+-------
 a   | foo
 b   | bar
45

 key | value
-----+-------
 a   | foo
 b   | bar
0

 key | value
-----+-------
 a   | foo
 b   | bar
46

 json_object_keys
------------------
 f1
 f2
9 Nhận tất cả các mục JSON được trả về bởi đường dẫn JSON cho giá trị JSON đã chỉ định và bao kết quả thành một mảng

 key | value
-----+-------
 a   | foo
 b   | bar
48

 key | value
-----+-------
 a   | foo
 b   | bar
49

 key | value
-----+-------
 a   | foo
 b   | bar
50

 json_object_keys
------------------
 f1
 f2
9 Nhận mục JSON đầu tiên được trả về bởi đường dẫn JSON cho giá trị JSON được chỉ định. Trả về
 key | value
-----+-------
 a   | foo
 b   | bar
52 không có kết quả

 key | value
-----+-------
 a   | foo
 b   | bar
53

 key | value
-----+-------
 a   | foo
 b   | bar
54

Khi bạn sắp xếp các điểm theo thứ tự từng bước theo ngày bạn đang sử dụng?

A mẫu tổ chức theo trình tự tương tự như mẫu theo trình tự thời gian, nhưng sắp xếp thông tin theo trình tự từng bước mô tả một . Sử dụng một mẫu tuần tự, mỗi phần thông tin chính đại diện cho một bước chính mà một người sẽ tuân theo trong quy trình thực tế.

Người nói thuật lại một loạt sự kiện theo trình tự xảy ra của chúng bằng phương pháp sắp xếp lời nói nào?

A mẫu bài phát biểu được sắp xếp theo trình tự thời gian sắp xếp các ý chính theo trình tự các sự kiện hoặc sự kiện theo thời gian chúng diễn ra. Cấu trúc này hoạt động đặc biệt tốt cho các bài phát biểu thông tin và giới thiệu.

Bốn loại bài phát biểu cung cấp thông tin được thảo luận trong chương này là gì?

Bốn loại bài phát biểu cung cấp thông tin là bài phát biểu định nghĩa, bài phát biểu minh họa, bài phát biểu giải thích và bài phát biểu mô tả . Một bài phát biểu định nghĩa giải thích ý nghĩa, lý thuyết hoặc triết lý của một chủ đề cụ thể mà khán giả có thể không biết nhiều về nó.

mô tả tốt nhất về trật tự chủ đề của một bài phát biểu là gì?

Trật tự chủ đề- Một chủ đề được chia thành các phần và sau đó sắp xếp theo thứ tự do người nói xác định và được nêu trong mục đích cụ thể . Thứ tự chủ đề cũng được sử dụng cho một bài phát biểu quy trình đề cập đến nhiều hơn một điểm chính.