Основы SQL. Основы sql основы sql план курса План курса
Скачать 1.14 Mb.
|
VIEW - представлениеVIEW - представлениеПредставление – представляет собой виртуальную таблицу, которая физически не существует. Она создается с помощью запроса соединяющего одну или несколько таблиц. Обратиться к представлению можно, как к обычной таблице. Создание представления CREATE VIEW view_name AS SELECT columns FROM tables [WHERE conditions]; Изменение представления CREATE OR REPLACE VIEW view_name AS SELECT columns FROM tables [WHERE conditions]; Удаление представления DROP VIEW view_name Выбор данных из представления SELECT * FROM view_name ПредставленияПредставленияМодификация данных через представления Представление модифицируемое, если относительно него можно использовать все три команды – INSERT, UPDATE, DELETE, и оно создано на основе одной таблицы БД. Условия модифицируемости представлений: представление должно формироваться из одной базовой таблицы; оно не должно содержать ключевого слова DISTINCT в списке фразы SELECT;
GRANT (допуск) REVOKE (отмена) Привилегии для таблиц и представлений: SELECT – позволяет считывать данные INSERT – позволяет вставлять новые записи UPDATE – позволяет модифицировать записи DELETE – позволяет удалять записи Дополнительны привилегии в СУБД ALTER – позволяет модифицировать структуру таблиц (DB2, Oracle) EXECUTE – позволяет выполнять хранимые процедуры GRANT {SELECT|INSERT|DELETE|(UPDATE столбец, …)},… ON таблица ТО {пользователь | PUBLIC} [WITH GRANT OPTION] Предоставить пользователю Ivanov полномочия для осуществления выборки и модификации фамилий в таблице Students с правом предоставления полномочий. GRANT SELECT, UPDATE StName ON Students ТО Ivanov WITH GRANT OPTION REVOKE {{SELECT | INSERT | DELETE | UPDATE},…|ALL PRIVILEGES} ON таблица,… FROM {пользователь | PUBLIC},… {CASCADE | RESTRICT} Снять с пользователя Ivanov полномочия для осуществления модификации фамилий в таблице Students. Также снять эту привилегию со всех пользователей, которым она была предоставлена Ивановым. REVOKE UPDATE ON Students FROM Ivanov CASCADE Хранимые процедурыХранимые процедурыХранимая процедура (Stored Procedure, SP) – набор заранее скомпилированных операторов SQL и операторов управления программой, который хранится как объект БД. SP расширяют стандартные возможности SQL, позволяя использовать входные и выходные параметры, операторы принятия решения и объявления переменных. Обеспечивают значительный выигрыш в быстродействии, поскольку операторы SQL, содержащиеся в SP, заранее скомпилированы. SP используются во всех случаях, когда необходимо получить максимальное быстродействие и свести код SQL в единую программу. Чаще всего используются SP, выполняющие вставку, удаление и обновление данных, а также формирующие данные для отчетов. SP используются в качестве механизма защиты: если нельзя предоставлять прямой доступ пользователям к таблицам и представлениям БД, тогда им предоставляется доступ к таблицам только по чтению, а для выполнения таких операций, как UPDATE и DELETE, создаются соответствующие SP, на выполнение которых пользователи и получают права, т.е. пользователи получают доступ к таблицам БД только путем выполнения SP. Аналитические функцииАналитические функцииПрименяются для подсчета промежуточных итогов, процентов по группе, среднего, ранжирование запросов и т.д.ИМЯ_ФУНКЦИИ(<аргумент>,< аргумент >, . . . )OVER <конструкция_фрагментации(группы)> <конструкция_упорядочения> <конструкция_окна>)OVER — ключ. слово, идентифицирующее эту функцию как аналитическую. Конструкция после ключевого слова OVER описывает срез данных, "по которому" будет вычисляться функция.<конструкция_фрагментации> - PARTITION BY столбец - необязательная конструкция. Если конструкция фрагментации не задана, все результирующее множество считается одним большим фрагментом. <конструкция_упорядочения> - ORDER BY столбец - необязательная конструкция. Задает критерий сортировки данных в каждой группе. Синтаксис ORDER BY выражение [ASC | DESC] [NULLS FIRST | NULLS LAST], b.total_amount, sum(b.total_amount) over () sumall, count(b.total_amount) over () countallfrom bookings bwhere trunc(b.book_date,'mm')='01.08.2017'order by b.book_date, b.total_amount, sum(b.total_amount) over (partition by trunc(b.book_date)) sumday, max(b.total_amount) over (partition by trunc(b.book_date)) maxday, count(b.total_amount) over (partition by trunc(b.book_date)) countday, round(b.total_amount/sum(b.total_amount) over (partition by trunc(b.book_date))*100,2) percentfrom bookings border by b.book_dateТранзакцией в SQL называется логически неделимая последовательность операторов, рассматриваемая как единое целое.Результаты выполнения операторов, входящих в транзакцию, могут быть либо сохранены в БД при помощи оператора COMMIT, либо полностью аннулированы оператором ROLLBACK (или ROLLBACK до точки сохранения).Транзакция начинается с 1-го выполняемого оператора, либо с 1-го оператора после COMMIT или ROLLBACK.Транзакция заканчивается при выполнении операторов COMMIT или ROLLBACK.Чтобы оградить данные от модифицирования другими пользователями, в начале транзакции следует выполнить оператор SET TRANSACTION READ ONLY. При этом не допускается и изменение данным самим пользователем, издавшим директиву.Древовидным запросом называется запрос, в котором присутствует предложение CONNECT BY, предназначенное для отображения строк результата в определенном иерархическом порядке.Начиная с корня, описанного предложением STARTWITH, запрос просматривает каждую соединенную с корнем ветвь.
|