Sql insert statement
Содержание:
- Table of contents
- Добавление данных. Команда Insert
- Get Inserted ID
- Example — Using INSERT Statement to Insert One Record
- Использование SELECT в инструкции INSERT INTO
- Часто задаваемые вопросы
- INSERT INTO SELECT
- SQL Справочник
- Summary
- How to use an Insert into statement to add data with default values
- SQL Учебник
- How to perform a simple Insert using SSMS
- Frequently Asked Questions
- Rules:
- Example — Using INSERT Statement to Insert Multiple Records
- Demo Database
- Insert Data Only in Specified Columns
- Insert Into Table
- Активация переключения режимов вставки и замены кнопкой Insert в Ворде
- INSERT…EXECUTE statement
- SQL INSERT INTO SELECT Examples
Table of contents
Learn SQL: CREATE DATABASE & CREATE TABLE Operations | |
Learn SQL: INSERT INTO TABLE | |
Learn SQL: Primary Key | |
Learn SQL: Foreign Key | |
Learn SQL: SELECT statement | |
Learn SQL: INNER JOIN vs LEFT JOIN | |
Learn SQL: SQL Scripts | |
Learn SQL: Types of relations | |
Learn SQL: Join multiple tables | |
Learn SQL: Aggregate Functions | |
Learn SQL: How to Write a Complex SELECT Query | |
Learn SQL: The INFORMATION_SCHEMA Database | |
Learn SQL: SQL Data Types | |
Learn SQL: Set Theory | |
Learn SQL: User-Defined Functions | |
Learn SQL: User-Defined Stored Procedures | |
Learn SQL: SQL Views | |
Learn SQL: SQL Triggers | |
Learn SQL: Practice SQL Queries | |
Learn SQL: SQL Query examples | |
Learn SQL: Create a report manually using SQL queries | |
Learn SQL: SQL Server date and time functions | |
Learn SQL: Create SQL Server reports using date and time functions | |
Learn SQL: SQL Server Pivot Tables | |
Learn SQL: SQL Server export to Excel | |
Learn SQL: Intro to SQL Server loops | |
Learn SQL: SQL Server Cursors | |
Learn SQL: SQL Best Practices for Deleting and Updating data | |
Learn SQL: Naming Conventions | |
Learn SQL: SQL-Related Jobs | |
Learn SQL: Non-Equi Joins in SQL Server | |
Learn SQL: SQL Injection | |
Learn SQL: Dynamic SQL | |
Learn SQL: How to prevent SQL Injection attacks |
Добавление данных. Команда Insert
Последнее обновление: 13.07.2017
Для добавления данных применяется команда INSERT, которая имеет следующий формальный синтаксис:
INSERT имя_таблицы 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»:
Стоит учитывать, что значения для столбцов в скобках после ключевого слова 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.
НазадВперед
Get Inserted ID
For tables with an auto increment id field, you can get the id of the row you
just inserted by asking the result object.
Note: To be able to get the inserted id, only one row can be inserted.
Example
Insert a record in the «customers» table, and return the ID:
var mysql = require(‘mysql’);var con = mysql.createConnection({
host: «localhost», user: «yourusername», password: «yourpassword»,
database: «mydb»
});con.connect(function(err) { if (err) throw err; var sql = «INSERT INTO customers (name, address)
VALUES (‘Michelle’, ‘Blue Village 1’)»;
con.query(sql, function (err, result) { if (err) throw err; console.log(«1 record inserted,
ID: » + result.insertId); });});
Save the code above in a file called «demo_db_insert_id.js», and run the file:
Run «demo_db_insert_id.js»
C:\Users\Your Name>node demo_db_insert_id.js
Which will give you something like this in return:
1 record inserted, ID: 15
❮ Previous
Next ❯
Example — Using INSERT Statement to Insert One Record
The simplest way use the INSERT statement is to insert one record into a table using the VALUES keyword. Let’s look at an example of how to do this in SQL.
In this example, we have a table called categories with the following data:
category_id | category_name |
---|---|
25 | Deli |
50 | Produce |
75 | Bakery |
100 | General Merchandise |
125 | Technology |
Let’s insert a new category record. Enter the following SQL statement:
Try It
INSERT INTO categories (category_id, category_name) VALUES (150, 'Miscellaneous');
There will be 1 record inserted. Select the data from the categories table again:
SELECT * FROM categories;
These are the results that you should see:
category_id | category_name |
---|---|
25 | Deli |
50 | Produce |
75 | Bakery |
100 | General Merchandise |
125 | Technology |
150 | Miscellaneous |
This example would insert one record into the categories table. This new record would have a category_id of 150 and a category_name of ‘Miscellaneous’.
In this example, because you are providing values for all of the columns in the categories table, you could omit the column names and instead write the INSERT statement like this:
Try It
INSERT INTO categories VALUES (150, 'Miscellaneous');
Использование SELECT в инструкции INSERT INTO
Можно использовать инструкцию MySQL INSERT SELECT для копирования строк из одной таблицы и их вставки в другую.
Использование этого оператора аналогично использованию INSERT INTO. Разница в том, что оператор SELECT применяется для выборки данных из другой таблицы. Ниже приведены различные способы использования INSERT INTO SELECT:
Вставка всех столбцов таблицы: можно скопировать все данные таблицы и вставить их в другую таблицу.
Синтаксис:
INSERT INTO первая_таблица SELECT * FROM вторая_таблица; первая_таблица: имя первой таблицы. вторая_таблица: имя второй таблицы.
Мы использовали инструкцию SELECT для копирования данных из одной таблицы и инструкцию INSERT INTO для их вставки в другую.
Вставка отдельных столбцов таблицы. Можно скопировать только те столбцы таблицы, которые необходимо вставить в другую таблицу.
Синтаксис:
INSERT INTO первая_таблица(имена_столбцов1) SELECT имена_столбцов2 FROM вторая_таблица; первая_таблица: имя первой таблицы. вторая_таблица: имя второй таблицы. имена_столбцов1: имена столбцов, разделенные запятой(,) для таблицы 1. имена_столбцов2: имена столбцов, разделенные запятой(,) для таблицы 2.
Мы использовали инструкцию SELECT для копирования данных только из выбранных столбцов второй таблицы и инструкцию INSERT INTO MySQL SELECT для их вставки в первую таблицу.
Копирование определенных строк из таблицы. Можно скопировать определенные строки из таблицы для последующей вставки в другую таблицу с помощью условия WHERE с оператором SELECT. В этом случае нужно использовать соответствующее условие в WHERE.
Синтаксис:
INSERT INTO таблица1 SELECT * FROM таблица2 WHERE условие; таблица1: имя первой таблицы. таблица2: имя второй таблицы. условие: условие для выбора строк.
Таблица 2: LateralStudent
ROLL_NO | NAME | ADDRESS | PHONE | Age |
7 | SOUVIK | DUMDUM | 9876543210 | 18 |
8 | NIRAJ | NOIDA | 9786543210 | 19 |
9 | SOMESH | ROHTAK | 9687543210 | 20 |
Запросы:
Способ 1 (вставка всех строк и столбцов):
INSERT INTO Student SELECT * FROM LateralStudent;
Результат:
Этот запрос вставит все данные таблицы LateralStudent в таблицу Student. После применения INSERT INTO SQL SELECT таблица Student будет выглядеть следующим образом:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
1 | Ram | Delhi | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SURESH | Delhi | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
7 | SOUVIK | DUMDUM | 9876543210 | 18 |
8 | NIRAJ | NOIDA | 9786543210 | 19 |
9 | SOMESH | ROHTAK | 9687543210 | 20 |
Способ 2 (вставка отдельных столбцов):
INSERT INTO Student(ROLL_NO,NAME,Age) SELECT ROLL_NO, NAME, Age FROM LateralStudent;
Результат:
Этот запрос вставит данные из столбцов ROLL_NO, NAME и Age таблицы LateralStudent в таблицу Student. Для остальных столбцов таблицы Student будет задано значение null. После применения SQL INSERT SELECT таблица будет выглядеть следующим образом:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
1 | Ram | Delhi | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SURESH | Delhi | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
7 | SOUVIK | Null | null | 18 |
8 | NIRAJ | Null | null | 19 |
9 | SOMESH | Null | null | 20 |
Выбор определенных строк для вставки:
INSERT INTO Student SELECT * FROM LateralStudent WHERE Age = 18;
Результат:
Этот запрос выберет только первую строку из таблицы LateralStudent для вставки в таблицу Student. После применения INSERT SELECT таблица будет выглядеть следующим образом:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
1 | Ram | Delhi | 9455123451 | 18 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
4 | SURESH | Delhi | 9156768971 | 18 |
3 | SUJIT | ROHTAK | 9156253131 | 20 |
2 | RAMESH | GURGAON | 9562431543 | 18 |
7 | SOUVIK | DUMDUM | 9876543210 | 18 |
Пожалуйста, оставляйте ваши мнения по текущей теме статьи. За комментарии, дизлайки, подписки, лайки, отклики огромное вам спасибо!
Часто задаваемые вопросы
Вопрос: Я создал базу данных клиентов. Я знаю, что вы используете Oracle оператор INSERT для вставки информации в базу данных, но как я могу убедиться, что не ввел ту же информацию о клиенте снова?
Ответ: Вы можете убедиться, что не вставить повторяющуюся информацию, используя условие EXISTS.
Например, если у вас была таблица с названием clients с первичным ключом client_id, вы можете использовать следующий INSERT:
Oracle PL/SQL
INSERT INTO clients
(client_id, client_name, client_type)
SELECT supplier_id, supplier_name, ‘advertising’
FROM suppliers
WHERE NOT EXISTS (SELECT *
FROM clients
WHERE clients.client_id = suppliers.supplier_id);
1 |
INSERTINTOclients SELECTsupplier_id,supplier_name,’advertising’ FROMsuppliers WHERENOTEXISTS(SELECT* FROMclients WHEREclients.client_id=suppliers.supplier_id); |
Это Oracle предложение INSERT вставляет несколько записей с подзапросом.
Если вы хотите вставить одну запись, вы можете использовать следующее Oracle предложение INSERT:
Oracle PL/SQL
INSERT INTO clients
(client_id, client_name, client_type)
SELECT 10345,
‘IBM’,
‘advertising’
FROM dual
WHERE NOT EXISTS (SELECT *
FROM clients
WHERE clients.client_id = 10345);
1 |
INSERTINTOclients SELECT10345, ‘IBM’, ‘advertising’ FROMdual WHERENOTEXISTS(SELECT* FROMclients WHEREclients.client_id=10345); |
Использование таблицы dual позволяет ввести значения в операторе select, даже если значения не хранятся в настоящее время в таблице.
Вопрос: Как я могу вставить несколько строк явных данных в одном предложении INSERT в Oracle?
Ответ: Ниже приведен пример того, как можно вставить 3 строки в таблицу suppliers в Oracle, используя оператор INSERT:
Oracle PL/SQL
INSERT ALL
INTO suppliers (supplier_id, supplier_name) VALUES (1000, ‘IBM’)
INTO suppliers (supplier_id, supplier_name) VALUES (2000, ‘Microsoft’)
INTO suppliers (supplier_id, supplier_name) VALUES (3000, ‘Google’)
SELECT * FROM dual;
1 |
INSERTALL INTOsuppliers(supplier_id,supplier_name)VALUES(1000,’IBM’) INTOsuppliers(supplier_id,supplier_name)VALUES(2000,’Microsoft’) INTOsuppliers(supplier_id,supplier_name)VALUES(3000,’Google’) SELECT*FROMdual; |
INSERT INTO SELECT
The command copies data
from one table and inserts it into another table.
The following SQL copies «Suppliers» into «Customers» (the columns
that are not filled with data, will contain NULL):
Example
INSERT INTO Customers (CustomerName,
City, Country)
SELECT SupplierName, City, Country FROM Suppliers;
The following SQL copies «Suppliers» into «Customers» (fill all
columns):
Example
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode,
Country)SELECT SupplierName, ContactName, Address, City, PostalCode,
Country FROM Suppliers;
The following SQL copies only the German suppliers into «Customers»:
Example
INSERT INTO Customers (CustomerName,
City, Country)
SELECT SupplierName, City, Country FROM SuppliersWHERE Country=’Germany’;
SQL Справочник
SQL Ключевые слова
ADD
ADD CONSTRAINT
ALTER
ALTER COLUMN
ALTER TABLE
ALL
AND
ANY
AS
ASC
BACKUP DATABASE
BETWEEN
CASE
CHECK
COLUMN
CONSTRAINT
CREATE
CREATE DATABASE
CREATE INDEX
CREATE OR REPLACE VIEW
CREATE TABLE
CREATE PROCEDURE
CREATE UNIQUE INDEX
CREATE VIEW
DATABASE
DEFAULT
DELETE
DESC
DISTINCT
DROP
DROP COLUMN
DROP CONSTRAINT
DROP DATABASE
DROP DEFAULT
DROP INDEX
DROP TABLE
DROP VIEW
EXEC
EXISTS
FOREIGN KEY
FROM
FULL OUTER JOIN
GROUP BY
HAVING
IN
INDEX
INNER JOIN
INSERT INTO
INSERT INTO SELECT
IS NULL
IS NOT NULL
JOIN
LEFT JOIN
LIKE
LIMIT
NOT
NOT NULL
OR
ORDER BY
OUTER JOIN
PRIMARY KEY
PROCEDURE
RIGHT JOIN
ROWNUM
SELECT
SELECT DISTINCT
SELECT INTO
SELECT TOP
SET
TABLE
TOP
TRUNCATE TABLE
UNION
UNION ALL
UNIQUE
UPDATE
VALUES
VIEW
WHERE
MySQL Функции
Функции строк
ASCII
CHAR_LENGTH
CHARACTER_LENGTH
CONCAT
CONCAT_WS
FIELD
FIND_IN_SET
FORMAT
INSERT
INSTR
LCASE
LEFT
LENGTH
LOCATE
LOWER
LPAD
LTRIM
MID
POSITION
REPEAT
REPLACE
REVERSE
RIGHT
RPAD
RTRIM
SPACE
STRCMP
SUBSTR
SUBSTRING
SUBSTRING_INDEX
TRIM
UCASE
UPPER
Функции чисел
ABS
ACOS
ASIN
ATAN
ATAN2
AVG
CEIL
CEILING
COS
COT
COUNT
DEGREES
DIV
EXP
FLOOR
GREATEST
LEAST
LN
LOG
LOG10
LOG2
MAX
MIN
MOD
PI
POW
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SUM
TAN
TRUNCATE
Функции дат
ADDDATE
ADDTIME
CURDATE
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURTIME
DATE
DATEDIFF
DATE_ADD
DATE_FORMAT
DATE_SUB
DAY
DAYNAME
DAYOFMONTH
DAYOFWEEK
DAYOFYEAR
EXTRACT
FROM_DAYS
HOUR
LAST_DAY
LOCALTIME
LOCALTIMESTAMP
MAKEDATE
MAKETIME
MICROSECOND
MINUTE
MONTH
MONTHNAME
NOW
PERIOD_ADD
PERIOD_DIFF
QUARTER
SECOND
SEC_TO_TIME
STR_TO_DATE
SUBDATE
SUBTIME
SYSDATE
TIME
TIME_FORMAT
TIME_TO_SEC
TIMEDIFF
TIMESTAMP
TO_DAYS
WEEK
WEEKDAY
WEEKOFYEAR
YEAR
YEARWEEK
Функции расширений
BIN
BINARY
CASE
CAST
COALESCE
CONNECTION_ID
CONV
CONVERT
CURRENT_USER
DATABASE
IF
IFNULL
ISNULL
LAST_INSERT_ID
NULLIF
SESSION_USER
SYSTEM_USER
USER
VERSION
SQL Server функции
Функции строк
ASCII
CHAR
CHARINDEX
CONCAT
Concat with +
CONCAT_WS
DATALENGTH
DIFFERENCE
FORMAT
LEFT
LEN
LOWER
LTRIM
NCHAR
PATINDEX
QUOTENAME
REPLACE
REPLICATE
REVERSE
RIGHT
RTRIM
SOUNDEX
SPACE
STR
STUFF
SUBSTRING
TRANSLATE
TRIM
UNICODE
UPPER
Функции чисел
ABS
ACOS
ASIN
ATAN
ATN2
AVG
CEILING
COUNT
COS
COT
DEGREES
EXP
FLOOR
LOG
LOG10
MAX
MIN
PI
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SQUARE
SUM
TAN
Функции дат
CURRENT_TIMESTAMP
DATEADD
DATEDIFF
DATEFROMPARTS
DATENAME
DATEPART
DAY
GETDATE
GETUTCDATE
ISDATE
MONTH
SYSDATETIME
YEAR
Функции расширений
CAST
COALESCE
CONVERT
CURRENT_USER
IIF
ISNULL
ISNUMERIC
NULLIF
SESSION_USER
SESSIONPROPERTY
SYSTEM_USER
USER_NAME
MS Access функции
Функции строк
Asc
Chr
Concat with &
CurDir
Format
InStr
InstrRev
LCase
Left
Len
LTrim
Mid
Replace
Right
RTrim
Space
Split
Str
StrComp
StrConv
StrReverse
Trim
UCase
Функции чисел
Abs
Atn
Avg
Cos
Count
Exp
Fix
Format
Int
Max
Min
Randomize
Rnd
Round
Sgn
Sqr
Sum
Val
Функции дат
Date
DateAdd
DateDiff
DatePart
DateSerial
DateValue
Day
Format
Hour
Minute
Month
MonthName
Now
Second
Time
TimeSerial
TimeValue
Weekday
WeekdayName
Year
Другие функции
CurrentUser
Environ
IsDate
IsNull
IsNumeric
SQL ОператорыSQL Типы данныхSQL Краткий справочник
Summary
There are a variety of ways of managing data to insert into SQL Server. How we generate and insert data into tables can have a profound impact on performance and maintainability! This topic is often overlooked as a beginner’s consideration, but mistakes in how we grow objects can create massive headaches for future developers and administrators.
In this article we will explore the different ways we can create and insert data into both permanent and temporary objects. Performance, syntax, documentation, and maintainability will be evaluated for each method. By delving deeper into this topic, we can improve database design, script quality, and build objects that are easier to upkeep and less likely to break due to maintenance or software releases.
How to use an Insert into statement to add data with default values
Let us create a simple table for the demonstration. A table is created with integer column defined with default value 0 and another DateTime column defined with the default date timestamp value.
1 |
CREATETABLEdemo (idINTDEFAULT, hirdateDATETIMEDEFAULTGETDATE() ); |
Now, let us insert default value into the table Demo using a SQL insert into statement
1 |
INSERTINTOdemo DEFAULTVALUES; SELECT* FROMdemo; |
Note: If all the columns of the table defined with default values then specify the DEFAULT VALUES clause to create a new row with all default values
Next, override the default values of the table with a SQL Insert into statement.
1 |
INSERTINTOdemo VALUES(1,’2018-09-28 08:49:00′) SELECT* FROMdemo; |
Let us consider another example where the table is a combination of both default and non-default columns.
1 |
DROPTABLEIFEXISTSDemo; CREATETABLEdemo (idINT PRIMARYKEYIDENTITY(1,1), NameVARCHAR(20), hirdateDATETIMEDEFAULTGETDATE() ); |
In order to insert default values to the columns, you just need exclude the default columns from the insert list with a SQL insert into statement.
1 |
INSERTINTOdemo (name) VALUES(‘Prashanth’),(‘Brian’),(‘Ahmad’); SELECT* FROMdemo; |
The following example you can see that the keyword DEFAULT is used to feed a value to the table in the values clause with a SQL Insert into statement
1 |
INSERTINTOdemo(name,hirdate) VALUES(‘Kiki’,DEFAULT),(‘Yanna’,DEFAULT),(‘Maya’,DEFAULT); |
SQL Учебник
SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии
How to perform a simple Insert using SSMS
Inserting data into a table can be accomplished either using SQL Server Management Studio (SSMS), a GUI, or through Data Manipulation Language in the SQL Editor. Using GUI in SSMS is a quick and easy way to enter records directly to the table.
Let’s go ahead and browse department table and right-click and go to edit top 200 rows.
This will bring up an editor window where we can interact directly with the data. To type in the new values, come down to the bottom and start typing the values.
It is very useful in some case to familiarize yourself with what data that you’re about to enter into the table.
1 |
SELECT* FROMdepartment; |
Frequently Asked Questions
Question: I am setting up a database with clients. I know that you use the SQL INSERT statement to insert information in the database, but how do I make sure that I do not enter the same client information again?
Answer: You can make sure that you do not insert duplicate information by using the SQL EXISTS condition.
For example, if you had a table named clients with a primary key of client_id, you could use the following SQL INSERT statement:
INSERT INTO clients (client_id, client_name, client_type) SELECT supplier_id AS client_id, supplier_name AS client_name, 'advertising' AS client_type FROM suppliers WHERE NOT EXISTS (SELECT * FROM clients WHERE clients.client_id = suppliers.supplier_id);
This SQL INSERT statement inserts multiple records with a subselect.
If you wanted to insert a single record, you could use the following SQL INSERT statement:
INSERT INTO clients (client_id, client_name, client_type) SELECT 10345, 'IBM', 'advertising' FROM dual WHERE NOT EXISTS (SELECT * FROM clients WHERE clients.client_id = 10345);
Rules:
- Typically we don’t always provide data for every single column. In some cases, the columns can be left blank and in some other provide their own default values.
- You also have situations where some columns are automatically generating keys. In such cases, you certainly don’t want to try and insert your own values in those situations.
- The columns and values must match order, data type and number
- If the column is of strings or date time or characters, they need to be enclosed in the in the single quotes. If they’re numeric, you don’t need the quotes.
- If you do not list your target columns in the insert statement then you must insert values into all of the columns in the table, also, be sure to maintain the order of the values
Example — Using INSERT Statement to Insert Multiple Records
By placing a SELECT statement within the INSERT statement, you can perform multiples inserts quickly. Let’s look at an example of how to do this.
In this example, we have a table called employees with the following data:
employee_number | last_name | first_name | salary | dept_id |
---|---|---|---|---|
1001 | Smith | John | 62000 | 500 |
1002 | Anderson | Jane | 57500 | 500 |
1003 | Everest | Brad | 71000 | 501 |
1004 | Horvath | Jack | 42000 | 501 |
And a table called customers with the following data:
customer_id | last_name | first_name | favorite_website |
---|---|---|---|
4000 | Jackson | Joe | techonthenet.com |
5000 | Smith | Jane | digminecraft.com |
6000 | Ferguson | Samantha | bigactivities.com |
7000 | Reynolds | Allen | checkyourmath.com |
8000 | Anderson | Paige | NULL |
9000 | Johnson | Derek | techonthenet.com |
Now, let’s insert some of the employee information into the customers table:
Try It
INSERT INTO customers (customer_id, last_name, first_name) SELECT employee_number AS customer_id, last_name, first_name FROM employees WHERE employee_number TIP: With this type of INSERT, some databases require you to alias the column names in the SELECT to match the column names of the table you are inserting into. As you can see in the example above, we have aliased the first column in the SELECT statement to customer_id.
There will be 2 records inserted. Select the data from the customers table again:
SELECT * FROM customers;
These are the results that you should see:
customer_id | last_name | first_name | favorite_website |
---|---|---|---|
4000 | Jackson | Joe | techonthenet.com |
5000 | Smith | Jane | digminecraft.com |
6000 | Ferguson | Samantha | bigactivities.com |
7000 | Reynolds | Allen | checkyourmath.com |
8000 | Anderson | Paige | NULL |
9000 | Johnson | Derek | techonthenet.com |
1001 | Smith | John | NULL |
1002 | Anderson | Jane | NULL |
In this example, the last 2 records in the customers table have been inserted using data from the employees table.
With this type of insert, you may wish to check for the number of rows being inserted. You can determine the number of rows that will be inserted by running a COUNT(*) on the SELECT statement before performing the insert. For example:
Try It
SELECT COUNT(*) FROM employees WHERE employee_number
This will return number of records that will be inserted when you execute the INSERT statement.
Demo Database
In this tutorial we will use the well-known Northwind sample database.
Below is a selection from the «Customers» table:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
And a selection from the «Suppliers» table:
SupplierID | SupplierName | ContactName | Address | City | Postal Code | Country |
---|---|---|---|---|---|---|
1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | Londona | EC1 4SD | UK |
2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA |
3 | Grandma Kelly’s Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA |
Insert Data Only in Specified Columns
It is also possible to only insert data in specific columns.
The following SQL statement will insert a new record, but only insert data in the «CustomerName»,
«City», and «Country» columns (CustomerID will
be updated automatically):
Example
INSERT INTO Customers (CustomerName, City, Country)
VALUES (‘Cardinal’, ‘Stavanger’, ‘Norway’);
The selection from the «Customers» table will now look like this:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
89 | White Clover Markets | Karl Jablonski | 305 — 14th Ave. S. Suite 3B | Seattle | 98128 | USA |
90 | Wilman Kala | Matti Karttunen | Keskuskatu 45 | Helsinki | 21240 | Finland |
91 | Wolski | Zbyszek | ul. Filtrowa 68 | Walla | 01-012 | Poland |
92 | Cardinal | null | null | Stavanger | null | Norway |
❮ Previous
Next ❯
Insert Into Table
To fill a table in MySQL, use the «INSERT INTO» statement.
Example
Insert a record in the «customers» table:
var mysql = require(‘mysql’);var con = mysql.createConnection({
host: «localhost», user: «yourusername», password: «yourpassword»,
database: «mydb»
});con.connect(function(err) { if (err) throw err; console.log(«Connected!»); var sql = «INSERT INTO customers (name, address)
VALUES (‘Company Inc’, ‘Highway 37’)»;
con.query(sql, function (err, result) { if (err) throw err; console.log(«1 record inserted»); });});
Save the code above in a file called «demo_db_insert.js», and run the file:
Run «demo_db_insert.js»
C:\Users\Your Name>node demo_db_insert.js
Which will give you this result:
Connected!1 record inserted
Активация переключения режимов вставки и замены кнопкой Insert в Ворде
Для начала заходим в настройки Word. Делается это нажатием на кнопку в верхнем левом углу (кнопка «Файл») и в появившемся меню выбором пункта «параметры (параметры word)».
Вход в параметры Word 2007
Вход в параметры Word 2013
Вход в параметры Word 2013
В открывшемся окне настроек нужно перейти на вкладку «Дополнительно».
Включение смены режимов замены и вставки кнопкой insert в ворде
В правой части окна появятся различные пункты настроек. Среди них нужно найти «Использовать клавишу INS для переключения режимов вставки и замены». Включаем его установкой галочки напротив.
Остается лишь нажать «ок» в низу окна для применения настроек.
Теперь клавишей Insert на клавиатуре вы можете включать и отключать режим замены в Microsoft Word.
На большинстве современных периферийных систем ввода есть клавиша Insert. Она может использоваться как единично, так и в сочетании с другими кнопками на клавиатуре. Также ее назначение может изменяться в зависимости от того, какое программное обеспечение запущено на персональном компьютере в текущий момент. Именно особенностям использования этого элемента устройства и будет посвящен небольшой предлагаемый вашему вниманию обзор.
INSERT…EXECUTE statement
The second INSERT… EXECUTE statement, the stored procedure is executed and that contains the SELECT statement. The following example, the tb_spaceused table is created.
1 |
CREATETABLEtb_spaceused (database_nameNVARCHAR(128), database_sizeVARCHAR(18), unallocatedspaceVARCHAR(18), reservedVARCHAR(18), dataVARCHAR(18), index_sizeVARCHAR(18), unusedVARCHAR(18) ); |
The INSERT INTO SQL statement uses the EXECUTE clause to invoke a stored procedure that contains the result set of the SELECT statement.
1 |
INSERTINTOtb_spaceused EXECsp_msforeachdb @command1=»use?execsp_spaceused@oneresultset=1″; SELECT* FROMtb_spaceused; |
SQL INSERT INTO SELECT Examples
The following SQL statement copies «Suppliers» into «Customers» (the columns
that are not filled with data, will contain NULL):
Example
INSERT INTO Customers (CustomerName,
City, Country)
SELECT SupplierName, City, Country FROM Suppliers;
The following SQL statement copies «Suppliers» into «Customers» (fill all
columns):
Example
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode,
Country)SELECT SupplierName, ContactName, Address, City, PostalCode,
Country FROM Suppliers;
The following SQL statement copies only the German suppliers into «Customers»:
Example
INSERT INTO Customers (CustomerName,
City, Country)
SELECT SupplierName, City, Country FROM SuppliersWHERE Country=’Germany’;
❮ Previous
Next ❯