Что такое SQL. Назначение и основа | Info-Comp.ru
Всем привет! Сегодня я максимально просто, специально для начинающих, попытаюсь рассказать Вам о том, что такое SQL, и для чего он нужен. Из данного материала Вы также узнаете, что такое база данных и система управления базами данных, а также что такое диалект языка SQL, ведь вся статья будет построена на том, чтобы плавно подвести Вас к пониманию того, что же такое SQL.
Я думаю, Вы уже представляете себе, что SQL — это некий язык, связанный с какими-то там базами данных, однако для того, чтобы лучше понимать, что же такое SQL, необходимо понять, для чего нужен SQL, для чего нужен этот язык, т.е. его назначение.
Поэтому сначала я дам Вам немного вводной информации, из которой будет ясно назначение языка SQL, и для чего он вообще нужен.
Что такое база данных
И начну я с того, что под базой данных обычно принято понимать любой набор информации, которая хранится определенным образом, и ей можно воспользоваться. Но если говорить о каких-то автоматизированных базах данных, то здесь, конечно же, речь идет о так называемых реляционных базах данных.
Реляционная база данных – это упорядоченная информация, связанная между собой определёнными отношениями. Представлена она в виде таблиц, в которых и лежит вся эта информация. И это очень важно, так как теперь Вы должны представлять себе современную базу данных просто в виде таблиц (если говорить в контексте SQL), т.е. в общем смысле база данных – это набор таблиц. Безусловно, это сильно упрощенное определение, но оно дает некое практическое понимание базы данных.
Что такое SQL
За счет того, что информация в базе данных упорядочена, разделена на определённые сущности и представлена в виде таблиц, к ней легко обратиться и найти нужную нам информацию.
И тут возникает главный вопрос: а как к ней обратиться и получить необходимую нам информацию?
Для этого должен быть специальный инструмент, и здесь к нам на помощь как раз и приходит SQL, который является тем инструментом, с помощью которого происходит манипулирование данными ( создание, извлечение, удаление и т.д.) в базе данных.
SQL (Structured Query Language) — язык структурированных запросов, с помощью него пишутся специальные запросы (так называемые SQL инструкции) к базе данных с целью получения данных из базы данных или для манипулирования этими данными.
Также обязательно стоит отметить и то, что база данных, и в частности реляционная модель, основана на теории множеств, которая подразумевает объединение разных объектов в одно целое, под одним целым в базе данных как раз и имеется в виду таблица. Это важно, так как язык SQL работает именно со множеством, с набором данных, т.е. с таблицами.
Полезные материалы по теме:
Что такое СУБД
У Вас может возникнуть вопрос, если база данных это некая информация, которая хранится в таблицах, то как она выглядит физически? Как на нее посмотреть в целом?
Если очень коротко, то это просто файл, созданный в специальном формате, именно так и выглядит база данных (в большинстве случаев БД включает несколько файлов, но сейчас на этом уровне это не так важно).
Идем дальше, если база данных это файл в специальном формате, то как его создать или открыть? И тут возникает сложность, ведь просто так, без каких-либо инструментов создать такой файл, т.е. реляционную базу данных, нельзя, для этого нужен специальный инструмент, который мог бы создавать и управлять базой данных, иными словами, работать с этими файлами.
Таким инструментом как раз и выступает СУБД – это система управления базами данных, сокращенно СУБД.
Какие СУБД бывают
На самом деле, существует достаточно много различных СУБД, некоторые из них платные и стоят немалых денег, если говорить о полнофункциональных версиях, но даже у самых, так скажем, «крутых» есть бесплатные редакции, которые, кстати, отлично подходят для обучения.
Среди всех по своим возможностям и популярности можно выделить следующие системы:
- Microsoft SQL Server – это система управления базами данных от компании Microsoft. Она очень популярна в корпоративном секторе, особенно в крупных компаниях. И это не просто СУБД – это целый комплекс приложений, позволяющий хранить и модифицировать данные, анализировать их, осуществлять безопасность этих данных и многое другое;
- Oracle Database – это система управления базами данных от компании Oracle. Это также очень популярная СУБД, и также среди крупных компаний. По своим возможностям и функциональности Oracle Database и Microsoft SQL Server сопоставимы, поэтому являются серьезными конкурентами друг другу, и стоимость их полнофункциональных версий очень высока;
- MySQL – это система управления базами данных также от компании Oracle, но только она распространяется бесплатно. MySQL получила очень широкую популярность в интернет сегменте, т.е. именно на MySQL работают чуть ли не все сайты в интернете, иными словами, большинство сайтов в интернете используют эту СУБД как средство хранения данных;
- PostgreSQL – эта система управления базами данных также является бесплатной, и она очень популярна и функциональна.
Полезные материалы по теме:
Диалекты языка SQL (расширения SQL)
Язык SQL – это стандарт, он реализован во всех реляционных базах данных, но у каждой СУБД есть расширение этого стандарта, есть собственный язык работы с данными, его обычно называют диалектом SQL, который, конечно же, основан на SQL, но предоставляет больше возможностей для полноценного программирования, кроме того, такой внутренний язык дает возможность получать системную информацию и упрощать SQL запросы.
Вот некоторые диалекты языка SQL:
- Transact-SQL (сокращенно T-SQL) – используется в Microsoft SQL Server;
- PL/SQL (Procedural Language / Structured Query Language) – используется в Oracle Database;
- PL/pgSQL (Procedural Language/PostGres Structured Query Language) – используется в PostgreSQL.
Таким образом, от СУБД зависит, на каком расширении Вы будете писать SQL инструкции. Если говорить о простых SQL запросах, например,
SELECT ProductId, ProductName FROM Goods
то, безусловно, во всех СУБД такие запросы работать будут, ведь SQL — это стандарт.
Примечание! Это простой SQL запрос на выборку данных из одной таблицы, выводятся два столбца.
Однако если Вы собираетесь программировать, использовать все внутренние возможности СУБД (разрабатывать процедуры, использовать встроенные функции, получать системную информацию и т.д.), то Вам необходимо изучать конкретный диалект SQL и практиковаться соответственно в той СУБД, в которой используется этот диалект. Это важно, ведь синтаксис многих конструкций различается так же, как различаются возможности и многое другое. И если, допустим, Вы запустите SQL инструкцию, в которой использованы возможности определенного расширения SQL, на другой СУБД, то такая инструкция, конечно же, не выполнится.
Например, лично я специализируюсь на языке T-SQL, и соответственно, работаю с Microsoft SQL Server, вот уже более 8 лет!
Хотя, конечно же, с другими СУБД я также работал, одно время я сопровождал два приложения, одно из которых работало с PostgreSQL, ну а второе, наверное, уже понятно, с Microsoft SQL Server.
С MySQL я работал, как, наверное, и многие, в рамках сопровождения сайтов и сервисов. Ну а с Oracle Database мне приходилось работать в рамках других проектов.
Весь свой накопленный опыт в части языка SQL я сгруппировал в одном месте и оформил в виде книг, поэтому, если у Вас есть желание изучить язык SQL рекомендую почитать мои книги:
- SQL код – самоучитель по SQL для начинающих программистов. Данный книга рассчитана на изучение языка SQL как стандарта, т.е. на изучение тех возможностей SQL, которые доступны и точно будут работать во всех популярных системах управления базами данных (СУБД).;
- Стиль программирования на T-SQL – основы правильного написания кода. Книга, направленная на повышение качества T-SQL кода (для тех, кто уже знаком с языком T-SQL, т.е. знает хотя бы основы).
Заметка! Начинающим рекомендую пройти мой онлайн-курс по основам SQL, с помощью которого Вы научитесь работать с языком SQL во всех популярных системах управления базами данных. Курс включает много практики: онлайн-тестирование, задания и многое другое.
Надеюсь, теперь Вы понимаете, что такое SQL, и для чего он нужен, в следующих материалах я расскажу, как создавать SQL запросы, расскажу какие инструменты для этого необходимо использовать и для каких СУБД, так как у каждой СУБД есть свои инструменты, поэтому следите за выходом новых статей в моих группах в социальных сетях: ВКонтакте, Facebook, Одноклассники, Twitter и Tumblr. Подписывайтесь, и Вы не пропустите выход нового материала!
А на сегодня это все, удачи Вам, пока!
Нравится30Не нравится2Что такое SQL
Язык структурированных запросов (SQL) — это язык программирования, предназначенный для управления и манипулирования базами данных, он используется для поиска и извлечения информации из огромных баз данных.
SQL отображается в реляционных базах данных, форме базы данных, полученной из реляционной модели Эдгара Ф. Кодда для хранения информации таким образом, чтобы она была доступной и идентифицируемой по отношению к другой информации. Язык изначально назывался SEQUEL (структурированный английский язык запросов) и был разработан Дональдом Чемберлином и Рэймондом Бойсом в IBM (1974 г.) SQL содержит четыре основные категории с двумя дополнительными командами, которые в основном используются для компьютерных баз данных. SQL — это язык четвертого поколения, его команды близки к человеческому языку. А вот языки программирования Java и C ++ — языки третьего поколения, которые абстрактны для неопытного глаза.
Какая структура SQL и как он работает?
SQL стал отраслевым стандартом для манипулирования и запроса данных в реляционной базе данных. Использование языка разбито на компоненты:
1. DML — язык манипулирования данными, используется для управления содержимым базы данных в режимах извлечения, обновления, удаления и вставки. DML имеет четыре команды, которые можно использовать для управления информацией, а именно команды «Выбрать», «Вставить», «Обновить» и «Удалить».
2. DDL — язык определения данных, используется для управления таблицами и структурами индексов. А также с синхронизированными командами, которые можно использовать для создания, изменения и удаления таблиц базы данных.
3. DCL — язык управления данными, часто используется для управления доступом к базе данных, предоставляя права определенным пользователям. Две команды, которые используются в DCL, ето Grant и Revoke — основные команди безопасности реляционной базы данных и аутентификации.
4. DQL — язык запросов данных, он похож на DML, так как он используется для выбора, вставки, обновления и удаления данных из базы данных.
Другие команды SQL — это команды администрирования данных и управления транзакциями.
Стандарт SQL
Стандарт SQL пережил несколько изменений с первых лет, в основном для добавления новых функций в стандартную структуру. Например, стандарт SQL теперь может поддерживать XML, сопоставление регулярных выражений и многое другое. Сегодня SQL используется в популярных приложениях баз данных в Интернете, таких как Oracle Database. Многие добавленные базы данных, такие как MySQL и PostgreSQL, не реализуют весь стандарт SQL. Вместо этого разработчики добавляют свои собственные разновидности и варианты в стандарт SQL, основными из которых являются IBM, Microsoft и Oracle.
Вариации
В 1989 году Microsoft разработала собственную систему управления реляционными базами данных под названием Microsoft SQL Server. Он был разработан для поддержки ряда приложений для обработки транзакций, бизнес-аналитики и аналитики в ИТ. Существует несколько версий SQL Server с различными интеграциями инструментов управления данными и аналитики, а также с более новыми технологиями, такими как облачные вычисления и отчеты на мобильных устройствах. Oracle также предоставляет SQL, который можно использовать для доступа, определения и обслуживания данных. Его SQL-сервер может использоваться в сотрудничестве с Oracle, PHP, Java и другими языками программирования.
Хотя SQL может показаться сложным, есть международные как платные, так бесплатные онлайн-курсы, которые могут помочь.
Язык SQL. Курс «Введение в реляционные базы данных»
SQL – это язык программирования декларативного типа. В отличие от привычных нам процедурных языков, в которых есть условия, циклы и функции, в декларативных языках подобных алгоритмических конструкций почти нет. Декларативные выражения представляют собой скорее запросы, описание того, что хочет получить человек.
В случае SQL человек формулирует запрос на извлечение или модификацию данных, а алгоритм его выполнения почти полностью ложится на плечи конкретной СУБД. Хотя если один и тот же результат может быть получен с помощью разных запросов, программисту лучше выбрать тот, который создаст меньшую нагрузку на СУБД. То есть программисту желательно иметь представление о том, как работает СУБД.
Запрос производится к таблицам базы данных, результатом обработки запроса также является таблица, которую при желании можно сохранить.
Язык SQL предназначен для создания и изменения реляционных баз данных, а также извлечения из них данных. Другими словами, SQL – это инструмент, с помощью которого человек управляет базой данных. При этом ключевыми операциями являются создание таблиц, добавление записей в таблицы, изменение и удаление записей, выборка записей из таблиц, изменение структуры таблиц.
Однако в процессе развития языка SQL в нем появились новые средства. Стало возможно описывать и хранить такие объекты как индексы, представления, триггеры и процедуры. То есть в современных диалектах SQL есть элементы процедурных языков.
Язык SQL и СУБД обычно не используются сами по себе, а выполняют функцию промежуточного встроенного компонента, обеспечивающего связь между прикладным ПО или программой, которую пишет программист, и базой данных. В языках программирования существуют свои библиотеки, обеспечивающие API для различных СУБД.
Сам язык SQL состоит из операторов, инструкций и вычисляемых функций. Зарезервированные слова, которыми обычно выступают операторы, принято писать заглавными буквами. Однако написание их не прописными, а строчными буквами к ошибке не приводит.
Операторы делятся на:
операторы определения данных (Data Definition Language, DDL)
CREATE создаёт объект БД (базу данных, таблицу, представление, пользователя и т. д.)
ALTER изменяет объект
DROP удаляет объект
операторы манипуляции данными (Data Manipulation Language, DML)
SELECT выбирает данные, удовлетворяющие заданным условиям
INSERT добавляет новые данные
UPDATE изменяет существующие данные
DELETE удаляет данные
операторы определения доступа к данным (Data Control Language, DCL)
GRANT предоставляет пользователю или группе разрешения на определённые операции с объектом
REVOKE отзывает ранее выданные разрешения
DENY задаёт запрет, имеющий приоритет над разрешением
операторы управления транзакциями (Transaction Control Language, TCL)
COMMIT применяет транзакцию
ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции
SAVEPOINT делит транзакцию на более мелкие участки
Стандарты SQL позволяют обеспечить переносимость баз данных между разными СУБД. На самом деле это весьма условно. Разные СУБД используют свои диалекты SQL. Например, SQLite не понимает ряд типов данных.
В разных СУБД есть свои расширения для придания SQL «процедурности». Это хранимые процедуры (stored procedures) и процедурные языки-надстройки. Так в Oracle Database используется PL/SQL, в PostgreSQL – PL/pgSQL.
Несмотря на наличие диалектов, запросы, содержащие только DDL и DML, обычно переносимы между разными СУБД.
MS SQL Server и T-SQL
Что такое SQL Server и T-SQL
Последнее обновление: 04.02.2021
SQL Server является одной из наиболее популярных систем управления базами данных (СУБД) в мире. Данная СУБД подходит для самых различных проектов: от небольших приложений до больших высоконагруженных проектов.
SQL Server был создан компанией Microsoft. Первая версия вышла в 1987 году. А текущей версией является версия 2019, которая вышла в 2019 году и которая будет использоваться в текущем руководстве.
SQL Server долгое время был исключительно системой управления базами данных для Windows, однако начиная с версии 16 эта система доступна и на Linux.
SQL Server характеризуется такими особенностями как:
Производительность. SQL Server работает очень быстро.
Надежность и безопасность. SQL Server предоставляет шифрование данных.
Простота. С данной СУБД относительно легко работать и вести администрирование.
Центральным аспектом в MS SQL Server, как и в любой СУБД, является база данных. База данных представляет хранилище данных, организованных определенным способом. Нередко физически база данных представляет файл на жестком диске, хотя такое соответствие необязательно. Для хранения и администрирования баз данных применяются системы управления базами данных (database management system) или СУБД (DBMS). И как раз MS SQL Server является одной из такой СУБД.
Для организации баз данных MS SQL Server использует реляционную модель. Эта модель баз данных была разработана еще в 1970 году Эдгаром Коддом. А на сегодняшний день она фактически является стандартом для организации баз данных.
Реляционная модель предполагает хранение данных в виде таблиц, каждая из которых состоит из строк и столбцов. Каждая строка хранит отдельный объект, а в столбцах размещаются атрибуты этого объекта.
Для идентификации каждой строки в рамках таблицы применяется первичный ключ (primary key). В качестве первичного ключа может выступать один или несколько столбцов. Используя первичный ключ, мы можем ссылаться на определенную строку в таблице. Соответственно две строки не могут иметь один и тот же первичный ключ.
Через ключи одна таблица может быть связана с другой, то есть между двумя таблицами могут быть организованы связи. А сама таблица может быть представлена в виде отношения («relation»).
Для взаимодействия с базой данных применяется язык SQL (Structured Query Language). Клиент (например, внешняя программа) отправляет запрос на языке SQL посредством специального API. СУБД должным образом интерпретирует и выполняет запрос, а затем посылает клиенту результат выполнения.
Изначально язык SQL был разработан в компании IBM для системы баз данных, которая называлась System/R. При этом сам язык назывался SEQUEL (Structured English Query Language). Хотя в итоге ни база данных, ни сам язык не были впоследствии официально опубликованы, по традиции сам термин SQL нередко произносят как «сиквел».
В 1979 году компания Relational Software Inc. разработала первую систему управления баз данных, которая называлась Oracle и которая использовала язык SQL. В связи с успехом данного продукта компания была переименована в Oracle.
Впоследствии стали появляться другие системы баз данных, которые использовали SQL. В итоге в 1989 году Американский Национальный Институт Стандартов (ANSI) кодифицировал язык и опубликовал его первый стандарт. После этого стандарт периодически обновлялся и дополнялся. Последнее его обновление состоялось в 2011 году. Но несмотря на наличие стандарта нередко производители СУБД используют свои собственные реализации языка SQL, которые немного отличаются друг от друга.
Выделяются две разновидности языка SQL: PL-SQL и T-SQL. PL-SQL используется в таких СУБД как Oracle и MySQL. T-SQL (Transact-SQL) применяется в SQL Server. Собственно поэтому в рамках текущего руководства будет рассматриваться именно T-SQL.
В зависимости от задачи, которую выполняет команда T-SQL, он может принадлежать к одному из следующих типов:
DDL (Data Definition Language / Язык определения данных). К этому типу относятся различные команды, которые создают базу данных, таблицы, индексы, хранимые процедуры и т.д. В общем определяют данные.
В частности, к этому типу мы можем отнести следующие команды:
CREATE: создает объекты базы данных (саму базу даных, таблицы, индексы и т.д.)
ALTER: изменяет объекты базы данных
DROP: удаляет объекты базы данных
TRUNCATE: удаляет все данные из таблиц
DML (Data Manipulation Language / Язык манипуляции данными). К этому типу относят команды на выбору данных, их обновление, добавление, удаление — в общем все те команды, с помощью которыми мы можем управлять данными.
К этому типу относятся следующие команды:
SELECT: извлекает данные из БД
UPDATE: обновляет данные
INSERT: добавляет новые данные
DELETE: удаляет данные
DCL (Data Control Language / Язык управления доступа к данным). К этому типу относят команды, которые управляют правами по доступу к данным. В частности, это следующие команды:
Что такое MS SQL Server
Давайте для начала разберемся что же такое SQL Server. SQL Server это обычная программа, которая работает на компьютере, сервере, на ноутбуке, на виртуальной машине, или даже в облаке. Она позволяет подключиться к ней локально или по сети, отправить команду по специальному протоколу TDS и соответственно получить ответ. Это мощная и современная платформа, позволяющая хранить и обрабатывать данные. Все что она делает это открывает сетевой порт и готовиться принимать команды от пользователя, а после этого в ответ отдает ему результат. Самое главное при работе с SQL Server это возможность при необходимости подключиться к нему и выполнить команду потому, что разумеется если он не работает смысла в остальном никакого нет.
При работе в локальной сети нужно установить программу на место работы каждого пользователя. Режим работы зависит от выбранной СУБД. В самом простейшем случае работа происходит с базой данных Microsoft Access, такой режим используется по умолчанию сразу после установки программы и подходит для большинства применений, если количество работающих з базой пользователей не превышает 10 12 человек. В сетевой среде файл базы данных выкладывается на общедоступном ресурсе к которому подключаются пользователи из других компьютеров, на которых установлено нужное ПО. Когда количество юзеров которые используют одновременно одну и ту же базу данных превышает 12 человек, или заметна плохая скорость работы сервера, имеет смысл перевести базу данных в формат Microsoft SQL. Это полноценная клиент-серверная архитектура в которой по сете не перекачиваются сами таблицы представления базы данных, а возвращается результат определенного запроса. Все вычисления производятся на сервере баз данных, а не на клиентских компьютерах. Быстродействие возрастёт значительно и это особенно важно при большом количестве рабочих мест.
Для управления базами данных Microsoft SQL Server используется программа Microsoft SQL Management Studio. С ее помощью можно производить манипуляции с базами данных, в том числе такие как резервное копирование и восстановление баз данных.
Что такое база данных и SQL. Как работают с базами и что в них хранят
Если сказать упрощённо, то база данных — это среда, в которой существуют таблицы с данными. Если вы когда-нибудь работали в офисной программе «Excel», в которой можно делать таблицы, то считайте что работали с базой данных.В базах данных сайтов могут содержаться таблицы, в которых может быть записано всё что угодно:
- данные новостей, которые опубликованы на сайте
- данные пользователей, которые зарегистрированы на сайте
+--------------------+ | Пользователи | +--------------------+ | Имя | Любимая еда | +------+-------------+ | Мышь | Сыр | +------+-------------+ | Кот | Молоко | +------+-------------+Как можно заметить, это обычная таблица. Но в таком виде на сайте её увидеть нельзя. Сайт делает запрос к ней с помощью специального языка, который называется SQL (Structured Query Language — «язык структурированных запросов»). Эти запросы возвращают массив строк, которые подходят под параметр запроса. Разберём далее логику запросов.
Представьте, что необходимо получить из примера выше все данные таблицы и вывести их на экран. Тогда нужно сделать запрос к базе данных на языке SQL:
SELECT 'Имя пользователя', 'Любимая еда' FROM 'Пользователи';
Как можно догадаться из этой строчки, к базе данных будет сделан запрос на получение данных. Об этом говорит слово SELECT, который переводится как «ВЫБРАТЬ». После слова SELECT стоят названия двух столбцов, значение которых необходимо получить из базы данных. Если название столбца не указать, то его значение не будет получено. Можно написать нужные столбцы через запятую, как это сделано в примере, а если нужно вывести все, то можно просто поставить значок звёздочки *.Последняя часть запроса содержит слово FROM, которое дословно переводится как «из». После этого слова стоит таблица ИЗ которой надо получить данные. Если не указать из какой таблицы нужны данные, то база данных выдаст ошибку.
Пример SQL запроса, который приведён выше, сильно утрирован для большей наглядности и простоты. Потому что в базах данных крайне нежелательно создавать таблицы с кириллическими названиями таблиц и столбцов. А ещё названия столбцов и самой таблицы нужно заключать не в одинарную кавычку ‘ , а в наколнную `
Перейдём к обработке результатов выполнения запроса. Если утрировать, то после выполнения запроса из примера выше база данных вернёт такой массив:Array ( [0] => Array ( [Имя] => Мышь [Любимая еда] => Сыр ) [1] => Array ( [Имя] => Кот [Любимая еда] => Молоко ) )После получения этого массива необходимо сделать цикл аналогичный foreach( ) по всем элементам полученного массива. Внутри цикла можно обернуть полученные значения в различные HTML теги, чтобы вывод был красивым, чтобы у страницы сайта был дизайн. Так и происходит взаимодействие сайтов с базами данных. Базы данных — это не лучшее хранилище информации. Конёк баз данных — это быстрый поиск информации и вывод с сортировкой. Поэтому базы данных целесообразно использовать далеко не везде. Если же нужно обрабатывать терабайты статичной информации без необходимости поиска и сортировки, то выгоднее использовать использовать простые файлы для хранения информации.
Базы данных используются для сайтов в основном потому, что с их помощью можно организовать уровни доступа к информации. И базы данных большинства сайтов в интернете очень редко когда превышают 10 Гигабайт (считая размеры всех таблиц в базе).
В следующих статьях мы разберём более сложные примеры обращения с базой данных: научимся создавать и удалять таблицы, объединять результаты выборки из нескольких разных таблиц и обновлять данные в таблицах. Если вам не терпится приступить к программированию, то рекомендуем ознакомиться со статьёй «Как сделать запрос из PHP к базе данных».Что такое SQL и как он работает?
Рано или поздно, каждый веб-мастер добирается до вопроса «Что такое SQL и как с ней работать». В этой статье мы познакомим вас с языком программирования SQL, который определяет запросы к базе данных.
SQL — это аббревиатура для термина Structured Query Language — так называется язык программирования, предназначенный для управления базами данных.
SQL был создан для управления данными, которые находятся в реляционных базах данных, хранящие данные в нескольких таблицах, состоящих из столбцов и строк.
Его появление восходит к 1970-м годам, задолго до того, как Oracle популяризировал SQL и помог сделать его одним из наиболее широко используемых языков управления базами данных. В настоящее время существует множество вариантов SQL с открытым исходным кодом, и стандарт этого языка настолько обширен, что только некоторые из его вариантов действительно совместимы, поскольку каждый использует разные аспекты целого стандарта.
Тем не менее, удивительная простота сделала SQL самым востребованным языком: с го помощью, используя всего одну команду, можно получить доступ сразу к нескольким записям данных, не требуя индекса для доступа к этим данным. Несмотря на то, что для запросов к базам данных язык использует простые декларативные инструкции, он, благодаря составляющим язык различным элементам, позволяет формулировать выполнять сложные и подробные запросы.
Из каких элементов состоит SQL?
Язык SQL состоит из нескольких отдельных элементов, каждый из которых содержит «оператор». Выражения или запросы начинаются с указания типа SELECT или CREATE и заканчиваются точкой с запятой, которая символизирует конец запроса.
Давайте рассмотрим элементы, которые, как правило, имеются в языке SQL:
Операторы — отдельные компоненты запроса; например, ‘UPDATE’ или ‘WHERE’ — они определяют характер запроса.
Предикаты — они определяют условия, которые могут изменить область запроса: например, запрос с условиями ‘BETWEEN’ или ‘ALL’ возвратят разные наборы данных; первый из диапазона между x и y, а последний — все данные, которые соответствуют вашему запросу.
Выражения — выражения могут представлять собой скалярные значения (указание на место хранения в паре с идентификатором) или таблицы, содержащие столбцы и строки.
Запросы — они позволяют получить данные, соответствующие критериям, которые вы определяете.
Инструкции — определяют способ, с помощью которого программное обеспечение SQL отправляет запросы на сервер базы данных. Они начинаются с оператора типа SELECT или CREATE и заканчиваются точкой с запятой, которая символизирует конец запроса.
Популярные QSL запросы
Приведем только несколько полезных SQL-запросов, на основе которых продемонстрируем, как используется SQL для запроса и управления данными.
ALTER TABLE — указание добавлять новые столбцы в базу данных, увеличивая количество данных, которые она может записывать.
CREATE TABLE — добавление новой таблицы позволяет вашей базе данных хранить совершено новый тип данных.
ORDER BY — полезная команда для того, чтобы данные, которые вы запрашиваете, были представлены каким-то полезным для вас способом — например, в алфавитном порядке.
UPDATE — обновление базы данных позволяет вам изменять содержимое строк, например, если данные были изменены, или вы обнаружили, что они некорректны.
Обработка данных SQL
Возможность SQL изменять и редактировать сохраненные в базе данные, как пишет сайт itvdn.com, делает этот язык программирования невероятно полезным. Вместо того, чтобы просто хранить данные, вы можете при необходимости создавать команды для их изменения. Устаревшие данные редко бывают полезными, поэтому важно обновлять базы, чтобы всегда иметь под рукой максимально точную и актуальную информацию.
Читатели этой статьи также смотрели на сайте rfcmd.ru
Преимущества облачных вычислений
Системный интегратор для СКС
Для чего нужен юрист по недвижимости
Современный интернет для рынка недвижимости
Google-сервисы для Мeizu
Умный дом и автономный генератор
Правильная CRM для вашего бизнеса
Кратко:
Рано или поздно, каждый веб-мастер добирается до вопроса «Что такое SQL и как с ней работать». В этой статье мы познакомим вас с языком программирования SQL, который определяет запросы к базе данных. Удивительная простота сделала SQL самым востребованным языком: с го помощью, используя всего одну команду, можно получить доступ сразу к нескольким записям данных, не требуя индекса для доступа к этим данным. Несмотря на то, что для запросов к базам данных язык использует простые декларативные инструкции, он, благодаря составляющим язык различным элементам, позволяет формулировать выполнять сложные и подробные запросы.
SQL: что это такое?
Язык структурированных запросов, широко известный как SQL, является стандартным языком программирования для реляционных баз данных. Несмотря на то, что он старше многих других типов кода, это наиболее широко используемый язык баз данных.
Поскольку SQL настолько распространен, знание его важно для всех, кто занимается компьютерным программированием или использует базы данных для сбора и организации информации. Узнайте больше о том, что такое SQL, и о возможностях карьерного роста в этой области.
Что такое SQL?
SQL можно использовать для совместного использования и управления данными, особенно данными, которые находятся в системах управления реляционными базами данных, которые включают данные, организованные в таблицы.Несколько файлов, каждый из которых содержит таблицы данных, также могут быть связаны общим полем. Используя SQL, вы можете запрашивать, обновлять и реорганизовывать данные, а также создавать и изменять схему (структуру) системы баз данных и контролировать доступ к ее данным.
В электронную таблицу, такую как Microsoft Excel, можно скомпилировать много информации, но SQL предназначен для компиляции и управления данными в гораздо больших объемах. В то время как электронные таблицы могут стать громоздкими из-за слишком большого количества информации, базы данных SQL могут обрабатывать миллионы или даже миллиарды ячеек данных.
Используя SQL, вы можете хранить данные о каждом клиенте, с которым когда-либо работал ваш бизнес, от основных контактов до сведений о продажах. Так, например, если вы хотите найти каждого клиента, который потратил не менее 5000 долларов на ваш бизнес за последнее десятилетие, база данных SQL могла бы получить эту информацию для вас мгновенно.
Как работает изучение SQL
Язык структурированных запросов более простой, чем другие более сложные языки программирования. Обычно новичкам легче изучить SQL, чем им освоить такие языки, как Java, C ++, PHP или C #.
Некоторые онлайн-ресурсы, включая бесплатные учебные пособия и платные курсы дистанционного обучения, доступны для тех, у кого мало опыта программирования, но которые хотят изучить SQL. Официальные курсы университета или колледжа также обеспечат более глубокое понимание языка.
История SQL
История SQL насчитывает более полувека. В 1969 году исследователь IBM Эдгар Ф. Кодд определил модель реляционной базы данных, которая стала основой для разработки языка SQL.Эта модель построена на общих порциях информации (или «ключах»), связанных с различными данными. Например, имя пользователя может быть связано с фактическим именем и номером телефона.
Несколько лет спустя IBM начала работу над новым языком для систем управления реляционными базами данных на основе результатов исследований Кодда. Первоначально этот язык назывался SEQUEL, или язык структурированных английских запросов. Названный System R, проект претерпел несколько реализаций и изменений, и название языка менялось несколько раз, прежде чем окончательно перейти на SQL.
После начала тестирования в 1978 году IBM приступила к разработке коммерческих продуктов, включая SQL / DS (1981) и DB2 (1983). Другие производители последовали их примеру, объявив о своих собственных коммерческих предложениях на основе SQL. К ним относятся Oracle, выпустившая свой первый продукт в 1979 году, а также Sybase и Ingres.
SQL в действии: MySQL
Обычное программное обеспечение, используемое для серверов SQL, включает MySQL Oracle, возможно, самую популярную программу для управления базами данных SQL. MySQL — это программное обеспечение с открытым исходным кодом, что означает, что его можно использовать бесплатно и важно для веб-разработчиков, потому что большая часть Интернета и очень много приложений построены на базах данных.
Рассмотрим музыкальную программу, такую как iTunes, которая хранит музыку по исполнителям, песням, альбомам, спискам воспроизведения и т. Д. Как пользователь, вы можете искать музыку по любому из этих и других параметров, чтобы найти то, что ищете. Чтобы создать подобное приложение, вам понадобится программное обеспечение для управления вашей базой данных SQL, и это то, что делает MySQL.
Требуемые навыки SQL
Большинству организаций нужен кто-то со знанием SQL. Заработная плата на должностях, основанных на SQL, варьируется в зависимости от типа работы и опыта, но, как правило, выше среднего.
Некоторые должности, требующие навыков SQL, включают:
- Администратор базы данных (DBA ): это тот, кто специализируется на обеспечении правильного и эффективного хранения и управления данными. Базы данных наиболее ценны, когда они позволяют пользователям быстро и легко извлекать желаемые комбинации данных.
- Инженер по миграции баз данных : Этот человек специализируется на перемещении данных из различных баз данных на сервер SQL.
- Специалист по анализу данных : Эта должность очень похожа на должность аналитика данных, но перед специалистами по обработке данных обычно стоит задача обрабатывать данные в гораздо больших объемах и накапливать их с гораздо большей скоростью.
- Архитектор больших данных : Кто-то в этой роли создает продукты для обработки больших объемов данных.
Ключевые выводы
- Язык структурированных запросов (SQL) — стандартный и наиболее широко используемый язык программирования для реляционных баз данных.
- Он используется для управления и организации данных во всех видах систем, в которых существуют различные отношения данных.
- SQL — ценный язык программирования с хорошими карьерными перспективами.
Введение в SQL
SQL — стандартный язык для доступа к базам данных и управления ими.
Что такое SQL?
- SQL — это аббревиатура от языка структурированных запросов .
- SQL позволяет получать доступ к базам данных и управлять ими
- SQL стал стандартом Американского национального института стандартов (ANSI) в 1986 г. и Международной организации по стандартизации (ISO) в 1987
Что умеет SQL?
- SQL может выполнять запросы к базе данных
- SQL может извлекать данные из базы данных
- SQL может вставлять записи в базу данных
- SQL может обновлять записи в базе данных
- SQL может удалять записи из базы данных
- SQL может создавать новые базы данных
- SQL может создавать новые таблицы в базе данных
- SQL может создавать хранимые процедуры в базе данных
- SQL может создавать представления в базе данных
- SQL может устанавливать разрешения для таблиц, процедур и представлений
SQL — это Стандарт — НО….
Хотя SQL является стандартом ANSI / ISO, существуют разные версии языка SQL.
Однако, чтобы соответствовать стандарту ANSI, все они поддерживают, по крайней мере, основные команды (например, ВЫБЕРИТЕ
, ОБНОВЛЕНИЕ
, УДАЛИТЬ
, ВСТАВИТЬ
, ГДЕ
) аналогичным образом.
Примечание: Большинство программ баз данных SQL также имеют собственные проприетарные расширения в дополнение к стандарту SQL!
Использование SQL на вашем веб-сайте
Для создания веб-сайта, отображающего данные из базы данных, вам потребуется:
- Программа базы данных СУБД (т.е. MS Access, SQL Server, MySQL)
- Чтобы использовать язык сценариев на стороне сервера, например PHP или ASP.
- Чтобы использовать SQL для получения нужных данных
- Чтобы использовать HTML / CSS для стилизации страницы
РСУБД
RDBMS — это система управления реляционными базами данных.
СУБДявляется основой для SQL и для всех современных систем баз данных, таких как MS SQL Server, IBM DB2, Oracle, MySQL и Microsoft Access.
Данные в СУБД хранятся в объектах базы данных, называемых таблицами.Таблица — это набор связанных записей данных, состоящий из столбцов и строк.
Посмотрите в таблице «Клиенты»:
Каждая таблица разбита на более мелкие объекты, называемые полями. Поля в таблица клиентов состоит из идентификатора клиента, имени клиента, имени контакта, адреса, Город, почтовый индекс и страна. Поле — это столбец в таблице, предназначенный для поддержки конкретная информация о каждой записи в таблице.
Запись, также называемая строкой, — это каждая отдельная запись, существующая в таблице.Например, в приведенной выше таблице «Клиенты» 91 запись. Рекорд — это горизонтальный объект в таблице.
Столбец — это вертикальный объект в таблице, содержащий всю информацию. связанный с определенным полем в таблице.
Шпаргалка по SQL и синтаксис запросов | Sisense
Блог
SQL — один из самых мощных инструментов аналитика. В SQL Superstar мы даем вам действенные советы, которые помогут вам максимально эффективно использовать этот универсальный язык и создавать красивые и эффективные запросы.
Когда вы новичок в программировании на SQL, вы встретите множество сложных для поиска символьных операторов. Если вы склонны забывать, ~ называется тильда , вам интересно, почему в ваших строках так много% s, или вам трудно найти в Google, что означает символ (+) , где users.group_id (+) = group .id, это руководство для вас.
Операторы сравненияВы хорошо знакомы с операторами равенства и неравенства для равно, меньше и больше, чем быть =, <и>, но, возможно, вы не видели все варианты для указания не равно, не меньше и не больше.
Symbol | Operation |
! = | Не равно |
<> | Не равно |
!> | Не больше |
! менее |
Хотя некоторые базы данных, такие как sql-server, поддерживают не меньше и не больше, они не поддерживают аналогичный оператор не меньше или равно! <=.
Среди унарных операторов + и — есть дополнительный побитовый оператор для определения положительного или отрицательного числа.Побитовое not, ~, инвертирует каждый бит в вашем числе.
Символ | Эксплуатация | ||||||||||
+ | Положительный | ||||||||||
— | Отрицательный | ||||||||||
~ | Побитовый не |
Обозначение | Операция |
+ | Сложение |
— | Вычитание |
9018 9018 9018 9018 9018 9018 9 Умножение | по модулю |
Некоторые языки SL, такие как SQL Server, используют = для присваивания, в то время как другие, такие как MySQL и Postgres, используют: =. =
Другой способ манипулировать битами в SQL — использовать арифметический сдвиг бит.Эта операция «перемещает» биты в вашем числе влево или вправо и заполняет новые значения нулями. Битовый сдвиг влево — это простой способ умножения на степени 2, а битовый сдвиг вправо делит на степени 2. Например, 5 << 2 равно 20. Вы перемещаете биты с 101 на 10100, что является тем же результатом, что и умножение на четыре.
Символ | Работа |
<< | Битовый сдвиг влево |
>> | Битовый сдвиг вправо |
Числа в SQL ограничены фиксированным числом бит.Например, целочисленный тип будет иметь только 32 бита, и если вы немного сдвинете бит за 32-е значение, он будет исключен из числа. Как правило, если вы выполняете битовый сдвиг на число больше 32, он использует модуль по модулю: 7 << 34 ведет себя как 7 << 2.
Логическая логикаMySQL позволяет вам заменять символьные эквиваленты на и, или, а не в условных выражениях. Можно заменить
, где user_id <10, а не group_id = 3
с
где user_id <10 &&! group_id = 3
Symbol | Operation |
&& | Logical и |
|| | Логический или |
! | Логическое НЕ |
Работа со строками может быть незнакомой, если вы новичок в программировании или только что освоили SQL.Некоторые варианты SQL используют знакомый + для объединения строк, в то время как другие, такие как MySQL, используют ||. При сравнении строк с использованием оператора like% и _ действуют как символы сопоставления с подстановочными знаками. Например, «Data» соответствует D_t_ и% at%, в то время как только последний будет соответствовать группам данных. Вы можете прочитать более подробное введение в струнные здесь.
Symbol | Operation |
+ | Concatenation |
|| | Объединение |
+ = | Объединение и присвоение |
% | Соответствие 0 или более подстановочных знаков |
_ | Соответствие ровно 1 подстановочному знаку | 18 специальных символов |
Существует дополнительная разница между строками, заключенными в одинарные кавычки (‘) и двойные кавычки (“).Строковые литералы заключаются в «одинарные кавычки», а «двойные кавычки» обозначают идентификаторы, такие как имена таблиц и столбцов.
Регулярные выраженияРегулярные выражения заполнены эзотерическими символами со специальным использованием широкого диапазона символов, включая? для необязательного соответствия, {2} для повторения и заключения диапазонов символов в скобки: [A-Za-z0-9].
Чтобы узнать, как расшифровать регулярное выражение «. * ([0-9] +) [_-]? Ye? A? Rs (old)?» В SQL, ознакомьтесь с этим сообщением в блоге.
СчетчикВ запросах могут отображаться как count (1), так и count (*). Они взаимозаменяемы и оба подсчитывают количество выбранных строк.
Symbol | Operation |
(*) | Подсчет строк на группу |
(1) | Подсчет строк на группу |
Вы можете столкнуться с редкими случаями, когда счетчик применяется к определенной таблице - в этих случаях он учитывает поля, а не строки в таблице.Мы рекомендуем вам выбрать один и придерживаться его - между этими двумя форматами нет семантической разницы или разницы в производительности. Обратите внимание, что два счетчика здесь будут возвращать разные количества.
выбрать
считать(*)
, количество (группы. *)
из
пользователи
покинул группу
на users.group_id = groups.id
Преобразование типа
Помимо использования приведения, вы можете использовать :: для приведения значения к определенному типу.
выберите состав ('2016-12-25' как дату) как Рождество
становится
выберите '2016-12-25' :: дата как рождество
Символ | Эксплуатация |
:: | Преобразование типа |
Postgres Json
Postgres имеет отличную поддержку типов json, включая множество символьных операторов для извлечения данных из большого двоичного объекта json.
Symbol | Operation | ||
-> | Получить элемент json | ||
- >> | Получить элемент json как текст | ||
#> | Получить элемент | по пути 9019 >> | Получить элемент по пути как текст |
@> | Содержит | ||
<@ | Содержит | ||
? | Строка существует | ||
? | | Любая строка существует | ||
? & | Все строки существуют |
При определении переменных в MySQL они могут иметь префикс @ или @@.Одиночный @ позволяет определяемой пользователем переменной сохраняться за пределами запроса, который определяет переменные, а @@ является ссылкой на глобальное состояние, например @@ global.port.
Symbol | Operation |
@ | Переменная сеанса пользователя |
@@ | Системная переменная |
Oracle использует @ для запуска скриптов. Вы можете узнать больше здесь.
КомментарииВы можете использовать комментарии для включения текста, который не будет оцениваться как часть вашего sql-запроса.Стандартный набор токенов комментариев -, / *, * /, и MySQL дополнительно использует # для встроенных комментариев.
Symbol | Operation | ||||||||||
- | Встроенный комментарий | ||||||||||
# | Встроенный комментарий | ||||||||||
/ * | Комментарий блока |
Символ | Эксплуатация |
(+) | Наружное соединение |
Он в основном ведет себя так же, как внешнее соединение, но есть некоторые исключения, которые вы можете проверить в справочнике по языку Oracle.
Получите советы и рекомендации по SQL от наших экспертов :
Прочитайте большеКрис Мейер - менеджер по аналитическим разработкам в Sisense. Он имеет 8-летний опыт работы в области данных и аналитики в Ernst & Young и Soldsie. Он увлечен созданием современных стеков данных, которые открывают трансформационные идеи для бизнеса.
Что такое SQL (язык структурированных запросов)?
SQL (язык структурированных запросов) - это стандартизированный язык программирования, который используется для управления реляционными базами данных и выполнения различных операций с данными в них.Первоначально созданный в 1970-х годах, SQL регулярно используется не только администраторами баз данных, но и разработчиками, пишущими сценарии интеграции данных, и аналитиками данных, которые хотят создавать и выполнять аналитические запросы.
Использование SQL включает изменение таблиц базы данных и структур индексов; добавление, обновление и удаление строк данных; и получение подмножеств информации из базы данных для приложений обработки транзакций и аналитики. Запросы и другие операции SQL принимают форму команд, записанных в виде операторов - обычно используемые операторы SQL включают в себя выбор, добавление, вставку, обновление, удаление, создание, изменение и усечение.
SQL стал де-факто стандартным языком программирования для реляционных баз данных после их появления в конце 1970-х - начале 1980-х годов. Реляционные системы, также известные как базы данных SQL, состоят из набора таблиц, содержащих данные в строках и столбцах. Каждый столбец в таблице соответствует категории данных, например имени или адресу клиента, в то время как каждая строка содержит значение данных для пересекающегося столбца.
Стандартные и собственные расширения SQLОфициальный стандарт SQL был принят Американским национальным институтом стандартов (ANSI) в 1986 году, а затем Международной организацией по стандартизации, известной как ISO, в 1987 году.С тех пор двумя органами по разработке стандартов было выпущено более полдюжины совместных обновлений стандарта; на момент написания этой статьи самой последней версией является SQL: 2011, утвержденная в этом году.
Как проприетарные системы управления реляционными базами данных, так и системы управления реляционными базами данных с открытым исходным кодом, построенные на базе SQL, доступны для использования организациями. В их числе:
Однако многие из этих продуктов для баз данных поддерживают SQL с собственными расширениями стандартного языка для процедурного программирования и других функций.Например, Microsoft предлагает набор расширений под названием Transact-SQL (T-SQL), а расширенная версия стандарта Oracle - PL / SQL. В результате различные варианты SQL, предлагаемые поставщиками, не полностью совместимы друг с другом.
Команды и синтаксис SQL КомандыSQL делятся на несколько различных типов, в том числе операторы языка обработки данных (DML) и языка определения данных (DDL), средства управления транзакциями и меры безопасности. Словарь DML используется для извлечения данных и управления ими, а операторы DDL предназначены для определения и изменения структур базы данных.Элементы управления транзакциями помогают управлять обработкой транзакций, гарантируя, что транзакции будут либо завершены, либо откатаны в случае возникновения ошибок или проблем. Операторы безопасности используются для управления доступом к базе данных, а также для создания пользовательских ролей и разрешений.
Синтаксис SQL - это формат кодирования, используемый при написании операторов. На рисунке 1 показан пример оператора DDL, написанного на языке Microsoft T-SQL для изменения таблицы базы данных в SQL Server 2016:
. Рисунок 1. Пример кода T-SQL в SQL Server 2016.Это код для опции ALTER TABLE WITH (ONLINE = ON | OFF). Инструменты SQL-on-Hadoop Механизмы запросовSQL-on-Hadoop - это новое ответвление SQL, которое позволяет организациям с архитектурой больших данных, построенной на системах Hadoop, использовать его преимущества вместо того, чтобы использовать более сложные и менее знакомые языки, в частности, среду программирования MapReduce. для разработки приложений пакетной обработки.
Более дюжины инструментов SQL-on-Hadoop стали доступны через поставщиков распространения Hadoop и других поставщиков; многие из них представляют собой программное обеспечение с открытым исходным кодом или коммерческие версии таких технологий.Кроме того, механизм обработки Apache Spark, который часто используется вместе с Hadoop, включает модуль Spark SQL, который аналогичным образом поддерживает программирование на основе SQL.
В целом, SQL-on-Hadoop все еще является новой технологией, и большинство доступных инструментов не поддерживают все функции, предлагаемые в реляционных реализациях SQL. Но они становятся регулярным компонентом развертываний Hadoop, поскольку компании стремятся привлечь разработчиков и аналитиков данных с навыками SQL для программирования приложений с большими данными.
Что такое SQL? Изучите основы SQL, полную форму SQL и способы использования
Что такое SQL?
SQL - стандартный язык для работы с реляционными базами данных. SQL можно использовать для вставки, поиска, обновления и удаления записей базы данных. SQL может выполнять множество других операций, включая оптимизацию и обслуживание баз данных.
Полная форма SQL
SQL означает язык структурированных запросов, произносится как «S-Q-L» или иногда как «See-Quel» ... Реляционные базы данных, такие как MySQL Database, Oracle, MS SQL Server, Sybase и т. Д.используйте ANSI SQL.
Что такое SQL?Как использовать SQL
Пример кода SQL:
SELECT * FROM Members WHERE Age> 30
Синтаксисы SQL, используемые в разных базах данных, почти одинаковы, хотя некоторые СУБД используют несколько разных команд и даже собственные синтаксисы SQL.
Щелкните здесь, если видео недоступно
Для чего используется SQL?
Вот важные причины для использования SQL
- Он помогает пользователям получать доступ к данным в системе СУБД.
- Помогает описать данные.
- Это позволяет вам определять данные в базе данных и управлять этими конкретными данными.
- С помощью SQL вы можете создавать и удалять базы данных и таблицы.
- SQL предлагает вам использовать функцию в базе данных, создать представление и хранимую процедуру.
- Вы можете установить разрешения для таблиц, процедур и представлений.
Краткая история SQL
Вот важные вехи из истории SQL:
- 1970 - Dr.Эдгар Ф. «Тед» Кодд описал реляционную модель для баз данных.
- 1974 - Появился язык структурированных запросов.
- 1978 - IBM выпустила продукт под названием System / R.
- 1986 - IBM разработала прототип реляционной базы данных, стандартизированной ANSI.
- 1989 - Выпущена первая версия SQL
- 1999 - Запущен SQL 3 с такими функциями, как триггеры, объектная ориентация и т. Д.
- SQL 2003 - оконные функции, функции, связанные с XML и т. Д.
- SQL 2006 - Поддержка языка запросов XML
- SQL 2011 - улучшенная поддержка временных баз данных
Типы операторов SQL
Вот пять типов широко используемых SQL-запросов.
- Язык определения данных (DDL)
- Язык управления данными (DML)
- Язык управления данными (DCL)
- Язык управления транзакциями (TCL)
- Язык запросов данных (DQL)
Список команд SQL
Вот список некоторых из наиболее часто используемых команд SQL :
- CREATE - определяет схему структуры базы данных
- INSERT - вставляет данные в строку таблицы
- UPDATE - обновляет данные в база данных
- DELETE - удаляет одну или несколько строк из таблицы
- SELECT - выбирает атрибут на основе условия, описанного в предложении WHERE
- DROP - удаляет таблицы и базы данных
SQL Process
Если вы хотите выполнить команду SQL для любой системы СУБД, вам нужно найти лучший метод выполнения вашего запроса, d Механизм SQL определяет, как интерпретировать эту конкретную задачу.
Важные компоненты, включенные в этот процесс SQL:
- Механизм запросов SQL
- Механизмы оптимизации
- Диспетчер запросов
- Классический механизм запросов
Классический механизм запросов позволяет управлять всеми не-SQL запросами.
Процесс SQLСтандарты SQL
SQL - это язык для работы с базами данных. Он включает создание базы данных, удаление, выборку строк, изменение строк и т. Д. SQL - это стандартный язык ANSI (Американский национальный институт стандартов).Стандарты SQL разделены на несколько частей.
Вот некоторые важные части стандартов SQL:
Часть | Описание |
---|---|
Часть 1 - SQL / Framework | Он предлагает логические концепции. |
Часть 2 - SQL / Foundation | Включает центральные элементы SQL. |
Часть 3 - SQL / CLI | Этот стандарт включает центральные элементы SQL. |
Часть 4 - Постоянно хранимые модули | Сохраненные подпрограммы, внешние подпрограммы и расширения процедурного языка для SQL. |
Часть 9 - Управление внешними данными | Добавляет синтаксис и определения к SQL / Foundation, которые обеспечивают доступ SQL к источникам данных (файлам), отличным от SQL. |
Часть 10 - Привязки объектного языка | Привязки объектного языка: Эта часть определяет синтаксис и семантику встраивания SQL в Java ™. |
Часть 11 - Схема SQL / | Схемы информации и определений |
Часть 12 - SQL / Репликация | Этот проект начался в 2000 году.Эта часть помогает определить синтаксис и семантику, позволяющие определять схемы и правила репликации. |
Часть 13 - Подпрограммы и типы Java | Подпрограммы и типы Java: Эта часть подпрограмм, использующих язык программирования Java. |
Часть 14 - SQL / XML | SQL и XML |
Часть 15 - SQL / MDA | Обеспечение поддержки SQL для многомерных массивов |
Элементы языка SQL
Вот важные элементы Язык SQL:
- Ключевые слова: Каждый оператор SQL содержит одно или несколько ключевых слов.
- Идентификаторы: Идентификаторы - это имена объектов в базе данных, например идентификаторы пользователей, таблицы и столбцы.
- Строки: Строки могут быть как буквальными строками, так и выражениями с типами данных VARCHAR или CHAR.
- Выражения: Выражения состоят из нескольких элементов, таких как константы, операторы SQL, имена столбцов и подзапросы.
- Условия поиска: Условия используются для выбора подмножества строк из таблицы или используются для управления операторами, такими как оператор IF, для определения управления потоком.
- Специальные значения: Специальные значения следует использовать в выражениях и в качестве значений столбцов по умолчанию при построении таблиц.
- Переменные: Sybase IQ поддерживает локальные переменные, глобальные переменные и переменные уровня соединения.
- Комментарии: Комментарий - это еще один элемент SQL, который используется для присоединения пояснительного текста к операторам SQL или блокам операторов. Сервер базы данных не выполняет никаких комментариев.
- NULL Значение: Используйте NULL, что помогает указать значение, которое неизвестно, отсутствует или неприменимо.
Что такое база данных в SQL?
База данных состоит из набора таблиц, в которых хранится подробный набор структурированных данных. Это таблица, содержащая набор строк, называемых записями или кортежами, и столбцов, которые также называются атрибутами.
Каждый столбец в таблице предназначен для хранения информации определенного типа, например имен, дат, долларовых сумм и чисел.
Что такое NoSQL?
NoSQL - новая категория систем управления базами данных.Его основная характеристика - это не приверженность концепциям реляционных баз данных. NoSQL означает «Не только SQL». Концепция баз данных NoSQL выросла с появлением таких интернет-гигантов, как Google, Facebook, Amazon и т. Д., Которые имеют дело с гигантскими объемами данных.
Когда вы используете реляционную базу данных для больших объемов данных, система начинает замедляться с точки зрения времени отклика. Чтобы преодолеть это, мы могли «масштабировать» наши системы, модернизировав существующее оборудование. Альтернативой вышеуказанной проблеме было бы распределение нагрузки нашей базы данных на несколько хостов по мере увеличения нагрузки.Это известно как «горизонтальное масштабирование».
База данных NoSQL - это нереляционные базы данных , которые масштабируются лучше, чем реляционные базы данных, и разработаны с учетом веб-приложений. Они не используют SQL для запроса данных и не следуют строгим схемам, например реляционным моделям. В NoSQL функции ACID (атомарность, согласованность, изоляция, долговечность) не всегда гарантируются.
Почему имеет смысл изучать SQL после NoSQL?
Выявив преимущества баз данных NoSQL, которые масштабируются лучше, чем реляционные модели, вы, возможно, думаете, , почему все еще нужно изучать базу данных SQL? Ну, базы данных NoSQL - это узкоспециализированные системы, у которых есть свои особенности использования и ограничения.NoSQL больше подходит для тех, кто обрабатывает огромные объемы данных. Подавляющее большинство используют реляционные базы данных и связанные с ними инструменты.
Реляционные базы данных имеют следующие преимущества перед базами данных NoSQL.
- SQL (реляционные) базы данных имеют зрелую модель хранения и управления данными. Это очень важно для корпоративных пользователей.
- База данных SQL поддерживает понятие представлений, которые позволяют пользователям видеть только те данные, которые им разрешено просматривать. Данные, которые им не разрешено просматривать, скрыты от них.
- Базы данных SQL поддерживают хранимую процедуру SQL, которая позволяет разработчикам баз данных реализовать часть бизнес-логики в базе данных.
- Базы данных SQL имеют лучшие модели безопасности по сравнению с базами данных NoSQL.
Мир не отказался от использования реляционных баз данных. Существует растущий спрос на специалистов, которые могут работать с реляционными базами данных. Таким образом, изучение баз данных и основ SQL все еще имеет смысл.
Лучшая книга для изучения SQL
Вот несколько лучших книг по SQL:
- Учебное пособие по SQL для начинающих
В этом учебном пособии по SQL для начинающих в формате PDF вы изучите основные концепции баз данных, команды MS-SQL и продвинутый уровень. такие темы, как соединения SQL, создание, добавление и удаление таблицы и т. д. КУПИТЬ
- SQL за 10 минут:
Эта книга SQL предлагает полноцветные примеры кода, которые помогут вам понять, как структурированы операторы SQL. Вы также узнаете о ярлыках и решениях. КУПИТЬ СЕЙЧАС
- Поваренная книга SQL:
В этой книге по SQL вы сможете изучить технику перемещения по строке, которая позволяет вам использовать SQL для анализа символов, слов или элементов строки с разделителями. КУПИТЬ
- SQL: полный справочник
Эта книга включает важные темы Microsoft SQL, такие как оконные функции, преобразование строк в столбцы, обратное преобразование столбцов в строки. КУПИТЬ
- Карманное руководство по SQL: Руководство по использованию SQL
В книге рассказывается, как системы используют функции SQL, синтаксис регулярных выражений и функции преобразования типов. КУПИТЬ СЕЙЧАС
Дополнительные книги по SQL - Щелкните здесь
Сводка / ключевые выводы
- Язык SQL используется для запроса базы данных
- Что означает SQL или что означает SQL: язык структурированных запросов
- SQL Используется для:
- Система РСУБД
- Описание, определение и управление данными
- Создание и удаление баз данных и таблиц
- Типы операторов SQL: DDL, DML, DCL, TCL, DQL
- Список команд SQL : CREATE, INSERT, UPDATE, DELETE, SELECT, DROP
- Элементы языка SQL: ключевые слова, идентификаторы, строки, выражения, переменные и т. Д.
- NoSQL: означает «Не только SQL» - это новая категория систем управления базами данных.
- База данных имеет много преимуществ, когда дело доходит до хранения данных, по сравнению с традиционными системами на основе плоских файлов.
Основы SQL - Практика Учебное пособие по SQL для начинающих Анализирование совместного использования велосипедов
В этом руководстве мы будем работать с набором данных из службы проката велосипедов Hubway, который включает данные о более чем 1,5 миллионах поездок, совершенных с помощью этой службы.
Прежде чем приступить к написанию некоторых собственных запросов на SQL, мы начнем с небольшого изучения баз данных, того, что они такое и почему мы их используем.
Если вы хотите продолжить, вы можете загрузить файл hubway.db
здесь (130 МБ).
Основы SQL: реляционные базы данных
Реляционная база данных - это база данных, которая хранит связанную информацию в нескольких таблицах и позволяет запрашивать информацию в нескольких таблицах одновременно.
Проще понять, как это работает, на примере. Представьте, что вы работаете в бизнесе и хотите отслеживать информацию о продажах.Вы можете настроить электронную таблицу в Excel со всей информацией, которую вы хотите отслеживать, в виде отдельных столбцов: номер заказа, дата, сумма к оплате, номер для отслеживания отгрузки, имя клиента, адрес клиента и номер телефона клиента.
Эта установка отлично подойдет для отслеживания информации, которая вам нужна для начала, но когда вы начнете получать повторные заказы от одного и того же клиента, вы обнаружите, что их имя, адрес и номер телефона хранятся в нескольких строках вашей электронной таблицы.
По мере роста вашего бизнеса и увеличения количества отслеживаемых заказов эти избыточные данные будут занимать ненужное место и в целом снизят эффективность вашей системы отслеживания продаж. Вы также можете столкнуться с проблемами с целостностью данных. Например, нет гарантии, что каждое поле будет заполнено правильным типом данных или что имя и адрес будут вводиться каждый раз точно так же.
С реляционной базой данных, подобной той, что показана на диаграмме выше, вы избегаете всех этих проблем.Вы можете настроить две таблицы: одну для заказов и одну для клиентов. Таблица «клиенты» будет включать уникальный идентификационный номер для каждого клиента, а также имя, адрес и номер телефона, которые мы уже отслеживаем. Таблица «заказы» будет включать номер вашего заказа, дату, сумму к оплате, номер отслеживания и вместо отдельного поля для каждого элемента данных о клиенте будет иметь столбец для идентификатора клиента.
Это позволяет нам запрашивать всю информацию о клиенте для любого конкретного заказа, но нам нужно сохранить ее в нашей базе данных только один раз, а не выводить ее повторно для каждого отдельного заказа.
Наш набор данных
Начнем с рассмотрения нашей базы данных. В базе есть две таблицы, поездок
и станций
. Для начала просто посмотрим на таблицу поездок
. Он содержит следующие столбцы:
-
id
- Уникальное целое число, которое служит ссылкой для каждой поездки -
duration
- Продолжительность поездки в секундах -
start_date
- Дата и время начала поездки -
start_station
- Целое число, которое соответствует столбцуid
в таблицеStation
для станции, с которой началась поездка в -
end_date
- Дата и время окончания поездки -
end_station
- 'id' станции, на которой поездка закончилась на -
bike_number
- Уникальный идентификатор Hubway для велосипеда, использованного в поездке -
sub_type
- Тип подписки пользователя.«Зарегистрированные»
для пользователей с членством,«Обычные»
для пользователей без членства -
zip_code
- Почтовый индекс пользователя (доступен только для зарегистрированных пользователей) -
Birth_date
- Год рождения пользователя (доступно только для зарегистрированных участников) -
пол
- Пол пользователя (доступно только для зарегистрированных пользователей)
Наш анализ
С этой информацией и командами SQL, которые мы вскоре узнаем, вот несколько вопросов, на которые мы попытаемся ответить в ходе этого поста:
- Какова была самая длинная поездка?
- Сколько поездок совершили «зарегистрированные» пользователи?
- Какая была средняя продолжительность поездки?
- Бывают ли длительные поездки зарегистрированные или случайные пользователи?
- Какой велосипед использовался для большинства поездок?
- Какова средняя продолжительность поездок пользователей старше 30 лет?
Для ответа на эти вопросы мы будем использовать следующие команды SQL:
-
ВЫБРАТЬ
-
ГДЕ
-
ПРЕДЕЛ
-
ЗАКАЗАТЬ ПО
-
ГРУППА ПО
-
И
-
ИЛИ
-
МИН
-
МАКС
-
СРЕДНЯЯ
-
СУММ
-
СЧЕТ
Установка и настройка
Для целей этого руководства мы будем использовать систему баз данных под названием SQLite3.SQLite входит в состав Python начиная с версии 2.5, поэтому, если у вас установлен Python, у вас почти наверняка будет SQLite. Python и библиотеку SQLite3 можно легко установить и настроить с помощью Anaconda, если у вас их еще нет.
Использование Python для запуска нашего кода SQL позволяет нам импортировать результаты в фреймворк Pandas, чтобы упростить отображение наших результатов в удобном для чтения формате. Это также означает, что мы можем выполнять дальнейший анализ и визуализацию данных, которые мы извлекаем из базы данных, хотя это выходит за рамки данного руководства.
В качестве альтернативы, если мы не хотим использовать или устанавливать Python, мы можем запустить SQLite3 из командной строки. Просто загрузите «предварительно скомпилированные двоичные файлы» с веб-страницы SQLite3 и используйте следующий код для открытия базы данных:
~ $ sqlite hubway.db Версия SQLite 3.14.0 2016-07-26 15: 17: 14 Введите ".help" для использования hints.sqlite>
Отсюда мы можем просто ввести запрос, который хотим запустить, и мы увидим данные, возвращенные в окне нашего терминала.
Альтернативой использованию терминала является подключение к базе данных SQLite через Python.Это позволит нам использовать записную книжку Jupyter, чтобы мы могли видеть результаты наших запросов в аккуратно отформатированной таблице.
Для этого мы определим функцию, которая принимает наш запрос (сохраненный в виде строки) в качестве входных данных и отображает результат в виде отформатированного фрейма данных:
импорт sqlite3
импортировать панд как pd
db = sqlite3.connect ('hubway.db')
def run_query (запрос):
вернуть pd.read_sql_query (запрос, db)
Конечно, нам не обязательно использовать Python с SQL. Если вы уже являетесь программистом R, наш курс «Основы SQL для пользователей R» станет отличным местом для начала.ВЫБРАТЬ
Первая команда, с которой мы будем работать, - это SELECT
. SELECT
будет основой почти каждого написанного нами запроса - он сообщает базе данных, какие столбцы мы хотим видеть. Мы можем указать столбцы по имени (через запятую) или использовать подстановочный знак *
для возврата каждого столбца в таблице.
Помимо столбцов, которые мы хотим получить, мы также должны указать базе данных, из какой таблицы их получить. Для этого мы используем ключевое слово FROM
, за которым следует имя таблицы.Например, если бы мы хотели видеть start_date
и bike_number
для каждой поездки в таблице trips
, мы могли бы использовать следующий запрос:
ВЫБРАТЬ start_date, bike_number ИЗ поездок;
В этом примере мы начали с команды SELECT
, чтобы база данных знала, что мы хотим, чтобы она нашла нам некоторые данные. Затем мы сообщили базе данных, что нас интересуют столбцы start_date
и bike_number
.Наконец, мы использовали FROM
, чтобы сообщить базе данных, что столбцы, которые мы хотим видеть, являются частью таблицы trips
.
Одна важная вещь, о которой следует помнить при написании SQL-запросов, заключается в том, что мы хотим заканчивать каждый запрос точкой с запятой (;
). Не каждая база данных SQL на самом деле требует этого, но некоторые требуют, поэтому лучше сформировать эту привычку.
ПРЕДЕЛ
Следующая команда, которую нам нужно знать, прежде чем мы начнем выполнять запросы в нашей базе данных Hubway, - это LIMIT
. LIMIT
просто сообщает базе данных, сколько строк вы хотите вернуть.
Запрос SELECT
, который мы рассмотрели в предыдущем разделе, будет возвращать запрошенную информацию для каждой строки в таблице trips
, но иногда это может означать большой объем данных. Мы можем не захотеть всего этого. Если бы вместо этого мы хотели видеть start_date
и bike_number
для первых пяти поездок в базе данных, мы могли бы добавить LIMIT
к нашему запросу следующим образом:
ВЫБРАТЬ start_date, bike_number ИЗ поездок LIMIT 5;
Мы просто добавили команду LIMIT
, а затем число, представляющее количество строк, которые мы хотим вернуть.В этом случае мы использовали 5, но вы можете заменить его любым числом, чтобы получить соответствующий объем данных для проекта, над которым вы работаете.
Мы будем часто использовать LIMIT
в наших запросах к базе данных Hubway в этом руководстве - таблица trips
содержит более 1,5 миллионов строк данных, и нам, конечно, не нужно отображать их все!
Давайте запустим наш первый запрос к базе данных Hubway. Сначала мы сохраним наш запрос в виде строки, а затем воспользуемся функцией, которую мы определили ранее, чтобы запустить его в базе данных.Взгляните на следующий пример:
query = 'SELECT * FROM отключает LIMIT 5;'
run_query (запрос)
id | длительность | start_date | start_station | end_date | end_station | номер велосипеда | под_тип | почтовый индекс | дата рождения | пол | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 9 | 28.07.2011 10:12:00 | 23 | 28.07.2011 10:12:00 | 23 | B00468 | Зарегистрировано | '97217 | 1976 г.0 | Мужской |
1 | 2 | 220 | 28.07.2011 10:21:00 | 23 | 28.07.2011 10:25:00 | 23 | B00554 | Зарегистрировано | '02215 | 1966,0 | Мужской |
2 | 3 | 56 | 28.07.2011 10:33:00 | 23 | 28.07.2011 10:34:00 | 23 | B00456 | Зарегистрировано | '02108 | 1943 г.0 | Мужской |
3 | 4 | 64 | 28.07.2011 10:35:00 | 23 | 28.07.2011 10:36:00 | 23 | B00554 | Зарегистрировано | '02116 | 1981,0 | Женский |
4 | 5 | 12 | 28.07.2011 10:37:00 | 23 | 28.07.2011 10:37:00 | 23 | B00554 | Зарегистрировано | '97214 | 1983.0 | Женский |
В этом запросе *
используется как подстановочный знак вместо указания возвращаемых столбцов. Это означает, что команда SELECT
дала нам каждый столбец в таблице поездок
. Мы также использовали функцию LIMIT
, чтобы ограничить вывод первыми пятью строками таблицы.
Вы часто будете видеть, что люди используют ключевые слова команды в своих запросах (соглашение, которому мы будем следовать в этом руководстве), но это в основном вопрос предпочтений.Использование заглавных букв упрощает чтение кода, но на самом деле никоим образом не влияет на работу кода. Если вы предпочитаете писать запросы с командами в нижнем регистре, запросы по-прежнему будут выполняться правильно.
В нашем предыдущем примере возвращены все столбцы в таблице поездок
. Если бы нас интересовали только столбцы duration
и start_date
, мы могли бы заменить подстановочный знак именами столбцов следующим образом:
query = 'ВЫБЕРИТЕ длительность, начальную_дату ИЗ ПРЕДЕЛ 5 отключений'
run_query (запрос)
длительность | start_date | |
---|---|---|
0 | 9 | 28.07.2011 10:12:00 |
1 | 220 | 28.07.2011 10:21:00 |
2 | 56 | 28.07.2011 10:33:00 |
3 | 64 | 28.07.2011 10:35:00 |
4 | 12 | 28.07.2011 10:37:00 |
ЗАКАЗАТЬ В
Последняя команда, которую нам нужно знать, прежде чем мы сможем ответить на первый из наших вопросов, - это ORDER BY
.Эта команда позволяет нам отсортировать базу данных по заданному столбцу.
Чтобы использовать его, мы просто указываем имя столбца, по которому хотим выполнить сортировку. По умолчанию ORDER BY
сортируется в порядке возрастания. Если мы хотим указать, в каком порядке база данных должна быть отсортирована, мы можем добавить ключевое слово ASC
для возрастания или DESC
для убывания.
Например, если мы хотим отсортировать таблицу поездок
от самой короткой продолжительности
к самой длинной, мы могли бы добавить в наш запрос следующую строку:
ЗАКАЗАТЬ ПО продолжительности ASC
С помощью команд SELECT
, LIMIT
и ORDER BY
в нашем репертуаре мы можем теперь попытаться ответить на наш первый вопрос: Какова была продолжительность самой продолжительной поездки?
Чтобы ответить на этот вопрос, полезно разбить его на разделы и определить, какие команды нам понадобятся для решения каждой части.
Сначала нам нужно извлечь информацию из столбца длительности
таблицы поездок
. Затем, чтобы определить, какая поездка самая длинная, мы можем отсортировать столбец длительность
в порядке убывания. Вот как мы можем проработать это, чтобы придумать запрос, который получит информацию, которую мы ищем:
- Используйте
SELECT
для полученияпродолжительности
столбцаFROM
отключений
таблица - Используйте
ORDER BY
для сортировки столбца продолжительностии используйте ключевое слово
DESC
, чтобы указать, что вы хотите отсортировать в порядке убывания - Используйте
LIMIT
, чтобы ограничить вывод одной строкой
Использование этих команд таким образом вернет единственную строку с самой длинной продолжительностью, которая даст нам ответ на наш вопрос.
Еще одно замечание - по мере того, как ваши запросы добавляют больше команд и усложняются, вам может быть легче читать, если вы разделите их на несколько строк. Это, как и использование заглавных букв, зависит от личных предпочтений. Это не влияет на выполнение кода (система просто считывает код с самого начала до точки с запятой), но может сделать ваши запросы более понятными и понятными. В Python мы можем разделить строку на несколько строк, используя тройные кавычки.
Давайте продолжим и запустим этот запрос и выясним, как долго длилась самая длинная поездка.
запрос = '' '
ВЫБЕРИТЕ ДЛИТЕЛЬНОСТЬ ИЗ поездок
ЗАКАЗАТЬ ПО длительности DESC
LIMIT 1;
'' '
run_query (запрос)
Теперь мы знаем, что самая длинная поездка длилась 9999 секунд, или чуть более 166 минут. Однако при максимальном значении 9999 мы не знаем, действительно ли это длина самой длинной поездки или база данных была настроена только для четырехзначного числа.
Если правда, что база данных сокращает особенно длинные поездки, то мы можем ожидать увидеть много поездок на 9999 секундах, где они достигают предела.Давайте попробуем выполнить тот же запрос, что и раньше, но отрегулируем LIMIT
, чтобы вернуть 10 самых высоких значений длительности, чтобы проверить, так ли это:
запрос = '' '
ВЫБЕРИТЕ ДЛИТЕЛЬНОСТЬ ОТ поездок
ЗАКАЗАТЬ ПО длительности DESC
ПРЕДЕЛ 10
'' '
run_query (запрос)
длительность | |
---|---|
0 | 9999 |
1 | 9998 |
2 | 9998 |
3 | 9997 |
4 | 9996 |
5 | 9996 |
6 | 9995 |
7 | 9995 |
8 | 9994 |
9 | 9994 |
Что мы видим здесь, так это то, что на 9999 не так много поездок, поэтому не похоже, что мы сокращаем верхний предел нашей продолжительности, но все же трудно сказать, является ли это реальная длина поездка или просто максимально допустимое значение.
Hubway взимает дополнительную плату за поездки продолжительностью более 30 минут (кто-то, кто держит велосипед в течение 9999 секунд, должен будет заплатить дополнительные 25 долларов США), поэтому вполне вероятно, что они решили, что 4 цифры будет достаточно для отслеживания большинства поездок.
ГДЕ
Предыдущие команды отлично подходят для извлечения отсортированной информации для определенных столбцов, но что, если есть определенное подмножество данных, которые мы хотим просмотреть? Вот где появляется WHERE
. Команда WHERE
позволяет нам использовать логический оператор, чтобы указать, какие строки должны быть возвращены.Например, вы можете использовать следующую команду, чтобы возвращать информацию о каждой поездке на велосипеде B00400
:
ГДЕ bike_number = "B00400"
Вы также заметите, что в этом запросе используются кавычки. Это потому, что bike_number
хранится в виде строки. Если столбец содержит числовые типы данных, в кавычках нет необходимости.
Давайте напишем запрос, который использует WHERE
для возврата каждого столбца в таблице поездок
для каждой строки с продолжительностью
дольше 9990 секунд:
запрос = '' '
ВЫБРАТЬ * ИЗ поездок
ГДЕ длительность> 9990;
'' '
run_query (запрос)
id | длительность | start_date | start_station | end_date | end_station | номер велосипеда | под_тип | почтовый индекс | дата рождения | пол | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 4768 | 9994 | 2011-08-03 17:16:00 | 22 | 2011-08-03 20:03:00 | 24 | B00002 | Повседневный | |||
1 | 8448 | 9991 | 2011-08-06 13:02:00 | 52 | 2011-08-06 15:48:00 | 24 | B00174 | Повседневный | |||
2 | 11341 | 9998 | 2011-08-09 10:42:00 | 40 | 2011-08-09 13:29:00 | 42 | B00513 | Повседневный | |||
3 | 24455 | 9995 | 2011-08-20 12:20:00 | 52 | 2011-08-20 15:07:00 | 17 | B00552 | Повседневный | |||
4 | 55771 | 9994 | 14.09.2011 15:44:00 | 40 | 14.09.2011 18:30:00 | 40 | B00139 | Повседневный | |||
5 | 81191 | 9993 | 2011-10-03 11:30:00 | 22 | 2011-10-03 14:16:00 | 36 | B00474 | Повседневный | |||
6 | 89335 | 9997 | 2011-10-09 02:30:00 | 60 | 2011-10-09 05:17:00 | 45 | B00047 | Повседневный | |||
7 | 124500 | 9992 | 2011-11-09 09:08:00 | 22 | 2011-11-09 11:55:00 | 40 | B00387 | Повседневный | |||
8 | 133967 | 9996 | 2011-11-19 13:48:00 | 4 | 2011-11-19 16:35:00 | 58 | B00238 | Повседневный | |||
9 | 147451 | 9996 | 23.03.2012 14:48:00 | 35 | 23.03.2012 17:35:00 | 33 | B00550 | Повседневный | |||
10 | 315737 | 9995 | 2012-07-03 18:28:00 | 12 | 2012-07-03 21:15:00 | 12 | B00250 | Зарегистрировано | '02120 | 1964 | Мужской |
11 | 319597 | 9994 | 05.07.2012 11:49:00 | 52 | 05.07.2012 14:35:00 | 55 | B00237 | Повседневный | |||
12 | 416523 | 9998 | 2012-08-15 12:11:00 | 54 | 15.08.2012 14:58:00 | 80 | B00188 | Повседневный | |||
13 | 541247 | 9999 | 26-09-2012 18:34:00 | 54 | 26.09.2012 21:21:00 | 54 | T01078 | Повседневный |
Как мы видим, этот запрос вернул 14 различных поездок, каждая длительностью 9990 секунд или более.Что выделяется в этом запросе, так это то, что все результаты, кроме одного, имеют sub_type
из «Случайный»
. Возможно, это показатель того, что «зарегистрированных»
пользователей больше осведомлены о дополнительных сборах за дальние поездки. Возможно, Hubway сможет лучше донести свою структуру ценообразования до обычных пользователей, чтобы помочь им избежать дополнительных расходов.
Мы уже видим, как команда SQL даже для начинающих может помочь нам ответить на бизнес-вопросы и найти понимание в наших данных.
Возвращаясь к WHERE
, мы также можем объединить несколько логических тестов в нашем предложении WHERE
, используя AND
или OR
. Если, например, в нашем предыдущем запросе мы хотели вернуть только поездки с продолжительностью
более 9990 секунд, которые также имели подтип , равный
, зарегистрированный, мы могли бы использовать И
, чтобы указать оба условия.
Вот еще одна личная рекомендация по выбору: используйте круглые скобки для разделения каждого логического теста, как показано в блоке кода ниже.Это не является строго обязательным для работы кода, но круглые скобки упрощают понимание ваших запросов по мере увеличения сложности.
Теперь давайте запустим этот запрос. Мы уже знаем, что он должен возвращать только один результат, поэтому будет легко убедиться, что мы все правильно поняли:
запрос = '' '
ВЫБРАТЬ * ИЗ поездок
ГДЕ (продолжительность> = 9990) И (sub_type = "Зарегистрировано")
ЗАКАЗАТЬ ПО длительности DESC;
'' '
run_query (запрос)
id | длительность | start_date | start_station | end_date | end_station | номер велосипеда | под_тип | почтовый индекс | дата рождения | пол | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 315737 | 9995 | 2012-07-03 18:28:00 | 12 | 2012-07-03 21:15:00 | 12 | B00250 | Зарегистрировано | '02120 | 1964 г.0 | Мужской |
Следующий вопрос, который мы задали в начале поста, - «Сколько поездок совершили« зарегистрированные »пользователи?» Чтобы ответить на него, мы могли бы выполнить тот же запрос, что и выше, и изменить выражение WHERE
, чтобы вернуть все строки, где sub_type
равен 'Registered'
, а затем подсчитать их.
Однако на самом деле в SQL есть встроенная команда для этого подсчета: COUNT
.
COUNT
позволяет перенести вычисления в базу данных и избавить нас от необходимости писать дополнительные скрипты для подсчета результатов. Чтобы использовать его, мы просто включаем COUNT (column_name)
вместо (или в дополнение) столбцов, которые вы хотите SELECT
, например:
ВЫБРАТЬ СЧЕТЧИК (id)
ИЗ поездок
В этом случае не имеет значения, какой столбец мы выбираем для подсчета, потому что в каждом столбце должны быть данные для каждой строки в нашем запросе.Но иногда в запросе могут отсутствовать (или быть "нулевые") значения для некоторых строк. Если мы не уверены, содержит ли столбец нулевые значения, мы можем запустить наш COUNT
в столбце id
- столбец id
никогда не будет нулевым, поэтому мы можем быть уверены, что наш счетчик ничего не пропустил.
Мы также можем использовать COUNT (1)
или COUNT (*)
для подсчета каждой строки в нашем запросе. Стоит отметить, что иногда нам может потребоваться запустить COUNT
для столбца с нулевыми значениями.Например, нам может потребоваться узнать, сколько строк в нашей базе данных имеют отсутствующие значения для столбца.
Давайте взглянем на запрос, чтобы ответить на наш вопрос. Мы можем использовать SELECT COUNT (*)
для подсчета общего количества возвращенных строк и WHERE sub_type = "Registered"
, чтобы убедиться, что мы подсчитываем только поездки, совершенные зарегистрированными пользователями.
запрос = '' '
ВЫБРАТЬ КОЛИЧЕСТВО (*) ИЗ поездок
ГДЕ sub_type = "Зарегистрировано";
'' '
run_query (запрос)
Этот запрос сработал и вернул ответ на наш вопрос.Но заголовок столбца не особо описательный. Если бы кто-то другой взглянул на эту таблицу, он не смог бы понять, что это значит. Если мы хотим сделать наши результаты более удобочитаемыми, мы можем использовать AS
, чтобы дать нашему выводу псевдоним (или псевдоним). Давайте повторно выполним предыдущий запрос, но дадим нашему заголовку столбца псевдоним Всего поездок по зарегистрированным пользователям
:
запрос = '' '
ВЫБЕРИТЕ СЧЕТЧИК (*) КАК "Общее количество поездок зарегистрированных пользователей"
ИЗ поездок
ГДЕ sub_type = "Зарегистрировано";
'' '
run_query (запрос)
Всего поездок по зарегистрированным пользователям | |
---|---|
0 | 1105192 |
Агрегатные функции
COUNT
- не единственный математический трюк, который SQL использует в своих рукавах.Мы также можем использовать SUM
, AVG
, MIN
и MAX
для возврата суммы, среднего, минимального и максимального значения столбца соответственно. Они, наряду с COUNT
, известны как агрегатные функции.
Итак, чтобы ответить на наш третий вопрос, "Какова была средняя продолжительность поездки?" , мы можем использовать функцию AVG
в столбце длительностью
(и, опять же, использовать AS
, чтобы дать нашему выходному столбцу более информативное имя):
запрос = '' '
ВЫБЕРИТЕ СРЕДНЮЮ (продолжительность) КАК "Средняя продолжительность"
ОТ поездок;
'' '
run_query (запрос)
Средняя продолжительность | |
---|---|
0 | 912.409682 |
Получается, что средняя продолжительность поездки составляет 912 секунд, то есть примерно 15 минут. В этом есть смысл, поскольку мы знаем, что Hubway взимает дополнительную плату за поездки продолжительностью более 30 минут. Услуга предназначена для любителей коротких поездок в одну сторону.
Что насчет нашего следующего вопроса, , совершают ли более длительные поездки зарегистрированные или случайные пользователи? Мы уже знаем один способ ответить на этот вопрос - мы могли бы запустить два запроса SELECT AVG (duration) FROM для отключения
с предложениями WHERE
, которые ограничивают один до «зарегистрированных»
и один до «случайных»
пользователей.
Но давайте сделаем по-другому. SQL также включает способ ответить на этот вопрос в одном запросе с помощью команды GROUP BY
.
ГРУППА ПО
GROUP BY
разделяет строки на группы на основе содержимого определенного столбца и позволяет нам выполнять агрегатные функции для каждой группы.
Чтобы лучше понять, как это работает, давайте взглянем на столбец , пол,
. Каждая строка может иметь одно из трех возможных значений в столбце пол
, «Мужской»
, «Женский»
или Нулевой
(отсутствует; у нас нет данных пол
для случайных пользователей).
Когда мы используем GROUP BY
, база данных разделяет каждую из строк в другую группу на основе значения в столбце пол
, почти так же, как мы могли бы разделить колоду карт на разные масти. . Мы можем представить себе две стопки, одну из самцов, одну из самок.
Когда у нас есть две отдельные стопки, база данных будет выполнять любые агрегатные функции в нашем запросе для каждой из них по очереди. Если бы мы использовали, например, COUNT
, запрос подсчитал бы количество строк в каждой стопке и вернул бы значение для каждой отдельно.
Давайте подробно рассмотрим, как написать запрос, чтобы ответить на наш вопрос о том, совершают ли более длительные поездки зарегистрированные или случайные пользователи.
- Как и каждый из наших запросов до сих пор, мы начнем с
SELECT
, чтобы сообщить базе данных, какую информацию мы хотим видеть. В этом случае нам нужныsub_type
иAVG (продолжительность)
. - Мы также включим
GROUP BY sub_type
, чтобы разделить наши данные по типу подписки и отдельно вычислить средние значения зарегистрированных и случайных пользователей.
Вот как выглядит код, если собрать все вместе:
запрос = '' '
ВЫБЕРИТЕ sub_type, AVG (продолжительность) AS "Средняя продолжительность"
ИЗ поездок
GROUP BY sub_type;
'' '
run_query (запрос)
под_тип | Средняя продолжительность | |
---|---|---|
0 | Повседневный | 1519.643897 |
1 | Зарегистрировано | 657.026067 |
Вот это большая разница! В среднем зарегистрированные пользователи совершают поездки продолжительностью около 11 минут, тогда как обычные пользователи тратят почти 25 минут на поездку.Зарегистрированные пользователи, вероятно, будут совершать более короткие и частые поездки, возможно, по дороге на работу. С другой стороны, обычные пользователи тратят примерно вдвое больше времени на поездку.
Возможно, что случайные пользователи, как правило, происходят из демографических групп (например, туристов), которые более склонны совершать длительные поездки, убедитесь, что они передвигаются и видят все достопримечательности. Как только мы обнаружим эту разницу в данных, компания сможет исследовать ее разными способами, чтобы лучше понять, что ее вызывает.
Однако для целей этого урока давайте продолжим. Наш следующий вопрос был , какой велосипед использовался для большинства поездок? . Мы можем ответить на этот вопрос, используя очень похожий запрос. Взгляните на следующий пример и посмотрите, сможете ли вы выяснить, что делает каждая строка - позже мы рассмотрим это шаг за шагом, чтобы вы могли убедиться, что все правильно:
запрос = '' '
ВЫБЕРИТЕ bike_number как "Номер велосипеда", COUNT (*) как "Количество поездок"
ИЗ поездок
ГРУППА ПО номеру велосипеда
ЗАКАЗАТЬ ПО КОЛИЧЕСТВУ (*) УДАЛЕНИЕ
LIMIT 1;
'' '
run_query (запрос)
Номер велосипеда | Количество поездок | |
---|---|---|
0 | B00490 | 2120 |
Как видно из выходных данных, наибольшее количество поездок ездил на велосипеде B00490
.Давайте разберемся, как мы туда попали:
- Первая строка - это предложение
SELECT
, чтобы сообщить базе данных, что мы хотим видеть столбецbike_number
и счетчик каждой строки. Он также используетAS
, чтобы указать базе данных отображать каждый столбец с более удобным именем. - Во второй строке используется
ИЗ
, чтобы указать, что данные, которые мы ищем, находятся в таблицепоездок
. - В третьей строке начинаются сложности.Мы используем
GROUP BY
, чтобы указать функцииCOUNT
в строке 1 отдельно подсчитывать каждое значение дляbike_number
. - В четвертой строке у нас есть предложение
ORDER BY
, чтобы отсортировать таблицу в порядке убывания и убедиться, что наш наиболее часто используемый велосипед находится наверху. - Наконец, мы используем
LIMIT
, чтобы ограничить вывод первой строкой, которая, как мы знаем, будет велосипедом, который использовался в наибольшем количестве поездок, из-за того, как мы отсортировали данные в четвертой строке.
Арифметические операторы
Наш последний вопрос немного сложнее остальных. Мы хотим знать, что средняя продолжительность поездок зарегистрированных участников в возрасте старше 30 составляет .
Мы могли бы просто вычислить год, в котором 30-летние родились в наших головах, а затем подключить его, но более элегантное решение - использовать арифметические операции непосредственно в нашем запросе. SQL позволяет нам использовать +
, -
, *
и /
для выполнения арифметической операции сразу над всем столбцом.
запрос = '' '
ВЫБРАТЬ СРЕДНЕЕ (длительность) ИЗ поездок
ГДЕ (2017 - дата рождения)> 30;
'' '
run_query (запрос)
AVG (продолжительность) | |
---|---|
0 | 923.014685 |
ПРИСОЕДИНЯЙТЕСЬ
До сих пор мы рассматривали запросы, которые извлекают данные только из таблицы поездок
. Однако одна из причин, по которой SQL является настолько мощным, заключается в том, что он позволяет нам извлекать данные из нескольких таблиц в одном запросе.
Наша база данных по прокату велосипедов содержит вторую таблицу, станций
. Таблица станций
содержит информацию о каждой станции в сети Hubway и включает столбец id
, на который ссылается таблица поездок
.
Прежде чем мы начнем работать с некоторыми реальными примерами из этой базы данных, давайте вернемся к гипотетической базе данных отслеживания заказов, сделанной ранее. В этой базе данных у нас было две таблицы: заказов
и клиентов
, и они были связаны столбцом customer_id
.
Допустим, мы хотели написать запрос, который возвращал бы номер заказа
и имя
для каждого заказа в базе данных. Если бы они оба хранились в одной таблице, мы могли бы использовать следующий запрос:
ВЫБРАТЬ номер_заказа, имя
ОТ заказов;
К сожалению, столбец order_number
и столбец name
хранятся в двух разных таблицах, поэтому нам нужно добавить несколько дополнительных шагов. Давайте поразмышляем над дополнительными вещами, которые необходимо знать базе данных, прежде чем она сможет вернуть нужную нам информацию:
- В какой таблице находится столбец
order_number
? - В какой таблице находится столбец
имя
? - Как информация в таблице
orders
связана с информацией в таблицеcustomers
?
Чтобы ответить на первые два из этих вопросов, мы можем включить имена таблиц для каждого столбца в нашу команду SELECT
.Мы делаем это просто путем записи имени таблицы и имени столбца, разделенных .
. Например, вместо SELECT order_number, name
, мы должны написать SELECT orders.order_number, customers.name
. Добавление сюда имен таблиц помогает базе данных находить нужные столбцы, сообщая ей, в какой таблице искать каждый.
Чтобы сообщить базе данных, как связаны таблицы orders
и customers
, мы используем JOIN
и ON
. JOIN
указывает, какие таблицы должны быть соединены, а ON
указывает, какие столбцы в каждой таблице связаны.
Мы собираемся использовать внутреннее соединение, что означает, что строки будут возвращаться только тогда, когда есть совпадения в столбцах, указанных в ON
. В этом примере мы захотим использовать JOIN
для любой таблицы, которую мы не включили в команду FROM
. Таким образом, мы можем использовать FROM заказов INNER JOIN клиентов
или FROM клиентов INNER JOIN orders
.
Как мы обсуждали ранее, эти таблицы связаны по столбцу customer_id
в каждой таблице. Следовательно, мы захотим использовать ON
, чтобы сообщить базе данных, что эти два столбца относятся к одному и тому же объекту, например:
ON orders.customer_ID = customers.customer_id
Мы снова используем .
, чтобы убедиться, что база данных знает, в какой таблице находится каждый из этих столбцов. Итак, когда мы сложим все это вместе, мы получим запрос, который выглядит следующим образом:
ВЫБРАТЬ заказы.order_number, customers.name
ИЗ заказов
INNER JOIN клиенты
ON orders.customer_id = customers.customer_id
Этот запрос вернет порядковый номер каждого заказа в базе данных вместе с именем клиента, который связан с каждым заказом.
Возвращаясь к нашей базе данных Hubway, теперь мы можем написать несколько запросов, чтобы увидеть JOIN
в действии.
Прежде чем мы начнем, мы должны взглянуть на остальные столбцы в таблице станций
. Вот запрос, показывающий нам первые 5 строк, чтобы мы могли увидеть, как выглядит таблица станций
:
запрос = '' '
ВЫБРАТЬ * ИЗ станций
LIMIT 5;
'' '
run_query (запрос)
id | станция | муниципалитет | лат | lng | |
---|---|---|---|---|---|
0 | 3 | Колледжи Фенуэя | Бостон | 42.340021 | -71.100812 |
1 | 4 | Tremont St., Berkeley St., | Бостон | 42.345392 | -71.069616 |
2 | 5 | Северо-Восточный U / Северная парковка | Бостон | 42,341814 | -71.0 |
3 | 6 | Cambridge St. at Joy St. | Бостон | 42,361284999999995 | -71.06514 |
4 | 7 | Пирс вентилятора | Бостон | 42,353412 | -71.044624 |
-
id
- Уникальный идентификатор для каждой станции (соответствует столбцамstart_station
иend_station
в таблицепоездок
) -
станция
- Название станции -
муниципалитет
- муниципалитет, в котором находится станция (Бостон, Бруклин, Кембридж или Сомервилль) -
lat
- Широта станции -
lng
- Долгота станции - Какие станции чаще всего используются для поездок туда и обратно?
- Сколько поездок начинается и заканчивается в разных муниципалитетах?
Как и раньше, мы попытаемся ответить на некоторые вопросы в данных, начиная с , какая станция является наиболее частой отправной точкой? Давайте поработаем пошагово:
- Сначала мы хотим использовать
SELECT
для возврата столбцаstation
из таблицыstation
иCOUNT
количества строк. - Затем мы указываем таблицы, к которым мы хотим
JOIN
, и говорим базе данных подключить ихON
столбецstart_station
в таблицепоездок
и столбецid
в таблицеstation
. - Затем мы переходим к сути нашего запроса - мы
GROUP BY
столбецstation
в таблицеstation
, чтобы нашCOUNT
подсчитывал количество поездок для каждой станции отдельно - Наконец, мы можем
ORDER BY
нашиCOUNT
иLIMIT
выводить на управляемое количество результатов
запрос = '' '
ВЫБЕРИТЕ станции.станция AS "Станция", COUNT (*) AS "Count"
ИЗ поездок INNER JOIN станции
ВКЛ. Trips.start_station = station.idGROUP BY station.station ORDER BY COUNT (*) DESC
LIMIT 5;
'' '
run_query (запрос)
Станция | Граф | |
---|---|---|
0 | Южный вокзал - 700 Атлантик авеню, | 56123 |
1 | Публичная библиотека Бостона - 700 Boylston St. | 41994 |
2 | Charles Circle - Charles St.на Кембридж-стрит, | 35984 |
3 | Beacon St / Mass Ave | 35275 |
4 | MIT, Mass Ave / Amherst St, | 33644 |
Если вы знакомы с Бостоном, вы поймете, почему это самые популярные станции. Южный вокзал - одна из главных станций пригородной железной дороги в городе, Чарльз-стрит проходит вдоль реки рядом с красивыми живописными маршрутами, а улицы Бойлстон и Бикон находятся в самом центре города, рядом с несколькими офисными зданиями.
Следующий вопрос, который мы рассмотрим, - это , какие станции наиболее часто используются для поездок туда и обратно? Мы можем использовать тот же запрос, что и раньше. Мы будем SELECT
теми же выходными столбцами и JOIN
таблицы таким же образом, но на этот раз мы добавим предложение WHERE
, чтобы ограничить наш COUNT
поездками, где start_station
совпадает с конечная станция
.
query = '' 'ВЫБРАТЬ станции. Станция КАК "Станция", СЧЁТ (*) КАК "Счетчик"
ИЗ поездок INNER JOIN станции
ПО поездкам.start_station = station.id
ГДЕ trips.start_station = trips.end_station
ГРУППА ПО станциям. Станции
ЗАКАЗАТЬ ПО КОЛИЧЕСТВУ (*) УДАЛЕНИЕ
LIMIT 5;
'' '
run_query (запрос)
Станция | Граф | |
---|---|---|
0 | Эспланада - Бикон-стрит на Арлингтон-стрит | 3064 |
1 | Charles Circle - Charles St. на Кембридж-стрит, | 2739 |
2 | Публичная библиотека Бостона - 700 Boylston St. | 2548 |
3 | Бойлстон-стрит на Арлингтон-стрит | 2163 |
4 | Beacon St / Mass Ave | 2144 |
Как мы видим, количество этих станций такое же, как и в предыдущем вопросе, но их количество намного меньше. Самые загруженные станции по-прежнему остаются самыми загруженными, но в целом более низкие цифры говорят о том, что люди обычно используют велосипеды Hubway, чтобы добраться из точки A в точку B, а не какое-то время кататься на велосипеде, прежде чем вернуться туда, откуда они начали.
Здесь есть одно существенное отличие - Esplande, которая не была одной из самых загруженных станций по нашему первому запросу, кажется, самая загруженная для поездок туда и обратно. Почему? Что ж, картинка стоит тысячи слов. Это определенно выглядит как хорошее место для велосипедной прогулки:
Переходим к следующему вопросу: сколько поездок начинается и заканчивается в разных муниципалитетах? Этот вопрос продвигает дальше. Мы хотим знать, сколько поездок начинается и заканчивается в другом муниципалитете
.Чтобы достичь этого, нам нужно JOIN
, чтобы дважды подключала таблицу
к таблице станций
. После ON
столбец start_station
, а затем ON
столбец end_station
.
Для этого мы должны создать псевдоним для таблицы station
, чтобы мы могли различать данные, относящиеся к start_station
, и данные, которые относятся к end_station
. Мы можем сделать это точно так же, как мы создавали псевдонимы для отдельных столбцов, чтобы они отображались с более интуитивно понятным именем, используя AS
.
Например, мы можем использовать следующий код для JOIN
таблица станций
к таблице trips
, используя псевдоним «start». Затем мы можем объединить «начало» с именами столбцов, используя .
для ссылки на данные, которые поступают из этого конкретного JOIN
(вместо второго JOIN
мы сделаем ON
столбец end_station
):
INNER JOIN станции AS start ON trips.start_station = start.id
Вот как будет выглядеть окончательный запрос, когда мы его запустим. Обратите внимание, что мы использовали <>
для обозначения «не равно», но ! =
также будет работать.
запрос =
'' '
ВЫБЕРИТЕ СЧЕТЧИК (trips.id) КАК "Счетчик"
ИЗ поездок ВНУТРЕННИЕ СОЕДИНЯЙТЕ станции КАК старт
ВКЛ. Trips.start_station = start.id
INNER JOIN станции как конец
ВКЛ. Trips.end_station = end.id
ГДЕ start.municipality <> end.municipality;
'' '
run_query (запрос)
Это показывает, что около 300000 из 1.5 миллионов поездок (или 20%) закончились в другом муниципалитете, чем начали, - еще одно свидетельство того, что люди в основном используют велосипеды Hubway для относительно коротких поездок, а не для длительных поездок между городами.
Если вы зашли так далеко, поздравляем! Вы начали осваивать основы SQL. Мы рассмотрели ряд важных команд, SELECT
, LIMIT
, WHERE
, ORDER BY
, GROUP BY
и JOIN
, а также агрегатные и арифметические функции.Это даст вам прочную основу для дальнейшего развития SQL.
Вы освоили основы SQL. Что теперь?
После завершения этого учебника по SQL для начинающих вы сможете выбрать базу данных, которая вам интересна, и написать запросы для получения информации. Хорошим первым шагом может быть продолжение работы с базой данных Hubway, чтобы посмотреть, что еще вы можете узнать. Вот еще несколько вопросов, на которые вы, возможно, захотите ответить:
- За сколько поездок взимается дополнительная плата (продолжительностью более 30 минут)?
- Какой велосипед использовался дольше всего?
- Были ли у зарегистрированных или случайных пользователей больше поездок туда и обратно?
- У какого муниципалитета была самая длинная средняя продолжительность?
Если вы хотите сделать еще один шаг вперед, ознакомьтесь с нашими интерактивными курсами по SQL, которые охватывают все, что вам нужно знать, от начального уровня до SQL продвинутого уровня для работы аналитиком и специалистом по данным.
Вы также можете прочитать нашу публикацию об экспорте данных из ваших SQL-запросов в Pandas или ознакомьтесь с нашей шпаргалкой по SQL и нашей статьей о сертификации SQL.
Определение SQL
Введение
В этой статье мы дадим определение SQL и объясним, что это такое, а также поговорим о Расширения SQL. Мы также предоставим несколько примеров синтаксиса SQL.
Определение SQL
По сути, SQL означает язык структурированных запросов , который в основном является языком, используемым базами данных.Этот язык позволяет обрабатывать информацию с помощью таблиц и показывает язык для запросов к этим таблицам и другим связанным объектам (представлениям, функциям, процедурам и т. Д.). Большинство баз данных, таких как SQL Server, Oracle, PostgreSQL, MySQL, MariaDB, используют этот язык (с некоторыми расширениями и вариантами) для обработки данных.
С помощью SQL вы можете вставлять, удалять и обновлять данные. Вы также можете создавать, удалять или изменять объекты базы данных.
Кто изобрел SQL?
Эдгар Фрэнк Кодд, работая в IBM, в 70-х годах изобрел реляционную базу данных.Основываясь на этой работе, Дональд Чемберлин и Раймонд Бойс разработали SQL для манипулирования данными. Первоначально он назывался SEQUEL, но из-за торговой марки проблема была изменена на SQL. Однако многие до сих пор говорят «SEQUEL».
Определение ANSI SQL и определение ISO SQL
Американский национальный институт стандартов (ANSI) сделал SQL стандартом в 1986 году, а Международный Организация по стандартизации (ISO) делает SQL стандартом баз данных.Теперь все самые популярные базы данных следуют этим стандартам с некоторыми расширениями. Определение SQL - это язык для определения объектов базы данных и управления данными.
Было внесено несколько изменений, чтобы определить, каким будет SQL, включая типы данных, уровни изоляции, логические операторы и т. Д. синтаксис, синтаксис языка определения данных, определения языка манипулирования данными, процедуры, функции и т. д.
В названии ревизии указан год, когда она была сделана.Вот вам и исправления:
Синтаксис определения SQL
Предположим, у нас есть небольшая таблица с именем "студенты" с некоторыми данными:
Я БЫ | Имя | Фамилия |
1 | Джон | Рэмбо |
2 | Люк | Ходящий по небу |
3 | Питер | Чубакка |
4 | Джон | Матрица |
Если мы хотим увидеть все данные, запрос SQL будет таким:
По сути, мы говорим, покажите мне все столбцы (*) из таблицы student.Если мы хотим получить только столбец ID и Имя, запрос будет таким, как показано ниже:
Выберите ID, Имя от студентов
В этом примере SQL-запрос получает идентификатор, столбцы Name из таблицы учащегося. Важно отметить, что мы можем указывать имена столбцов в любом порядке. Я не буду говорить о производительности и индексах при использовании запросов, но порядок столбцов может повлиять на производительность в таблицах с несколькими миллионами строк или с соединениями с другими столбцами.
Для получения дополнительной информации о выборе предложений в T-SQL перейдите по ссылке Microsoft.
Что хорошо в SQL, так это то, что вы можете запрашивать несколько таблиц. Например, если у меня есть оценки студенты, я мог запрашивать информацию из обеих таблиц. Допустим, у нас есть оценка учащегося в таблице:
Я БЫ | Счет |
1 | 52 |
2 | 63 |
1 | 57 год |
3 | 69 |
ID - это идентификатор студента.Это общий столбец между учащимся и таблицей оценок. Нам нужен общий столбец для создания отношений. Если нам нужны имя, фамилия и оценка ученика, запрос будет таким:
Выберите имя, фамилию, балл От ученика Внутреннее присоединение Оценка НА учениках.ID = score.ID |
Первая строка проста.Вызываем столбцы с необходимыми данными. Вторая строка - это просто первая таблица, а внутреннее соединение должно использовать вторую таблицу с именем score. Наконец, нам нужно указать в запросе, какие общие столбцы соответствуют данным. В этом примере IDs. Чтобы отличить столбец идентификатора от разных таблиц, нам нужно указать имена таблиц, за которыми следует точка, а затем имя столбца.
Полное руководство по объединениям можно найти по следующей ссылке:
Определение SQL для UNION, INTERSECT, EXCEPT
SQL определил стандартный синтаксис для создания объединения между 2 таблицами или для получения общих строк (пересекающихся) или строк которые не распространены (кроме).В следующей статье объясняется, как их использовать:
Расширения определения SQL
Каждая система баз данных имеет собственное расширение SQL. Например, SQL Server использует T-SQL, который является расширением SQL. Oracle использует PL-SQL, MySQL и MariaDB используют SQL / PSM (SQL и Persistent Stored Module). PSM - это стандарт ISO для хранения процедуры. Teradata и Informix используют SPL, и разные системы используют несколько разных расширений. Базы данных.
Заключение
В этой статье мы объяснили определение SQL. По сути, это язык для обработки данных. Изначально это было созданы для обработки структурированных данных, но даже базы данных NoSQL (базы данных, которые не являются реляционными) обычно используют Расширение SQL для получения данных. Платформы больших данных также используют расширения SQL для обработки своих данных, поэтому SQL определение будет полезно еще долго.
Даниэль Кальбимонте - самый ценный специалист Microsoft, сертифицированный инструктор Microsoft и сертифицированный ИТ-специалист Microsoft по SQL Server.