Изменить тип данных поля в sql: Изменение столбцов (компонент Database Engine) — SQL Server

Модификация типа данных столбца

    Об
    объекте


    Учебные
    материалы


    Правила
    описания синтаксиса команд SQL

    Создание
    баз данных

    Выбор
    базы данных

    Создание
    таблиц

    Изменение
    и удаление баз данных и их объектов

    Переименование
    таблиц

    Модификация
    типа данных столбца

    Добавление
    cтолбца

    Создание
    индексов

    Удаление
    индексов

    Удаление
    таблиц

    Удаление
    баз данных

    Добавление,
    изменение и удаление данных


    Практические
    задания


    Вопросы
    для самопроверки


    Описание
    базы данных db_sales


    Список
    литературы


Модификация типа данных столбца

MS SQL Server


В MS SQL Server для изменения типа данных столбцов используется
предложение ALTER COLUMN инструкции ALTER TABLE.


ALTER TABLE
<table_name>
ALTER COLUMN
<col_name>
<new_col_type> [ NULL | NOT NULL ]


В аргументе column_name содержит
имя столбца, подлежащего изменению. Аргумент new_col_type
содержит описание нового типа данных для изменяемого столбца.


Ниже приведены критерии для
аргумента new_col_type
изменяемого столбца:

  • Предыдущие типы данных
    должны быть неявно преобразуемыми в новый тип данных.

  • Аргумент new_col_type
    не может принадлежать к типу timestamp.

  • Если изменяемый столбец
    является столбцом идентификаторов, то новый тип данных должен
    поддерживать свойство идентификатора.


Тип данных
столбцов text, ntext и image
может быть изменен только следующими способами:

  • text
    на varchar(max), nvarchar(max) или xml

  • ntext
    на varchar(max), nvarchar(max) или xml

  • image
    в varbinary(max)


MySQL
Server



В СУБД MySQL описание столбца меняется с помощью предложений CHANGE или
MODIFY в операторе ALTER TABLE.


ALTER TABLE
<table_name> MODIFY <col_definition>


ALTER TABLE <table_name> CHANGE
<old_col_name> <col_definition>


В выражении
col_definition для MODIFY и CHANGE используется тот же синтаксис, что и
для CREATE TABLE. Следует учитывать, что этот синтаксис включает имя
столбца, а не просто его тип.


Операция
CHANGE, в отличие от операции MODIFY, не только меняет тип данных, но и
переименовывает столбец. Поэтому при ее использовании сначала
указывается имя столбца, который будет меняться, а затем дается
полностью новое объявление столбца, включая опять же его имя.

Примеры

Переименовать
столбец saledate в таблице tbl_sales в d_sale и изменить его тип с
date на datetime. Установить
атрибут NOT NULL
для данного столбца

MS
SQL:

/*переиенование столбца
тоблицы*/


sp_rename ‘tbl_sales. saledate’, ‘d_sale’, ‘COLUMN’;


/*измениение описание столбца*/


ALTER TABLE tbl_sales
ALTER COLUMN d_saledatetime NOT NULL;

MySQL:


ALTER TABLE tbl_sales CHANGE saledate d_sale datetime NOT NULL


Увеличить
размерность столбцов name и lastname в таблице tbl_clients с 45
символов до 60

MS
SQL:



ALTER TABLE tbl_sales
ALTER COLUMN name varchar(60), ALTER COLUMN lastname varchar(60);



MySQL:
ALTER TABLE tbl_clients
MODIFY name varchar(60), MODIFY lastname varchar(60)

« Previous | Next »

База Данных MySQL ALTER TABLE Инструкция

❮ Назад
Дальше ❯


Инструкция SQL ALTER TABLE

Инструкция ALTER TABLE используется для добавления, удаления или изменения столбцов в существующей таблице.

Инструкция ALTER TABLE также используется для добавления и удаления различных зависимостей для существующей таблицы.


Изменить таблицу-добавить столбец

Чтобы добавить столбец в таблицу, используйте следующий синтаксис:

ALTER TABLE table_name
ADD column_name datatype;


Изменить таблицу-удалить столбец

Чтобы удалить столбец в таблице, используйте следующий синтаксис (Обратите внимание, что некоторые системы баз данных не позволяют удалить столбец):

ALTER TABLE table_name
DROP COLUMN column_name;


Изменить таблицу-изменить/изменить столбец

Чтобы изменить тип данных столбца в таблице, используйте следующий синтаксис:

Доступ к SQL Server/MS:

ALTER TABLE table_name
ALTER COLUMN column_name datatype;

Мой SQL/Oracle (Предыдущая версия):

ALTER TABLE table_name
MODIFY COLUMN column_name datatype;

Oracle и более поздних версий:

ALTER TABLE table_name
MODIFY column_name datatype;



Пример таблицы SQL ALTER

Посмотрите на таблицу «персоны»:

IDLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

Теперь мы хотим добавить столбец с именем «DateOfBirth» в таблице «персоны».

Мы используем следующую инструкцию SQL:

ALTER TABLE Persons
ADD DateOfBirth date;

Обратите внимание, что новый столбец «DateOfBirth» имеет тип Date и будет содержать дату. Тип данных определяет тип данных, которые может содержать столбец. Для получения полной информации о всех типах данных, доступных в MS Access, MySQL и SQL Server, перейдите по справка полные типы данных.

Таблица «персоны» теперь будет выглядеть так:

IDLastNameFirstNameAddressCityDateOfBirth
1HansenOlaTimoteivn 10Sandnes 
2SvendsonToveBorgvn 23Sandnes 
3PettersenKariStorgt 20Stavanger 

Пример изменения типа данных

Теперь мы хотим изменить тип данных столбца с именем «DateOfBirth» в таблице «персоны».

Мы используем следующую инструкцию SQL:

ALTER TABLE Persons
ALTER COLUMN DateOfBirth year;

Обратите внимание, что столбец «DateOfBirth» теперь имеет тип year и будет содержать год в двух-или четырех-значном формате.


Пример перетаскивания столбца

Далее, мы хотим удалить столбец с именем «DateOfBirth» в таблице «лица».

Мы используем следующую инструкцию SQL:

ALTER TABLE Persons
DROP COLUMN DateOfBirth;

Таблица «персоны» теперь будет выглядеть так:

IDLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

❮ Назад
Дальше ❯

Изменение типа данных столбца в реляционных базах данных.

Изменение типа данных столбца в реляционных базах данных. Это может потребовать создания новых баз данных, таблиц и столбцов, а также изменения существующих структур таблиц. Изменение типа данных столбца может быть тривиальной или сложной операцией, в зависимости от исходного и целевого типов данных, а также данных, содержащихся в столбце. В этом блоге будут рассмотрены некоторые распространенные проблемы, возникающие при изменении типа данных столбца, а также стратегии, которые можно использовать для облегчения этого процесса.

Структуру (схему) существующих таблиц можно изменить с помощью оператора ALTER TABLE. Это оператор языка определения данных (DDL), такой же, как CREATE TABLE, DROP FUNCTION и GRANT. Его основной синтаксис:

ИЗМЕНИТЬ ТАБЛИЦУ table_to_change
    что_что_изменить
    (дополнительные_аргументы)
 

Оператор ALTER TABLE может использоваться для изменения всех видов свойств таблицы, от изменения имени таблицы до добавления, удаления и изменения столбцов.

Одна инструкция, меняющийся синтаксис

Возможно, вы заметили, что после первой строки синтаксис инструкции ALTER TABLE становится довольно расплывчатым. Это потому, что он варьируется от поставщика к поставщику. Например:

В SQL Server
ИЗМЕНИТЬ ТАБЛИЦУ table_name
ALTER COLUMN имя_столбца тип_столбца;
 
В PostgreSQL
ИЗМЕНИТЬ ТАБЛИЦУ table_name
ALTER COLUMN имя_столбца TYPE определение_столбца;
 
В Oracle, MySQL и MariaDB
ИЗМЕНИТЬ ТАБЛИЦУ table_name
ИЗМЕНИТЬ имя_столбца тип_столбца;
 

Некоторые базы данных, например Oracle, не позволяют выполнять запрос ALTER к таблицам, содержащим данные. Если вы это сделаете, вы получите сообщение об ошибке, подобное этому:

Сообщение об ошибке:
Ошибка SQL: ORA-01439: изменяемый столбец должен быть пустым, чтобы изменить тип данных
01439. 00000 — «изменяемый столбец должен быть пустым, чтобы изменить тип данных»
 

Однако большинство типов баз данных позволяют вносить изменения в заполненные таблицы.

Вот таблица MySQL в конструкторе таблиц Navicat Premium, которая показывает определения столбцов:

Мы можем выполнить оператор ALTER TABLE, чтобы увеличить емкость столбца name (VARCHAR) до 255 символов:

Нередко можно увидеть столбцы VARCHAR которые содержат числовые данные. В некоторых случаях может быть выгодно изменить его тип на числовой. В Navicat мы можем установить тип столбца, выбрав его из раскрывающегося списка:

Изменения вносятся после нажатия кнопки «Сохранить». Если вы забудете, Navicat предложит вам сохранить изменения при закрытии конструктора таблиц.

По возможности следует избегать уменьшения размера типа данных столбца; в противном случае вы получите ошибку Data Truncated, например:

#1265 - Данные для столбца «имя» в строке 2 усечены
 

Не существует жестких и быстрых правил для устранения этой ошибки, но, как правило, вы можете самостоятельно обновить соответствующие значения, а затем повторно запустить оператор ALTER TABLE. Например, вот оператор, который усекает все значений имени до десяти символов:

В этом блоге описаны некоторые распространенные проблемы, связанные с изменением типа данных столбца, а также стратегии, которые можно использовать для облегчения этого процесса.

Заинтересованы в Navicat Premium? Вы можете попробовать его бесплатно в течение 14 дней!


Роб Гравель живет в Оттаве, Канада, и уже более 20 лет является ИТ-гуру. За это время Роб построил системы для разведывательных организаций, таких как Канадская пограничная служба и различных коммерческих предприятий. В свободное время Роб стал опытным музыкальным исполнителем, на его счету несколько компакт-дисков и цифровых релизов.

изменить тип данных | Liquibase Docs

Позволяет изменять типы данных столбцов в таблице.

Доступные атрибуты

Имя Описание Требуется для Опоры С
Название каталога Название каталога все 3,0
имя столбца Имя столбца все все
новый тип данных Тип данных для преобразования столбца. Изменяет только сам тип данных и не может определять ограничения все все
имя_схемы Имя схемы все
имя_таблицы Имя таблицы все все

Пример XML

 
    
 

Пример YAML

 changeSet:
  id: пример modifyDataType
  автор: liquibase-docs
  изменения:
  - изменить тип данных:
      catalogName: кошка
      имя столбца: идентификатор
      новый тип данных: интервал
      ИмяСхемы: общедоступный
      tableName: человек 

Пример JSON

 {
  "набор изменений": {
    "id": "modifyDataType-пример",
    "автор": "liquibase-docs",
    "изменения":  [{
      "изменить тип данных": {
        "имякаталога": "кошка",
        "имя_столбца": "идентификатор",
        «новый тип данных»: «целое»,
        "ИмяСхемы": "общедоступный",
        "имя_таблицы": "человек"
      }
    }]
  }
} 

Пример SQL

 ALTER TABLE cat.