русс | укр

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

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

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

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


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

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


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


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

INSERT INTO <table name>

VALUES «value> <value> . . .);

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

INSERT INTO TEACHERS

VALUE S

(4006, 'Федченко', 'Светлана' •Геннадиевна1, 01/09/1999);

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

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

INSERT INTO TEACHERS

VALUES

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

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

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

INSERT INTO TEACHERS

(TDATE, TFAM, ТІMA)

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 команда ніякого висновку не виробляє).

Таблиця 2.5 Таблиця EXCELLENT

 

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 OCSNKA = 5);

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

В команді INSERT припускає використати співвіднесені підзапити. Припустимо, що є таблиця МАХО-CENKA, в якій зберігається інформація про студента, що має максимальну оцінку за певну дату (скажімо, для нарахування іменної стипендії). Тоді, для відстежування зміни даних в таблиці успішності і модифікації відповідної інформації про претендента на іменну стипендію, необхідно скористатися наступною командою із співвіднесеним підзапитом:

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, на яку впливає команда, тому така конструкція є допустимою.



<== предыдущая лекция | следующая лекция ==>
Поляків Анатолій Олексійович 25.50 | Видалення даних.


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


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

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

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


 


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

 
 

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

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