π ΠΠ°ΠΊ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ Π² SQL: ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠΎΠ²Π΅ΡΡ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ π»
Π SQL, Π΄Π»Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΡΠ»Π΅Ρ (\). ΠΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈΠ»ΠΈ Π·Π½Π°ΠΊΠΈ ΠΏΡΠ΅ΠΏΠΈΠ½Π°Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΡΡΡΠΎΠΊ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ:
SELECT * FROM users WHERE name = 'John\'s'
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ Π² SQL
ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ! Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² SQL Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² SQL?
ΠΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² SQL β ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠ΅, Π° Π½Π΅ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ SQL-Π·Π°ΠΏΡΠΎΡΠ°. ΠΡΠΎ Π²Π°ΠΆΠ½Π°Ρ ΠΌΠ΅ΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
1. ΠΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΡ ΠΊΠ°Π²ΡΡΠ΅ΠΊ
ΠΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ ('') Π² SQL ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ Π²ΡΡΠ°Π²ΠΈΡΡ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΡ ΠΊΠ°Π²ΡΡΠΊΡ Π²Π½ΡΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΅, ΡΡΠΎΠ±Ρ SQL-ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ ΠΏΡΠΈΠ½ΡΠ» Π΅Π΅ Π·Π° ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ. ΠΠ»Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΠΊΠ°Π²ΡΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄Π²Π΅ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ ('').
INSERT INTO users (name) VALUES ('O''Brien');
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΡ ΠΊΠ°Π²ΡΡΠΊΡ Π² ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ O'Brien.
2. ΠΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΠΎΠΉΠ½ΡΡ ΠΊΠ°Π²ΡΡΠ΅ΠΊ
ΠΠ²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ (") Π² SQL ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΏΡΠΎΠ±Π΅Π»Ρ, Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ Π²Π½ΡΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ Π΄Π²ΠΎΠΉΠ½ΡΡ ΠΊΠ°Π²ΡΡΠ΅ΠΊ ("").
SELECT * FROM "my""table";
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΡ "my"table" Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π²ΠΎΠΉΠ½ΡΡ ΠΊΠ°Π²ΡΡΠ΅ΠΊ.
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠ°Ρ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ SQL ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ SQL-ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΡΠ°Π½ΠΈΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΈΠ·Π±Π΅Π³Π°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΡΡΠ½ΡΡ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·Π°ΡΠΈΡ.
PreparedStatement statement = connection.prepareStatement("SELECT * FROM users WHERE id = ?;");
statement.setInt(1, 10);
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ, Π³Π΄Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΠΊΡΠ°Π½ΠΈΡΡΠ΅ΡΡΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π·Π°ΠΏΡΠΎΡ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
4. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ SQL
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ Π½Π΅ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ Π΄Π΅ΡΠ°Π»ΡΡ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π·Π° Π²Π°Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ SQL-ORM (Object-Relational Mapping) Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΡΠ°Π½ΠΈΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ SQL-ORM Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΠΈΡΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² SQL Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡ ΡΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΈ Π΄Π²ΠΎΠΉΠ½ΡΠ΅ ΠΊΠ°Π²ΡΡΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ SQL-ORM Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π±ΡΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠΈΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
Π£Π΄Π°ΡΠΈ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ SQL!