Как отредактировать таблицу в sql
SQL Изменить таблицу
SQL ALTER TABLE
Инструкция ALTER TABLE используется для добавления, удаления или изменения столбцов в существующей таблице.
Инструкция ALTER TABLE также используется для добавления и удаления различных ограничений на существующую таблицу.
Чтобы добавить столбец в таблицу, используйте следующее Синтаксис:
Пример
Чтобы удалить столбец в таблице, используйте следующую команду синтаксис (обратите внимание, что некоторые системы баз данных не позволяют удалить столбец):
Следующий SQL удаляет столбец «Email» из таблицы «Customers»:
Пример
Чтобы изменить тип данных столбца в таблице, используйте следующие синтаксис:
SQL Сервер / MS Доступ:
My SQL / Оракул (предыдущая версия 10G):
Оракул 10G и более поздние версии:
SQL Пример ALTER TABLE
Посмотрите на таблицу «Persons»:
| ID | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
Теперь мы хотим добавить столбец с именем «DateOfBirth» в таблицу «Persons».
Мы используем следующую инструкцию SQL:
Обратите внимание, что новый столбец «DateOfBirth» имеет тип date и будет содержать дату. Тип данных указывает, какой тип данных может содержать столбец. Для получения полного описания всех типов данных, доступных в MS Access, MySQL и SQL Server, перейдите к нашему полному Справочнику типов данных.
Таблица «Persons» теперь будет выглядеть так:
| 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» в таблице «Persons».
Мы используем следующую инструкцию SQL:
Обратите внимание, что столбец «DateOfBirth» теперь имеет тип year и будет содержать year в двух или четырехзначном формате.
Пример DROP COLUMN
В первую очередь, мы хотим удалить столбец с именем «DateOfBirth» в таблице «Persons».
Мы используем следующую инструкцию SQL:
Таблица «Persons» теперь будет выглядеть так:
Изменение таблиц в Microsoft SQL Server или как добавить, удалить, изменить столбец в таблице?
В этом материале я покажу, как вносятся изменения в таблицы в Microsoft SQL Server, под изменениями здесь подразумевается добавление новых столбцов, удаление или изменение характеристик уже существующих столбцов в таблице. По традиции я покажу, как это делается в графическом конструкторе среды SQL Server Management Studio и, конечно же, как это делается на языке T-SQL.
Напомню, в прошлых статьях я показывал, как создаются базы данных в Microsoft SQL Server, а также как создаются новые таблицы. Сегодня Вы узнаете, как изменить уже существующие таблицы в Microsoft SQL Server, при этом, как было уже отмечено, будет рассмотрено два способа изменения таблиц: первый – с помощью SQL Server Management Studio (SSMS), и второй – с помощью T-SQL.
Также я расскажу о некоторых нюансах и проблемах, которые могут возникнуть в процессе изменения таблиц, что, на самом деле, характерно для большинства случаев.
Заметка! Для комплексного изучения языка T-SQL рекомендую посмотреть мои видеокурсы по T-SQL, в которых используется последовательная методика обучения и рассматриваются все конструкции языка SQL и T-SQL.
Исходные данные для примеров
Сначала давайте определим исходные данные, а точнее таблицу, которую мы будем изменять. Допустим, это будет точно такая же таблица, которую мы использовали в прошлых статьях, а именно наша тестовая таблица Goods – она содержит информацию о товарах и имеет следующие столбцы:
Если у Вас нет такой таблицы, то создайте ее и добавьте в нее несколько строк данных, например, следующей инструкцией.
Данные мы добавили инструкцией INSERT INTO языка T-SQL.
Примечание! В качестве сервера у меня выступает версия Microsoft SQL Server 2017 Express, как ее установить, можете посмотреть в моей видео-инструкции.
Итак, давайте начнем.
Изменение таблиц в конструкторе SQL Server Management Studio
Сначала я покажу, как изменяются таблицы с помощью графического интерфейса SQL Server Management Studio, а изменяются они точно так же, как и создаются, с помощью того же самого конструктора.
В итоге откроется конструктор таблиц, где Вы можете добавлять, удалять или изменять столбцы таблицы.
Важно! При работе в конструкторе с таблицей, в которой есть данные, обязательно стоит учитывать один очень важный момент, большинство изменений внести не получится, например, изменить свойства столбцов. Это связано с тем, что по умолчанию в конструкторе «Запрещено сохранение изменений, требующих повторного создания таблицы», именно так и называется параметр, который по умолчанию включён, за счет чего все соответствующие изменения будут блокироваться и, при попытке сохранить такие изменения, Вы будете получать, например, ошибки следующего характера
После чего данное ограничение будет снято, и Вы сможете вносить изменения в таблицы с помощью конструктора. При сохранении таблицы ошибок возникать уже не будет.
Как работать с конструктором, я думаю, понятно, например, для добавления нового столбца просто пишем название столбца в новую строку, выбираем тип данных и указываем признак, может ли данный столбец хранить значения NULL. Для сохранения изменений нажимаем сочетание клавиш «Ctrl+S» или на панели инструментов нажимаем кнопку «Сохранить» (также кнопка «сохранить» доступна и в меню «Файл», и в контекстном меню самой вкладки конструктора).
Для внесения изменений в существующие столбцы точно так же изменяем параметры, и сохраняем изменения.
Важно!
Во всех случаях, т.е. не важно с помощью конструктора или с помощью языка T-SQL, когда Вы будете вносить изменения в таблицы, в которых уже есть данные, важно понимать и знать, как эти изменения отразятся на существующих данных, и можно ли вообще применить эти изменения к данным.
Например, изменить тип данных можно, только если он явно преобразовывается без потери данных или в столбце нет данных вообще. Допустим, если в столбце с типом данных VARCHAR(100) есть данные, при этом максимальная длина фактических данных в столбце, к примеру, 80 символов, то изменить тип данных, без потери данных можно только в сторону увеличения или уменьшения до 80 символов (VARCHAR(80)).
Также если в столбце есть данные, при этом он может принимать значение NULL, а Вы хотите сделать его обязательным, т.е. задать свойство NOT NULL, Вам сначала нужно проставить всем записям, в которых есть NULL, значение, например, то, которое будет использоваться по умолчанию, или уже более детально провести анализ для корректной простановки значений.
Еще стоит отметить, что даже просто добавить новый столбец, который не должен принимать значения NULL, не получится, если в таблице уже есть записи, в таких случаях нужно сначала добавить столбец с возможностью принятия значения NULL, потом заполнить его данными, и уже потом обновить данный параметр, т.е. указать NOT NULL.
Изменение таблиц в Microsoft SQL Server на языке T-SQL (ALTER TABLE)
Теперь давайте я покажу, как изменять таблицы в Microsoft SQL Server на T-SQL. Все изменения в таблицы вносятся с помощью инструкции ALTER TABLE. Для начала давайте рассмотрим упрощённый синтаксис инструкции ALTER TABLE, чтобы Вы лучше понимали структуру тех запросов, которые мы будем рассматривать далее в примерах.
Упрощенный синтаксис инструкции ALTER TABLE
Добавление нового столбца в таблицу на T-SQL
Чтобы добавить новый столбец в таблицу, мы пишем инструкцию ALTER TABLE с параметром ADD, указываем название нового столбца (в нашем случае ProductDescription, т.е. описание товара), его тип данных и возможность принятия значения NULL (как было уже отмечено ранее, если в таблице есть строки, то сначала столбец должен принимать значения NULL).
Удаление столбца из таблицы на T-SQL
Если Вам столбец не нужен, то его легко удалить (если он не участвует ни в каких связях) параметром DROP COLUMN, например, мы передумали добавлять новый столбец с описанием товара, и чтобы его удалить, пишем следующую инструкцию.
Задаем свойство NOT NULL для столбца на T-SQL
Если у Вас возникла необходимость сделать столбец обязательным, т.е. задать свойство NOT NULL для столбца, то для этого необходимо использовать параметр ALTER COLUMN, но обязательно помним о том, что в столбце уже должны быть заполнены все строки, т.е. отсутствовать значения NULL.
Допустим, в нашем случае цена стала обязательной, чтобы это реализовать в нашей таблице, пишем следующую инструкцию (просто указываем все фактические параметры столбца и изменяем тот, который нужно, в данном конкретном случае возможность принятия значения NULL).
Изменяем тип данных столбца на T-SQL
Для изменения типа данных столбца точно так же перечисляем все параметры столбца с изменением нужного, т.е. указываем новый тип данных.
Допустим, у нас возникла необходимость увеличить длину строки для хранения наименования товара (например, до 200 символов).
Видео-инструкция по изменению таблиц в Microsoft SQL Server
У меня на этом все, надеюсь, материал был Вам полезен, пока!
Руководство. изменить существующую таблицу с помощью запросов
Вы можете вносить изменения в определение таблицы или ее данные, написав запрос Transact-SQL. Для просмотра или ввода данных в таблицу с помощью пользовательского интерфейса служит редактор данных, как описано в руководстве по разработке подключенной базы данных.
В следующих процедурах используются сущности, созданные ранее с помощью руководства по разработке подключенной базы данных.
Изменение определения существующей таблицы
Разверните узел Tables базы данных Trade в обозревателе объектов SQL Server и щелкните правой кнопкой мыши таблицу dbo.Suppliers.
Выберите Открыть в конструкторе, чтобы просмотреть схему таблицы в конструкторе таблиц.
Обновите базу данных, выполнив шаги, приведенные в разделе Как обновить подключенную базу данных с помощью Power Buffer.
Заполнение данными новых таблиц с использованием запроса Transact-SQL
Щелкните правой кнопкой мыши узел базы данных Trade и выберите Создать запрос.
В области скриптов вставьте следующий код.
Чтобы выполнить этот запрос, нажмите кнопку Выполнить запрос. Если в области Сообщение появится следующий текст, это означает, что строки успешно добавлены к таблицам.
(Обработано строк: 2)(Обработано строк: 1)(Обработано строк: 2)
В области Сообщение будет указано, что инструкция INSERT конфликтует с существующим проверочным ограничением, которое ограничивает значение ShelfLife числом 5. Обновление таблицы Products не произойдет в связи с неудачным завершением инструкции из-за существующего ограничения.
Измените код на следующий и снова запустите запрос. Обратите внимание, что на этот раз обновление строки происходит успешно.
Руководство. просмотреть и изменить данные в таблице
Теперь можно просматривать, изменять и удалять данные в существующей таблице с помощью визуального редактора данных.
В следующих процедурах используются сущности, созданные ранее с помощью руководства по разработке подключенной базы данных.
Визуальное редактирование данных в таблице с помощью редактора данных
Щелкните правой кнопкой мыши таблицу Products в обозревателе объектов SQL Server и выберите Просмотреть данных.
Запустится редактор данных. Обратите внимание на строки, которые мы добавили в таблицу в предыдущих процедурах.
Щелкните правой кнопкой мыши таблицу Fruits в обозревателе объектов SQL Server и выберите Просмотреть данные.
В редакторе данных введите 1 в поле Id и True в поле Perishable, а затем нажмите клавишу ВВОД или TAB, чтобы убрать фокус с новой строки и выполнить фиксацию в базу данных.
Повторите описанный выше шаг: введите в таблицу значения 2, False и 3, False.
Обратите внимание, что при изменении строки их всегда можно вернуть с помощью клавиши ESC.
Чтобы просмотреть изменения в виде скрипта, нажмите кнопку Скрипт на панели инструментов. Кроме того, можно сохранить изменения в SQL-файле скрипта для последующего использования, нажав кнопку Вывести скрипт в файл.
Инструкция ALTER TABLE (Microsoft Access SQL)
Область применения: Access 2013, Office 2013
Служит для изменения макета таблицы после того, как она была создана с помощью инструкции CREATE TABLE.
Ядро СУБД Microsoft Access не поддерживает использование ALTER TABLE или любых других инструкций DDL с базами данных, которые не основаны на Microsoft Access. Используйте вместо этого методы DAO Create.
Синтаксис
ALTER TABLE таблица
Инструкция ALTER TABLE включает в себя следующие элементы:
Имя таблицы, которую требуется изменить.
Имя поля, которое будет добавлено в таблицу, удалено из нее или изменено в ней.
Размер поля в знаках (только для полей с типом данных TEXT и BINARY).
Индекс поля. Дополнительные сведения о создании этого индекса см. в статье, посвященной предложению CONSTRAINT.
Индекс набора полей, добавляемых в таблицу. Дополнительные сведения о создании этого индекса см. в статье, посвященной предложению CONSTRAINT.
Имя удаляемого индекса набора полей.
Примечания
Изменить существующую таблицу с помощью инструкции ALTER TABLE можно несколькими способами. Вы можете:
Добавить поле в таблицу, используя инструкцию ADD COLUMN. Требуется указать имя поля и тип данных. Для полей с типом данных TEXT и BINARY можно также указать размер. Например, следующая инструкция добавляет поле Notes с типом данных TEXT размером 25 знаков в таблицу Employees:
Для этого поля можно также указать индекс. Дополнительные сведения об индексах одного поля см. в статье, посвященной предложению CONSTRAINT.
Если для поля определено свойство NOT NULL, поле обязательно должно содержать допустимые данные.
Изменить тип данных для существующего поля, используя инструкцию ALTER COLUMN. Требуется указать имя поля и новый тип данных. Для полей с типом данных TEXT и BINARY можно также указать размер. Например, следующая инструкция в таблице Employees изменит тип данных поля ZipCode (начальный тип данных — INTEGER) на тип данных TEXT размером 10 знаков:
Добавить индекс набора полей, используя инструкцию ADD CONSTRAINT. Дополнительные сведения об индексах набора полей см. в статье, посвященной предложению CONSTRAINT.
Удалить поле, используя инструкцию DROP COLUMN. Требуется указать только имя поля.
Использовать DROP CONSTRAINT, чтобы удалить индекс набора полей. Требуется указать только имя индекса после зарезервированного слова CONSTRAINT.
Пример
В этом примере добавляется поле Salary (Заработная плата) с типом данных Money в таблицу Employees (Сотрудники).
В этом примере тип данных поля Salary (Заработная плата) изменяется с Money на Char.
В этом примере удаляется поле Salary (Заработная плата) из таблицы Employees (Сотрудники).
В этом примере добавляется внешний ключ для таблицы Orders (Заказы). Внешний ключ основан на поле EmployeeID (Код сотрудника) и ссылается на поле EmployeeID (Код сотрудника) таблицы Employees (Сотрудники). В этом примере не требуется перечислять поле EmployeeID (Код сотрудника) после таблицы Employees (Сотрудники) в предложении REFERENCES, так как EmployeeID — это первичный ключ таблицы Employees (Сотрудники).
В этом примере удаляется внешний ключ из таблицы Orders (Заказы).








