русс | укр

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

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

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

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


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

Внесение изменений в базу данных.


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


Добавление информации в базу данных.

Все записи в SQL вводятся с использованием команды модификации INSERT. В самой простой форме эта команда имеет следующий синтаксис:

 

INSERT INTO <имя таблицы>

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

 

INSERT INTOTEACHERS

VALUES (4006, « Федченко », «Светлана», «Геннадиевна», 01/09/1999);

 

INSERTне производит никакого вывода. Если требуется ввести в таблицу NULL значение, то оно вводится точно так же, как и обычное.

 

INSERT INTOTEACHERS

VALUES (NULL, « Федченко », «Светлана», «Геннадиевна», 01/09/1999

 

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

 

INSERT INTOTEACHERS (TDATE, TFAM, TIMA)

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

 

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

 

Пример 1. Пусть имеется таблица EXCELLENT. Добавить в неё строки из таблицы USP, в которых оценка равна 5.

 

INSERT INTOEXCELLENT

SELECT *

FROM USP

WHEREOCENKA = 5;

Таблица EXCELLENT

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

 

Таким образом, будет получена независимая таблица с некоторыми данными из таблицы успеваемости USP. При изменении значений в таблице USP это ни в коем случае не отразится на таблице EXCELLENT.

 

Пример 2. В поле SNUM, AVGOCENKA таблицы AVGRAITING вставить значения полей SNUM, OCENKA таблицы USP, расположив их в порядке возрастания.

 

INSERTINTO AVGRAITING (SNUM, AVGOCENKA)



SELECTSNUM,AVG (OCENKA)

FROM USP

GROUP BY SNUM;

Обратите внимание на то, что указаны имена столбцов таблицы AVGRAITING, а значит, последовательность данных во вставляемом списке ( т.е. порядок следования полей в предложении SELECT)должна с этимпорядком совпадать.

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

 

Пример 3. В таблицу STO вставить фамилии, имена и отчества студентов, у которых есть хотя бы одна отличная оценка.

 

INSERT INTO STO (SFAM, SIMA, SOTCH)

SELECTSFAM, SIMA, SOTCH

FROM STUDENTS

WHERESNUM = ANY

(SELECTSNUM

FROMUSP

WHEREOCENKA = 5);

 

Подзапрос находит все строки для студентов, имеющих отличные оценки, и формирует набор значений SNUM. Внешний запрос выбирает строки из таблицы STUDENTS, где эти значения SNUM найдены, а INSERTвставляет найденные данные в таблицу STO.

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

 

INSERT INTOMAXOCENKA (SNUM, OCENKA)

SELECTSNUM, OCENKA

FROMUSP FIRST

WHEREOCENKA=

(SELECT MAX (OCENKA)

FROMUSP SECOND = SECOND.UDATE);

 

При этом рассматриваемая команда имеет подзапас, который базируется на той же самой таблице, что и внешний запрос, но не ссылается на таблицу MAXOCENKA, на которую воздействует команда, поэтому такая конструкция является допустимой.

 

9.2. Удаление данных.Удаление строк из таблицы можно осуще

 

Пример 2. Удалить информацию о студентах из таблицы STUDENTS, причём таких, у которых имеются тройки по любому из учебных предметов.

 

DELETE FROMSTUDENTS

WHERESNUM

(SELECTSNUM

FROMUSP

WHEREOCENKA = 3);

 

В данном случае подзапрос выберет всех студентов, имеющих тройки и таблицы успеваемости, и в предикат основной команды вернёт номера их студенческих билетов.

Допускается в предикате команды DELETEиспользовать подзапросы. Кроме того, очень эффективно выполнять сначала вторичные действия (проверки и т.п.) после чего выполнять само удаление. Хотя нельзя ссылаться на таблицу, из которой будут удаляться записи, в предложении FROMподзапроса, в предикате допускается ссылка на текущую строку этой таблицы, т.е. можно использовать соотнесенные подзапросы. Например:

 

DELETE FROMSTUDENTS



<== предыдущая лекция | следующая лекция ==>
Оператор ALL. | WHERE EXISTS


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


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

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

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


 


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

 
 

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

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