Τι είναι Îνα αÏÏείο SQLite;
Îνα αÏÏείο με εÏÎκÏαÏη .sqlite είναι Îνα ελαÏÏÏ Î±ÏÏείο βάÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν SQL ÏÎ¿Ï Î´Î·Î¼Î¹Î¿Ï Ïγήθηκε με Ïο λογιÏÎ¼Î¹ÎºÏ SQLite. Îίναι μια βάÏη δεδομÎνÏν Ïε Îνα αÏÏείο και Ï Î»Î¿Ïοιεί μια Î±Ï ÏÏνομη, ÏλήÏÏÏ ÎµÎ¾Î¿ÏλιÏμÎνη, εξαιÏεÏικά αξιÏÏιÏÏη μηÏανή βάÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν SQL. Τα αÏÏεία βάÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν SQLite μÏοÏοÏν να ÏÏηÏιμοÏοιηθοÏν για Ïην κοινή ÏÏήÏη ÏλοÏÏÎ¹Î¿Ï ÏεÏιεÏομÎÎ½Î¿Ï Î¼ÎµÏÎ±Î¾Ï ÏÏ ÏÏημάÏÏν με αÏλή ανÏαλλαγή Î±Ï ÏÏν ÏÏν αÏÏείÏν μÎÏÏ ÏÎ¿Ï Î´Î¹ÎºÏÏÎ¿Ï . ΣÏεδÏν Ïλα Ïα κινηÏά και οι Ï ÏολογιÏÏÎÏ ÏÏηÏιμοÏοιοÏν Ïο SQLite για αÏÎ¿Î¸Î®ÎºÎµÏ Ïη και κοινή ÏÏήÏη δεδομÎνÏν και είναι η εÏιλογή μοÏÏÎ®Ï Î±ÏÏÎµÎ¯Î¿Ï Î³Î¹Î± εÏαÏμογÎÏ ÏολλαÏλÏν ÏλαÏÏοÏμÏν. ÎÏÎ³Ï ÏÎ·Ï ÏÏ Î¼ÏαγοÏÏ ÏÏήÏÎ·Ï ÎºÎ±Î¹ ÏÎ·Ï ÎµÏÎºÎ¿Î»Î·Ï ÏÏηÏÏικÏÏηÏÎ¬Ï ÏÎ¿Ï , διαÏίθεÏαι Ïε ÏακÎÏο Ïε Î¬Î»Î»ÎµÏ ÎµÏαÏμογÎÏ. Îι δεÏμεÏÏÎµÎ¹Ï SQLite Ï ÏάÏÏÎ¿Ï Î½ για γλÏÏÏÎµÏ ÏÏογÏαμμαÏιÏÎ¼Î¿Ï ÏÏÏÏ C, C#, C++, Java, PHP, και Ïολλοί άλλοι.
ÎοÏÏή αÏÏÎµÎ¯Î¿Ï SQLite
Το SQLite ÏÏην ÏÏαγμαÏικÏÏηÏα είναι μια βιβλιοθήκη C-Language ÏÎ¿Ï Ï Î»Î¿Ïοιεί Ïο SQLite RDBMS ÏÏηÏιμοÏοιÏνÏÎ±Ï Ïη μοÏÏή αÏÏÎµÎ¯Î¿Ï SQLite. Îε Ïην εξÎλιξη ÏÏν νÎÏν ÏÏ ÏÎºÎµÏ Ïν κάθε μÎÏα, η μοÏÏή ÏÎ¿Ï Î±ÏÏÎµÎ¯Î¿Ï ÏÎ¿Ï Î´Î¹Î±ÏηÏείÏαι ÏÏ Î¼Î²Î±Ïή ÏÏÎ¿Ï Ïα ÏίÏÏ Î³Î¹Î± να Ïιλοξενεί ÏαλαιÏÏεÏÎµÏ ÏÏ ÏÎºÎµÏ ÎÏ. ΠμοÏÏή αÏÏÎµÎ¯Î¿Ï SQLite θεÏÏείÏαι ÏÏ Î¼Î±ÎºÏοÏÏÏθεÏμη μοÏÏή αÏÏÎµÎ¯Î¿Ï Î³Î¹Î± Ïα δεδομÎνα.
Το αÏÏείο ÏÎ·Ï Î²Î¬ÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν
Îια βάÏη δεδομÎνÏν SQLite διαÏηÏείÏαι ÏλήÏÏÏ Î¼ÎÏÏ Î´Ïο αÏÏείÏν.
- ÎÏÏείο κÏÏÎ¹Î±Ï Î²Î¬ÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν - ΠεÏιÎÏει Ïην ÏλήÏη καÏάÏÏαÏη ÏÎ·Ï Î²Î¬ÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν SQLite
- ΠεÏÎ¹Î¿Î´Î¹ÎºÏ ÎµÏαναÏοÏÎ¬Ï - ÎÏοθηκεÏει ÏÏÏÏθεÏÎµÏ ÏληÏοÏοÏÎ¯ÎµÏ Ïε Îνα δεÏÏεÏο αÏÏείο και ÏÏηÏιμοÏοιείÏαι καÏά Ïην εκÏÎλεÏη ÏÏ Î½Î±Î»Î»Î±Î³Ïν. Σε ÏεÏίÏÏÏÏη ÏÎ¿Ï Ïο SQLite βÏίÏκεÏαι Ïε λειÏÎ¿Ï Ïγία WAL, διαÏηÏείÏαι Îνα αÏÏείο καÏαγÏαÏÎ®Ï ÎºÎµÏÎ±Î»Î®Ï ÎµÎ³Î³ÏαÏήÏ.
ÎÏÏείο ÏεÏιοδικοÏ
ÎÏ ÏÏ Ïο αÏÏείο ÏÏοοÏίζεÏαι να διαÏηÏήÏει ÏÎ»ÎµÏ ÏÎ¹Ï ÏληÏοÏοÏÎ¯ÎµÏ ÏÎ¿Ï Î´Î¹Î±ÏηÏοÏνÏαι Ïε ÏεÏίÏÏÏÏη ÏÎ¿Ï Î· ÏÎµÎ»ÎµÏ Ïαία ÏÏ Î½Î±Î»Î»Î±Î³Î® δεν μÏοÏοÏÏε να ολοκληÏÏθεί Ïε ÏεÏιÏÏÏÏÎµÎ¹Ï ÏÏÏÏ Îνα ÏÏάλμα Ï ÏολογιÏÏή. ÎÏ ÏÏ Ïο αÏÏείο ÏÏηÏιμοÏοιείÏαι για Ïην εÏαναÏοÏά ÏÎ¿Ï Î±ÏÏÎµÎ¯Î¿Ï ÏÎ·Ï Î²Î¬ÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν Ïε ÏÏ Î½ÎµÏή καÏάÏÏαÏη.
ΣελίδεÏ
Το κÏÏιο αÏÏείο βάÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν SQLite αÏοÏελείÏαι αÏÏ Î¼Î¯Î± ή ÏεÏιÏÏÏÏεÏÎµÏ ÏελίδεÏ. Σε οÏοιαδήÏοÏε ÏÏονική ÏÏιγμή, κάθε Ïελίδα ÏÏην κÏÏια βάÏη δεδομÎνÏν ÎÏει μία μÏνο ÏÏήÏη ÏÎ¿Ï ÎµÎ¯Î½Î±Î¹ μία αÏÏ ÏÎ¹Ï Î±ÎºÏÎ»Î¿Ï Î¸ÎµÏ:
- Î Ïελίδα κλειδÏμαÏÎ¿Ï byte
- Îια Ïελίδα freelist
- Îια Ïελίδα κοÏÎ¼Î¿Ï freelist
- Îια Ïελίδα ÏÏÎ»Î»Î¿Ï freelist
- Îια Ïελίδα β-δÎνÏÏοÏ
- ÎÏÏÏεÏική Ïελίδα Ïίνακα b-tree
- Σελίδα ÏÏÎ»Î»Î¿Ï Ïίνακα β-δÎνÏÏοÏ
- Îια εÏÏÏεÏική Ïελίδα ÎµÏ ÏεÏηÏÎ¯Î¿Ï b-tree
- Îια Ïελίδα ÏÏÎ»Î»Î¿Ï ÎµÏ ÏεÏηÏÎ¯Î¿Ï Î²-δÎνÏÏοÏ
- Îια Ïελίδα Ï ÏεÏÏείλιÏÎ·Ï ÏÏÎÎ»Î¹Î¼Î¿Ï ÏοÏÏίοÏ
- Îια Ïελίδα ÏάÏÏη δείκÏη
Το μÎÎ³ÎµÎ¸Î¿Ï ÏÏν αÏÏείÏν βάÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν SQLite μÏοÏεί να ÎºÏ Î¼Î±Î¯Î½ÎµÏαι αÏÏ Î»Î¯Î³Î± kilobyte ÎÏÏ Î»Î¯Î³Î± gigabyte.
ÎεÏαλίδα SQLite
ΠκεÏαλίδα ÏÎ·Ï Î²Î¬ÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν SQLite βÏίÏκεÏαι ÏÏα ÏÏÏÏα 100 byte ÏÎ¿Ï Î±ÏÏÎµÎ¯Î¿Ï Î²Î¬ÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν. Îάθε ÎÎ³ÎºÏ Ïο αÏÏείο βάÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν SQLite ξεκινά με 16 byte (Ïε hex):53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00. Îι λεÏÏομÎÏÎµÎ¹ÎµÏ ÏÏν ÏεδίÏν κεÏÎ±Î»Î¯Î´Î±Ï ÎµÎ¯Î½Î±Î¹ ÏÏÏÏ ÏÏον ÏαÏακάÏÏ Ïίνακα.
| ÎεÏαÏÏÏιÏη | ÎÎÎ³ÎµÎ¸Î¿Ï | ΠεÏιγÏαÏή |
|---|---|---|
| 0 | 16 | Î ÏÏ Î¼Î²Î¿Î»Î¿ÏειÏά κεÏαλίδαÏ: “SQLite format 3\000” |
| 16 | 2 | Το μÎÎ³ÎµÎ¸Î¿Ï ÏÎ·Ï ÏÎµÎ»Î¯Î´Î±Ï ÏÎ·Ï Î²Î¬ÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν Ïε byte. Î ÏÎÏει να είναι δÏναμη δÏο μεÏÎ±Î¾Ï 512 και 32768 ή η Ïιμή 1 να ανÏιÏÏοÏÏÏεÏει μÎÎ³ÎµÎ¸Î¿Ï ÏÎµÎ»Î¯Î´Î±Ï 65536. |
| 18 | 1 | ÎκδοÏη εγγÏαÏÎ®Ï Î¼Î¿ÏÏÎ®Ï Î±ÏÏÎµÎ¯Î¿Ï . 1 για κληÏονομιά? 2 για WAL. |
| 19 | 1 | ÎοÏÏή αÏÏÎµÎ¯Î¿Ï Î±Î½Î±Î³Î½ÏÏμÎνη ÎκδοÏη. 1 για κληÏονομιά? 2 για WAL. |
| 20 | 1 | Byte αÏÏηÏιμοÏοίηÏÎ¿Ï “δεÏÎ¼ÎµÏ Î¼ÎÎ½Î¿Ï ” ÏÏÏÎ¿Ï ÏÏο ÏÎÎ»Î¿Ï ÎºÎ¬Î¸Îµ ÏελίδαÏ. Î£Ï Î½Î®Î¸ÏÏ 0. |
| 21 | 1 | ÎÎγιÏÏο κλάÏμα ενÏÏμαÏÏμÎÎ½Î¿Ï ÏÏÎÎ»Î¹Î¼Î¿Ï ÏοÏÏÎ¯Î¿Ï . Î ÏÎÏει να είναι 64. |
| 22 | 1 | ÎλάÏιÏÏο κλάÏμα ενÏÏμαÏÏμÎÎ½Î¿Ï ÏÏÎÎ»Î¹Î¼Î¿Ï ÏοÏÏÎ¯Î¿Ï . Î ÏÎÏει να είναι 32. |
| 23 | 1 | ÎλάÏμα ÏÏÎÎ»Î¹Î¼Î¿Ï ÏοÏÏÎ¯Î¿Ï ÏÏÎ»Î»Î¿Ï . Î ÏÎÏει να είναι 32. |
| 24 | 4 | ÎεÏÏηÏÎ®Ï Î±Î»Î»Î±Î³Î®Ï Î±ÏÏÎµÎ¯Î¿Ï . |
| 28 | 4 | ÎÎÎ³ÎµÎ¸Î¿Ï Î±ÏÏÎµÎ¯Î¿Ï Î²Î¬ÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν Ïε ÏελίδεÏ. Το “μÎÎ³ÎµÎ¸Î¿Ï Î²Î¬ÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν ÏÏην κεÏαλίδα”. |
| 32 | 4 | ÎÏιθμÏÏ ÏÎµÎ»Î¯Î´Î±Ï ÏÎ·Ï ÏÏÏÏÎ·Ï ÏÎµÎ»Î¯Î´Î±Ï ÎºÎ¿ÏÎ¼Î¿Ï freelist. |
| 36 | 4 | Î£Ï Î½Î¿Î»Î¹ÎºÏÏ Î±ÏιθμÏÏ ÏελίδÏν freelist. |
| 40 | 4 | Το cookie ÏÏήμαÏοÏ. |
| 44 | 4 | ΠαÏιθμÏÏ Î¼Î¿ÏÏÎ®Ï ÏÏήμαÏοÏ. Îι Ï ÏοÏÏηÏιζÏÎ¼ÎµÎ½ÎµÏ Î¼Î¿ÏÏÎÏ ÏÏήμαÏÎ¿Ï ÎµÎ¯Î½Î±Î¹ 1, 2, 3 και 4. |
| 48 | 4 | Î ÏοεÏιλεγμÎνο μÎÎ³ÎµÎ¸Î¿Ï ÏÏοÏÏÏÎ¹Î½Î®Ï Î¼Î½Î®Î¼Î·Ï ÏελίδαÏ. |
| 52 | 4 | ΠαÏιθμÏÏ ÏÎµÎ»Î¯Î´Î±Ï ÏÎ·Ï Î¼ÎµÎ³Î±Î»ÏÏεÏÎ·Ï ÏÎµÎ»Î¯Î´Î±Ï ÏÎ¯Î¶Î±Ï Î²-δÎνÏÏÎ¿Ï ÏÏαν βÏίÏκεÏαι Ïε λειÏÎ¿Ï Ïγία Î±Ï ÏÏμαÏÎ·Ï ÎºÎµÎ½Î¿Ï Î® Î±Ï Î¾Î·ÏÎ¹ÎºÎ®Ï ÎºÎµÎ½Î¿Ï, ή μηδÎν διαÏοÏεÏικά. |
| 56 | 4 | ΠκÏδικοÏοίηÏη κειμÎÎ½Î¿Ï ÏÎ·Ï Î²Î¬ÏÎ·Ï Î´ÎµÎ´Î¿Î¼ÎνÏν. Î Ïιμή 1 Ïημαίνει UTF-8. Î Ïιμή 2 Ïημαίνει UTF-16le. Î Ïιμή 3 Ïημαίνει UTF-16be. |
| 60 | 4 | Î “ÎκδοÏη ÏÏήÏÏη” ÏÏÏÏ Î´Î¹Î±Î²Î¬Î¶ÎµÏαι και οÏίζεÏαι αÏÏ Ïο user_version pragma. |
| 64 | 4 | True (μη μηδενικÏ) για Ïη λειÏÎ¿Ï Ïγία Î±Ï Î¾Î·ÏÎ¹ÎºÎ®Ï ÎºÎµÎ½Î¿Ï. ÎÎ¬Î¸Î¿Ï (μηδÎν) αλλιÏÏ. |
| 68 | 4 | Το “ÎναγνÏÏιÏÏÎ¹ÎºÏ ÎµÏαÏμογήϔ ÏÎ¿Ï Î¿ÏίÏÏηκε αÏÏ Ïο PRAGMA application_id. |
| 72 | 20 | ÎιαÏίθεÏαι για εÏÎκÏαÏη. Î ÏÎÏει να είναι μηδÎν. |
| 92 | 4 | Î ÎκδοÏη-ιÏÏÏει-για Ïον αÏιθμÏ. |
| 96 | 4 | SQLITE_VERSION_NUMBER |