Как добавить данные в таблицу sql
Перейти к содержимому

Как добавить данные в таблицу sql

  • автор:

Как добавить запись в таблицу sql

Добавить одну запись в таблицу можно с помощью следующего запроса:

INSERT INTO tablename (field1, field2, field3) VALUES ('value of field1', 'value of field2', 'value of field3'); 

Мы добавили в таблицу tablename строку со значениями полей для field1 , field2 , field3 : ‘value of field1’ , ‘value of field2’ , ‘value of field3’ , соответственно.

Основы T-SQL. DML

Для добавления данных применяется команда INSERT , которая имеет следующий формальный синтаксис:

INSERT [INTO] имя_таблицы [(список_столбцов)] VALUES (значение1, значение2, . значениеN)

Вначале идет выражение INSERT INTO , затем в скобках можно указать список столбцов через запятую, в которые надо добавлять данные, и в конце после слова VALUES скобках перечисляют добавляемые для столбцов значения.

Например, пусть ранее была создана следующая база данных:

CREATE DATABASE productsdb; GO USE productsdb; CREATE TABLE Products ( Id INT IDENTITY PRIMARY KEY, ProductName NVARCHAR(30) NOT NULL, Manufacturer NVARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Price MONEY NOT NULL )

Добавим в нее одну строку с помощью команды INSERT:

INSERT Products VALUES ('iPhone 7', 'Apple', 5, 52000)

После удачного выполнения в SQL Server Management Studio в поле сообщений должно появиться сообщение «1 row(s) affected»:

INSERT в T-SQL и MS SQL Server

Стоит учитывать, что значения для столбцов в скобках после ключевого слова VALUES передаются по порядку их объявления. Например, в выражении CREATE TABLE выше можно увидеть, что первым столбцом идет Id. Но так как для него задан атрибут IDENTITY, то значение этого столбца автоматически генерируется, и его можно не указывать. Второй столбец представляет ProductName, поэтому первое значение — строка «iPhone 7» будет передано именно этому столбцу. Второе значение — строка «Apple» будет передана третьему столбцу Manufacturer и так далее. То есть значения передаются столбцам следующим образом:

  • ProductName: ‘iPhone 7’
  • Manufacturer: ‘Apple’
  • ProductCount: 5
  • Price: 52000

Также при вводе значений можно указать непосредственные столбцы, в которые будут добавляться значения:

INSERT INTO Products (ProductName, Price, Manufacturer) VALUES ('iPhone 6S', 41000, 'Apple')

Здесь значение указывается только для трех столбцов. Причем теперь значения передаются в порядке следования столбцов:

  • ProductName: ‘iPhone 6S’
  • Manufacturer: ‘Apple’
  • Price: 41000

Для неуказанных столбцов (в данном случае ProductCount) будет добавляться значение по умолчанию, если задан атрибут DEFAULT, или значение NULL. При этом неуказанные столбцы должны допускать значение NULL или иметь атрибут DEFAULT.

Также мы можем добавить сразу несколько строк:

INSERT INTO Products VALUES ('iPhone 6', 'Apple', 3, 36000), ('Galaxy S8', 'Samsung', 2, 46000), ('Galaxy S8 Plus', 'Samsung', 1, 56000)

В данном случае в таблицу будут добавлены три строки.

Также при добавлении мы можем указать, чтобы для столбца использовалось значение по умолчанию с помощью ключевого слова DEFAULT или значение NULL:

INSERT INTO Products (ProductName, Manufacturer, ProductCount, Price) VALUES ('Mi6', 'Xiaomi', DEFAULT, 28000)

В данном случае для столбца ProductCount будет использовано значение по умолчанию (если оно установлено, если его нет — то NULL).

Если все столбцы имеют атрибут DEFAULT, определяющий значение по умолчанию, или допускают значение NULL, то можно для всех столбцов вставить значения по умолчанию:

INSERT INTO Products DEFAULT VALUES

Но если брать таблицу Products, то подобная команда завершится с ошибкой, так как несколько полей не имеют атрибута DEFAULT и при этом не допускают значение NULL.

Вставка, изменение и удаление записей таблицы с помощью Access SQL

По существу, существует два метода добавления записей в таблицу. Первый — добавление по одной записи за раз, второй — одновременное добавление нескольких записей. В обоих случаях для выполнения задачи необходимо использовать инструкцию SQL INSERT INTO. Инструкции INSERT INTO обычно называют запросами на добавление.

Чтобы добавить одну запись в таблицу, с помощью списка полей определите, в какие поля следует поместить данные, а затем разместите данные в списке значений. Для определения списка значений используйте выражение VALUES. Например, указанная ниже инструкция вставляет значения 1, Kelly и Jill в поля CustomerID, Last Name и First Name соответственно.

INSERT INTO tblCustomers (CustomerID, [Last Name], [First Name]) VALUES (1, 'Kelly', 'Jill') 

Вы можете опустить список полей, но только в том случае, если вы передаете все значения, которые должна содержать запись.

INSERT INTO tblCustomers VALUES (1, Kelly, 'Jill', '555-1040', 'someone@microsoft.com') 

Чтобы добавить одновременно несколько записей в таблицу, используйте инструкцию INSERT INTO совместно с инструкцией SELECT. Если вы вставляете записи из другой таблицы, тип каждого вставляемого значения должен быть совместим с типом поля, принимающего данные.

Указанная ниже инструкция INSERT INTO вставляет все значения полей CustomerID, Last Name и First Name таблицы tblOldCustomers в соответствующие поля таблицы tblCustomers.

INSERT INTO tblCustomers (CustomerID, [Last Name], [First Name]) SELECT CustomerID, [Last Name], [First Name] FROM tblOldCustomers 

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

INSERT INTO tblCustomers SELECT * FROM tblOldCustomers 

Изменение записей в таблице

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

UPDATE table name SET field name = some value 

Чтобы изменить все записи в таблице, укажите имя таблицы и с помощью выражения SET укажите поле или поля, которые необходимо изменить.

UPDATE tblCustomers SET Phone = 'None' 

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

UPDATE tblCustomers SET Email = 'None' WHERE [Last Name] = 'Smith' 

Удаление записей из таблицы

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

DELETE FROM table list 

Инструкция DELETE не удаляет структуру таблицы, она удаляет только данные, хранящиеся в структуре таблицы. Чтобы удалить все записи из таблицы, используйте инструкцию DELETE и укажите одну или несколько таблиц, из которых вы хотите удалить все записи.

DELETE FROM tblInvoices 

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

DELETE FROM tblInvoices WHERE InvoiceID = 3 

Если вы хотите удалить данные только из определенных полей таблицы, используйте инструкцию UPDATE и присвойте этим полям значение NULL, но только в том случае, если эти поля допускают значение NULL.

UPDATE tblCustomers SET Email = Null 

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Обратная связь

Были ли сведения на этой странице полезными?

ALTER TABLE — изменение таблицы в SQL

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

Эта инструкция — часть курса «MySQL для новичков».

Смотреть весь курс

Введение

ALTER TABLE — один из самых незаменимых инструментов в работе с базами данных SQL. В этой статье мы рассмотрим SQL оператор ALTER TABLE и его применение. Узнаем, как добавить или удалить поля с помощью этого инструмента, и рассмотрим различные примеры его использования. В данной статье мы не будем рассматривать MS SQL и остановимся на синтаксисе наиболее популярной версии — MySQL.

Синтаксис оператора ALTER TABLE в SQL

Синтаксис оператора ALTER TABLE выглядит следующим образом:

ALTER TABLE название_таблицы [WITH CHECK | WITH NOCHECK]

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

use slcbookshelf; 

Добавление столбца в таблицу (ADD COLUMN)

Сейчас наша таблица выглядит следующим образом:

mysql> DESC books; +---------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+-------+ | book_id | int | NO | | NULL | | | book_name | varchar(255) | NO | | NULL | | | book_category | varchar(255) | YES | | NULL | | +---------------+--------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) 

Давайте добавим в нашу таблицу новый столбец, в котором будет отображаться автор каждой книги:

ALTER TABLE books ADD author NVARCHAR(50) NOT NULL; 

Данным запросом мы создали в нашей таблице новый столбец authors с типом NVARCHAR и длиной в 50 символов, который не может принимать пустое значение. Если мы не знаем автора произведения, тогда наша команда будет иметь такой вид:

ALTER TABLE books ADD author NVARCHAR(50) NOT NULL DEFAULT 'Неизвестен'; 

Теперь для существующих данных, для которых не заполнен столбец author, значение по умолчанию будет «Неизвестен».

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

Переименование столбца (RENAME)

С помощью ALTER TABLE можно переименовать существующий столбец. Для этого выполните команду:

ALTER TABLE books RENAME COLUMN author TO authors; 

Переименование таблицы (RENAME)

При помощи ALTER TABLE можно переименовать таблицу. Выполняем запрос:

ALTER TABLE books RENAME TO books_selectel; 

Удаление столбца (DROP)

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

ALTER TABLE books DROP COLUMN authors; 

Изменение столбца (ALTER COLUMN)

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

ALTER TABLE books ALTER COLUMN book_category VARCHAR(200); 

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

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

ALTER TABLE books MODIFY book_category VARCHAR(200), MODIFY book_name VARCHAR(200), . ; 

Таким запросом мы изменили сразу два столбца: book_category и book_name.

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

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

ALTER TABLE books ALTER COLUMN book_category NVARCHAR(200); 

Выполнив эту команду, мы изменили тип book_category на NVARCHAR(200).

Добавление первичного и внешнего ключей при помощи ALTER TABLE

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

ALTER TABLE books ADD PRIMARY KEY (book_id); 

Аналогично при помощи ALTER TABLE можно добавить внешний ключ таблицы. Чтобы создать внешний ключ для таблицы MySQL выполните команду:

ALTER TABLE books ADD FOREIGN KEY (author_id) REFERENCES authors(author_id); 

В результате выполнения этой команды поле author_id в таблице books будет внешним ключом для аналогичного поля в таблице authors.

Работа с ограничениями

Ограничения — специальные правила, которые применяются к таблице, чтобы ограничить типы данных в таблице. Ограничения очень важны, так как их правильное применение помогает обеспечить целостность данных в таблицах и наладить стабильную работу базы. Давайте рассмотрим одно из таких ограничений — ограничение CHECK. Применяя ограничения CHECK к столбцу таблицы, мы создаем правило, по которому при добавлении данных СУБД будет автоматически проверять их на соответствии заданным правилам.

Создание ограничения

Например, если нам необходимо, чтобы все клиенты в базе данных Customers имели возраст больше 21 года, мы можем установить следующее ограничение:

ALTER TABLE Customers ADD CHECK (Age > 21); 

При применении такого ограничения стоит учитывать, что если в столбце уже существуют данные, не соответствующие ограничению, то команда будет выполнена с ошибкой. Чтобы избежать подобного поведения, вы можете добавить ограничение со значением WITH NOCHECK. Таким образом, текущие значения столбца не вызовут ошибок при выполнении запроса при несоответствии ограничению:

ALTER TABLE Customers WITH NOCHECK ADD CHECK (Age > 21); 

Добавление ограничений с именами

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

ALTER TABLE Customers ADD CONSTRAINT Check_Age_Greater_Than_Twenty_One CHECK (Age > 21); 

Удаление ограничений

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

ALTER TABLE Customers DROP Check_Age_Greater_Than_Twenty_One; 

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

Заключение

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

Сброс пароля root в MySQL

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *