π¬ Blob Π² SQL: ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ?
ΠΠ»ΠΎΠ± (BLOB) Π² SQL ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ "Binary Large Object" ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Ρ ΡΠ°Π½ΠΈΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
ΠΠ»ΠΎΠ±Ρ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π²ΠΈΠ΄Π΅ΠΎ, Π°ΡΠ΄ΠΈΠΎ, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΏΠΎΠ»Π΅ΠΌ ΡΠΈΠΏΠ° BLOB:
CREATE TABLE my_table (
id INT PRIMARY KEY,
data BLOB
);
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΠ°Π²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΏΠΎΠ»Π΅ BLOB, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ INSERT:
INSERT INTO my_table (id, data)
VALUES (1, X'FFFF');
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅, ΠΌΡ Π²ΡΡΠ°Π²ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ X'FFFF' Π² ΠΏΠΎΠ»Π΅ data ΡΠ°Π±Π»ΠΈΡΡ my_table.
Π’Π°ΠΊΠΆΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΏΠΎΠ»Ρ BLOB Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ SQL-Π·Π°ΠΏΡΠΎΡΠ°:
SELECT data
FROM my_table
WHERE id = 1;
Π ΡΡΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅, ΠΌΡ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΏΠΎΠ»Ρ data ΡΠ°Π±Π»ΠΈΡΡ my_table Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Ρ id = 1.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ BLOB Π² SQL?
ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡ! Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ BLOB Π² SQL ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
**BLOB** (Binary Large Object) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π² SQL, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π·Π²ΡΠΊΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎ. BLOB ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΡΠ±ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±Π°ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ BLOB?
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ BLOB Π² SQL ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:
- Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Π΄ΠΈΠ°-ΡΠ°ΠΉΠ»ΠΎΠ²: BLOB ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π°ΡΠ΄ΠΈΠΎΡΠ°ΠΉΠ»Ρ, Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΈ.
- Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²: BLOB ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ PDF-ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Ρ Microsoft Office. ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Ρ ΡΠ°Π½ΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
- ΠΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ: BLOB ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ°ΠΌ, Π³Π΄Π΅ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ BLOB
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ BLOB Π² SQL. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° "Products" ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡ Π΅ΠΌΠΎΠΉ:
CREATE TABLE Products (
id INT PRIMARY KEY,
name VARCHAR(100),
image BLOB
);
Π ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠΎΠ»Π±Π΅Ρ "image" ΡΠΈΠΏΠ° BLOB, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ². Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΡ:
INSERT INTO Products (id, name, image)
VALUES (1, 'ΠΠΎΡΡΠ±ΡΠΊ', 'Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ');
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ 1, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ "ΠΠΎΡΡΠ±ΡΠΊ" ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΡΠΎΠ»Π±Π΅Ρ "image".
ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ BLOB
ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ BLOB ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SELECT:
SELECT image
FROM Products
WHERE id = 1;
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Π»ΡΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
BLOB - ΡΡΠΎ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π² SQL, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΌΠ°ΠΌΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠ½ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ΅Π΄ΠΈΠ°-ΡΠ°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ BLOB Π² SQL Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.