Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БАЗЫ ДАННЫХ. курсовая на OpenOffice.doc
Скачиваний:
21
Добавлен:
23.11.2018
Размер:
1.75 Mб
Скачать

Запрос delete

DELETE FROM table [WHERE Expression];

Удаляет записи из заданной таблицы, отобранные согласно заданному условию.

Например,

DELETE FROM T1 WHERE "Группа"='АК1-11';

Удаляет из таблицы «T1» студентов группы «АК1-11».

Если условие не задать, удаляются все записи.

Если записи из других таблиц ссылаются, на удаляемые записи эти записи так же будут удалены (если задана связь с каскадным удалением) или будет выдана ошибка.

Следующий запрос, удалит из таблицы «Студент» только записи, на которые нет ссылок из таблицы «Результат»:

DELETE FROM T1

where "№ зачетки" NOT IN (SELECT R."Студент" AS N FROM "Результат" AS R);

Удаляются записи с «№ зачетки», которых нет в выборке, которую возвращает SELECT

Этот запрос можно записать иначе:

DELETE FROM T1

where NOT EXISTS (SELECT R."Студент" FROM "Результат" AS R WHERE R."Студент"="№ зачетки");

Удаляются записи для которых SELECT возвращает пустую выборку.

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

Запрос update

UPDATE table SET column = Expression [, ...] [WHERE Expression];

Позволяет изменить одно или несколько полей в записях, отобранных согласно заданному условию. Например,

UPDATE T1 SET "Дата рождения"='1980-10-10' WHERE "Группа"='АК1-11';

Заносит в поле «Дата рождения» значение «1980-10-10» для студентов группы «АК1-11».\

UPDATE T1 SET "Группа"='АК1-11',"ФИО"='Тест' WHERE "№ зачетки"='12345';

Заносит в поля «Группа» и «ФИО» значения «АК1-11» и «Тест» для студента с номером зачетки «12345».

Имеется возможность использовать выражения на основе полей изменяемой записи. Например,

UPDATE T1 SET "ФИО"="ФИО"||'*'||"Группа" WHERE "№ зачетки"='12345';

Добавляет к ФИО студента с заданным номером зачетки символ «*» и шифр группы.

UPDATE "Преподаватель" SET "ФИО"=UPPER(SUBSTR("ФИО",1,1)) || LOWER(SUBSTR("ФИО",2));

Объединяет первый символ фамилии преподавателя в верхнем регистре с остальной частью ФИО в нижнем регистре и заносит полученную строку в поле «ФИО».

При необходимости, можно использовать значения, возвращаемые SQL запросом.

UPDATE T1 SET "ФИО"=(SELECT MAX(S."ФИО") AS M FROM T1 AS S) WHERE "№ зачетки"='12345';

Заносит в поле "ФИО" записи с "№ зачетки"='12345' максимальное ФИО из таблицы «T1»

Внимание, запрос должен возвращать единственное значение.

Запрос drop table

DROP TABLE <table> [IF EXISTS] [RESTRICT | CASCADE];

Удаляет заданную таблицу. Например,

DROP TABLE T1

Запрос create table

CREATE [MEMORY | CACHED | [GLOBAL] TEMPORARY | TEMP [2] | TEXT[2]] TABLE <name>

( <columnDefinition> [, ...] [, <constraintDefinition>...] )

[ON COMMIT {DELETE | PRESERVE} ROWS];

Здесь columnDefinition:

columnname Datatype [(columnSize[,precision])]

[{DEFAULT <defaultValue> |

GENERATED BY DEFAULT AS IDENTITY

(START WITH <n>[, INCREMENT BY <m>])}] |

[[NOT] NULL] [IDENTITY] [PRIMARY KEY]

constraintDefinition:

[CONSTRAINT <name>]

UNIQUE ( <column> [,<column>...] ) |

PRIMARY KEY ( <column> [,<column>...] ) |

FOREIGN KEY ( <column> [,<column>...] )

REFERENCES <refTable> ( <column> [,<column>...])

[ON {DELETE | UPDATE}

{CASCADE | SET DEFAULT | SET NULL}][2] |

CHECK(<search condition>)[2]

Создает новую таблицу. Например,

CREATE TABLE XX ("Код" INTEGER PRIMARY KEY, "Name" VARCHAR(30), "Преподаватель" INTEGER)

Создает таблицу с именем XX и колонками:

  • «Код» – Целое, первичный ключ

  • «Name» – Строка длиной до 30 символов

  • «Преподаватель» – Целое

Типы данных можно посмотреть в конструкторе таблиц.

Позже можно будет добавить или удалить колонки и связи, используя запрос «ALTER TABLE».

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]