Знакомство Краткое описание Работа с SQL Developer Знакомство с SQL Запрос SELECT SQL*Plus Утилита SQL*Plus позволяет выполнять команды SQL и блоки PL/SQL, а также решать ряд других задач. С помощью SQL*Plus можно: вводить, редактировать, запоминать, загружать и выполнять команды SQL и блоки PL/SQL; форматировать, создавать, сохранять, печатать и публиковать в Web результаты выполнения запросов (отчеты); получать описание (имена и типы столбцов) любой таблицы и представления; обращаться к удаленным базам данных и копировать из них данные; посылать и принимать сообщения от конечных пользователей; администрировать базу данных. Работа осуществляется через командную строку. Поставляется вместе с Oracle. PL/SQL Developer – это Integrated Development Environment, направленное на разработку программных единиц для Баз данных Oracle. Все больше и больше бизнес логики и логики приложений строятся на Oracle серверах, поэтому PL/SQL программирование стало важной частью процесса разработки. Фокусируется на простоте использования, качестве кодирования и продуктивности, необходимых преимуществах при разработке приложений Oracle. Toad - мощное средство, предназначенное для повышения скорости разработки баз данных и приложений, а также упрощения ежедневных задач администрирования. Toad for Oracle позволяет разработчикам избегать утомительных задач отладки PL/SQL кода, обеспечивает удобную среду разработки приложений, экономя время для разработки и тестирования больших проектов. SQL Navigator - решение для разработки и управления кодом PL/SQL. Графический интерфейс интегрированной среды делает удобной разработку и тестирование хранимых процедур, схем, SQL сценариев, хранимых HTML-страниц с внедренным PL/SQL и многого другого. Мощные средства отладки, настройки SQL и интегрированные библиотеки программного кода превращают разработку в быстрый и свободный от ошибок процесс. Oracle SQL Developer -средство для работы с запросами SQL и программными единицами PL/SQL. Преимущества: официально бесплатен; разработан в самой Oracle; написан на языке Java, поэтому один и тот же графический интерфейс можно использовать как из под Windows, так и под Unix; его можно использовать также для написания и отладки запросов к другим СУБД; не требует установки на компьютер. Все пользовательские настройки в нем хранятся в файлах XML, поэтому его достаточно скопировать на диск и при первом запуске указать путь к Java (не ниже 6 версии) Недостатки: ресурсоемкость; отсутствие официальной поддержки со стороны службы поддержки Oracle; некоторая неустойчивость в работе; Oracle SQL Developer не распространен, так как появился не так давно. Начинаем работу При первом запуске необходимо создать новое соединение с базой данных. Заполнить настройки как показано на рисунке. Спросить пароль у преподавателя. Нажать кнопку «Connect» При нажатии на определенную таблицу, информация о ней появляется новой вкладкой Дерево объектов Окно сообщений Окно для написания Информация о запросов таблице Напишем самый простой запрос к таблице SELECT * FROM DEMO_CUSTOMERS ; SELECT - в данной команде определяем столбцы выборки (* - все столбцы таблицы) FROM - определяем таблицу(ы) Выполним запрос, нажатием на кнопку Результат отображается в окне ниже ВАЖНО: В окне можно поместить несколько запросов, при нажатии кнопки, выполняется тот запрос где стоит курсор, также можно выделить запрос. Облегчим работу : При перетягивании таблицы в окно, можно автоматически сформировать запрос, что избавит вас от написания названий столбцов и ошибок в названиях. Операторы SQL Можно выделить следующие группы операторов: Операторы DDL (Data Definition Language) - операторы определения объектов базы данных Операторы DML (Data Manipulation манипулирования данными Language) - операторы Операторы защиты и управления данными Кроме того, есть группы операторов установки параметров сеанса, получения информации о базе данных, операторы статического SQL, операторы динамического SQL. Наиболее важными для пользователя являются операторы манипулирования данными (DML). SELECT - отобрать строки из таблиц INSERT - добавить строки в таблицу UPDATE - изменить строки в таблице DELETE - удалить строки в таблице COMMIT - зафиксировать внесенные изменения ROLLBACK - откатить внесенные изменения Использования оператора SELECT • Оператор SELECT предназначен для выборки данных из таблиц, т.е. он, собственно, и реализует одно их основных назначение базы данных - предоставлять информацию пользователю. • Результатом выполнения оператора SELECT всегда является таблица. • Таким образом, по результатам действий оператор SELECT похож на операторы реляционной алгебры. Любой оператор реляционной алгебры может быть выражен подходящим образом сформулированным оператором SELECT. • Сложность оператора SELECT определяется тем, что он содержит в себе все возможности реляционной алгебры, а также дополнительные возможности, которых в реляционной алгебре нет. Мы уже написали самый простой запрос, давайте усложним его выбрав несколько столбцов и дадим им более приятные названия, а также добавим сортировку по одному из полей. Если псевдоним для поля содержит пробелы или спецсимволы, то необходимо заключить в двойные кавычки. Одинарные кавычки используются для добавления текста в результирующем поле Для сортировки в другом направлении используется оператор DESC после необходимого столбца в операторе ORDER BY. Также можно отсортировать по позиции указав номер столбца в запросе Задание : Сделайте подобный запрос для таблицы сотрудников с сортировкой в обратном направлении Арифметические выражения в запросах Арифметические операции используются в выражениях для отрицания, сложения, вычитания, умножения и деления числовых величин. Результат арифметической операции имеет также числовое значение. Некоторые из этих операций используются и для работы с датами. В приложении 1 (в конце презентации) представлены арифметические операции в порядке убывания старшинства Задание : Создайте 1 запроса с арифметической операцией Использование условия для ограничения количества строк Условия записываются в оператор WHERE. Возможно использование союзов AND, OR Иcпользование отрицания NOT Сравнение с пустым значением NULL Работа со строками и т.д. Подробно об операторах сравнения Приложение 2 в конце презентации Задание : Создайте 3 запроса с различными видами условий отбора строк Отбор данных из нескольких таблиц Однако SQL позволяет нескольким таблицам. в одном запросе обращаться к Если мы хотим связать столбцы разных таблиц, то их надо указать их с именами самих таблиц, чтобы сервер мог понять какой столбец из какой таблицы мы хотим взять, а также указать по какому столбцу осуществляется связь. В примере выводятся все заказы и имена их заказавших клиентов, поскольку идентификатор клиента мало информативен для пользователя Задание : Создайте запрос по таблицы сотрудники с названием отдела, в котором они работают Использование агрегатных функций и группировка Поля группировки указываются в операторе GROUP BY COUNT - производит подсчет строк, удовлетворяющих условию запроса SUM - вычисляет арифметическую сумму всех значений колонки AVG - вычисляет среднее арифметическое всех значений MAX - определяет наибольшее из всех выбранных значений MIN - определяет наименьшее из всех выбранных значений В примере выведены клиенты и сумма всех их заказов Задание : Создайте запрос считающий количество сотрудников в каждом отделе Приложение 1 арифметические операции ОпераВыполняемая функция ция Меняет нормальный порядок выполнения операций. Операции () внутри скобок выполняются в первую очередь. Означает положительное +илиотрицательное выражение. */ Умножить, разделить. +- Сложить, вычесть Пример SELECT (X+Y)/(X_Y)... ...WHERE QTYSOLD=-1 ...WHERE -SAL<0 SELECT 2*X+1 ...WHERE X>Y/2 SELECT 2*X+1 ...WHERE X>Y-Z Приложение 2 Операции сравнения Операция Выполняемая функция Пример () Меняет нормальные правила старшинства операций. ...NOT(A=1 OR B=1) = !=,^=,<> > < >= >= Проверяет на равенство Проверяет на неравенство "Больше чем" и "меньше чем" "Больше или равно" и "меньше или равно" ...WHERE SAL=10000 ...WHERE SAL!=10000 IN "Равен любому члену из списка" ...WHERE JOB IN ('CLERK','ANALIST') Эквивалентен "=ANY" ...WHERE SAL IN (SELECT SAL FROM EMP WHERE DEPTNO=30) NOT IN Эквивалентен "!=ALL" Результат FALSE любой элемент из набора NULL ...WHERE SAL NOT IN (SELECT SAL FROM EMP WHERE DEPTNO=30) ANY Сравнивает значение с каждым значением из списка ...WHERE SAL=ANY (SELECT SAL FROM или запроса. Должен предваряться: =,!=,>,<,<=,>=. EMP WHERE DEPTNO=30) ALL Сравнивает значение со всеми значениями из списка ...WHERE (SAL,COMM)>=ALL или запроса. Должен предваряться: =,!=,>,<,<=,>=. ((1400,300),(3000,0)) [NOT] BETWEEN [Не] больше или равно x и меньше или равно y. x AND y [NOT] EXISTS [NOT] LIKE IS [NOT] NULL ...WHERE SAL>10000 ...WHERE SAL>=10000 WHERE A BETWEEN 1 AND 9 TRUE, если запрос возвращает [не возвращает] как WHERE EXISTS (SELECT SAL FROM минимум одну строку EMP WHERE DEPTNO=30) "не сопоставляется/сопоставляется со следующим шаблоном". Символ "%" используется для сопоставления с любой строкой из нуля или более символов, кроме NULL - строки, а "_" сопоставляется с любым одиночным символом. Примеры приводятся ниже в разделе "Операция LIKE". "проверка на [не] null. IS должен использоваться для WHERE JOB IS NULL проверки на NULL.