2.2 KiB
2.2 KiB
مرجع لغة استعلام BaraQL
BaraQL هي لغة استعلام متوافقة مع SQL مع امتدادات لعمليات الرسم البياني والمتجة والمستندات.
أنواع البيانات
| النوع | الوصف | مثال |
|---|---|---|
null |
قيمة فارغة | null |
bool |
منطقي | true, false |
int8 |
عدد صحيح 8 بت | 127 |
int16 |
عدد صحيح 16 بت | 32767 |
int32 |
عدد صحيح 32 بت | 2147483647 |
int64 |
عدد صحيح 64 بت | 9223372036854775807 |
float32 |
فاصلة عائمة 32 بت | 3.14 |
float64 |
فاصلة عائمة 64 بت | 3.14159265359 |
str |
سلسلة UTF-8 | 'hello' |
vector |
متجه float32 | [0.1, 0.2, 0.3] |
datetime |
طابع زمني ISO 8601 | '2025-01-15T10:30:00Z' |
uuid |
UUID v4 | '550e8400-e29b-41d4-a716-446655440000' |
الاستعلامات الأساسية
SELECT
SELECT * FROM users;
SELECT name, age FROM users;
SELECT name AS full_name FROM users;
SELECT * FROM users LIMIT 10 OFFSET 20;
WHERE
SELECT * FROM users WHERE age > 18;
SELECT * FROM users WHERE age BETWEEN 18 AND 65;
SELECT * FROM users WHERE department IN ('Engineering', 'Sales');
SELECT * FROM users WHERE name LIKE 'A%';
INSERT
INSERT users { name := 'Alice', age := 30 };
UPDATE
UPDATE users SET age = 31 WHERE name = 'Alice';
DELETE
DELETE FROM users WHERE name = 'Bob';
JOIN
SELECT u.name, o.total
FROM users u
INNER JOIN orders o ON u.id = o.user_id;
CTE (تعبيرات الجدول المشترك)
WITH active_users AS (
SELECT * FROM users WHERE active = true
)
SELECT * FROM active_users;
البحث المتجهي
INSERT articles { title := 'Nim Programming', embedding := [0.1, 0.2, 0.3, 0.4] };
SELECT title FROM articles
ORDER BY cosine_distance(embedding, [0.1, 0.2, 0.3, 0.4])
LIMIT 5;
أنماط الرسم البياني
MATCH (p:Person)-[:KNOWS]->(friend:Person)
WHERE p.name = 'Alice'
RETURN friend.name;
المعاملات
BEGIN;
INSERT users { name := 'Alice', age := 30 };
COMMIT;