Исходники
Статьи
Языки программирования
.NET Delphi Visual C++ Borland C++ Builder C/С++ и C# Базы Данных MySQL MSSQL Oracle PostgreSQL Interbase VisualFoxPro Веб-Мастеру PHP HTML Perl Java JavaScript Протоколы AJAX Технология Ajax Освоение Ajax Сети Беспроводные сети Локальные сети Сети хранения данных TCP/IP xDSL ATM Операционные системы Windows Linux Wap Книги и учебники
Скрипты
Магазин программиста
|
Ishodniki.Ru »
Online книги »
Oracle книги »
Краткое практическое руководство разработчика информационных систем на базе СУБД Oracle
ОПЕРАТОРЫ МАНИПУЛИРОВАНИЯ ДАННЫМИ. Среди операторов SQL данного класса мы подробно рассмотрим только четыре основных оператора: INSERT - ВСТАВКА ДАННЫХ, SELECT - ВЫБОРКА ДАННЫХ, DELETE - УДАЛЕНИЕ ДАННЫХ, UPDATE - ИЗМЕНЕНИЕ ДАННЫХ. INSERT Вставить строки в таблицу или в базовую таблицу представления. ОТСЮДА img src="oracle_pr52.gif" border=0 WIDTH=500 HEIGHT=145> Пример: В качестве примера рассмотрим вставку даннух в таблицу "Праздничные дни" (PRAZDNIKI) insert into prazdniki values ('понедельник'); insert into prazdniki values ('вторник'); insert into prazdniki values ('среда'); insert into prazdniki values ('четверг'); insert into prazdniki values ('пятница'); insert into prazdniki values ('суббота'); insert into prazdniki values ('воскресенье'); SELECT Выбирает данные из одной или нескольких таблиц или представлений. Может использоваться как оператор или как подзапрос в другом операторе. img src="oracle_pr53.gif" border=0 WIDTH=500 HEIGHT=82> img src="oracle_pr54.gif" border=0 WIDTH=500 HEIGHT=132> img src="oracle_pr55.gif" border=0 WIDTH=500 HEIGHT=134> img src="oracle_pr56.gif" border=0 WIDTH=500 HEIGHT=155> Select_list::=
table_list::=
update_list::=
Пример 1: Лучшим примером, иллюстрирующим работу оператора SELECT, является юмористический пример "Как программист SQL охотится на слонов". Дано: Слон живет в Африке. Задача: Что надо сделать чтобы найти слона? Метод решения: Программист SQL делает SELECT. SELECT "СЛОН" FROM AFRICA; Итог: Все африканские слоны найдены. Проиллюстрируем использование оператора SELECT на нескольких примерах. Пример 2: Показать всех врачей заведенных в БД (см. рис.10). SELECT * FROM doctors ORDER BY dc_name; Результат: все записи из таблицы DOCTORS отсортированные по полю dc_name по алфавиту. Пример 3. Показать всех врачей с кодом специальности равным 111. SELECT dc_name FROM doctors WHERE dc_speciality_nnn = 111 ORDER BY dc_name; Пример 4. Показать всех врачей с кодом специальности равным 111 или 112. SELECT dc_name FROM doctors WHERE dc_speciality_nnn = 111 OR dc_speciality_nnn = 112 ORDER BY dc_name; 2-ой способ SELECT dc_name FROM doctors WHERE dc_speciality_nnn in (111, 112) ORDER BY dc_name; Операции над множествами в операторах SELECT
Пример 5. Показать всех врачей с кодом специальности равным 111 и работающих в подразделении №2. SELECT dc_name FROM doctors WHERE dc_speciality_nnn = 111 AND dc_shtat_nnn = 2 ORDER BY dc_name; Пример 6. Показать всех пациентов врача Иванова А. А. SELECT pt.pt_name FROM patients pt ,doctors dc WHERE dc.dc_nnn = pt.pt_dc_nnn AND dc.dc_name = 'ИВАНОВ А. А.' ORDER BY pt.pt_name; На этом примере остановимся подробнее: Первое - здесь впервые появились в запросе псевдонимы таблиц (pt, dc), это очень важный элемент , так как может оказаться, что по нерадивости у Вас в обоих таблицах имеются одинаковые наименования столбцов и тогда для обращения к ним потребуется использование псевдонимов таблиц. Второе - Делая запрос к нескольким таблицам необходимо использовать джойны (dc.dc_nnn = pt.pt_nnn), т.е. явно задавать те поля, которые определяют отношения между таблицами, причем чесло джойнов равняется N-1, где N - число таблиц в запросе. Третье - выборка данных по условию dc.dc_name = 'ИВАНОВ А. А.' накладывает очень жесткие требования на правильность ввода данных (они могут быть набиты маленькими буквами, через несколько пробелов и т.п.), не учет этих особенностей приведет к тому, что некоторая нужная информация не будет выбрана. Чтобы избежать этого лучше в условиях использовать числовые поля, например личный номер врача (если он имеется БД).О принципах написание SELECT можно написать несколько томов, мы здесь изложили только несколько, с нашей точки зрения, важных особенностей, более подробную информацию по синтаксису можно всегда найти в справочной литературе. DELETE Удаляет строки из таблицы или из базовой таблицы представления, удовлетворяющие условию WHERE. Удаляет все строки, если условие WHERE не задано.
Пример: Удаляем все записи из таблицы Праздничных дней.delete from prazdniki; UPDATE Изменяет существующие значения в таблице или в представлении (View).
Операции над объектами базы данных. DROP Эта команда удаляет объекты и ограничения из базы данных. Для этого действия требуются соответствующие привилегии. Например, для удаления общего канала связи базы данных требуется привилегия DROP PUBLIC DATABASE LINK.
cluster_clause::=
contects_clause::= EXPLAIN PLAN Описывает каждый шаг плана выполнения оператора SQL и помещает (если задано) это описание в указанную таблицу
ROLLBACK (управление транзакцией) Отменяет все изменения, сделанные до контрольной точки. Отменяет все изменения, произведенные в текущей транзакции, если контрольная точка не задана.
Команды управления привилегиями и ролями REVOKE (системные привилегии и роли ) Отменяет системные привилегии и роли, ранее предоставленные пользователям и ролям. Действие, обратное команде GRANT (системные привилегии и роли ) .
REVOKE (привилегии доступа к объектам) Отменяет привилегии доступа к определенному объекту, ранее предоставленные пользователям и ролям. Действие, обратное команде GRANT (привилегии доступа к объектам). CREATE ROLEСоздает роль.
SET ROLE (управление сеансом) Разрешает заданную роль в текущем сеансе и запрещает псе другие роли пользователя. Должна выполняться в начале транзакции вместе с оператором SET TRANSACTION.
GRANT (системные привилегии и роли) Предоставляет системные привилегии пользователям и ролям. Предоставляет роли пользователям и другим ролям.
GRANT (привилегии доступа к объектам) Предоставляет привилегии доступа к определенным объектам (таблицам, представлениям, синонимам, пакетам, процедурам и т.д.) пользователям и ролям. Назад | Содержание | Вперед |
Форум Программиста
Новости Обзоры Магазин Программиста Каталог ссылок Поиск Добавить файл Обратная связь Рейтинги
|