6.1. Ðобавление даннÑÑ #
СÑÐ°Ð·Ñ Ð¿Ð¾Ñле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑаблиÑÑ Ð¾Ð½Ð° не ÑодеÑÐ¶Ð¸Ñ Ð½Ð¸ÐºÐ°ÐºÐ¸Ñ Ð´Ð°Ð½Ð½ÑÑ . ÐоÑÑомÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð° бÑла полезна, в Ð½ÐµÑ Ð¿Ñежде вÑего нÑжно добавиÑÑ Ð´Ð°Ð½Ð½Ñе. Ðо ÑÑÑи даннÑе добавлÑÑÑÑÑ Ð² ÑаблиÑÑ Ð¿Ð¾ одной ÑÑÑоке. Ð Ñ Ð¾ÑÑ Ð²Ñ ÐºÐ¾Ð½ÐµÑно можеÑе добавиÑÑ Ð² ÑаблиÑÑ Ð½ÐµÑколÑко ÑÑÑок, добавиÑÑ Ð² Ð½ÐµÑ Ð¼ÐµÐ½ÑÑе, Ñем ÑÑÑокÑ, невозможно. Ðаже еÑли Ð²Ñ ÑказÑваеÑе знаÑÐµÐ½Ð¸Ñ ÑолÑко некоÑоÑÑÑ ÑÑолбÑов, ÑоздаÑÑÑÑ Ð¿Ð¾Ð»Ð½Ð°Ñ ÑÑÑока.
ЧÑÐ¾Ð±Ñ ÑоздаÑÑ ÑÑÑокÑ, Ð²Ñ Ð±ÑдеÑе иÑполÑзоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ INSERT. Ð ÑÑой команде Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑказаÑÑ Ð¸Ð¼Ñ ÑаблиÑÑ Ð¸ знаÑÐµÐ½Ð¸Ñ ÑÑолбÑов. ÐапÑимеÑ, ÑаÑÑмоÑÑим ÑаблиÑÑ ÑоваÑов из ÐлавÑ 5:
CREATE TABLE products (
product_no integer,
name text,
price numeric
);ÐобавиÑÑ Ð² Ð½ÐµÑ ÑÑÑÐ¾ÐºÑ Ð¼Ð¾Ð¶Ð½Ð¾ бÑло Ð±Ñ Ñак:
INSERT INTO products VALUES (1, 'Cheese', 9.99);
ÐнаÑÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¿ÐµÑеÑиÑлÑÑÑÑÑ Ð² поÑÑдке ÑÑолбÑов в ÑаблиÑе и ÑазделÑÑÑÑÑ Ð·Ð°Ð¿ÑÑÑми. ÐбÑÑно в каÑеÑÑве знаÑений ÑказÑваÑÑÑÑ ÐºÐ¾Ð½ÑÑанÑÑ, но ÑÑо могÑÑ Ð±ÑÑÑ Ð¸ ÑкалÑÑнÑе вÑÑажениÑ.
ÐÐ¾ÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ Ð²ÑÑе запиÑÑ Ð¸Ð¼ÐµÐµÑ Ð¾Ð´Ð¸Ð½ недоÑÑаÑок â вам Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ знаÑÑ Ð¿Ð¾ÑÑдок ÑÑолбÑов в ÑаблиÑе. ЧÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ ÑÑого, можно пеÑеÑиÑлиÑÑ ÑÑолбÑÑ Ñвно. ÐапÑимеÑ, ÑледÑÑÑие две ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð´Ð°Ð´ÑÑ ÑÐ¾Ñ Ð¶Ðµ ÑезÑлÑÑаÑ, ÑÑо и Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ Ð²ÑÑе:
INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', 9.99);
INSERT INTO products (name, price, product_no) VALUES ('Cheese', 9.99, 1);Ðногие ÑÑиÑаÑÑ, ÑÑо лÑÑÑе вÑегда Ñвно ÑказÑваÑÑ Ð¸Ð¼ÐµÐ½Ð° ÑÑолбÑов.
ÐÑли знаÑÐµÐ½Ð¸Ñ Ð¾Ð¿ÑеделÑÑÑÑÑ Ð½Ðµ Ð´Ð»Ñ Ð²ÑÐµÑ ÑÑолбÑов, лиÑние ÑÑолбÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ опÑÑÑиÑÑ. Ð Ñаком ÑлÑÑае ÑÑи ÑÑолбÑÑ Ð¿Ð¾Ð»ÑÑÐ°Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ. ÐапÑимеÑ:
INSERT INTO products (product_no, name) VALUES (1, 'Cheese'); INSERT INTO products VALUES (1, 'Cheese');
ÐÑоÑÐ°Ñ ÑоÑма ÑвлÑеÑÑÑ ÑаÑÑиÑением Postgres Pro. Ðна заполнÑÐµÑ ÑÑолбÑÑ Ñлева по ÑиÑÐ»Ñ Ð¿ÐµÑеданнÑÑ Ð·Ð½Ð°Ñений, а вÑе оÑÑалÑнÑе ÑÑолбÑÑ Ð¿ÑинимаÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ.
ÐÐ»Ñ ÑÑноÑÑи можно Ñакже Ñвно ÑказаÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¾ÑделÑнÑÑ ÑÑолбÑов или вÑей ÑÑÑоки:
INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', DEFAULT); INSERT INTO products DEFAULT VALUES;
Ðдна команда Ð¼Ð¾Ð¶ÐµÑ Ð²ÑÑавиÑÑ ÑÑÐ°Ð·Ñ Ð½ÐµÑколÑко ÑÑÑок:
INSERT INTO products (product_no, name, price) VALUES
(1, 'Cheese', 9.99),
(2, 'Bread', 1.99),
(3, 'Milk', 2.99);Также возможно вÑÑавиÑÑ ÑезÑлÑÑÐ°Ñ Ð·Ð°Ð¿ÑоÑа (коÑоÑÑй Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ ÑодеÑжаÑÑ ÑÑÑок либо ÑодеÑжаÑÑ Ð¾Ð´Ð½Ñ Ð¸Ð»Ð¸ неÑколÑко):
INSERT INTO products (product_no, name, price)
SELECT product_no, name, price FROM new_products
WHERE release_date = 'today';ÐÑо позволÑÐµÑ Ð¸ÑполÑзоваÑÑ Ð²Ñе возможноÑÑи Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð° запÑоÑов SQL (Ñм. ÐлавÑ 7) Ð´Ð»Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ Ð²ÑÑавлÑемÑÑ ÑÑÑок.
ÐодÑказка
Ðогда нÑжно добавиÑÑ ÑÑÐ°Ð·Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑво ÑÑÑок, возможно бÑÐ´ÐµÑ Ð»ÑÑÑе иÑполÑзоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ COPY. Ðна не ÑÐ°ÐºÐ°Ñ Ð³Ð¸Ð±ÐºÐ°Ñ, как INSERT, но гоÑаздо ÑÑÑекÑивнее. ÐополниÑелÑно об ÑÑкоÑении маÑÑовой загÑÑзки даннÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑзнаÑÑ Ð² Разделе 14.4.