2.2 KiB
2.2 KiB
BaraQL - Sorgu Dili Referansı
BaraQL, grafik, vektör ve doküman operasyonları için uzantılarla SQL uyumlu bir sorgu dilidir.
Veri Tipleri
| Tip | Açıklama | Örnek |
|---|---|---|
null |
Boş değer | null |
bool |
Boolean | true, false |
int8 |
8-bit işaretli tamsayı | 127 |
int16 |
16-bit işaretli tamsayı | 32767 |
int32 |
32-bit işaretli tamsayı | 2147483647 |
int64 |
64-bit işaretli tamsayı | 9223372036854775807 |
float32 |
32-bit kayan nokta | 3.14 |
float64 |
64-bit kayan nokta | 3.14159265359 |
str |
UTF-8 string | 'hello' |
vector |
Float32 vektör | [0.1, 0.2, 0.3] |
datetime |
ISO 8601 zaman damgası | '2025-01-15T10:30:00Z' |
uuid |
UUID v4 | '550e8400-e29b-41d4-a716-446655440000' |
Temel Sorgular
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 };
INSERT users { { name := 'Alice', age := 30 }, { name := 'Bob', age := 25 } };
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 (Common Table Expressions)
WITH active_users AS (
SELECT * FROM users WHERE active = true
)
SELECT * FROM active_users;
Vektör Arama
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;
Grafik Kalıpları
MATCH (p:Person)-[:KNOWS]->(friend:Person)
WHERE p.name = 'Alice'
RETURN friend.name;
İşlemler
BEGIN;
INSERT users { name := 'Alice', age := 30 };
COMMIT;
Grafik Kalıpları
MATCH (p:Person)-[:KNOWS]->(friend:Person)
WHERE p.name = 'Alice'
RETURN friend.name;