πŸ”„ Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² SQL: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² SQL, Π²Π°ΠΌ потрСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ALTER TABLE. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° дСмонстрируСт, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ "users" ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "age" с Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… "integer" Π½Π° Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… "varchar(50)":


        ALTER TABLE users
        ALTER COLUMN age TYPE varchar(50);
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ALTER COLUMN для измСнСния Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ "age" Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ "users" ΠΈ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… "varchar(50)". Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ "users" ΠΈ "age" Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ значСния своСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² SQL

Π’ SQL ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ характСристики Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ подходящий для вашСго прилоТСния ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² SQL ΠΈ прСдоставим Π²Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° для Ρ€Π°Π·Π½Ρ‹Ρ… Π‘Π£Π‘Π”.

Бинтаксис ALTER TABLE

Для измСнСния Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² SQL, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ALTER TABLE. Бинтаксис зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π‘Π£Π‘Π”, поэтому Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для Ρ€Π°Π·Π½Ρ‹Ρ… популярных Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для MySQL

Для измСнСния Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² MySQL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ MODIFY COLUMN. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ALTER TABLE table_name MODIFY COLUMN column_name new_data_type;

Π—Π΄Π΅ΡΡŒ table_name - это имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, column_name - это имя ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Π° new_data_type - это Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅.

НапримСр, Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° "users" с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΎΠΉ "age" Ρ‚ΠΈΠΏΠ° INT, ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π° SMALLINT, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ SQL-запрос:

ALTER TABLE users MODIFY COLUMN age SMALLINT;

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для PostgreSQL

Для измСнСния Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² PostgreSQL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ALTER COLUMN. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ALTER TABLE table_name ALTER COLUMN column_name TYPE new_data_type;

Π’ этом случаС Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ table_name ΠΈ column_name, Π½ΠΎ вмСсто ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° MODIFY COLUMN ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ALTER COLUMN. new_data_type - это Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ.

НапримСр, Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° "users" с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΎΠΉ "age" Ρ‚ΠΈΠΏΠ° INT, ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π° SMALLINT, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ SQL-запрос:

ALTER TABLE users ALTER COLUMN age TYPE SMALLINT;

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для SQL Server

Для измСнСния Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² SQL Server ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ALTER TABLE с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ALTER COLUMN. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ALTER TABLE table_name ALTER COLUMN column_name new_data_type;

Π—Π΄Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ table_name ΠΈ column_name, Π° new_data_type - это Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ.

НапримСр, Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° "users" с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΎΠΉ "age" Ρ‚ΠΈΠΏΠ° INT, ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π° SMALLINT, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ SQL-запрос:

ALTER TABLE users ALTER COLUMN age SMALLINT;

Π’Π°ΠΆΠ½Ρ‹Π΅ сообраТСния

ΠŸΠ΅Ρ€Π΅Π΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹:

  • ИзмСнСниС Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Ссли Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ значСния. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ внСсСниСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

  • Если Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ элСмСнтами вашСго прилоТСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΠ΄Π΅), ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π½Π΅ повлияСт Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ этих элСмСнтов. ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ прилоТСния ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.

Π’Ρ‹Π²ΠΎΠ΄

ИзмСнСниС Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² SQL ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ Π½ΠΎΠ²Ρ‹Π΅ характСристики Π΄Π°Π½Π½Ρ‹Ρ…. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли синтаксис ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ALTER TABLE для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π‘Π£Π‘Π” ΠΈ прСдоставили ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° для MySQL, PostgreSQL ΠΈ SQL Server. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ влияниС Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ прилоТСния.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

16. T-SQL MS SQL SERVER ALTER TABLE ADD COLUMN ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ/ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅/ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…/

ИзмСнСниС структуры Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ALTER TABLE

ИзмСнСниС Ρ‚Π°Π±Π»ΠΈΡ† Π² Microsoft SQL Server ALTER TABLE - Π²ΠΈΠ΄Π΅ΠΎ ΡƒΡ€ΠΎΠΊ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ поля Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ SQL: простоС руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ SQL Profiler: пошаговая инструкция для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ”„ Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² SQL: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство

πŸš€ Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ psql exe: подробная инструкция для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ