русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Додавання інформації в базу даних


Дата добавления: 2015-07-09; просмотров: 506; Нарушение авторских прав


Всі записи в SQL уводяться з використанням команди модифікації INSERT. У найпростішій формі ця команда має наступний синтаксис:

INSERT INTO <table name>

VALUES (<value>, <value> . . .);

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

INSERT INTO TEACHERS

VALUE S (4006, 'Федченко', 'Світлана',

Геннадіївна', 01/09/1999);

Команда INSERT не робить ніякого висновку, але бажано, щоб СКБД давала деяке підтвердження того, що дані були успішно внесені. Крім того, варто пам'ятати, що ім'я таблиці, у яку виробляється вставка, повинне бути попередньо визначено, а кожне значення в списку вставляють данных, що, повинне збігатися з типом даних стовпця, у який воно уставляється. Значення в цьому списку вводяться в таблицю в тім порядку, у якому вони записані в команді, тому перше значення автоматично попадає в перший стовпець, друге - у другий стовпець і т.д.

Якщо потрібно ввести в таблицю NULL значення, то воно вводиться точно так само, як і звичайне. Наприклад, що випливає команда, що вставляє запис із невідомим значенням коду викладача, цілком припустима:

INSERT INTO TEACHERS

VALUES (NULL, 'Федченко', 'Світлана',

'Геннадіївна', 01/09/1999);

Тому що значення NULL - спеціальне службове слово, то містити його в одиночні лапки не потрібно.

Також допускається вказувати стовпці, куди необхідно здійснити вставку значення, що дозволяє робити це в будь-якому порядку. Наприклад, команда:

INSERT INTO TEACHERS (TDATE, TFAM, TIMA)

VALUES (01/09/1999, 'Федченко', 'Світлана');

дозволяє вставити значення в поля таблиці в порядку TDATE, TFAM, TIMA, причому стовпці TNUM і ТОТСН відсутні. Це означає, що для цих полів автоматично встановлюється значення за замовчуванням. Значення за замовчуванням може бути уведене заздалегідь або, у противному випадку, це буде NULL значення. Якщо обмеження забороняє використання значення NULL у даному полі, то обов'язково треба подбати про забезпечення стовпця змістовним значенням для будь-якої команди INSERT.



Можна використати команду INSERT для того, щоб одержувати або вибирати значення з однієї таблиці й поміщати їх в іншу разом із запитом. Для цього пропозиція VALUES заміняється на відповідний запит:

INSERT INTO EXCELLENT

SELECT *

FROM USP

WHERE OCENKA = 5;

У результаті буде сформована таблиця з даними, наведеними в табл. 2.5 (нагадаємо, що сама INSERT команда ніякого висновку не робить)

EXCELLENT
UNUM OCENKA UDATE SNUM PNUM
10/06/1999
12/06/1999

 

Отже, буде зробленеі наступне: всі значення, видані запитом (інформація про студентів, що має тільки відмінні оцінки), містяться в таблицю, названу EXCELLENT. Для того щоб не відбулося помилки, таблиця EXCELLENT повинна вже бути створена командою CREATE TABLE (про неї мова нижче) і мати п'ять стовпців, які збігаються з таблицею USP по типі даних.

Таким чином, буде отримана незалежна таблиця з деякими даними з таблиці успішності USP. При зміні значень у таблиці USP це в жодному разі не відіб'ється на таблиці EXCELLENT.

У принципі, є можливість указувати стовпці по імені, як це вже було продемонстровано вище, а значить - з додає информацию, що.

Наприклад, за допомогою нижчеподаної команди можна вставити інформацію про середній бал кожного студента:

INSERT INTO AVGRAITING (SNUM, AVGOCENKA)

SELECT SNUM, AVG (OCENKA)

FROM USP

GROUP BY SNUM;

Зверніть увагу на те, що зазначено імена стовпців таблиці AVGRAITING, а виходить, послідовність даних у вставляє списке, що (тобто порядок проходження полів у пропозиції SELECT) повинна із цим порядком збігатися.

В INSERT можна використати подзапросы усередині будь-якого запиту, що генерує значення для цієї команди аналогічно тому, як це вже робилося при розгляді відповідного матеріалу. Наприклад, для вставки у вже наявну таблицю STO прізвищ, імен та по батькові студентів, у яких є хоча б одна відмінна оцінка, можна скористатися наступною командою:

INSERT INTO STO (SFAM, SIMA, SOTCH)

SELECT SFAM, SIMA, SOTCH

FROM STUDENTS

WHERE SNUM = ANY

(SELECT SNUM

FROM USP

WHERE OCENKA = 5);

Обидва запити в цій команді функціонують так само, як якби вони не були частиною вираження INSERT. Подзапрос знаходить всі рядки для студентів, що мають відмінні оцінки, і формує набір значень SNUM. Зовнішній запит вибирає рядка з таблиці STUDENTS, де ці значення SNUM знайдені, a INSERT вставляє знайдені дані в таблицю STO.

У команді INSERT допускається використати співвіднесені подзапросы. Припустимо, що є таблиця MAXOCENKA, у якій зберігається інформація про студента, що має максимальну оцінку за певну дату (скажемо, для нарахування іменної стипендії). Тоді, для відстеження зміни даних у таблиці успішності й модифікації відповідної інформації про претендента на іменну стипендію, необхідно скористатися наступною командою зі співвіднесеним подзапросом:

INSERT INTO MAXOCENKA (SNUM, OCENKA)

SELECT SNUM, OCENKA

FROM USP FIRST

WHERE OCENKA =

(SELECT MAX (OCENKA)

FROM USP SECOND

WHERE FIRST.UDATE = SECOND.UDATE);

При цьому розглянута команда має подзапрос, що базується на тій же самій таблиці, що й зовнішній запит, але не посилається на таблицю MAXOCENKA, на яку впливає команда, тому така конструкція є припустимою.



<== предыдущая лекция | следующая лекция ==>
Використання операторів EXISTS, ANY, ALL, І SOME | Видалення даних


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.878 сек.