หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
Note
คุณลักษณะนี้อยู่ในการแสดงตัวอย่างสาธารณะ การแสดงตัวอย่างนี้จะมีให้โดยไม่มีข้อตกลงระดับบริการ และไม่แนะนําสําหรับปริมาณงานการผลิต คุณลักษณะบางอย่างอาจไม่ได้รับการสนับสนุนหรืออาจมีความสามารถที่จํากัด สําหรับข้อมูลเพิ่มเติม ให้ดู เงื่อนไขเพิ่มเติมของการใช้สําหรับการแสดงตัวอย่าง Microsoft Azure
ภาษา GQL สนับสนุนค่าชนิดต่าง ๆ เช่น ตัวเลข สตริง และองค์ประกอบกราฟ ค่าเหล่านี้จะถูกจัดระเบียบเป็นชุดที่เรียกว่าชนิดค่า ซึ่งกําหนดการดําเนินการที่คุณสามารถทําได้และวิธีที่ค่าทํางานในบริบทที่แตกต่างกัน การทําความเข้าใจเกี่ยวกับระบบชนิดเป็นสิ่งจําเป็นสําหรับการเขียนคิวรีที่ถูกต้องและหลีกเลี่ยงข้อผิดพลาดรันไทม์
สําคัญ
บทความนี้ใช้ชุดข้อมูลกราฟตัวอย่างเครือข่ายสังคมโดยเฉพาะ
แนวคิดหลัก:
- ชนิดค่า อาจเป็น ค่าว่าง หรือ วัสดุ (ไม่ใช่ค่าว่างได้) ขึ้นอยู่กับว่ารวมหรือไม่รวมค่า Null
- มีการระบุชนิดค่าที่ไม่ใช่ค่าว่างโดยใช้ไวยากรณ์เป็น
NOT NULL - ค่าเดียวกัน สามารถเป็นของชนิดค่าหลายชนิด (โพลีมอฟิฟิก)
- ค่า null เป็นสมาชิกของชนิดค่าที่สามารถเป็น null ได้ทุกชนิด
Note
ชนิดค่าทั้งหมดสามารถเป็นค่าว่างได้ตามค่าเริ่มต้น เว้นแต่จะมีการประกาศเป็น NOT NULLอย่างชัดเจน
ตัวอย่างเช่น INT ระบุชนิดจํานวนเต็มที่สามารถเป็น null ได้ ในขณะที่ INT NOT NULL ระบุชนิดจํานวนเต็มของวัสดุ
วิธีการจัดระเบียบชนิดค่า
ชนิดค่าทั้งหมดแบ่งออกเป็นสองประเภทหลักซึ่งทําหน้าที่เพื่อวัตถุประสงค์ที่แตกต่างกันในคิวรีของคุณ:
- ชนิดค่าที่กําหนดไว้ล่วงหน้า - สร้างขึ้นในภาษา (เช่น ตัวเลข สตริง และบูลีน)
- ชนิดค่าที่สร้างขึ้น - ประกอบด้วยจากชนิดอื่น ๆ (รายการ เส้นทาง)
ชนิดค่าที่กําหนดไว้ล่วงหน้าจะถูกจัดเป็นประเภทเฉพาะเพิ่มเติม:
- ชนิดค่าบูลีน - จริง เท็จ และค่าที่ไม่รู้จักสําหรับการดําเนินการเชิงตรรกะ
- ชนิดค่าสตริงอักขระ - ข้อมูลข้อความที่มีการสนับสนุน Unicode
- ชนิดค่าตัวเลข - จํานวนเต็มและตัวเลขทศนิยม
- ชนิดค่าชั่วขณะ - ค่าวันที่และเวลาพร้อมการสนับสนุนโซนเวลา
- ชนิดค่าอ้างอิง - การอ้างอิงถึงโหนดและขอบในกราฟของคุณ
- ชนิดค่า Immaterial - ค่าพิเศษเช่น null และไม่มีสิ่งใด
ความเท่าเทียมกันและการเปรียบเทียบทํางานอย่างไร
การทําความเข้าใจวิธีการที่ GQL เปรียบเทียบค่าเป็นสิ่งสําคัญสําหรับการเขียนคิวรีที่มีประสิทธิภาพ โดยเฉพาะอย่างยิ่งเมื่อจัดการกับการกรอง การเรียงลําดับ และการรวม
กฎการเปรียบเทียบพื้นฐาน
- โดยทั่วไปคุณสามารถเปรียบเทียบค่าของชนิดเดียวกันได้
- ตัวเลขทั้งหมดสามารถเปรียบเทียบกันได้ (ตัวอย่างเช่น จํานวนเต็มที่มีเลขทศนิยม)
- สามารถเปรียบเทียบได้เฉพาะค่าอ้างอิงที่อ้างอิงวัตถุชนิดเดียวกันเท่านั้น (การอ้างอิงโหนดกับการอ้างอิงโหนด การอ้างอิงขอบด้วยการอ้างอิงขอบ)
การจัดการ Null ในการเปรียบเทียบ
เมื่อคุณเปรียบเทียบค่าใดก็ตามกับ null ผลลัพธ์จะเป็น เสมอUNKNOWN การจัดการ Null เป็นไปตามหลักการตรรกะแบบสามค่า อย่างไรก็ตาม ORDER BY คําสั่งจะ NULL ถือว่าเป็นค่าที่น้อยที่สุดเมื่อทําการเรียงลําดับ ซึ่งให้ลักษณะการทํางานในการเรียงลําดับที่สามารถคาดการณ์ได้
ความแตกต่างกับความเท่ากัน
ข้อความบางข้อความไม่ได้ทดสอบความเท่ากัน แต่เพื่อความแตกต่าง การทําความเข้าใจความแตกต่างเป็นสิ่งสําคัญสําหรับการดําเนินการ เช่น DISTINCT และGROUP BY
การทดสอบความแตกต่างเป็นไปตามกฎเดียวกับความเท่ากันโดยมีข้อยกเว้นที่สําคัญหนึ่งข้อ: NULL ไม่แตกต่างจากNULL ความแตกต่างแตกต่างจากการทดสอบความเท่ากันที่เกี่ยวข้องกับ NULLซึ่งส่งผลต่อ เสมอในUNKNOWN
การทดสอบความแตกต่างถูกใช้โดย:
-
RETURN DISTINCT: กําหนดว่าสองแถวเป็นแถวที่ซ้ํากันของกันและกันหรือไม่ -
GROUP BY: กําหนดว่าสองแถวเป็นของคีย์การจัดกลุ่มเดียวกันในระหว่างการรวมหรือไม่
สองแถวจากตารางจะถือว่าแตกต่างกันถ้ามีอย่างน้อยหนึ่งคอลัมน์ที่ค่าจากทั้งสองแถวจะแตกต่างกัน
ชนิดค่าบูลีน
ค่าบูลีนเป็นค่าTRUEตรรกะสามค่า , FALSEและUNKNOWN
Note
UNKNOWN และค่า null เหมือนกัน
UNKNOWNเป็นเพียงแค่ค่า null ของชนิดBOOL
วิธีการทํางานของความเท่าเทียมกัน:
| ค่าด้านซ้าย | ค่าขวา | ผลลัพธ์ |
|---|---|---|
| จริง | เท็จ | เท็จ |
| จริง | จริง | จริง |
| จริง | ไม่คุ้นเคย | ไม่คุ้นเคย |
| เท็จ | เท็จ | จริง |
| เท็จ | จริง | เท็จ |
| เท็จ | ไม่คุ้นเคย | ไม่คุ้นเคย |
| ไม่คุ้นเคย | เท็จ | ไม่คุ้นเคย |
| ไม่คุ้นเคย | จริง | ไม่คุ้นเคย |
| ไม่คุ้นเคย | ไม่คุ้นเคย | ไม่คุ้นเคย |
วิธีการทํางานของการเปรียบเทียบ:
FALSEน้อยกว่าTRUE การเปรียบเทียบใดๆ ที่เกี่ยวข้องกับUNKNOWNผลลัพธ์ในUNKNOWN
วิธีการเขียนสัญพจน์บูลีน:
TRUEFALSE-
UNKNOWNหรือNULL
ไวยากรณ์ของชนิด:
BOOL [ NOT NULL ]
ชนิดค่าสตริงของอักขระ
สตริงอักขระคือลําดับของจุดรหัส Unicode (อาจมีความยาวเป็นศูนย์) สตริงอักขระว่างไม่เหมือนกับค่า null
วิธีการทํางานของการเปรียบเทียบ:
สตริงอักขระจะถูกเปรียบเทียบโดยการเปรียบเทียบค่าสเกลาร์ Unicode ของจุดรหัสของพวกเขา (บางครั้งวิธีการเปรียบเทียบจะเรียกว่า UCS_BASIC การจัดเรียง)
วิธีการเขียนสัญพจน์สตริง:
ใส่อักขระของคุณในเครื่องหมายอัญประกาศคู่ (") หรืออัญประกาศเดี่ยว ('):
"Hello, World!"
'Guten Tag!'
คุณไม่สามารถระบุอักขระควบคุม Unicode บางตัวในสัญพจน์ของสตริงได้โดยตรง
โดยเฉพาะอย่างยิ่ง ไม่อนุญาตให้ใช้อักขระทั้งหมดจากคลาสประเภททั่วไปของ Unicode "Cc" และ "Cn" แต่ใช้ C-style \-escapes แทน:
| ข้อมูลป้อนเข้า | อักขระที่ไม่ได้เลื่อนขึ้น |
|---|---|
\\ |
\ |
\" |
" |
\' |
' |
\` |
` |
\t |
U+0009 |
\b |
U+0008 |
\n |
U+000A |
\r |
U+000D |
\f |
U+000C |
\uabcd |
U+ABCD |
\UABCDEF01 |
U+ABCDEF01 |
นอกจากนี้ GQL ยังสนับสนุนการเลี่ยงโครงสร้างสไตล์ SQL ด้วยการเพิ่มอักขระและ"อักขระโดยรอบ'เป็น 2 เท่า:
| สตริงจริง | สไตล์ C | สไตล์ SQL |
|---|---|---|
| วิธีการ "Ironic!" | "How \"ironic!\"" |
"How ""ironic!""" |
| วิธีการ 'รีด!' | 'How \'ironic!\'' |
'How ''ironic!''' |
เคล็ดลับ
ปิดใช้งาน C-style \-escapes โดยใส่คํานําหน้าสัญพจน์สตริงของคุณด้วย@
ไวยากรณ์ของชนิด:
STRING [ NOT NULL ]
ชนิดตัวเลข
ชนิดตัวเลขที่แน่นอน
Graph ใน Microsoft Fabric สนับสนุนจํานวนที่แน่นอนที่เป็นจํานวนเต็มลบหรือจํานวนเต็มบวก
วิธีการทํางานของการเปรียบเทียบ:
ระบบจะเปรียบเทียบตัวเลขทั้งหมดตามค่าตัวเลข
วิธีการเขียนสัญพจน์จํานวนเต็ม:
| คำอธิบาย | ตัวอย่าง | ค่า |
|---|---|---|
| เลขจำนวนเต็ม | 123456 | 123456 |
| การจัดกลุ่มจํานวนเต็ม w | 123_456 | 123456 |
| จํานวนเต็มบวกอย่างชัดเจน | +123456 | 123456 |
| ศูนย์ | 0 | 0 |
| จํานวนเต็มลบ | -123456 | -123456 |
ไวยากรณ์ของชนิด:
INT [ NOT NULL ]
INT64 [ NOT NULL ]
UINT [ NOT NULL ]
UINT64 [ NOT NULL ]
INT และ INT64 ระบุชนิดตัวเลขเดียวกัน
ดังนั้น ให้ทําUINTและUINT64
ชนิดตัวเลขโดยประมาณ
Graph ใน Microsoft Fabric สนับสนุนจํานวนโดยประมาณที่เป็น IEEE (สถาบันวิศวกรไฟฟ้าและอิเล็กทรอนิกส์) หมายเลขจุดทศนิยมลอยตัวที่เข้ากันได้กับ 754
วิธีการทํางานของการเปรียบเทียบ:
ระบบจะเปรียบเทียบตัวเลขทั้งหมดตามค่าตัวเลข
วิธีการเขียนสัญพจน์จุดทศนิยมลอยตัว:
| คำอธิบาย | ตัวอย่าง | ค่า |
|---|---|---|
| สัญประกาศทั่วไป | 123.456 | 123.456 |
| การจัดกลุ่มสัญาตลักษณ์ทั่วไป | 123_456.789 | 123456.789 |
| สัญกรณ์วิทยาศาสตร์ | 1.23456e2 | 123.456 |
| สวรรคทางวิทยาศาสตร์ (ตัวพิมพ์ใหญ่) | 1.23456E2 | 123.456 |
| จุดทศนิยมพร้อมกับคําต่อท้าย | 123.456f | 123.456 |
| ความแม่นยําสองเท่าด้วยคําต่อท้าย | 123.456d | 123.456 |
ข้อควรพิจารณาเกี่ยวกับตัวเลขเพิ่มเติม:
- เกินและเกิน: การดําเนินการจํานวนเต็มที่เกินช่วงที่สนับสนุนอาจส่งผลให้เกิดข้อผิดพลาดรันไทม์หรือลักษณะการคลุมขึ้นอยู่กับการใช้งาน
- ความแม่นยํา: การทํางานแบบจุดทศนิยมลอยตัวอาจสูญเสียความแม่นยําเนื่องจากข้อจํากัดการแสดง IEEE 754
-
ค่าเลขทศนิยมพิเศษ:
NaN(ไม่ใช่ตัวเลข) ค่าอินฟินิตี้ด้านบวก (+∞) และค่าอนันต์เชิงลบ (-∞) อาจได้รับการสนับสนุนในบริบทจุดทศนิยมลอยตัว
ไวยากรณ์ของชนิด:
FLOAT [ NOT NULL ]
DOUBLE [ NOT NULL ]
FLOAT64 [ NOT NULL ]
DOUBLE, FLOATและ FLOAT64 ทั้งหมดระบุชนิดเดียวกัน
ชนิดค่าชั่วเวลา
ค่าวันที่เวลาที่มีเขต
ค่าวันที่เวลาแบบโซนแสดงวันที่เวลาที่เข้ากันได้กับ ISO 8601 พร้อมด้วยค่าชดเชยเขตเวลา
วิธีการทํางานของการเปรียบเทียบ:
ระบบจะเปรียบเทียบค่าวันที่เวลาที่อยู่เป็นโซนตามเวลาสัมบูรณ์ของพวกเขา
วิธีการเขียนสัญพจน์ datetime:
ใช้รูปแบบ ISO 8601 กับข้อมูลโซนเวลา:
ZONED_DATETIME('2024-08-15T14:30:00+02:00')
ZONED_DATETIME('2024-08-15T12:30:00Z')
ZONED_DATETIME('2024-12-31T23:59:59.999-08:00')
ไวยากรณ์ของชนิด:
ZONED DATETIME [ NOT NULL ]
ชนิดค่าอ้างอิง
ค่าอ้างอิงประกอบด้วยการอ้างอิงไปยังโหนดหรือขอบที่ตรงกัน
ค่าการอ้างอิงโหนด
ค่าอ้างอิงโหนดแสดงการอ้างอิงไปยังโหนดเฉพาะในกราฟของคุณ โดยทั่วไปคุณจะได้รับค่าเหล่านี้เมื่อมีการจับคู่โหนดในรูปแบบกราฟ และคุณสามารถใช้เพื่อเข้าถึงคุณสมบัติของโหนดและทําการเปรียบเทียบได้
วิธีการทํางานของการเปรียบเทียบ:
คุณควรเปรียบเทียบค่าอ้างอิงโหนดเพื่อความเท่าเทียมกันเท่านั้น ค่าการอ้างอิงโหนดสองรายการจะเท่ากัน หากและเฉพาะเมื่ออ้างอิงถึงโหนดเดียวกันเท่านั้น
Graph ใน Microsoft Fabric กําหนดลําดับแบบเชิงกําหนดสําหรับค่าอ้างอิง อย่างไรก็ตาม ลําดับนี้สามารถเปลี่ยนจากคิวรีเป็นคิวรี และไม่ควรพึ่งพาในคิวรีการผลิต
วิธีการเข้าถึงคุณสมบัติ:
ใช้สวรรคจุดเพื่อเข้าถึงคุณสมบัติของโหนด:
node_var.property_name
ชนิดโหนด Abstract ใน schema ของกราฟ:
เมื่อทํางานกับชนิดกราฟ คุณสามารถกําหนดชนิดโหนดนามธรรมที่ทําหน้าที่เป็นชนิดพื้นฐานสําหรับการสืบทอดแต่ไม่สามารถสร้างอินสแตนซ์ได้โดยตรง ชนิดบทคัดย่อเปิดใช้งานรูปแบบการคิวรีโพลีมอฟิก:
-- Abstract base type (cannot be instantiated)
ABSTRACT
(:Person => {
id :: INT64,
name :: STRING,
birth_date :: ZONED DATETIME
}),
-- Concrete types that inherit from abstract base
(:Employee => Person {
employee_id :: STRING,
department :: STRING,
hire_date :: ZONED DATETIME
})
(:Customer => :Person {
customer_id :: STRING,
membership_level :: STRING,
registration_date :: ZONED DATETIME
})
คิวรี่โพลีมอฟิกที่มีชนิดนามธรรม:
ชนิด Abstract เปิดใช้งานรูปแบบการคิวรีที่มีประสิทธิภาพที่คุณสามารถจับคู่กับชนิดพื้นฐานเพื่อค้นหาอินสแตนซ์ทั้งหมดของชนิดที่ได้รับมา:
-- Find all Person instances (both Employee and Customer)
MATCH (p:Person)
RETURN p.name, p.birthday, labels(p) AS label_names
-- Mixed type patterns
MATCH (e:Employee)-[:knows]-(c:Customer)
WHERE e.department = 'Sales' AND c.membership_level = 'Premium'
RETURN e.name AS sales_person, c.name AS customer
Note
แบบสอบถามก่อนหน้านี้ถือว่าชนิดกราฟที่ร่างไว้ข้างต้น และไม่ใช้ชุดข้อมูลตัวอย่างเครือข่ายสังคม
วิธีนี้ให้ความปลอดภัยประเภทในขณะที่เปิดใช้งานการสร้างแบบจําลองข้อมูลแบบยืดหยุ่นตามการสืบทอดใน Schema ของกราฟของคุณ
ไวยากรณ์ของชนิด:
NODE [ NOT NULL ]
ค่าการอ้างอิงขอบกราฟ
ค่าอ้างอิงขอบกราฟแสดงการอ้างอิงถึงขอบที่เฉพาะเจาะจงในกราฟของคุณ โดยทั่วไปคุณจะได้รับค่าเหล่านี้เมื่อมีการจับคู่ขอบในรูปแบบกราฟ และคุณสามารถใช้เพื่อเข้าถึงคุณสมบัติขอบและทําการเปรียบเทียบได้
วิธีการทํางานของการเปรียบเทียบ:
คุณสามารถเปรียบเทียบค่าอ้างอิงขอบสําหรับความเท่ากันเท่านั้น ค่าการอ้างอิงขอบสองค่าจะเท่ากัน หากและเฉพาะเมื่ออ้างอิงขอบเดียวกันเท่านั้น
วิธีการเข้าถึงคุณสมบัติ:
ใช้สปอตเพื่อเข้าถึงคุณสมบัติขอบ:
edge_var.property_name
ไวยากรณ์ของชนิด:
EDGE [ NOT NULL ]
ชนิดค่า Immaterial
ชนิดค่าไม่ประกอบด้วยค่าวัสดุ "ธรรมดา"
ค่า Null
ค่า null แสดงถึงการขาดหายไปของค่าวัสดุที่รู้จัก ซึ่งเป็นสมาชิกของชนิดค่าที่สามารถเป็น Null ได้และแตกต่างจากค่าวัสดุใด ๆ ซึ่งเป็นค่าเดียวของชนิด null
วิธีการทํางานของการเปรียบเทียบ:
เมื่อคุณเปรียบเทียบค่าใดก็ตามกับ null ผลลัพธ์คือUNKNOWN
วิธีการเขียนสัญพจน์ null:
NULL -- type NULL
UNKNOWN -- type BOOL
ไวยากรณ์ของชนิด:
NULL
ชนิดไม่มีสิ่งใด
ชนิดค่าไม่ใช่ชนิดค่าที่ไม่มีค่า
แม้ว่าอาจดูเหมือนเป็นทางเทคนิค แต่ไม่มีชนิดใดที่ช่วยให้คุณสามารถกําหนดชนิดที่แม่นยําให้กับค่าเช่นค่ารายการว่างได้ ชนิดไม่มีสิ่งใดที่ช่วยให้คุณสามารถส่งผ่านรายการที่ว่างเปล่าที่ใดก็ตามที่ต้องการชนิดค่ารายการ (โดยไม่คํานึงถึงชนิดองค์ประกอบของรายการที่ต้องการ)
ไวยากรณ์ของชนิด:
NOTHING
NULL NOT NULL
(NOTHING และ NULL NOT NULL ระบุชนิดเดียวกัน)
ชนิดค่าที่สร้างขึ้น
ค่ารายการ
ค่ารายการคือลําดับขององค์ประกอบ รายการสามารถมีองค์ประกอบชนิดเดียวกันและสามารถรวมค่า Null ได้
สําคัญ
ในปัจจุบัน รายการใน graph ใน Microsoft Fabric ไม่สามารถมีองค์ประกอบของชนิดผสมได้
วิธีการทํางานของการเปรียบเทียบ:
รายการจะถูกเปรียบเทียบกันก่อนตามขนาด จากนั้นองค์ประกอบตามองค์ประกอบตามลําดับ รายการสองรายการจะเท่ากันหากพวกเขามีขนาดเท่ากันและองค์ประกอบที่สอดคล้องกันทั้งหมดจะเท่ากัน
เคล็ดลับ
การเปรียบเทียบที่เกี่ยวข้องกับค่าองค์ประกอบ null จะส่งผลเสมอในUNKNOWN การเปรียบเทียบ Null อาจนําไปสู่ผลลัพธ์ที่น่าประหลาดใจเมื่อเปรียบเทียบค่ารายการ!
รายการกลุ่ม:
รายการกลุ่มคือรายการที่ผูกไว้ตามรูปแบบขอบความยาวตัวแปรที่ตรงกัน Graph ใน Microsoft Fabric จะติดตามสถานะเป็นรายการกลุ่ม
รายการกลุ่มสามารถใช้ในการรวมแนวนอน สําหรับข้อมูลเพิ่มเติม โปรดดูนิพจน์ GQL และฟังก์ชัน
วิธีการเขียนสัญพจน์รายการ:
ใช้เครื่องหมายวงเล็บสี่เหลี่ยมเพื่อสร้างรายการ:
[1, 2, 3, 4]
['hello', 'world']
[1, 'mixed', TRUE, NULL]
[] -- empty list
วิธีการเข้าถึงองค์ประกอบ:
ใช้วงเล็บสี่เหลี่ยมที่มีการจัดทําดัชนีตามศูนย์เพื่อเข้าถึงองค์ประกอบรายการ:
list_var[0] -- first element
list_var[1] -- second element
การดําเนินการรายการทั่วไป:
-- Check if list contains a value
WHERE 'Engineering' IN employee.departments
-- List concatenation
RETURN [1, 2] || [3, 4] -- [1, 2, 3, 4]
-- List size
size(list_var)
ไวยากรณ์ของชนิด:
LIST<element_type> [ NOT NULL ]
LIST<element_type NOT NULL> [ NOT NULL ]
โดย element_type ที่สามารถเป็นประเภทที่รองรับใด ๆ เช่น STRING, INT64, DOUBLE, BOOL และอื่น ๆ
ค่าเส้นทาง
ค่าเส้นทางแสดงเส้นทางที่ตรงกับกราฟของคุณ ค่าเส้นทางประกอบด้วยลําดับที่ไม่ทั่วไปของโหนดสลับและค่าการอ้างอิงขอบที่เริ่มต้นและลงท้ายด้วยค่าการอ้างอิงโหนดเสมอ ค่าอ้างอิงเหล่านี้ระบุโหนดและขอบของเส้นทางที่ตรงกันดั้งเดิมในกราฟของคุณ
วิธีจัดโครงสร้างเส้นทาง:
เส้นทางประกอบด้วย:
- ลําดับของโหนดและขอบ:
node₁ - edge₁ - node₂ - edge₂ - ... - nodeₙ - เริ่มต้นและลงท้ายด้วยโหนดเสมอ
- มีโหนดอย่างน้อยหนึ่งโหนด (ความยาวของเส้นทางต่ําสุดคือขอบศูนย์)
Note
ไวยากรณ์สัญพจน์สําหรับเส้นทางยังไม่ได้รับการสนับสนุน
แต่สามารถผูกเส้นทางโดยใช้ MATCH pathVar=...path pattern...ได้
วิธีการทํางานของการเปรียบเทียบ:
เส้นทางจะถูกเปรียบเทียบโดยการเปรียบเทียบรายการค่าอ้างอิงกับโหนดและขอบที่เป็นส่วนประกอบทั้งหมดตามลําดับที่เกิดขึ้นตามเส้นทาง
ดูกฎการเปรียบเทียบสําหรับ ค่ารายการ และ ค่าอ้างอิง สําหรับรายละเอียดเพิ่มเติม
ไวยากรณ์ของชนิด:
PATH [ NOT NULL ]
การแปลงประเภทและการคัดเลือก
GQL สนับสนุนการแปลงประเภทโดยนัยและแบบชัดเจนเพื่อเปิดใช้งานการทํางานที่ยืดหยุ่นในขณะที่รักษาความปลอดภัยของประเภท
การแปลงโดยนัย
ประเภทค่าบางชนิดสามารถแปลงโดยปริยายได้เมื่อการแปลงมีความปลอดภัยและไม่สูญเสียข้อมูล:
- การปรับตัวเลขให้กว้าง: ค่าจํานวนเต็มสามารถแปลงโดยนัยเป็นชนิดจุดทศนิยมลอยตัวเมื่อใช้ในการดําเนินการทางคณิตศาสตร์แบบผสมได้
- บริบทสตริง: ค่าอาจถูกแปลงเป็นสตริงในบางบริบทเช่น การดําเนินการเรียงต่อกันโดยนัย
การคัดเลือกแบบชัดเจน
CASTใช้ฟังก์ชัน เพื่อแปลงค่าระหว่างชนิดที่เข้ากันได้อย่างชัดเจน:
CAST(value AS target_type)
ตัวอย่าง:
CAST(123 AS STRING) -- "123"
CAST('456' AS INT64) -- 456
CAST(3.14 AS STRING) -- "3.14"
CAST('true' AS BOOL) -- TRUE
กฎการแคสต์:
- ไปยัง STRING: ประเภทค่าส่วนใหญ่สามารถแปลงเป็น STRING ด้วยการแทนค่าสัญพจน์
- เป็นชนิดตัวเลข: สตริงที่มีสัญพจน์ตัวเลขที่ถูกต้องสามารถแปลงเป็นชนิดตัวเลขที่เหมาะสมได้
- ไปยัง BOOL: สตริง 'จริง'/'เท็จ' (ตรงตามตัวพิมพ์ใหญ่-เล็ก) สามารถแคสต์เป็นค่าบูลีนได้
- แคสต์ไม่ถูกต้อง: การพยายามแปลงค่าที่เข้ากันไม่ได้ส่งผลให้เกิดข้อผิดพลาดในรันไทม์