Изменить тип данных поля в 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
Посмотрите на таблицу «персоны»:
ID | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
Теперь мы хотим добавить столбец с именем «DateOfBirth» в таблице «персоны».
Мы используем следующую инструкцию SQL:
ALTER TABLE Persons
ADD DateOfBirth date;
Обратите внимание, что новый столбец «DateOfBirth» имеет тип Date и будет содержать дату. Тип данных определяет тип данных, которые может содержать столбец. Для получения полной информации о всех типах данных, доступных в MS Access, MySQL и SQL Server, перейдите по справка полные типы данных.
Таблица «персоны» теперь будет выглядеть так:
ID | LastName | FirstName | Address | City | DateOfBirth |
---|---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes | |
2 | Svendson | Tove | Borgvn 23 | Sandnes | |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
Пример изменения типа данных
Теперь мы хотим изменить тип данных столбца с именем «DateOfBirth» в таблице «персоны».
Мы используем следующую инструкцию SQL:
ALTER TABLE Persons
ALTER COLUMN DateOfBirth year;
Обратите внимание, что столбец «DateOfBirth» теперь имеет тип year и будет содержать год в двух-или четырех-значном формате.
Пример перетаскивания столбца
Далее, мы хотим удалить столбец с именем «DateOfBirth» в таблице «лица».
Мы используем следующую инструкцию SQL:
ALTER TABLE Persons
DROP COLUMN DateOfBirth;
Таблица «персоны» теперь будет выглядеть так:
ID | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
❮ Назад
Дальше ❯
Изменение типа данных столбца в реляционных базах данных.
Изменение типа данных столбца в реляционных базах данных. Это может потребовать создания новых баз данных, таблиц и столбцов, а также изменения существующих структур таблиц. Изменение типа данных столбца может быть тривиальной или сложной операцией, в зависимости от исходного и целевого типов данных, а также данных, содержащихся в столбце. В этом блоге будут рассмотрены некоторые распространенные проблемы, возникающие при изменении типа данных столбца, а также стратегии, которые можно использовать для облегчения этого процесса.
Структуру (схему) существующих таблиц можно изменить с помощью оператора 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.