Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала
- Название:Oracle SQL. 100 шагов от новичка до профессионала
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:11
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Максим Чалышев - Oracle SQL. 100 шагов от новичка до профессионала краткое содержание
Более 500 практических заданий.
Более 1000 разобранных примеров.
Учебник справочник по языку SQL.
Oracle SQL. 100 шагов от новичка до профессионала - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Я знаю, что для инструкции ORDER BY существует альтернативный синтаксис. Расскажите о нем.
Перепишем этот запрос с использованием альтернативного синтаксиса:
То есть вместо названий колонок таблиц в инструкции ORDER BY мы используем порядковый номер колонки в нашем запросе — у CITYCODE он равен 1, у CITYNAME 2, у PEOPLES 3.
Можно ли отсортировать запрос по полю, которого нет в запросе, но которое есть в таблице после инструкции FROM?
Да, синтаксис SQL это допускает, и вот пример:
Контрольные вопросы и задания для самостоятельного выполнения
1. Выберите записи из таблицы CITY, где в названии города (CITYNAME) есть слог «ем», отсортируйте запрос по названию города (CITYNAME) и по популяции (PEOPLES) в обратном порядке.
2. Выберите все записи из таблицы AUTO, отсортируйте записи по цвету (COLOR) и по марке (MARK) автомобиля в обратном порядке.
Шаг 14. Ограничение на количество выбранных строк ROWNUM, TOP (n)
Введение
Иногда запросы строятся таким образом, что на экран сразу выводится множество строк.
А что если нам необходимо ограничить количество строк выводимой информации, то есть из десятков тысяч строк нам достаточно нескольких строк для анализа информации?
Теория и практика
Для решения этой задачи в разных диалектах языка SQL используются разные синтаксические конструкции: в MS SQL это конструкция TOP, в ORACLE есть специальный предикат ROWNUM, в PostgreSql, MYSQL для этого существует конструкция LIMIT.
Разберем диалект SQL ORACLE.
Конструкция ROWNUM позволит ограничить количество выводимых строк на заданную величину.
Синтаксис
Примеры
Вывести первые 5 строк из таблицы AUTO.
Рисунок 29. Запрос с ограничением строк (первые 5)
Вывести первые 5 строк из таблицы CITY, где население (PEOPLES) городов больше 300 000.
Рисунок 30. Выбрать первые 5 строк, запрос города: население больше 300 000
Важные замечания
Если использовать ROWNUM совместно с сортировкой, то необходимо прибегнуть к специальному приему, иначе ROWNUM не будет работать как нужно и запрос вернет неверные данные.
Правильно следует написать так:
Вывести первые 5 автомобилей, отсортированных по дате производства (RELEASEDT).
Ошибочный запрос:
Правильный запрос:
Вопросы учеников
Покажите, как ограничивать вывод строк в MYSQL, MS SQL и PostgreSQL.
Разберемся на примере.
Вывести первые 5 строк из таблицы CITY, где население (PEOPLES) городов больше 3000.
ORACLE SQL
MY SQL
MS SQL
PostgreSQL
Контрольные вопросы и задания для самостоятельного выполнения
1. Поясните, как использовать ROWNUM с сортировкой в SQL-запросе.
2. Выведите на экран первые 3 строчки из таблицы CITY.
3. Выведите на экран первые 4 строчки из таблицы CITY, отсортированные по количеству населения (PEOPLES).
4. Выведите на экран данные из таблицы MAN.
Шаг 15. Вставка данных в таблицу — INSERT
Введение
Ранее мы с вами изучили, как создавать таблицы и изменять структуру таблиц, а также как извлекать данные из таблиц на экран с помощью команды SELECT. Мы выбирали данные, которые уже были в таблицах. Настало время узнать о том, как добавить необходимые данные в таблицу.
Теория и практика
Для добавления данных в SQL используется команда INSERT.
Команда INSERT существует в SQL в двух вариантах.
Во-первых, для добавления заданных значений — VALUES.
Синтаксис
Важно помнить, что количество колонок в скобках и количество добавляемых значений должны соответствовать друг другу.
Также очень важно, чтобы колонки и значения соответствовали по типу данных.
Примеры
Добавим новые сведения о человеке в таблицу MAN:
В таблицу MAN добавлена строка о человеке с номером телефона «120120120», именем «Максим», фамилией «Леонидов», кодом города 2, ему 25 лет (PHONENUM, FIRSTNAME, LASTNAME, CITYCODE, YEAROLD).
Добавим сведения о новой машине в таблицу AUTO:
В таблицу AUTO добавлена строка о авто c номером «128877655» марки «LADA», цвет «КРАСНЫЙ», дата выпуска «2001-01-01», «123114444».
Второй вариант, для добавления из запроса SELECT
Здесь источником данных являются не одиночные значения, а настоящий запрос SELECT.
Синтаксис:
Примеры
В таблицу CITY1 добавить все строки из CITY, где население больше миллиона человек.
В таблицу MAN1 добавить все строки из MAN.
Важные замечания
Команда INSERT является командой модификации данных, поэтому ее выполнение необходимо завершить одной из следующих команд:
COMMIT — фиксация изменений;
ROLLBACK — откат изменений.
Только после выполнения фиксации изменений данные появятся в базе.
Обратите внимание: при добавлении данных типа дата ( DATE) мы использовали следующую конструкцию: DATE’YYYY-MM-DD», YYYY — текущий год, ММ — месяц, DD — день.
При использовании INSERTс запросом SELECT также необходимо, чтобы последовательность и типы колонок, перечисленных после команды INSERT, совпадали с последовательностью и типами колонок в запросе SELECT.
Вопросы учеников
Все же зачем применять COMMIT или ROLLBACK и что будет, если эти команды не выполнять?
Во многих СУБД применяется транзакционная модель, что это такое — узнаем чуть позже, но сейчас необходимо понимать, что при запуске операций изменения, вставки, удаления данных эти изменения появятся в базе только после выполнения команды COMMIT.
Я использовал только команду INSERT и не применял ни COMMIT, ни ROLLBACK, но данные все равно появились в базе. Почему так вышло?
Некоторые редакторы поддерживают режим автофиксации изменений, то есть выполняют команду COMMIT за вас.
Если я перечислю не все колонки, какие есть в таблице, куда мы добавляем данные, будет ошибка?
Необязательно. В колонки, которые вы не перечислили, будет добавлено пустое (NULL) значение, ошибка возникнет только если на колонках этой таблицы есть ограничение NOT NULL или первичный ключ.
Контрольные вопросы и задания для самостоятельного выполнения
1. Повторите материалы записей из данного шага.
2. Добавьте в таблицу городов новый город; код города и название придумайте сами.
3. В таблицу CITY1 добавьте все строки из CITY, где популяция меньше полумиллиона человек.
4. В таблицу AUTO добавьте новую машину 999999 ЛАДА, цвет зеленый, 1999 года выпуска.
День четвертый
Шаг 16. Обновление данных — UPDATE
Введение
Мы научились добавлять данные в таблицу, но очень часто возникают ситуации, когда нам необходимо обновить, пересчитать данные в одной или нескольких колонках.
Читать дальшеИнтервал:
Закладка: