π§ ΠΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ SQL: ΠΏΡΠΎΡΡΠΎΠΉ Π³Π°ΠΉΠ΄ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ SQL, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ALTER TABLE.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ:
ALTER TABLE Π½Π°Π·Π²Π°Π½ΠΈΠ΅_ΡΠ°Π±Π»ΠΈΡΡ
MODIFY COLUMN Π½Π°Π·Π²Π°Π½ΠΈΠ΅_ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½ΠΎΠ²ΡΠΉ_ΡΠΈΠΏ_Π΄Π°Π½Π½ΡΡ
;
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "age" Π² ΡΠ°Π±Π»ΠΈΡΠ΅ "users" Π½Π° INTEGER, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ALTER TABLE users
MODIFY COLUMN age INTEGER;
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²Π½Π΅ΡΡΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΡΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ALTER TABLE.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ SQL?
ΠΡΠΈΠ²Π΅Ρ! Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ SQL. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ, ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ , Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ². ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π»ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ.
1. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ
Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ SQL, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ALTER TABLE Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ RENAME COLUMN. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
ALTER TABLE table_name
RENAME COLUMN old_column_name TO new_column_name;
ΠΠ΄Π΅ΡΡ table_name
- ΡΡΠΎ ΠΈΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ. old_column_name
- ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΈΠΌΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π° new_column_name
- ΡΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ.
2. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ
Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ SQL, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ALTER TABLE Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ALTER COLUMN. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
ALTER TABLE table_name
ALTER COLUMN column_name TYPE new_data_type;
ΠΠ΄Π΅ΡΡ table_name
- ΡΡΠΎ ΠΈΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°, ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ
ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ. column_name
- ΡΡΠΎ ΠΈΠΌΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ
ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π° new_data_type
- ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ
.
3. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ
Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π°ΡΡΠΈΠ±ΡΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ SQL, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ALTER TABLE Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ALTER COLUMN. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
ALTER TABLE table_name
ALTER COLUMN column_name SET attribute;
ΠΠ΄Π΅ΡΡ table_name
- ΡΡΠΎ ΠΈΠΌΡ ΡΠ°Π±Π»ΠΈΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π°ΡΡΠΈΠ±ΡΡΡ. column_name
- ΡΡΠΎ ΠΈΠΌΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, Π° attribute
- ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ.
4. ΠΡΠΈΠΌΠ΅Ρ: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ SQL:
-- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΎΠΉ "name" ΡΠΈΠΏΠ° VARCHAR(50)
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL
);
-- ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΈΠΌΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π° "full_name"
ALTER TABLE users
RENAME COLUMN name TO full_name;
-- ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ
ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "full_name" Π½Π° TEXT
ALTER TABLE users
ALTER COLUMN full_name TYPE TEXT;
-- ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ Π°ΡΡΠΈΠ±ΡΡ NOT NULL Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ "full_name"
ALTER TABLE users
ALTER COLUMN full_name DROP NOT NULL;
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠ°Π±Π»ΠΈΡΡ "users" Ρ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΎΠΉ "name" ΡΠΈΠΏΠ° VARCHAR(50), Π° Π·Π°ΡΠ΅ΠΌ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π΅Π΅ ΠΈΠΌΡ Π½Π° "full_name" Ρ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ TEXT ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ Π°ΡΡΠΈΠ±ΡΡΠ° NOT NULL.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ SQL. ΠΡ ΡΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ ΠΈ Π°ΡΡΠΈΠ±ΡΡΡ. ΠΠ°Π΄Π΅ΡΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ Π»ΡΡΡΠ΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ ΡΠ°Π±Π»ΠΈΡΡ SQL.
ΠΡΠΈΡΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ!