Loe raamatut: «Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики»
SQL.100 шагов от новичка до профессионала
© Максим Михайлович Чалышев, 2019
ISBN 978-5-0050-0618-9
Создано в интеллектуальной издательской системе Ridero
20 дней новых знаний и практики.
Более 300 ответов на вопросы.
Более 500 практических заданий.
Более 1000 разобранных примеров.
Данную книгу я посвящаю своим друзьям:
Кузнецову Алексею – профессионалу управления в сфере ИТ,
Коршакову Артему – будущему высококлассному IT-специалисту.
Чалышев Максим
Введение
Приветствую. Сначала как автор этой книги расскажу немного о своем профессиональном опыте. На данный момент я работаю в сфере информационных технологий уже почти 20 лет.
Основной моей специализацией в ИТ были и остаются базы данных и, прежде всего, СУБД ORACLE.
В первый раз я познакомился с данной СУБД в институте, один из моих преподавателей проходил стажировку в США. Он рассказывал студентам о базе данных ORACLE, о применении на производстве, в финансовых организациях, в крупных государственных учреждениях.
Во время изучения я был очарован четкой и понятной организацией структур информации в СУБД ORACLE, обширностью средств работы с данными, ее мощностью и вместе с тем неповторимой гибкостью, а также уникальными возможностями данной СУБД.
Далее, после института и защиты диплома, в течение нескольких лет я работал на крупном производственном предприятии, информационная система которого была построена преимущественно на использовании СУБД ORACLE.
Потоки данных представлялись грандиозными для того времени, каждый день сервер ORACLE рассчитывал сотни тысяч производственных компонентов, технологических маршрутов, спецификаций изделий.
Стоит понимать, что на дворе был конец XX века и объемы, которые тогда казались нам огромными, сейчас вызывают улыбку, технологические мощности ушли далеко вперед, и сейчас даже средний ноутбук сопоставим по быстродействию с многопроцессорными серверами тех лет.
Поле этого я перешел в сектор телекоммуникаций, и именно здесь в своей работе я столкнулся с быстрыми транзакциями, а также обработкой огромных объемов данных в сотни и сотни миллионов записей.
Далее была длительная работа в процессинге крупного банка, где также использовалась СУБД ORACLE, интернет-сатрапе средней компании-разработчика ПО, на этом этапе я познакомился с СУБД других производителей, таких как MS SQL PostgreSQL, MySQL; также я работал на большом DWH-проекте, где объемы в миллиарды записей передавались за считаные минуты.
И каждый раз, сталкиваясь с новой для себя сферой, я открывал дополнительные возможности и новые уникальные приемы разработки, которыми и хотел бы поделиться в этой книге.
Именно после многих лет работы начинаешь осознавать, что практика и теория отличаются. Те примеры, которые описаны в документации, могут работать по-разному в разных условиях, а также иметь множество нюансов использования в конкретной ситуации в конкретной сфере.
Основой моей работы была именно СУБД ORACLE, хотя я также неизбежно сталкивался вплотную и с другими технологиями, такими как Java, SAS, Python, веб-разработка JavaScript, Node JS.
Важно осознавать, что ORACLE сейчас представляет собой целый конгломерат производственных решений, куда входит, например, ORACLE Siebel CRM, JаVA, ORACLE Service Bus, но все же основным продуктом данной корпорации была и остается именно СУБД ORACLE.
Что же касается настоящего момента, то сейчас я провожу специальные курсы по SQL в базовой и расширенной версиях, на которые каждый из вас может записаться.
Адрес курсов www.sqladv.ru
Вопросы учеников, часть практических примеров взяты непосредственно с этих курсов.
День первый
Шаг 1. Что такое SQL, назначение языка
Приветствую вас, уважаемый читатель. Позволю написать несколько слов о себе.
На текущий момент вот уже более 20 лет я работаю IT-специалистом. Я занимал должности архитектора, администратора баз данных, разработчика баз данных.
У меня также есть своя IT-школа sqladv.ru, где один из курсов, который я веду сам, посвящен разработке баз данных и языку SQL.
Эта книга представляет собой также своеобразный курс обучения: с помощью данной книги, упорно занимаясь, вы освоите язык SQL от начального уровня до уровня ведущего разработчика.
В данной книге рассмотрен диалект языка ORACLE SQL как один из наиболее распространенных на сегодняшний день. Также специалисты ORACLE обычно имеют более высокую зарплату по сравнению с другими разработчиками.
Когда я преподавал в своей IT-школе sqladv.ru, то убедился, что программирование – это, прежде всего, практика, поэтому в каждой главе данной книги разбираются актуальные примеры и всегда присутствует несколько практических заданий, обязательных для выполнения.
В каждой главе книги вы сможете найти наиболее интересные и актуальные вопросы моих учеников, разумеется, с моими ответами.
Итак, перейдем непосредственно к теоретической части.
Что такое базы данных, назначение баз данных
Трудно себе представить, что раньше вся информация размещалась на бумажных носителях и архивы документов занимали подчас целые здания.
Сейчас же пришел новый век, новая информационная эпоха, и теперь для хранения и обработки информации используются в основном электронные системы.
Огромное количество таких систем работает под управлением баз данных. Спектр применения систем управления базами данных на сегодняшний день практически необъятен – базы данных используются в интернете, в производстве, в промышленности, в маркетинге, в мобильных устройствах, в финансовой и банковской сферах, на телевидении, в телекоммуникациях и рекламе.
Какова применимость баз данных, то есть где используются базы данных?
Вот лишь некоторые области, где базы данных нашли применение.
Веб-технологии
Веб-технологии проникли в нашу жизнь, и без них уже сложно представить современный мир. Социальные сети, почта, поисковые системы, онлайн-сервисы погоды и навигации – всем этим большинство из нас пользуется ежедневно.
Почти все онлайн-ресурсы работают с базами данных. Практически каждый сайт, поисковая система, социальная сеть построены на основе баз данных и используют язык SQL.
Поэтому, если ваш бизнес или ваша профессия каким-либо образом связаны с интернет-проектами, если вы веб-дизайнер или веб-программист (и не важно, на каком языке вы специализируетесь), знание баз данных и языка SQL вам обязательно пригодится в работе.
Мобильные устройства
Большинство мобильных приложений, приложений для планшетов также использует базы данных в своей работе. Система управления базами данных для мобильных устройств называется SQLite. SQLite имеет ряд особенностей, связанных с характеристиками мобильных устройств, но в целом использует такой же синтаксис SQL, как и другие базы данных.
Игры
Современные компьютерные игры также невозможны без использования баз данных. Игры – это множество объектов, игроков, карт, вооружений, стратегий, юнитов… С этой информацией надо активно работать. Без систем управления базами данных тут не обойтись. И если вы планируете связать свою жизнь с интереснейшей профессией игрового дизайнера или программиста компьютерных игр, знание баз данных будет для вас очень и очень желательным.
Крупные корпорации
Во всех без исключения крупных компаниях используются базы данных. Системы управления базами данных управляют банкоматами и пунктами выдачи наличных, на них реализованы бухгалтерия, учет и управление кадрами. Системы управления базами данных считают телефонные звонки по тарифам, вычисляют стоимость интернет-подключений и трафика.
Если вы работаете в крупной компании или собираетесь связать свою карьеру с работой на корпорацию, вам необходимо понимать, что такое база данных, принципы ее устройства, знать и понимать язык для работы с базами – SQL.
Назначение языка SQL, необходимость изучения этого языка
Structured Query Language (SQL) – язык структурированных запросов.
Язык запросов SQL – универсальный язык для работы с данными базы. Язык запросов SQL используется для управления массивами данных в БД, множествами.
Язык SQL предоставляет возможность для вывода структурированной заданной информации из базы. SQL также применяется для изменения данных, добавления данных из базы.
Язык SQL относится к функциональным языкам программирования. Он отличается от алгоритмических языков. Основу языка составляет не алгоритм как таковой, а совокупность команд, определяющих взаимоотношения информационных множеств и подмножеств.
Следует отметить, что системы управления базами данных – СУБД – имеют различные реализации, такие как ORACLE, MS SQL, MY SQL.
Язык SQL в разных СУБД имеет небольшие отличия, например в детальном синтаксисе описания операторов.
Такие отличия присутствуют в специальных функциях, относящихся к той или иной СУБД, но все же в основном язык – это общий синтаксис, практически идентичный для любой СУБД.
В данном курсе мы будем рассматривать общепринятый синтаксис SQL ORACLE.
Данная книга, как я ранее писал, обучает диалекту ORACLE SQL как наиболее востребованному и сложному, но на страницах книги вы также сможете найти некоторые примеры на других диалектах.
Вопросы учеников
Я программирую на PHP, пригодятся ли мне знания из данной книги?
Да, язык PHP используется для доступа к данным команды SQL, поэтому если вы намерены повышать свой профессиональный уровень, вам необходимо изучить материалы этой книги.
Какой уровень знаний у меня будет после прочтения данной книги и выполнения всех практических заданий?
Вы будете знать SQL на профессиональном уровне, вполне достаточном для разработки сложных баз данных.
В данный момент получили широкое распространение NoSQL базы данных, какой язык используется для работы с такими СУБД?
Для каждой NoSQL СУБД используется свой язык программирования, отличный от SQL, разумеется.
С каким уровнем знаний можно приступить к чтению этой книги?
С начальным уровнем знаний. Вполне достаточно небольшого уровня компьютерной грамотности.
Шаг 2. Теория и практика. Учебная схема данных. Организация работы
Научиться языку SQL на профессиональном уровне по данной книге вполне реально, более того – я не вижу причин, по которым это может не получиться. Разумеется, многое зависит от вашего личного упорства, методичности обучения, системности выполнения практических заданий. Выделите каждый день по три—четыре часа вашего времени, и уже через три недели вы сможете писать SQL-запросы любой сложности.
Книга называется «100 шагов», и это соответствует действительности: это 100 шагов, которые вам необходимо пройти, для того чтобы овладеть SQL и базами данных на профессиональном уровне. Каждый шаг представляет собой отдельную главу книги. Глава книги – обзор определенного вопроса или темы по предмету: базы данных или язык SQL.
Каждая глава поделена, в свою очередь, на следующие разделы:
1. Введение – в этом разделе рассказывается, собственно, о предмете или теме, которой посвящается данная глава книги.
2. Теория и практика – читателю даются теоретические обоснования темы, разбирается синтаксис рассматриваемых в главе операторов. Приводятся понятные и доступные примеры.
3. Важные замечания – в любой теме есть свои особенности, свои нюансы, эти нюансы и обозреваются в разделе.
4. Вопросы учеников – здесь я отвечаю на наиболее популярные и интересные вопросы, которые задавали мне слушатели моих курсов.
5. Контрольные вопросы и задания для самостоятельного выполнения – вопросы по уроку, вопросы и задания, которые вам необходимо решить самим.
Общая схема процесса обучения, или Как читать данную книгу
Книгу следует рассматривать как учебное пособие, и я не стану скрывать, что в книге используются материалы моих курсов по обучению базам данных и языку SQL школы sqladv.ru.
Внимательно изучите теорию, запомните, проанализируйте синтаксис команд.
Все примеры необходимо прорешивать, самостоятельно писать запросы, создавать схемы, размышлять над теоретическим обоснованием примера, то есть стараться понять, почему получается так, а не иначе.
Практические задания также необходимо решать самостоятельно, и при решении данных заданий следует обратиться к материалам из теории.
Особое внимание следует уделить вопросам, рассматриваемым в разделах «Важные замечания» и «Вопросы учеников». Именно в этих разделах, как правило, содержится наиболее важная и полезная информация.
Несколько терминов
Иногда в тексте книги могут встретиться некоторые сокращения и специальные термины; расшифруем их значение.
СУБД – система управления базами данных – совокупность программных средств, обеспечивающих управление созданием и использованием баз данных. Наиболее распространенные: ORACLE, MS SQL, mySQL, PostgreeSQL.
БД – база данных – совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных.
Учебная схема
Для занятий нам понадобится учебная схема данных.
И есть хорошая новость.
Многие примеры начального курса могут быть выполнены онлайн, для этого вам потребуется просто перейти по заданной ссылке и заполнить некоторые поля.
Итак, большинство примеров и практических заданий вы сможете выполнить на онлайн-сервисах.
Первый сервис предоставляет компания ORACLE для разработки, я уже зарегистрировал там аккаунт, и сейчас там уже есть все таблицы, которые нам потребуются в учебе.
Также там есть все необходимые заполненные данные для выполнения учебных задач и запросов.
Вам достаточно пройти по ссылке
https://apex.oracle.com/pls/apex/
и ЗАПОЛНИТЬ регистрационную информацию.
Рисунок 1. Форма авторизации в APPEX
Первое поле сверху мы заполняем SQLADV, во второе поле мы вносим имя пользователя student1 и заполняем пароль – также student1.
Также будут работать учетные записи: student2/, student2, student3/, student3… student11/, student11).
Перед вами откроется среда разработки.
Выберите пункт меню SQL Workshop, а дальше SQL ComMANd.
Пред вами откроется среда выполнения SQL-запросов.
Напишите следующий учебный запрос:
SELECT * FROM AUTO;
Нажмите кнопку RUN SQL, и далее в нижней части экрана должен появиться результат выполнения запроса.
Это и будет тот сервис, которым вы в основном сможете пользоваться для выполнения практических заданий.
Данный ресурс предоставлен компанией ORACLE в рекламных маркетинговых целях.
Если не устраивает данный сервис или почему-то этот сервис у вас не работает, тогда существует второй способ.
Вы можете воспользоваться сервисом SQL-Фидель.
Учебная схема, по которой необходимо заниматься, состоит из нескольких таблиц, которые заполнены соответствующими данными.
Введите в поле браузера ссылку
Выберите тип базы данных ORACLE 11 g r2.
Далее вам потребуется загрузить учебную схему, по которой мы будем заниматься. Скрипт учебной схемы находится по следующей ссылке в текстовом документе:
Скопируйте содержимое скрипта в поле в левой части экрана и нажмите кнопку BuildSchema.
После чего уже в правой части экрана SQLFIDlle вы сможете писать необходимые запросы и выполнять учебные задания.
Учебные запросы в SQLFIDdle пишутся в текстовом поле в правой части экрана.
После создания схемы напишите следующий учебный запрос:
SELECT * FROM MAN
Нажмите RUN SQL, в нижней части экрана должен появиться результат выполнения запроса.
Рисунок 2. Пробный запрос SQLFIDlle
Если все получилось, то вы можете приступать к учебе.
Вопросы учеников
Так все-таки в каком из сервисов лучше выполнять практические задания?
В любом, лично мне больше нравится сервис APEX.
Я пытаюсь залогиниться в сервис APEX, но появляется сообщение об ошибке. В чем может быть дело?
Проверьте правильность ввода имени пользователя и пароля. Самое верхнее поле должно содержать значение SQLADV.
Во время работы с сервисом SQLFIDlle при создании схемы возникает ошибка.
Проверьте, пожалуйста, правильно ли установлен переключатель СУБД – значение выпадающего списка должно быть ORACLE 11g. Также проверьте, скопирован ли скрипт при создании схемы.
Шаг 3. Подготовка к работе. Процесс обучения. Описание интерфейса ORACLE APEX
Подготовка к работе
До шага 51 все занятия и практические упражнения можно выполнить с использованием онлайн-сервисов, в шаге 51 подробно описано, какое программное обеспечение следует установить дополнительно и как это сделать.
Процесс обучения
Как я уже говорил, самое важное в процессе обучения языку SQL – это именно практика, при этом не важно, как много вы знаете. Главное – научиться использовать свои знания в работе.
Тысяча практических задач из данной книги, прорешенных вами, даст гораздо больший эффект, чем изучение одной лишь теории.
Данная книга ориентирована исключительно на практическую работу. Теория здесь поясняется практическими примерами.
Изучив теорию и синтаксис выражения, сразу приступайте к практике, чтобы понять, как работает данный синтаксис, данное выражение.
Практические задания находятся сразу после пояснения теоретических положений. Примерный текст практического задания выглядит следующим образом:
Выберите из таблицы автомобилей (AUTO) машины синего и зеленого цветов.
Попробуйте сначала самостоятельно написать запрос.
Сравните свое решение с решением, приведенным в книге.
Если сразу не получается, тогда внимательно изучите решение, приведенное в книге, и постарайтесь понять сам принцип, как решается данная задача, что является главным в решении.
После решения каждого из заданий переходите к заданиям для самостоятельного выполнения.
В данной книге рассматривается более тысячи практических примеров и упражнений по SQL.
Кроме того, в книге есть не только практические задачи – после примеров в некоторых шагах встречаются контрольные вопросы по теоретическим материалам.
Такие вопросы необходимы для более четкого понимания изучаемой темы.
Внимательно изучите вопрос и постарайтесь дать на каждый вопрос развернутый и подробный ответ.
Некоторые названия таблиц заменены их смысловыми обозначениями. Вам следует самостоятельно понять, исходя из смысла слова, в какой таблице находятся соответствующие данные.
На самом деле основных таблиц всего три, так что это будет несложно. Например, если речь идет об авто, тогда это таблица AUTO, если речь идет о людях, покупателях, тогда имеется в виду таблица MAN, если о городах – CITY.
Вот несколько практических советов, как улучшить процесс обучения SQL.
Tasuta katkend on lõppenud.