Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ SQLite ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½Π° Π½ΡƒΠΆΠ½Π°?

  1. Главная
  2. Π’ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Ρ‹
  3. Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…
  4. SQLite

SQLite — это встроСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ, бСзсСрвСрный, Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π‘Π£Π‘Π” SQL.

Β Π­Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, которая настроСна Π½Π° Π½ΡƒΠ»ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π² вашСй систСмС.

SQLite Π½Π΅ являСтся Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌ процСссом, ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π΅Π³ΠΎ статичСски ΠΈΠ»ΠΈ динамичСски Π² соотвСтствии с вашим Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ с вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.Β SQLite Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ обращаСтся ΠΊ своим Ρ„Π°ΠΉΠ»Π°ΠΌ хранСния.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ SQLite

  • SQLite Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ процСсса сСрвСра ΠΈΠ»ΠΈ систСмы для Ρ€Π°Π±ΠΎΡ‚Ρ‹ (Π±Π΅Π· сСрвСра).
  • SQLite поставляСтся с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ отсутствиС нСобходимости Π² настройкС ΠΈΠ»ΠΈ администрировании.
  • Полная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… SQLite хранится Π² ΠΎΠ΄Π½ΠΎΠΌ кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠΌ дискС.
  • SQLite ΠΎΡ‡Π΅Π½ΡŒ малСнький ΠΈ Π»Π΅Π³ΠΊΠΈΠΉ, ΠΌΠ΅Π½Π΅Π΅ 400KiB ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ сконфигурированный ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ 250KiB с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ функциями, ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ.
  • SQLite являСтся Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ отсутствиС Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй.
  • SQLite-Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстимы с ACID, обСспСчивая бСзопасный доступ ΠΊ нСскольким процСссам ΠΈΠ»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ.
  • SQLite ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ языка запросов, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π² стандартС SQL92 (SQL2).
  • SQLite написан Π½Π° ANSI-C ΠΈ прСдоставляСт простой ΠΈ простой Π² использовании API.
  • SQLite доступСн Π² UNIX (Linux, Mac OS-X, Android, iOS) ΠΈ Windows (Win32, WinCE, WinRT).

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ SQLite

Π’ SQLite имССтся нСсколько Π½Π΅ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ SQL92:

НазваниС ОписаниС
RIGHT OUTER JOIN Π’Π½Π΅Π΄Ρ€Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ LEFT OUTER JOIN.
FULL OUTER JOIN Π’Π½Π΅Π΄Ρ€Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ LEFT OUTER JOIN.
ALTER TABLE ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ RENAME TABLE ΠΈ ADD COLUMN ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ALTER TABLE.Β DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ.
Trigger support Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° ROW ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ, Π½ΠΎ Π½Π΅ для Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ² EACH STATEMENT.
VIEWs VIEWs Π² SQLite доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния.Β Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ DELETE, INSERT ΠΈΠ»ΠΈ UPDATE Π² прСдставлСнии.
GRANT ΠΈ REVOKE ЕдинствСнными ΠΏΡ€Π°Π²Π°ΠΌΠΈ доступа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ SQLite

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ SQLite для взаимодСйствия с рСляционными Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ SQL.Β Π­Ρ‚ΠΎ CREATE, SELECT, INSERT, UPDATE, DELETE ΠΈ DROP.Β 

НазваниС ОписаниС
CREATE Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, прСдставлСниС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….
ALTER Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π°.
DROP
УдаляСт всю Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, прСдставлСниС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….
INSERT Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ запись
UPDATE Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ записи
DELETE УдаляСт записи
SELECT Π˜Π·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ записи ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†

Β 

Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚ с использованиСм SQLiteβ€” Ruby Rush

На ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ познакомились с понятиСм Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… SQlite ΠΊ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° ruby: Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Ρƒ.

План ΡƒΡ€ΠΎΠΊΠ°

  1. gem для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с SQlite
  2. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π‘Π” ΠΊ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Ρƒ

Устройство Π‘Π£Π‘Π”

Π‘Π£Π‘Π” ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: ΠΎΠ΄Π½ΠΎ (сСрвСр) постоянно Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ процСссС ΠΈ крутится Π² памяти процСссора, Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ (ΠΊΠ»ΠΈΠ΅Π½Ρ‚) соСдиняСтся с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ SQL-запросов. Π’Π°ΠΊΠΈΠ΅ Π‘Π£Π‘Π” Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрными, ΠΊ Π½ΠΈΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, относятся Π‘Π£Π‘Π” MySQL ΠΈ PostgreSQL.

SQlite Π½Π΅ являСтся ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрной Π‘Π£Π‘Π”. Π’ случаС с SQLite ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости. Π’ любом случаС Π‘Π£Π‘Π” всСгда прСдоставляСт ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ интСрфСйс для ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ Π½Π΅ΠΉ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ обращСниями Π² (практичСски) любом языкС программирования ΠΊ Π‘Π” ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΅ΡΡ‚ΡŒ подходящиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π³Π΄Π΅ этот интСрфСйс Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½.

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π‘Π” для Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π°

ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ наш Π΄Π½Π΅Π²Π½ΠΈΠΊ пользовался SQlite-Π±Π°Π·ΠΎΠΉ для хранСния всСх записСй. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ запись Π² Π±Π°Π·Π΅ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΈ ΠΏΠΎ запросу ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ послСдниС записи ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (Memo, Link, Task).

КаТдая Ρ‚Π°Π±Π»ΠΈΡ†Π° Π² Π‘Π” прСдставляСт ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, содСрТит записи для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ класса.

Для удобства всС записи ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ posts. Как ΠΈ Ρƒ класса, поля Π² этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ‚Ρƒ ΠΆΠ΅ Ρ€ΠΎΠ»ΡŒ, это просто свойства этой сущности. Π Π°Π·ΡƒΠΌΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ поля Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ поля класса.

Но ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… классов: Memo, Link ΠΈ Task. Π’ΠΎΠ³Π΄Π° Ρƒ этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»Π΅ΠΉ: Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΊΠΈΠΌ Π±Ρ‹ Π½ΠΈ Π±Ρ‹Π»Π° запись, ΠΌΡ‹ Π±Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π΅Ρ‘ ΡƒΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² строку этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’Π°ΠΊΠΆΠ΅ Ρƒ нас Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅ type, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π·Π° запись.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нашСго SQlite ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° создадим Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… notepad.sqlite Π² ΠΏΠ°ΠΏΠΊΠ΅ нашСго ΡƒΡ€ΠΎΠΊΠ° c:\rubytut2\lesson12 ΠΈ Π² Π½Π΅ΠΉ создайтС Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ для нашСго Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π°. Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ слСдитС Π·Π° Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΏΠΎΠ»Π΅ΠΉ.

Установка gem-Π° sqlite3

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² наши ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… SQLite ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. Она называСтся sqlite3.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ c:\dev Π² ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ΅ ΠΈ запуститС Π½Π°ΡˆΡƒ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΡƒΡŽ консоль Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° msys.bat. Π’ Π½Π΅ΠΉ Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для установки:

gem install sqlite3 --platform=ruby -- --with-sqlite3-include=/c:/sqlite3/ --with-sqlite3-lib=/c:/sqlite3/.libs/

Если всё ΠΏΡ€ΠΎΡˆΠ»ΠΎ Π³Π»Π°Π΄ΠΊΠΎ, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ дСйствиС: скопируйтС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ c:\sqlite\.libs\libsqlite3-0.dll

Π² ΠΏΠ°ΠΏΠΊΡƒ c:\Ruby22\bin (ΠΈΠ»ΠΈ Π² Ρ‚Ρƒ ΠΏΠ°ΠΏΠΊΡƒ, ΠΊΡƒΠ΄Π° Π²Ρ‹ устанавливали RubΡƒ).

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ наш Π±Π»ΠΎΠΊΠ½ΠΎΡ‚ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

БСйчас ΠΌΡ‹ напишСм Ρƒ класса Post ΠΌΠ΅Ρ‚ΠΎΠ΄ save_to_db, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π±Ρ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π² Π±Π°Π·Π΅ строку с этими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Для этого ΠΌΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ SQL-запросом INSERT Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°:

INSERT INTO posts (type, body, created_at) VALUES ('Memo', 'МнС приснился странный сок', '2015.07.08, 10:00')

Π’Π°ΠΊΠΆΠ΅, напишСм ΠΌΠ΅Ρ‚ΠΎΠ΄ find, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈΠ±ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ запись (Ссли Π΅ΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ ID этой записи), Π»ΠΈΠ±ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ послСдниС 10 записСй Π² нашСм Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅.

SELECT * FROM posts LIMIT 10;

ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Π΅ΠΌ нСпосрСдствСнно ΠΊ написанию ΠΊΠΎΠ΄Π° Π½Π° ruby. Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΠΊΠΎΠ΄Ρƒ, лишниС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ (ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ вСрсиям Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ для удобства):

post.rb:

# Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, сразу ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ sqlite3
# ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π»ΡƒΡ‡ΡˆΠ΅ всСго Π² Ρ‚Π΅Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…/классах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚
require 'sqlite3'
class Post
  # БтатичСскоС ΠΏΠΎΠ»Π΅ класса ΠΈΠ»ΠΈ class variable
  # Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ статичСским ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ всСму классу Π² Ρ†Π΅Π»ΠΎΠΌ
  # ΠΈ доступно нСзвисимо ΠΎΡ‚ созданных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²
  @@SQLITE_DB_FILE = 'notepad.
sqlite' # Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… # поэтому ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ всСгда ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ связь ΠΌΠ΅ΠΆΠ΄Ρƒ классом ΠΈ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π² Π²ΠΈΠ΄Π΅ строки def self.post_types {'Memo' => Memo, 'Task' => Task, 'Link' => Link} end # ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ являСтся строковоС имя Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ класса def self.create(type) return post_types[type].new end def initialize @created_at = Time.now # Π΄Π°Ρ‚Π° создания записи @text = nil # массив строк записи β€” ΠΏΠΎΠΊΠ° пустой end def read_from_console end def to_strings end # ΠœΠ΅Ρ‚ΠΎΠ΄ to_db_hash Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ…ΡΡˆ Π²ΠΈΠ΄Π° {'имя_столбца' => 'Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅'} # для сохранСния Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π½ΠΎΠ²ΠΎΠΉ записи def to_db_hash # Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ классы сами Π·Π½Π°ΡŽΡ‚ своС прСдставлСниС, Π½ΠΎ ΠΎΠ±Ρ‰ΠΈΠ΅ для всСх классов поля # ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ сСйчас Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС! { # self β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° 'этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚', # Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ экзСмпляр класса, Π³Π΄Π΅ выполняСтся Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ этот ΠΊΠΎΠ΄ 'type' => self.class.name, 'created_at' => @created_at.
to_s } # todo: Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ классы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ этот Ρ…ΡΡˆ массив своими полями end # НаконСц, Π²ΠΎΡ‚ ΠΎΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‰ΠΈΠΉ состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… def save_to_db db = SQLite3::Database.open(@@SQLITE_DB_FILE) # ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ "соСдинСниС" ΠΊ Π±Π°Π·Π΅ SQLite db.results_as_hash = true # настройка соСдинСния ΠΊ Π±Π°Π·Π΅, ΠΎΠ½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈΠ· Π±Π°Π·Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π² Π ΡƒΠ±ΠΈ Ρ…ΡΡˆΠΈ # запрос ΠΊ Π±Π°Π·Π΅ Π½Π° вставку Π½ΠΎΠ²ΠΎΠΉ записи Π² соотвСтствии с Ρ…ΡΡˆΠΎΠΌ, сформированным Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ классом to_db_hash db.execute( "INSERT INTO posts (" + to_db_hash.keys.join(', ') + # всС поля, пСрСчислСнныС Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ ") " + " VALUES ( " + ('?,'*to_db_hash.keys.size).chomp(',') + # строка ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ числа _плСйсхолдСров_ ?,?,?... ")", to_db_hash.values # массив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ…ΡΡˆΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ вставлСны Π² запрос вмСсто _плСйсхолдСров_ ) insert_row_id = db.last_insert_row_id # Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ соСдинСниС db.close # Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ записи Π² Π±Π°Π·Π΅ return insert_row_id end # ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ Ρ…ΡΡˆ массив Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ свои поля def load_data(data_hash) @created_at = Time.
parse(data_hash['created_at']) # todo: ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ спСцифичныС поля Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ классы end def save file = File.new(file_path, "w:UTF-8") for item in to_strings do file.puts(item) end file.close end def file_path current_path = File.dirname(__FILE__) file_name = @created_at.strftime("#{self.class.name}_%Y-%m-%d_%H-%M-%S.txt") return current_path + "/" + file_name end # Находит Π² Π±Π°Π·Π΅ запись ΠΏΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ ΠΈΠ»ΠΈ массив записСй # ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π° экранС def self.find(limit, type, id) db = SQLite3::Database.open(@@SQLITE_DB_FILE) # ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ "соСдинСниС" ΠΊ Π±Π°Π·Π΅ SQLite if id.present? db.results_as_hash = true # настройка соСдинСния ΠΊ Π±Π°Π·Π΅, ΠΎΠ½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈΠ· Π±Π°Π·Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π² Π ΡƒΠ±ΠΈ Ρ…ΡΡˆΠΈ # выполняСм наш запрос, ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², Π² нашСм случаС ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта result = db.execute("SELECT * FROM posts WHERE rowid = ?", id) # ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ СдинствСнный Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (Ссли вСрнулся массив) result = result[0] if result. is_a? Array db.close if result.empty? puts "Π’Π°ΠΊΠΎΠΉ id #{id} Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ Π² Π±Π°Π·Π΅ :(" return nil else # создаСм с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нашСго ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° create экзСмпляр поста, # Ρ‚ΠΈΠΏ поста ΠΌΡ‹ взяли ΠΈΠ· массива Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² [:type] # Π½ΠΎΠΌΠ΅Ρ€ этого Ρ‚ΠΈΠΏΠ° Π² нашСм массивС post_type нашли с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Array#find_index post = create(result['type']) # Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ этот пост содСрТимым post.load_data(result) # ΠΈ Π²Π΅Ρ€Π½Π΅ΠΌ Π΅Π³ΠΎ return post end # эта Π²Π΅Ρ‚Π²ΡŒ выполняСтся Ссли Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ else db.results_as_hash = false # настройка соСдинСния ΠΊ Π±Π°Π·Π΅, ΠΎΠ½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈΠ· Π±Π°Π·Ρ‹ НЕ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π² Π ΡƒΠ±ΠΈ Ρ…ΡΡˆΠΈ # Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ запрос Π² Π±Π°Π·Ρƒ с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ условиями query = "SELECT rowid, * FROM posts " query += "WHERE type = :type " unless type.nil? # Ссли Π·Π°Π΄Π°Π½ Ρ‚ΠΈΠΏ, Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ условиС query += "ORDER by rowid DESC " # ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ† сортировка - самыС свСТиС Π² Π½Π°Ρ‡Π°Π»Π΅ query += "LIMIT :limit " unless limit. nil? # Ссли Π·Π°Π΄Π°Π½ Π»ΠΈΠΌΠΈΡ‚, Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ условиС # Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌ запрос Π² Π±Π°Π·Ρƒ, ΠΊΠ°ΠΊ ΠΏΠ»ΠΎΠ² :) statement = db.prepare query statement.bind_param('type', type) unless type.nil? # Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π² запрос Ρ‚ΠΈΠΏ вмСсто плСйсхолдСра, добавляСм Π»ΡƒΠΊ :) statement.bind_param('limit', limit) unless limit.nil? # Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π»ΠΈΠΌΠΈΡ‚ вмСсто плСйсхолдСра, добавляСм ΠΌΠΎΡ€ΠΊΠΎΠ²ΡŒ :) result = statement.execute! #(query) # выполняСм statement.close db.close return result end end end # PS: ΠΌΠ΅Ρ‚ΠΎΠ΄ self.find получился довольно Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ ΠΈ со мноТСством if β€” это Π½Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΡΡ‚ΠΈΠ»ΡŒ. # # ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ изящнСС ΠΈ ΠΏΡ€ΠΎΡ‰Π΅. # НапримСр Ρ€Π°Π·Π±ΠΈΠ² Π΅Π³ΠΎ Π½Π° нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π² Π΅Π³ΠΎ Π»ΠΎΠ³ΠΈΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊ, # Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ β€” всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π» массив # ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Post. просто Π² случаС с id этот массив Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°) # # ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ "ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ" ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² Ruby on Rails

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π΅Π±Ρ‘Π½ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ to_db_hash ΠΈ load_data:

link. rb:

  def to_db_hash
    # Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом super ΠΈ ΠΊ Ρ…ΡΡˆΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ Π²Π΅Ρ€Π½ΡƒΠ»
    # присоСдиняСм ΠΏΡ€ΠΈΡ†Π΅ΠΏΠΎΠΌ спСцифичныС для этого класса поля ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Hash#merge
    return super.merge(
      {
        'text' => @text,
        'url' => @url
      }
    )
  end
  # Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ свои поля ΠΈΠ· Ρ…ΡΡˆ массива
  def load_data(data_hash)
    super(data_hash) # спСрва Π΄Π΅Ρ€Π³Π°Π΅ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΎΠ±Ρ‰ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ
    # Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ прописываСм своС спСцифичноС ΠΏΠΎΠ»Π΅
    @url = data_hash['url']
  end

memo.rb:

  def to_db_hash
    # Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом super ΠΈ ΠΊ Ρ…ΡΡˆΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ Π²Π΅Ρ€Π½ΡƒΠ»
    # присоСдиняСм ΠΏΡ€ΠΈΡ†Π΅ΠΏΠΎΠΌ спСцифичныС для этого класса поля ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Hash#merge
    return super.merge(
      {
        'text' => @text.join('\n\r') # массив строк Π΄Π΅Π»Π°Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠΉ большой строкой, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ символами ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки
      }
    )
  end
  # Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ свои поля ΠΈΠ· Ρ…ΡΡˆ массива
  def load_data(data_hash)
    super(data_hash) # спСрва Π΄Π΅Ρ€Π³Π°Π΅ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΎΠ±Ρ‰ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ
    # Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ прописываСм своС спСцифичноС ΠΏΠΎΠ»Π΅
    @text = data_hash['text']. split('\n\r')
  end

task.rb:

  def to_db_hash
    # Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом super ΠΈ ΠΊ Ρ…ΡΡˆΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ Π²Π΅Ρ€Π½ΡƒΠ»
    # присоСдиняСм ΠΏΡ€ΠΈΡ†Π΅ΠΏΠΎΠΌ спСцифичныС для этого класса поля ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Hash#merge
    return super.merge(
      {
        'text' => @text,
        'due_date' => @due_date.to_s
      }
    )
  end
  # Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ свои поля ΠΈΠ· Ρ…ΡΡˆ массива
  def load_data(data_hash)
    super(data_hash) # спСрва Π΄Π΅Ρ€Π³Π°Π΅ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΎΠ±Ρ‰ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ
    # Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ прописываСм своС спСцифичноС ΠΏΠΎΠ»Π΅
    @due_date = Date.parse(data_hash['due_date'])
  end

ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для создания записи new_post.rb:

# ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ класс Post ΠΈ Π΅Π³ΠΎ Π΄Π΅Ρ‚Π΅ΠΉ
require_relative 'post.rb'
require_relative 'memo.rb'
require_relative 'link.rb'
require_relative 'task.rb'
# Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΏΡ€ΠΈ использовании классов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выглядит ΠΎΡ‡Π΅Π½ΡŒ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎ
puts "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, я Π±Π»ΠΎΠΊΠ½ΠΎΡ‚ вСрсия 2, Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽ Π½ΠΎΠ²Ρ‹Π΅ записи Π² Π±Π°Π·Ρƒ SQLite :)"
# Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π΄ΠΎ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ
puts "Π§Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ сСгодня?"
# массив Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² Записи (поста)
choices = Post. post_types.keys
choice = -1
until choice >= 0 && choice < choices.size # ΠΏΠΎΠΊΠ° ΡŽΠ·Π΅Ρ€ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π» ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ
  # Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π°Π½ΠΎΠ²ΠΎ массив Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² поста
  choices.each_with_index do |type, index|
    puts "\t#{index}. #{type}"
  end
  choice = gets.chomp.to_i
end
# Π²Ρ‹Π±ΠΎΡ€ сдСлан, создаСм запись с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стат. ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса Post
entry = Post.create(choices[choice])
# ΠŸΡ€ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ввСсти пост (ΠΊΠ°ΠΊΠΈΠΌ Π±Ρ‹ ΠΎΠ½ Π½ΠΈ Π±Ρ‹Π»)
entry.read_from_console
# БохраняСм пост Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…
rowid = entry.save_to_db
puts "Π—Π°ΠΏΠΈΡΡŒ сохранСна Π² Π±Π°Π·Π΅, id = #{rowid}"

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ Post.find ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π΅ΠΌΡƒ ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎ-взрослому Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠΊΠΈΠ΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π‘Π½ΠΎΠ²Π° слСдитС Π·Π° ΠΌΡ‹ΡΠ»ΡŒΡŽ ΠΏΡ€ΠΈ написании основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ„Π°ΠΉΠ»Π΅ read.rb:

# ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ класс Post ΠΈ Π΅Π³ΠΎ Π΄Π΅Ρ‚Π΅ΠΉ
require_relative 'post.rb'
require_relative 'memo.rb'
require_relative 'link.rb'
require_relative 'task.rb'
# Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΠΎ-взрослому с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ спСц.  Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ€ΡƒΠ±ΠΈ
require 'optparse'
# ВсС наши ΠΎΠΏΡ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ записаны сюда
options = {}
# Π·Π°Π²Π΅Π΄Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌ ΠΎΠΏΡ†ΠΈΠΈ
OptionParser.new do |opt|
  opt.banner = 'Usage: read.rb [options]'
  opt.on('-h', 'Prints this help') do
    puts opt
    exit
  end
  opt.on('--type POST_TYPE', 'ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ постов ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ любой)') { |o| options[:type] = o } #
  opt.on('--id POST_ID', 'Ссли Π·Π°Π΄Π°Π½ id β€” ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот пост') { |o| options[:id] = o } #
  opt.on('--limit NUMBER', 'сколько послСдних постов ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ всС)') { |o| options[:limit] = o } #
end.parse!
result = Post.find(options[:limit], options[:type], options[:id])
if result.is_a? Post # ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ пост
  puts "Π—Π°ΠΏΠΈΡΡŒ #{result.class.name}, id = #{options[:id]}"
  # Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ вСсь пост Π½Π° экран ΠΈ закроСмся
  result.to_strings.each do |line|
    puts line
  end
else # ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²
  print "| id\t| @type\t|  @created_at\t\t\t|  @text \t\t\t| @url\t\t| @due_date \t "
  result.each do |row|
    puts
    # puts '_'*80
    row. each do |element|
      print "|  #{element.to_s.delete("\\n\\r")[0..40]}\t"
    end
  end
end
puts
# Π€ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки {...} послС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² простых случаях Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ конструкции do ... end
# Они ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ этим ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ
#
# см. http://stackoverflow.com/questions/5587264/do-end-vs-curly-braces-for-blocks-in-ruby

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ записСй ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² нашСм SQlite Manager-Π΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ систСму управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… sqlite Π² нашСм Π±Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄Π°Π»Π΅ΠΊΠ° ΠΎΡ‚ ΠΈΠ΄Π΅Π°Π»Π°: нСльзя, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ записи, нСльзя Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ посты. Но для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… этого достаточно.

Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ

SQLite Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ

SQLite

МалСнький. Быстрый. НадСТный.
Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π»ΡŽΠ±Ρ‹Π΅ Ρ‚Ρ€ΠΈ.

  • Π”ΠΎΠΌ
  • МСню
  • О ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
  • ДокумСнтация
  • Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ
  • ЛицСнзия
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°
  • ΠŸΠΎΠΊΡƒΠΏΠΊΠ°
Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄
sqlite-amalgamation-3420000. zip
(2,52 ΠœΠ‘)
Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ C ΠΊΠ°ΠΊ объСдинСниС, вСрсия 3.42.0.
(SHA3-256: 436747dc8090d015b9869b96f5837f745e852d2ce73fd77410ed76ee51107a1f)
sqlite-autoconf-3420000.tar.gz
(3,00 ΠœΠ‘)
Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ C ΠΊΠ°ΠΊ объСдинСниС. Π’Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя сцСнарий «настройки». ΠΈ make-Ρ„Π°ΠΉΠ»Ρ‹ TEA для интСрфСйса TCL.
(SHA3-256: 643898e9fcc8f6069bcd47b0e6057221c1ed17bbee57da20d2752c79d91274e8)
ДокумСнтация 9 0027
sqlite-doc-3420000.zip
(10,17 ΠœΠ‘)
ДокумСнтация Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° статичСских Ρ„Π°ΠΉΠ»ΠΎΠ² HTML.
(SHA3-256: 6dc0f3bb68bd9a541bbe9c75ec4b2304ba0857e706a21af5fea072136d46995e)
ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированныС Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ для Android
sqlite-android-3420000. aar
(3,30 ΠœΠ‘)
ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Android, содСрТащая ядро ​​SQLite вмСстС с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ привязками Java, Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΊ установкС Π½Π° любой Android Π‘Ρ‚ΡƒΠ΄ΠΈΠΉΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.
(SHA3-256: c906cf95bdc5b620740d081004f7683b238043cf2c0020286e43a1468363167a)
ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированныС Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ для Linux
sqlite-tools-linux-x86-3420000.zip
(2,18 ΠœΠ‘)
Набор инструмСнтов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для управлСния Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQLite, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ sqldiff ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° sqlite3_analyzer.
(SHA3-256: a9dc5804cb61efc73a66aa61b034589216de9f7e53aa34a64dd2268d8e85bfdb)
ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированныС Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ для Mac OS X (x86)
sqlite-tools-osx- x86-3420000. zip
(1,56 ΠœΠ‘)
Набор инструмСнтов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для управлСния Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQLite, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ sqldiff ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° sqlite3_analyzer.
(SHA3-256: 87a4dd36c3781a13181657cee85bf0e335554de3d89e7dbbe306c4a9b292f5d1)
ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированныС Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ для Windows
sqlite-dll-win32-x86-3420000.zip
(570,83 ΠšΠΈΠ‘)
32-разрядная DLL (x86) для SQLite вСрсии 3.42.0.
(SHA3-256: 5edbd7244c91cae59dedfea6cdea6f9683116b034a0d18495e2aeb4a9592c87a)
sqlite-dll- win64-x64-3420000.zip
(1,16 ΠœΠ‘)
64-разрядная DLL (x64) для SQLite вСрсии 3.42.0.
(SHA3-256: 2425efa95556793a20761dfdab0d3b56a52e61716e8bb65e6a0a3590d41c97c0)
sqlite-tools-win32-x86-3420000. zip
(1,93 ΠœΠ‘)
Набор инструмСнтов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для управлСния Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQLite, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ sqldiff.exe ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° sqlite3_analyzer.exe.
(SHA3-256: 93d10287cd1a20dce57bb671bcd620cc827c3a316660326338cff0478514e6ee)
ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированный Π±ΠΈΠ½ ОвСн для .NET
System.Data.SQLite ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅ System.Data.SQLite.org Π²Π΅Π±-сайт ΠΈ особСнно страницу Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ для исходный ΠΊΠΎΠ΄ ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ SQLite для .NET.
WebAssembly ΠΈ JavaScript
sqlite-wasm-3420000.zip
(782,10 ΠšΠΈΠ‘)
ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированный ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ· sqlite3.wasm ΠΈ Π΅Π³ΠΎ API-интСрфСйсы JavaScript, Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊ использованию Π² Π²Π΅Π±-прилоТСниях.
(SHA3-256: 9c280e2865d7877768c15d9942993e57024ef39ede000ea846e8f8b70ce)
ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ исходного ΠΊΠΎΠ΄Π°
sqlite-src-3420000.zip
(13 0,27 ΠœΠ‘)
ΠœΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ снимок ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ (Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ) исходного Π΄Π΅Ρ€Π΅Π²Π° для SQLite вСрсии 3.42.0. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± использовании см. Как ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQLite.
(SHA3-256: f28b48f90cad0ec3c726ef99dfc44d52110e3e8cb829a309d4ffa77fe4958994)
sqlite-ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ -3420000.zip
(2,63 ΠœΠ‘)
ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ исходныС ΠΊΠΎΠ΄Ρ‹ C для SQLite вСрсии 3.42.0.
(SHA3-256: 0be58ac254a3a84f402d020873d7c631593a5f4f59fb5b49f78f60f8a5db915e)

Названия ΠΈ информация ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ… сборки

ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ сборки ΠΈΠΌΠ΅Π½ΡƒΡŽΡ‚ΡΡ с использованиСм ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… шаблонов:

  1. sqlite- ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ вСрсия . zip
  2. sqlite- ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ вСрсия .tar.gz
  3. sqlite- ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ОБ процСссор вСрсия .zip
  4. sqlite- ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π΄Π°Ρ‚Π° .zip

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ (1) ΠΈ (2) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² с исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π¨Π°Π±Π»ΠΎΠ½ (1) Π΅ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠ±Ρ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² ΠΈ шаблонов с исходным ΠΊΠΎΠ΄ΠΎΠΌ (2) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. Π¨Π°Π±Π»ΠΎΠ½ (3) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированных Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π¨Π°Π±Π»ΠΎΠ½ (4) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ «снимки» исходного ΠΊΠΎΠ΄Π°.

ВСрсия Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π° Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² порядкС ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° вСрсии ΠΏΡ€ΠΈ просмотрС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Β«lsΒ». Для вСрсии 3.X.Y ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° 3XXYY00. Для Π²Π΅Ρ‚ΠΊΠΈ вСрсии 3.X.Y.Z ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° 3XXYZZ.

Π”Π°Ρ‚Π° Π² шаблонС (4) ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄: Π“Π“Π“Π“ΠœΠœΠ”Π”Π§Π§ΠœΠœ.

Для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ извлСчСния Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Ρ… URL-адрСса Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ связанная с Π½ΠΈΠΌΠΈ информация, встроСнный HTML-ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π² источникС этой страницы. Π•Π³ΠΎ пСрвая строка (Π±Π΅Π· Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π°) гласит:

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π΅ для чтСния сцСнариСв
Π•Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ CSV с Ρ‚Π°ΠΊΠΈΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ столбца:
ΠŸΠ ΠžΠ”Π£ΠšΠ’, Π’Π•Π Π‘Π˜Π―, ΠžΠ’ΠΠžΠ‘Π˜Π’Π•Π›Π¬ΠΠ«Π™ URL, Π ΠΠ—ΠœΠ•Π  Π’ БАЙВАΠ₯, SHA3-HASH
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ столбца ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°. Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† ΠŸΠ ΠžΠ”Π£ΠšΠ’ прСдставляСт собой постоянноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ («ΠŸΠ ΠžΠ”Π£ΠšΠ’») для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ сопоставлСниС рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π”Ρ€ΡƒΠ³ΠΈΠ΅ столбцы говорят сами Π·Π° сСбя. Π­Ρ‚ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ останСтся ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π½ΠΎΠ²Ρ‹Ρ… столбцов. Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ справа ΠΎΡ‚ старых столбцов.

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ исходного ΠΊΠΎΠ΄Π°

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ SQLite поддСрТиваСтся Π² Ρ‚Ρ€Π΅Ρ… гСографичСски разнСсСнных ΡΠ°ΠΌΠΎΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ископаСмых, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ доступны для Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ΠΎ доступа Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния. Π›ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ содСрТимоС рСпозитория ΠΈ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ историчСскиС вСрсии ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ZIP-Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² историчСских ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π½Π° страницС Как ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQLite. ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ SQLite. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ послСдняя вСрсия Tcl трСбуСтся для сборки ΠΈΠ· источников рСпозитория. ОбъСдинСниС Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π° (Ρ„Π°ΠΉΠ»Ρ‹ sqlite3.c ΠΈ sqlite3.h) ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ ΠΈ Π½Π΅ содСрТится Π² Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΌ Π΄Π΅Ρ€Π΅Π²Π΅ исходного ΠΊΠΎΠ΄Π°.

https://www.sqlite.org/cgi/src (Даллас)
https://www2.sqlite.org/cgi/src (ΠΡŒΡŽΠ°Ρ€ΠΊ)
https://www3.sqlite.org/cgi/src (Π‘Π°Π½-Ѐранциско) )

Π—Π΅Ρ€ΠΊΠ°Π»ΠΎ GitHub находится ΠΏΠΎ адрСсу

https://github.com/sqlite/sqlite/

ДокумСнтация хранится Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ископаСмых располоТСны ΠΏΠΎ адрСсу:

https://www.sqlite.org/cgi/docsrc (Даллас)
https://www2.sqlite.org/cgi/docsrc (ΠΡŒΡŽΠ°Ρ€ΠΊ)
https://www3.sqlite.org/cgi/docsrc (Π‘Π°Π½-Ѐранциско) )

ДокумСнтация ΠΏΠΎ SQLite

ДокумСнтация ΠΏΠΎ SQLite

МалСнький. Быстрый. НадСТный.
Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π»ΡŽΠ±Ρ‹Π΅ Ρ‚Ρ€ΠΈ.

  • Π”ΠΎΠΌ
  • МСню
  • О ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
  • ДокумСнтация
  • Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ
  • ЛицСнзия
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°
  • ΠŸΠΎΠΊΡƒΠΏΠΊΠ°

ДокумСнтация

Поиск Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈΠŸΠΎΠΈΡΠΊ Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

  • β–Ό Бписки ΠΈ индСксы Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
    • Алфавитный список всСх Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
    • ИндСкс ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов Π²Π΅Π±-сайта
    • ΠŸΠ΅Ρ€Π΅ΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ индСкс Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²
  • β–Ί ΠžΠ±Π·ΠΎΡ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
    • О SQLite β†’ ΠžΠ±Ρ‰ΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ SQLite ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ заинтСрСсован Π² Π΅Π³ΠΎ использовании.
    • НадлСТащСС использованиС для SQLite β†’ Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ситуации, ΠΊΠΎΠ³Π΄Π° SQLite являСтся подходящим ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для использования ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ситуациями, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚/сСрвСр ядро Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ.
    • ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ особСнности β†’ Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ пСрСчислСны ΠΈ описаны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SQLite, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… SQL.
    • ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ SQLite β†’ Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ прСдставляСт собой ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ список Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ SQLite. ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅Π΄ΠΎΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ. Бписок Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°, Ρ‚Π°ΠΊ ΠΈ Β«Π½Π΅Π΄ΠΎΡ‡Π΅Ρ‚Ρ‹Β», сохраняСмыС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости.
    • Как тСстируСтся SQLite β†’ ΠΠ°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ SQLite достигаСтся Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ тСстированиСм. Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ мноТСство тСстов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ происходят ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ выпуском SQLite.
    • АвторскоС ΠΏΡ€Π°Π²ΠΎ β†’ SQLite находится Π² общСствСнном достоянии. Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ описываСт, Ρ‡Ρ‚ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΈ послСдствия для участников.
    • Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы β†’ Π’ Π½Π°Π·Π²Π°Π½ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° всС сказано…
    • Книги ΠΎ SQLite β†’ Бписок ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ написанных ΠΊΠ½ΠΈΠ³ ΠΏΠΎ SQLite.
  • β–Ί Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ программирования
    • SQLite Π·Π° 5 ΠΌΠΈΠ½ΡƒΡ‚ ΠΈΠ»ΠΈ мСньшС β†’ ΠžΡ‡Π΅Π½ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SQLite.
    • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² API C/C++ β†’ Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ с C/C++ API. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ этот Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½Ρ‹ΠΌ руководством ΠΏΠΎ C/C++ API, ссылка Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½ΠΈΠΆΠ΅.
    • Как ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQLite β†’ Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΈ совСты ΠΏΠΎ компиляции ΠΊΠΎΠ΄Π° SQLite C ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ этот ΠΊΠΎΠ΄ с вашим собствСнным ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
    • Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΏΠΎ API C/C++ β†’ Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ каТдая функция API описываСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.
    • ΠšΠΎΠ΄Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈ ошибок β†’ ОписаниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ числовых ΠΊΠΎΠ΄ΠΎΠ² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ интСрфСйсами C/C++.
    • Бинтаксис SQL β†’ Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ описываСтся язык SQL, понятный SQLite.
    • ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€Π°Π³ΠΌΡ‹ β†’ Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ настройки ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ SQLite ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ назначСния.
    • Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SQL β†’ ВстроСнныС скалярныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SQL ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния.
    • АгрСгированныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SQL β†’ ВстроСнныС Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SQL ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния.
    • Π”Π°Ρ‚Π° ΠΈ врСмя Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ SQL β†’ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ SQL для управлСния Π΄Π°Ρ‚Π°ΠΌΠΈ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ.
    • ΠžΠΊΠΎΠ½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β†’ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠΊΠ½Π° SQL.
    • Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ столбцы β†’ Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹Π΅ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ столбцы Π² опрСдСлСниях Ρ‚Π°Π±Π»ΠΈΡ†.
    • БистСма.Π”Π°Π½Π½Ρ‹Π΅.SQLite β†’ ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠΈ C#/.NET для SQLite
    • Tcl API β†’ ОписаниС привязок интСрфСйса TCL для SQLite.
    • Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… β†’ SQLite вСрсии 3 Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ манифСста, Π³Π΄Π΅ Ρ‚ΠΈΠΏ значСния связан с самим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Π° Π½Π΅ со столбцом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ хранится Π². На этой страницС Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описываСтся типизация Π΄Π°Π½Π½Ρ‹Ρ… для SQLite вСрсии 3.
  • β–Ί Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ
    • Json1 β€” интСграция JSON β†’ Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ SQL для создания, Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ запроса содСрТимого JSON.
    • FTS5 β€” полнотСкстовый поиск β†’ ОписаниС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ полнотСкстового поиска SQLite (FTS5).
    • FTS3 β€” полнотСкстовый поиск β†’ ОписаниС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ полнотСкстового поиска SQLite (FTS3).
    • ΠœΠΎΠ΄ΡƒΠ»ΡŒ R-Tree β†’ ОписаниС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ SQLite R-Tree. R-Tree β€” это спСциализированный структура Π΄Π°Π½Π½Ρ‹Ρ…, которая часто ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ быстрыС ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ запросы Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² гСопространствСнных систСмах.
    • БСансы β†’ Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Sessions позволяСт Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… SQLite. Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½ Π² ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Β«ΠΎΡ‚ΠΌΠ΅Π½Ρ‹Β») ΠΈΠ»ΠΈ пСрСнСсСны ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ аналогичная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ….
    • Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π²ΠΎ врСмя выполнСния β†’ ΠžΠ±Ρ‰ΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Π΅ Π²ΠΎ врСмя выполнСния Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои собствСнныС Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Π΅ Π²ΠΎ врСмя выполнСния Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для SQLite.
    • ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠΈ SQLite для Android β†’ Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚Π½ΡƒΡŽ копию SQLite Π½Π° Android, минуя встроСнный SQLite, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Ρƒ ΠΆΠ΅ Java интСрфСйс.
    • Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° Dbstat β†’ Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° DBSTAT сообщаСт ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… ΠΈ Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ†. Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ содСрТимого Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… SQLite ΠΈ являСтся основой для Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° [sqlite3_analyzer].
    • Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° Csv β†’ Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° CSV позволяСт SQLite Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ [https://www.ietf.org/rfc/rfc4180.txt|RFC 4180].
    • ΠšΠ°Ρ€Ρ€Π΅ΠΉ β†’ CARRAY β€” это [функция с Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ], которая позволяСт массивам языка C ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² запросах SQL.
    • generate_series β†’ ОписаниС generate_series() [функция с Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ].
    • БпСллфикс1 β†’ Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Spellfix1 β€” это экспСримСнт ΠΏΠΎ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΎΡ€Ρ„ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ. для [полнотСкстового поиска].
  • β–Ί ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ
    • 8+3 ИмСна Ρ„Π°ΠΉΠ»ΠΎΠ² β†’ Как Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ SQLite Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 8+3 ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°.
    • АвтоинкрСмСнт β†’ ОписаниС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова AUTOINCREMENT Π² SQLite, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π΅Π³ΠΎ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ, Ссли Π½Π΅Ρ‚ строго Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.
    • API Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования β†’ [sqlite3_backup_init | интСрфСйс ΠΎΠ½Π»Π°ΠΉΠ½-Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования] ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π½Π° дискС Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π³ΠΎΡ€ΡΡ‡ΡƒΡŽ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ Π΄Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ.
    • Π–ΡƒΡ€Π½Π°Π» ошибок ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ β†’ SQLite ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΈΠ·Π°ΠΉΠ½ Β«ΠΆΡƒΡ€Π½Π°Π»Π° ошибок ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉΒ» для сбора ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ΠΎ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ/ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Ρ… событиях Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹. ВстроСнныС прилоТСния рСкомСндуСтся Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΆΡƒΡ€Π½Π°Π» ошибок ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ с ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ Π² ΠΏΠΎΠ»Π΅Π²Ρ‹Ρ… условиях. Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это.
    • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° внСшнСго ΠΊΠ»ΡŽΡ‡Π° β†’ Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ описываСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ внСшнСго ΠΊΠ»ΡŽΡ‡Π°. Π² вСрсии 3.6.19.
    • Π˜Π½Π΄Π΅ΠΊΡΡ‹ Π² выраТСниях β†’ ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ индСксы для Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π° Π½Π΅ просто ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ столбцы.
    • Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ ΠΈ внСшнСС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ BLOB-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² β†’ Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ большиС BLOB-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ нСпосрСдствСнно Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈ просто Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ имя Ρ„Π°ΠΉΠ»Π° Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…? Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ пытаСтся ΠΏΡ€ΠΎΠ»ΠΈΡ‚ΡŒ свСт Π½Π° этот вопрос.
    • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Π² SQLite β†’ Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ описываСт ограничСния SQLite (максимальная Π΄Π»ΠΈΠ½Π° строка ΠΈΠ»ΠΈ большой Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, максимальноС количСство Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚. Π΄.) ΠΈ ΠΊΠ°ΠΊ эти ограничСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² врСмя компиляции ΠΈ врСмя выполнСния.
    • Π’Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ памяти β†’ SQLite ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ памяти. Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сопоставлСниС памяти Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… прСимущСствах ΠΈ нСдостатках использования Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ памяти Π² этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅.
    • ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ SQLite β†’ SQLite бСзопасно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ прСдоставляСт ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ совСты ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.
    • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½ΡƒΠ»Π΅ΠΉ β†’ Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… SQL ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ значСния NULL ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ SQL Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹. Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ (ΠΎΠΊΠΎΠ»ΠΎ 2003 Π³.) описываСт ΠΊΠ°ΠΊ SQLite ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ NULL ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… SQL.
    • ЧастичныС индСксы β†’ Частичный индСкс β€” это индСкс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ подмноТСство строк Π² стол. Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ частичныС индСксы Π² SQLite ΠΈΠ· этого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.
    • Π Π΅ΠΆΠΈΠΌ ΠΎΠ±Ρ‰Π΅Π³ΠΎ кэша β†’ ВСрсия 3.3.0 ΠΈ Π²Ρ‹ΡˆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π²ΡƒΡ… ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… для совмСстного использования ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ страницы ΠΈ кэша схСмы. Π­Ρ‚Π° функция ΠΏΠΎΠ»Π΅Π·Π½Π° для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… спСциализированных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
    • Π Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π£Π²Π΅Π΄ΠΎΠΌΠΈΡ‚ΡŒ β†’ Π€ΡƒΠ½ΠΊΡ†ΠΈΡŽ Β«Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅Β» ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСстС с [Ρ€Π΅ΠΆΠΈΠΌ ΠΎΠ±Ρ‰Π΅Π³ΠΎ кэша] для Π±ΠΎΠ»Π΅Π΅ эффСктивного управлСния ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ рСсурсов (Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… столовыС Π·Π°ΠΌΠΊΠΈ).
    • ИмСна Ρ„Π°ΠΉΠ»ΠΎΠ² URI β†’ ИмСна Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ имя Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ URI. ИспользованиС ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² URI прСдоставляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности, ΠΊΠ°ΠΊ описано Π² этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅.
    • Π‘Π•Π— ROWID Π’Π°Π±Π»ΠΈΡ†Ρ‹ β†’ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ Π‘Π•Π— ROWID β€” это Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π² Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ Π±ΠΎΠ»Π΅Π΅ быстрых Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ….
    • Π Π΅ΠΆΠΈΠΌ ΠΆΡƒΡ€Π½Π°Π»Π° ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅ΠΉ записи (WAL) β†’ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ транзакциями с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΆΡƒΡ€Π½Π°Π»Π° с ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅ΠΉ записью обСспСчиваСт большС ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΈ часто быстрСС, Ρ‡Π΅ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ WAL для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
  • β–Ί Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹
    • ΠžΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (sqlite3.exe) β†’ ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎ использованию интСрфСйса ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки sqlite3.exe, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для создания, измСнСния ΠΈ запроса ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ SQLite Ρ„Π°ΠΉΠ»Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….
    • Анализатор Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQLite (sqlite3_analyzer.exe) β†’ Π­Ρ‚Π° автономная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… SQLite ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ„Π°ΠΉΠ» ΠΏΠΎΠΊΠ°Π· пространства, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ, индСксом ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ статистикой. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ с использованиСм [Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ dbstat].
    • Π Π‘Π£ β†’ БлуТСбная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Β«Resumable Bulk UpdateΒ» позволяСт Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ измСнСния ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ Π½Π° встроСнном ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ Π² способ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π½Π΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ.
    • Π Π°Π·Π½ΠΈΡ†Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQLite (sqldiff.exe) β†’ Π­Ρ‚Π° автономная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сравниваСт Π΄Π²Π° Ρ„Π°ΠΉΠ»Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQLite ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ SQL, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для прСобразования ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅.
    • Π₯эш Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (dbhash.exe) β†’ Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° дСмонстрируСт, ΠΊΠ°ΠΊ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ…ΡΡˆ Π½Π°Π΄ содСрТимым Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQLite.
    • ИскопаСмоС β†’ БистСма контроля вСрсий Fossil β€” это распрСдСлСнная систСма контроля вСрсий, разработанная ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ SQLite. Fossil ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ SQLite Π² качСствС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°.
    • Архиватор SQLite (sqlar.exe) β†’ ZIP-подобная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π°Ρ€Ρ…ΠΈΠ²Π°Ρ†ΠΈΠΈ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ SQLite для хранСния.
  • β–Ί Π—Π°Ρ‰ΠΈΡ‚Π° интСрСсов
    • SQLite ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° прилоТСния β†’ Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SQLite Π² качСствС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Ρ„Π°ΠΉΠ»Π° прилоТСния. вмСсто XML ΠΈΠ»ΠΈ JSON ΠΈΠ»ΠΈ Β«ΠΊΡƒΡ‡ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Β».
    • Π˜Π·Π²Π΅ΡΡ‚Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ β†’ На этой страницС пСрСчислСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ… тысяч устройств. ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ SQLite.
    • На 35% быстрСС, Ρ‡Π΅ΠΌ файловая систСма β†’ Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ указываСтся, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQLite часто быстрСС, Ρ‡Π΅ΠΌ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² файловая систСма.
  • β–Ί ВСхничСская ΠΈ проСктная докумСнтация
    • Как ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… β†’ SQLite ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ высокой ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒΡŽ ΠΊ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Но ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ошибки ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ оборудования ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ способы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQLite ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΡ€Ρ‚ΠΈΡ‚ΡŒΡΡ.
    • Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ SQLite β†’ SQLite ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² SQL. Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ описываСтся ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ SQLite ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ прСдлоТСния Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΈΡ… Π² систСмах, Π³Π΄Π΅ созданиС Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° являСтся дорогая опСрация.
    • Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти β†’ SQLite ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ содСрТимоС Π² Ρ„Π°ΠΉΠ»Π΅ Π½Π° дискС. Однако ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² качСствС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти. Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ.
    • Как SQLite Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ β†’ ОписаниС Π»ΠΎΠ³ΠΈΠΊΠΈ Π² SQLite, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ с Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠΉ фиксациСй, Π΄Π°ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ Π»ΠΈΡ†ΠΎΠΌ власти Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ.
    • ДинамичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти Π² SQLite β†’ SQLite ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ подсистСму распрСдСлСния памяти, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ сконфигурированы ΠΈ настроСны Π² соотвСтствии с трСбованиями использования памяти ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, устойчивоС ΠΊ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ΅ памяти ΠΈ Π±Π΅Π· ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ. Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ подробности.
    • Настройка ΠΈ пСрСнос SQLite β†’ Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сборку SQLite ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ SQLite Π½Π° Π½ΠΎΠ²Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.
    • Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ
      Π’ SQLite вСрсии 3 β†’ ОписаниС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ увСличиваСтся Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² вСрсии 3 ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ голодания писатСля.
    • Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ Π² SQLite β†’ Когда ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ SQLite «сСриализуСмы», Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚? Как ΠΈ ΠΊΠΎΠ³Π΄Π° измСнСния становятся Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ Π² ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…?
    • ΠžΠ±Π·ΠΎΡ€ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€Π° β†’ ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ запросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пытаСтся Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° SQLite.
    • ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ запросов Π½ΠΎΠ²ΠΎΠ³ΠΎ поколСния β†’ Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ΅ запросов SQLite ΠΈ, Π² частности, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° запросов, ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ для вСрсии 3. 8.0.
    • АрхитСктура β†’ ΠžΠ±Π·ΠΎΡ€ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ SQLite, ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ Π²Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄.
    • ΠšΠΎΠ΄Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ VDBE β†’ Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ прСдставляСт собой автоматичСски сгСнСрированноС описаниС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ΄Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ VDBE. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠ°ΠΊ ссылка для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ понимания Π²Ρ‹Π²ΠΎΠ΄Π° списков EXPLAIN ΠΈΠ· SQLite.
    • Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ файловая систСма β†’ ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Β«VFSΒ» β€” это интСрфСйс ΠΌΠ΅ΠΆΠ΄Ρƒ ядром SQLite ΠΈ базовая опСрационная систСма. Π£Π·Π½Π°ΠΉΡ‚Π΅ большС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ VFS Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ VFS ΠΈΠ· этой ΡΡ‚Π°Ρ‚ΡŒΠΈ.
    • Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ столы β†’ Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ описываСтся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ API Π² SQLite, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для добавлСния Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ SQLite.
    • Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° SQLite β†’ ОписаниС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² SQLite, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для чтСния ΠΈ записи SQLite Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· использования SQLite.
    • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ компиляции β†’ Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ описываСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ установлСны Π½Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.
    • ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠΈ Android для SQLite β†’ ОписаниС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ собствСнный SQLite для Android (Π² ΠΎΠ±Ρ…ΠΎΠ΄ встроСнного Π² Android SQLite) вмСстС с ΠΊΠΎΠ΄ ΠΈ make-Ρ„Π°ΠΉΠ»Ρ‹.
    • Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΏΠΎ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ β†’ Бписок ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для отслСТивания, изучСния ΠΈ понимания Ρ€Π°Π±ΠΎΡ‚Ρƒ основной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ SQLite.
  • β–Ί ОбновлСниС SQLite, обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ
    • ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ с SQLite 3.5 Π½Π° 3.6 β†’ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ различия ΠΌΠ΅ΠΆΠ΄Ρƒ SQLite вСрсии 3.5.9. ΠΈ 3.6.0.
    • ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ с SQLite 3.4 Π½Π° 3.5 β†’ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ различия ΠΌΠ΅ΠΆΠ΄Ρƒ SQLite вСрсии 3.4.2. ΠΈ 3.5.0.
    • Π˜ΡΡ‚ΠΎΡ€ΠΈΡ выпусков β†’ Π₯ронология выпусков SQLite, начиная с вСрсии 1.0.0.
    • ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ β†’ Π’ этом Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описаны всС нСсовмСстимыС измСнСния Π² SQLite. Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π°, появившийся начиная с вСрсии 1.0.0.
    • ЧастныС отдСлСния β†’ Π­Ρ‚ΠΎΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ для вСдСния частного Ρ„ΠΈΠ»ΠΈΠ°Π»Π° ΠΈΠ»ΠΈ Π²Π΅Ρ‚ΠΊΡƒ SQLite ΠΈ синхронизируя эту Π²Π΅Ρ‚ΠΊΡƒ ΠΈΠ»ΠΈ Π²Π΅Ρ‚ΠΊΡƒ с общСдоступноС исходноС Π΄Π΅Ρ€Π΅Π²ΠΎ SQLite.
  • β–Ί Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹
    • Асинхронный Ρ€Π΅ΠΆΠΈΠΌ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° β†’ На этой страницС описываСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ асинхронного Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ вмСстС с SQLite. ИспользованиС асинхронного Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ SQLite Π±ΠΎΠ»Π΅Π΅ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²Ρ‹ΠΌ. ΠΏΡƒΡ‚Π΅ΠΌ дСлСгирования записи Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ устарСло. [Π Π΅ΠΆΠΈΠΌ WAL] рСкомСндуСтся Π² качСствС Π·Π°ΠΌΠ΅Π½Ρ‹.
    • ВСрсия 2 API C/C++ β†’ ОписаниС привязок интСрфСйса C/C++ для SQLite ΠΏΠΎ вСрсии. 2,8
    • Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… вСрсии 2 β†’ ОписаниС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ SQLite вСрсии 2 ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQL. ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ Ρ€Π΅Π·ΡŽΠΌΠ΅: всС являСтся строкой.
    • VDBE Π£Ρ‡Π΅Π±Π½ΠΈΠΊ β†’ VDBE β€” это подсистСма Π² SQLite, которая выполняСт Ρ„Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² SQL.