Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
__Лекции_Корпорат_инф_системы.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
899.07 Кб
Скачать

Изменение данных при помощи sql

Практически всюду таблица и запрос в операторах SQL не отличаются друг от друга. Для краткости будем говорить «таблица», подразумевая «таблица или запрос».

Оператор Update выполняет изменение значений в одном или нескольких столбцах в одной или нескольких записях таблицы. Следующий запрос в таблице «Договор» увеличивает стоимость в договорах, заключенных после «01.01.2010»:

UPDATE Договор SET стоимость = стоимость*1.1 WHERE дата>#01.01.2010#

Оператор Delete позволяет удалить из таблицы строки, удовлетворяющие заданному условию. Например, удаление договоров, заключенных до «01.01.2000», выглядит следующим образом:

DELETE Договор WHERE дата < #01.01.2000#

Оператор Select Into создает таблицу и добавляет в нее записи. Удобный механизм для создания некоторых временных таблиц для передачи в этом виде на другой компьютер. Применяется для переноса в таблицу, имеющую меньшее количество полей, например, при переносе данных из внутренней базы, в которой на складе хранится и приходная и отпускная цена товара, в таблицы, предназначенные для хранения на Web-сервере. Таблица для web имеет колонки – наименование товара и цена. Кроме того, оставшиеся в небольшом количестве товары мы не предлагаем в Интернет, т.к. затраты на доставку окупаются только для оптовых продаж.

SELECT Товар.Наименование, Склад.цена INTO Склад_в   FROM Товар, Склад WHERE (Товар.Код=Склад.Товар) AND (Склад.Кол > 10)

Оператор Insert реализован в двух форматах: для одновременного добавления нескольких строк одновременно и для добавления одной строки. Многострочный оператор предназначен для копирования записей из одной таблицы в другую. Такие действия могут потребоваться, например, для переноса в архивную копию. В отличие от вышеприведенного примера с Select Into записи добавляются в уже существующую таблицу. Это нам подходит в случае, если у нас несколько складов, а формируем мы одну выходную таблицу.

INSERT INTO Склад_в (Товар, цена)  SELECT Товар.Наименование, Склад_обуви.цена     FROM Товар, Склад_обуви WHERE (Товар.Код=Склад_обуви.Товар) AND (Склад_обуви.Кол > 10)

INSERT INTO Склад_в (Товар, цена)  SELECT Материал.Наименование, Склад_матер.цена     FROM Материал, Склад_матер WHERE (Материал.Код=Склад_матер. Материал) AND (Склад__матер.Кол > 200)

Можно копировать данные во внешнюю базу данных, причем внешняя база может быть даже другого формата, формат указывается в разделе IN. Например, расположенную на web-сервере базу переписываем свою таблицу выполненных заказов.

INSERT INTO Вып_Заказ IN "C:\DBASE\DATA\ZAKAZ" "dBASE IV;" SELECT Заказ.N, Заказ.Отдано, Заказ.Дата_вып FROM Заказ

Можно добавлять одну запись, непосредственно в команде задавая значения полей. Чаще такое нужно при разработке клиентского приложения, в котором пользователь вводит данные с клавиатуры в некоторые поля формы, а по нажатию им кнопки «отправить» новая запись добавляется в базу данных.

INSERT INTO Накладная (Дата, Клиент)  VALUES (#28.12.2010#,"ООО Орион")

Изменение структуры базы данных при помощи ddl

В Jet реализованы нижеследующие команды практически только для базы MS Access.

Оператор Create Table создает новую таблицу. Для каждого столбца задается тип данных, для текстового типа задается длина. Создавать таблицы можно в базах данных только некоторых, поддерживаемых провайдером форматах. В команде указывается имя таблицы, далее поля, причем для каждого поля может задаваться первичный или внешний ключ, в конце располагаются так называемые «ограничения» или ключи для всей таблицы. В разделе ключей (ограничений) может задаваться одно из значений Primary Key, Unique, Reference.

CREATE TABLE Человек

(Код LONG CONSTRAINT Код PRIMARY KEY,

Фамилия CHAR(15), Имя CHAR (20) ,

Отчество CHAR (20), Датарождения DATETIME,

CONSTRAINT Человек

REFERENCE (Фамили, Имя,Отчество))

Оператор Create Index отсутствует в стандарте, но есть в диалекте MS Access. Оператор создает индекс для существующей таблицы. Для создаваемого индекса указывается уникальность (можно дописать Unique). Индексу дается имя, затем имя таблицы, для которой создается индекс, в скобках имена полей, по которым строится ключевое выражение, далее указывается PRIMARY или DISALLOWNULL или IGNORENULL.

CREATE INDEX ДатаР ON Человек (Код) WITH DISALLOW NULL

Оператор Alter Table изменяет существующую таблицу, добавляя или удаляя поле, добавляя или удаляя ключи. Поэтому существует несколько видов этого оператора.

ALTER TABLE Человек ADD COLUMN Телефон TEXT(6), СотТелеф TEXT(10)

ALTER TABLE Человек DROP COLUMN Телефон

ALTER TABLE Человек ADD CONSTRAINT СотТелеф UNIQUE (СотТелеф)

ALTER TABLE Человек DROP CONSTRAINT Телефон

Оператор Drop позволяет удалять таблицу, индекс из таблицы, хранимую процедуру, запрос.

DROP TABLE Человек

DROP INDEX Человек ON Человек

DROP PROCEDURE Ветеран

DROP VIEW Молодежь