Π‘Π»Π΅Π΄ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½Π° Π²Π΅ΡΡΠΈΡ 5.0 Π½Π° ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½Π°ΡΠ° Π‘Π£ΠΠ Firebird. Firebird ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° Π‘Π£ΠΠ InterBase 6.0, ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΏΡΠ΅Π· 2000 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Borland. Firebird ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° Π»ΠΈΡΠ΅Π½Π·ΠΈΡ MPL ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠΈΡΠ΅ ANSI SQL, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΡΠΎ ΡΡΠΈΠ³Π΅ΡΠΈ, ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ. ΠΠΈΠ½Π°ΡΠ½ΠΈΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π·Π° Linux, Windows, macOS ΠΈ Android.
ΠΠ»ΡΡΠΎΠ²ΠΈ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ:
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ. ΠΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌΠ° ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΈ ΠΈ ΡΡΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ sweep), ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ ΠΈ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΎΡ ΡΡΡ . gfix -sweep -parallel 4 dbname gbak -b -par 4 -user username -pass password dbname backupname
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°ΡΡΠΈΡΠ½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΈ Π·Π°ΠΏΠΈΡΠΈ, ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡΠΈ Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΡΡΠ°, Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ°. CREATE INDEX IT1_COL ON T1 (COL) WHERE COL < 100;
- Π ΠΈΠ·ΡΠ°Π·ΠΈΡΠ΅ SELECT WITH LOCK, UPDATE ΠΈ DELETE Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡΡ βSKIP LOCKEDβ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡΠΈ, Π·Π° ΠΊΠΎΠΈΡΠΎ ΠΊΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π΅ Π·Π°Π΄Π°Π΄Π΅Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° Π½Π΅ ΡΠ΅ ΠΈΠ·ΡΠ°ΠΊΠ²Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° ΠΏΡΠΈ ΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Ρ Π΄ΡΡΠ³Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π΄ΠΎ Π°ΠΊΡΡΠ°Π»Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ (ODS β On-Disk-Structure) Π½Π° Π»Π΅ΡΡ (inline update) Π±Π΅Π· ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ ΠΈ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΎΡ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ Π½Π° Π»Π΅ΡΡ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠΎΡΠΌΠ°Ρ Firebird 4.0 (ODS 13.0) Π² ΡΠΎΡΠΌΠ°Ρ Firebird 5.0 (ODS 13.1).
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅ ΠΊΠ΅Ρ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡΠ΅ SQL-ΠΈΠ·ΡΠ°Π·ΠΈ, ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ (ΠΎΡΡΠ°ΡΠ΅Π»ΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅ ΠΏΠΎΡΠΈΡΡΠ²Π°Ρ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ). Π Π°Π·ΠΌΠ΅ΡΡΡ Π½Π° ΠΊΠ΅ΡΠ° ΡΠ΅ Π·Π°Π΄Π°Π²Π° ΡΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° MaxStatementCacheSize Π² firebird.conf.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° SQL ΠΈ PSQL, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΎΡΠ΅Π½ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΡΠΊΠ° Π·Π°ΡΠ²ΠΊΠ°, Π½Π°ΡΡΡΠΏΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π·Π° Π±ΡΠΎΡ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
- Π ΠΈΠ·ΡΠ°Π·Π° MERGE Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ»ΠΎΠ²Π΅Π½ Π±Π»ΠΎΠΊ βWHEN NOT MATCHED BY SOURCEβ, ΠΊΠΎΠΉΡΠΎ ΡΡΠ°Π±ΠΎΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ° Π·Π°ΠΏΠΈΡ Π½Π΅ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° Π½ΠΈΡΠΎ Π΅Π΄Π½Π° Π·Π°ΠΏΠΈΡ Π² ΡΠ΅Π»Π΅Π²ΠΈΡ Π½Π°Π±ΠΎΡ. MERGE INTO customers c USING new_customers nc ON (c.id = nc.id) WHEN MATCHED THEN UPDATE SET name = nc.name WHEN NOT MATCHED BY SOURCE THEN DELETE
- ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π²ΡΡΡΠ°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄Π° ΡΡΠ΅Π· ΠΈΠ·ΡΠ°Π·Π° RETURNING, Π°ΠΊΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎΡΠΎ DML-ΠΈΠ·ΡΠ°Π·Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ Π²Π°ΡΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄Π° (ΠΏΠΎ-ΡΠ°Π½ΠΎ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΠ΅ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°ΡΠ΅ Π³ΡΠ΅ΡΠΊΠ° βmultiple rows in singleton selectβ).
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ: UNICODE_CHAR Π·Π° Π²ΡΡΡΠ°Π½Π΅ Π½Π° unicode ΡΠΈΠΌΠ²ΠΎΠ», ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°Ρ Π½Π° Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΊΠΎΠ΄, ΠΈ UNICODE_VAL Π·Π° Π²ΡΡΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π·Π° Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ». Π ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ EXTRACT, FIRST_DAY ΠΈ LAST_DAY Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ QUARTER Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° ΡΡΠΈΠΌΠ΅ΡΠ΅ΡΠΈΠ΅ΡΠΎ.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ ΠΏΠ°ΠΊΠ΅Ρ RDB$BLOB_UTIL Ρ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ BLOB ΠΎΠ±Π΅ΠΊΡΠΈ Π·Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ PSQL.
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π΅ Π°Π»Π³ΠΎΡΠΈΡΡΠΌΡΡ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡΠΈ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅Π³Π° ΠΏΡΠΈΠ»Π°Π³Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π΄ΡΠ»ΠΆΠΈΠ½Π° Π·Π° ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π°ΡΠΈ ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈ ΡΡΠ΅ΠΏΠ΅Π½ΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π½Π° Π½Π΅ΠΏΡΠ»Π½ΠΎ Π·Π°ΠΏΡΠ»Π½Π΅Π½ΠΈ Π΄ΡΠ»Π³ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° VARCHAR Ρ Π΄Π°Π½Π½ΠΈ Π² UTF-8 ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π΄Π²ΡΠΏΠΎΡΠΎΡΠ½ΠΈ ΠΊΡΡΡΠΎΡΠΈ (scrollable) ΠΏΡΠΈ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ.
- ΠΠ·Π²ΡΡΡΠ΅Π½Π° Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΏΡΠΈ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° BLOB ΠΎΠ±Π΅ΠΊΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π·Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅, ΠΎΠΏΠΈΡΠ°Π½ Π² SQL ΡΡΠ°Π½Π΄Π°ΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΈΠ·ΠΎΠ²Π΅ΡΠ΅ Π²Π΅ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½ΠΈ ΠΎΡ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ: select 'ab' /* comment */ 'cd' from RDB$DATABASE; select 'ab' 'cd' from RDB$DATABASE;
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
