Меню

Простые SQL запросы короткая справка и примеры



Обзор основных SQL запросов

  1. Виды SQL запросов
  2. Типы SQL запросов по их видам
  3. Создание и настройка базы данных
  4. Примеры простых запросов SQL к базам данных
  5. SELECT
  6. INSERT
  7. UPDATE
  8. DELETE
  9. DROP
  10. Примеры сложных запросов к базе данных MS SQL
  11. Выводы

Каждый сайт в Интернете, любой проект, обрабатывающий значительный объем информации, вынужден хранить эту информацию в тех или иных базах данных (БД). Подавляющее большинство проектов информацию сохраняют в БД реляционного типа, делая записи в различных подобиях таблиц. Как внесение новых записей, так и обращение к имеющимся, осуществляется с благодаря использованию запросов, составляемых конструкциями SQL (structured query language) – непроцедурного декларативного языка структурированных запросов. В нашем случае это подразумевает, что, используя конструкции SQL, мы будем обращаться к БД, сообщая что нужно сделать с данными, но не указывая способ, как именно это нужно сделать.

Фактически, SQL является набором стандартов, для написания запросов к БД. Последняя действующая редакция стандартов языка SQL — ISO/IEC 9075:2016.

Основываясь на указанных стандартах языка SQL, ряд организаций выпустили свои, расширенные версии стандартов указанного языка. Подобные версии иногда называют диалектами SQL.

Варианты спецификаций SQL разрабатываются компаниями и сообществами и служат, соответственно, для работы с разными СУБД (Системами Управления Базами Данных) – системами программ, заточенных под работу с продуктами из своей инфраструктуры.

Наиболее применяемые на сегодня СУБД, использующие свои стандарты (расширения) SQL:

MySQL – СУБД, принадлежащая компании Oracle.

PostgreSQL – свободная СУБД, поддерживаемая и развиваемая сообществом.

Microsoft SQL Server – СУБД, принадлежащая компании Microsoft. Применяет диалект Transact-SQL (T-SQL).

Благодаря тому, что диалекты SQL что создаются, специфицируются и используются разными организациями, имеют как общие черты, так и ряд отличий в возможностях расширений.

Общими чертами диалектов являются основные конструкции, применимые практически без отличий во многих реляционных БД. Основные отличия диалектов состоят в различиях использованных типов данных, количеством, реализацией и детальными возможностями команд. Разные диалекты применяют как разные наборы зарезервированных слов, так и разные наборы команд.

Здесь мы будем рассматривать запросы, применяя конструкции из спецификаций диалекта T-SQL.

Коснемся классификации SQL запросов.

Выделяют такие виды SQL запросов:

DDL (Data Definition Language) язык определения данных. Задачей DDL запросов является создание БД и описание ее структуры. Запросами такого вида устанавливаются правила того, в каком виде различные данные будут размещаться в БД.

DML (Data Manipulation Language) — язык манипулирования данными. В число запросов этого типа входят различные команды, используя которые непосредственно производятся некоторые манипуляции с данными. DML-запросы нужны для добавления изменений в уже внесенные данные, для получения данных из БД, для их сохранения, для обновления различных записей и для их удаления из БД. В число элементов DML-обращений входит основная часть SQL операторов.

DCL (Data Control Language) — язык управления данными. Включает в себя запросы и команды, касающиеся разрешений, прав и других настроек СУБД.

TCL (Transaction Control Language) — язык управления транзакциями. Конструкции такого типа применяют чтобы управлять изменениями, которые производятся с использованием DML запросов. Конструкции TCL позволяют нам производить объединение DML запросов в наборы транзакций.

Основные типы SQL запросов по их видам:

Ниже мы рассмотрим практические примеры применения SQL запросов для взаимодействия с БД используя запросы двух категорий – DDL и DML.

Создание и настройка базы данных

Нам нужна будет для примеров БД MS SQL Server 2017 и MS SQL Server Management Studio 2017.

Рассмотрим последовательность действий того, как создать SQL запрос. Воспользовавшись Management Studio, для начала создадим новый редактор скриптов. Чтобы это сделать, на стандартной панели инструментов выберем «Создать запрос». Или воспользуемся клавиатурной комбинацией Ctrl+N.

Нажимая кнопку «Создать запрос» в Management Studio, мы открываем тестовый редактор, используя который можно производить написание SQL запросов, сохранять их и запускать.

Используем для начала простые запросы SQL, благодаря которым можно создать и настроить новую БД, чтобы получить возможность в дальнейшем с ней работать.

Создадим новую БД с именем «b_library» для библиотеки книг. Чтобы это делать наберем в редакторе такой SQL запрос:

Далее выделим введенный текст и нажмем F5 или кнопку «Выполнить». У нас создастся БД «b_library».

Все дальнейшие манипуляции мы можем провести с этой созданной нами БД. Для этого сначала подключимся к этой базе:

В БД «b_library» создадим таблицу авторов «tAuthors» с такими столбцами: AuthorId, AuthorFirstName, AuthorLastName, AuthorAge:

Заполним нашу таблицу таким авторами: Александр Пушкин, Сергей Есенин, Джек Лондон, Шота Руставели и Рабиндранат Тагор. Для этого используем такой SQL запрос:

Мы можем посмотреть в «tAuthors» записи, путем отправления в СУБД простого SQL запроса:

В нашей БД «b_library» мы создали первую таблицу «tAuthors», заполнили «tAuthors» авторами книг и теперь можем рассмотреть различные примеры SQL запросов, которыми мы сможем взаимодействовать с БД.

Примеры простых запросов SQL к базам данных.

Рассмотрим основные запросы SQL.

SELECT

1) Выведем все имеющиеся у нас БД:

2) Выведем все таблицы в созданной нами ранее БД «b_library»:


3) Выводим еще раз имеющиеся у нас записи по авторам книг из созданной выше «tAuthors»:


4) Выведем информацию о том, сколько у нас имеется записей строк в «tAuthors»:


5) Выведем из «tAuthors» две записи, начиная с четвертой. Используя ключевое слово OFFSET, пропустим первые три записи, а благодаря использованию ключевого слова FETCH – обозначим выборку только следующих 2 строк (ONLY):


6) Выведем из «tAuthors» все записи с сортировкой в алфавитном порядке по первой букве имени автора:


7) Выведем из «tAuthors» данные, предварительно по AuthorId отсортировав их по убыванию:


8) Выберем записи из «tAuthors», значение AuthorFirstName у которых соответствует имени «Александр»:


9) Выберем из «tAuthors» записи, где имя автора AuthorFirstName начинается с «се»:


10) Выберем из «tAuthors» записи, в которых имя автора (AuthorFirstName) заканчивается на «ат»:


11) Сделаем выборку всех строк из «tAuthors», значение AuthorId в которых равняется 2 или 4:


12) Выберем в «tAuthors» такую запись AuthorAge, значение которой — наибольшее:


13) Проведем выборку из «tAuthors» по столбцам AuthorFirstName и AuthorLastName:


14) Получим из «tAuthors» все строки, у которых AuthorId не равняется трем:

INSERT

INSERT – это вид запроса SQL, при применении которого СУБД выполняет добавление новых записей в БД.

Добавим в «tAuthors» нового автора – Уильяма Шекспира, 51 год. Соответственно в поле AuthorFirstName добавится Уильям, в AuthorLastName добавится Шекспир, в AuthorAge – 51. В AuthorId, в нашем случае, автоматически добавится значение, инкрементированное от предыдущего на 1.

UPDATE

UPDATE – SQL запрос, позволяющий внести изменения или дописывать новую информацию в те записи, которые уже существуют.

Внесем корректировки в шестую запись (AuthorId = 6). Значения изменим для полей имени, фамилии и возраста автора.

Затем, обратимся к БД, чтобы вывести все имеющиеся записи:

Мы видим изменения информации в записи автора под номером 6.

DELETE

DELETE – SQL запрос, выполняя который в СУБД производится операция удаления определенной строки из таблицы в БД.

Обратимся к «tAuthors» с командой на удаление строки, где AuthorId = 5:

Чтобы увидеть изменения, снова обратимся к базе для вывода всех записей:

Мы видим, что запись автора под номером 5 теперь отсутствует в «tAuthors» и, соответственно, не выводится с другими записями.

DROP

DROP – ключевое слово в SQL, применяемое для удаления данных с помощью запроса. К примеру удаление некоторой таблицы из БД.

После рассмотрения ряда простых запросов к БД мы можем полностью удалить нашу таблицу «tAuthors» целиком, выполнив простой SQL запрос:

Далее рассмотрим сложные запросы SQL.

Примеры сложных запросов к базе данных MS SQL

Сложные запросы SQL представляют из себя комбинации простых запросов. Выполняясь, простые запросы возвращают сгруппированные в промежуточные таблицы наборы данных. А сложный запрос уже манипулирует данными, полученными благодаря простым «подзапросам».

Сложные запросы получаются следующими способами:

  1. Помещением одного запроса в другой. В этом случае внешнее выражение будет называться основным запросом, а вложенное выражение — подзапросом.
  2. Применение с SQL запросами различных операторов объединения результатов выполнения подзапросов. Такие операторы называют реляционными.

Рассмотрим в SQL примеры сложных запросов.

Воспользуемся нашей предыдущей таблицей «tAuthors» и создадим дополнительно еще одну таблицу с книгами этих авторов – «tBooks». В качестве идентификатора авторов книг используем значение AuthorId из «tAuthors», а название книги — BookTitle.

Заполним «tBooks» такими книгами:

1) Сделаем выборку из БД всех книг, у которых имя автора — «Александр»:

2) Сделаем выборку данных из «tBooks» всех книг, авторами которых являются люди, с именами «Александр» или «Сергей»:

3) Сделаем выборку по книгам из таблицы «tBooks», у которых именами авторов являются НЕ «Сергей» и НЕ «Александр»:

Читайте также:  Таблица анфимова всего знаков

4) Возьмем таблицу «tBooks» и сделаем из нее выборку всех книг с указанием как имен, так и фамилий авторов этих книг из «tAuthors»:

Выводы

Мы с вами рассмотрели несколько вариантов простых и сложных SQL запросов. Конечно эту статью не стоит рассматривать ни как учебное пособие, ни как исчерпывающий перечень возможностей запросов в T-SQL, и других диалектах. Скорее ее можно считать примером SQL запросов для начинающих. Однако она может послужить для Вас отправной точкой.

Источник

SQL за 20 минут

Предлагаем вашему вниманию статью с кричащим названием «SQL за 20 минут». Конечно, весь SQL за 20 минут вы не освоите, но хороший старт получите.

Каждый уважающий себя веб-разработчик должен знать SQL. Хоть он и существует аж с 70-х годов прошлого века, он до сих пор очень широко используется, и без него будет сложно создать нечто серьёзное. Большинство full-stack фреймворков умеют работать с SQL. В их числе: ActiveRecord, Doctrine, Hibernate и многие другие. Несмотря на это, иногда приходится «замарать руки» и пуститься в настоящий SQL.

Именно поэтому мы подготовили короткое вступление, в котором мы пройдёмся по фундаментальным вещам в SQL. Мы настоятельно рекомендуем вам попробовать все приведённые ниже примеры самостоятельно, ведь, как известно, теория — ничто без практики.

Что ж, приступим!

Создаём таблицу

Для того, чтобы создать таблицу в SQL, используется выражение CREATE TABLE. Он принимает в качестве параметров все колонки, которые мы хотим внести, а также их типы данных.

Давайте создадим табличку с названием «Months», в которой будет три колонки:

  • id — иными словами, порядковый номер месяца (целочисленный тип или int)
  • name — название месяца (строка или varchar(10) (10 символов — максимальная длина строки))
  • days — число дней в конкретном месяце (целочисленный тип или int)

Код будет выглядеть вот так:

Также, когда создаются таблицы, принято добавлять так называемый primary key. Это колонка, значения в которой уникальны. Чаще всего primary key колонкой является id, но в нашем случае это может быть и name, так как имена всех месяцев уникальны. Для более подробной информации предлагаем перейти по этой ссылке.

Ввод данных

Теперь давайте добавим пару месяцев в нашу табличку. Сделать это можно с помощью команды INSERT. Есть два разных способа использовать INSERT:

Первый способ не подразумевает указания названий колонок, а лишь принимает значения в том порядке, в котором они указаны в таблице.

Первый способ короче второго, однако если в будущем мы захотим добавить дополнительные колонки, все предыдущие запросы работать не будут. Для решения данной проблемы следует использовать второй способ. Его суть в том, что перед вводом данных мы указываем названия колонок.

В случае, если мы не укажем одну из колонок, на её место будет записано NULL или заданное значение по умолчанию, но это уже совсем другая история.

Select

Данный запрос используется в случае, если нам нужно показать данные в таблице. Наверное, самым простым примером использования SELECT будет следующий запрос:

Результатом данного запроса будет таблица со всеми данными в таблице characters. Знак звёздочки (*) означает то, что мы хотим показать все столбцы из таблицы без исключений. Так как в базе данных обычно больше одной таблицы, нам необходимо указывать название таблицы, данные из которой мы хотим посмотреть. Сделать это мы можем, используя ключевое слово FROM.

Когда вам нужны лишь некоторые столбцы из таблицы, то вы можете указать их имена через запятую вместо звёздочки.

Также иногда нам нужно отсортировать выводимые данные. Для этого мы используем ORDER BY «название столбца». ORDER BY имеет два модификатора: ASC (по возрастанию) (по умолчанию) и DESC (по убыванию).

Where

Теперь мы знаем, как показать только конкретные столбцы, но что если мы хотим включить в вывод лишь некоторые конкретные строки? Для этого мы используем WHERE. Данное ключевое слово позволяет нам фильтровать данные по определённому условию.

В следующем запросе мы выведем только тех персонажей, которые в качестве оружия используют пистолет.

Условия в WHERE могут быть написаны с использованием логических операторов (AND/OR) и математические операторы сравнения (=, , =, <>).

К примеру, у нас есть табличка, в которой записаны данные о 4 самых продаваемых музыкальных альбомах всех времён. Давайте выведем только те, жанром которых является рок, а продажи были меньше, чем 50 миллионов копий.

In/Between/Like

Условия в WHERE могут быть записаны с использованием ещё нескольких команд, которыми являются:

  • IN — сравнивает значение в столбце с несколькими возможными значениями и возвращает true, если значение совпадает хотя бы с одним значением
  • BETWEEN — проверяет, находится ли значение в каком-то промежутке
  • LIKE — ищет по шаблону

К примеру, мы можем сделать запрос для вывода данных об альбомах в жанре pop или soul:

Если мы хотим вывести все альбомы, которые были выпущены в промежутке между 1975 и 1985 годом, мы можем использовать следующую запись:

Также, если мы хотим вывести все альбомы, в названии которых есть буква ‘R’, мы можем использовать следующую запись:

Знак % означает любую последовательность символов (0 символов тоже считается за последовательность).

Если мы хотим вывести все альбомы, первая буква в названии которых — ‘R’, то запись слегка изменится:

В SQL также есть инверсия. Для примера, попробуйте самостоятельно написать NOT перед любым логическим выражением в условии (NOT BETWEEN и так далее).

Функции

В SQL полно встроенных функций для выполнения разных операций. Мы же покажем вам только наиболее часто используемые:

  • COUNT() — возвращает число строк
  • SUM() — возвращает сумму всех полей с числовыми значениями в них
  • AVG() — возвращает среднее значение среди строк
  • MIN()/MAX() — возвращает минимальное/максимальное значение среди строк

Чтобы вывести год выпуска самого старого альбома, в таблице можно использовать следующий запрос:

Обратите внимание, что если вы напишете запрос, в котором вам, к примеру, нужно будет вывести имя и среднее значение чего-либо, то вы получите ошибку на выводе.

Допустим, вы пишете такой запрос:

Чтобы избежать ошибки, вам следует добавить следующую строку:

Причиной тому является, что запись avg(age) является совокупной (aggregated), и вам необходимо группировать значения по имени.

Вложенные Select

В предыдущих шагах мы изучили, как делать простые вычисления с данными. Если мы хотим использовать результат данных вычислений, то часто нам необходимо использовать так называемые вложенные запросы. Допустим, нам необходимо вывести артиста, альбом и год выпуска самого старого альбома в таблице.

Вывести эти столбцы можно, используя следующий запрос:

Также мы знаем, как получить самый ранний год из имеющихся:

Объединить эти запросы можно в WHERE:

Присоединение таблиц

В сложных базах данных чаще всего у нас есть несколько связанных таблиц. К примеру, у нас есть две таблицы: про видеоигры и про разработчиков.

В таблице video_games есть столбец developer_id, в данном случае он является так называемым foreign_key. Чтобы было проще понять, developer_id — это связывающее звено между двумя таблицами.

Если мы хотим вывести всю информацию об игре, включая информацию о её разработчике, нам необходимо подключить вторую таблицу. Чтобы это сделать, можно использовать INNER JOIN:

Это, наверное, самый простой пример использования JOIN. Есть ещё несколько вариантов его использования. Для более подробной информации предлагаем перейти по этой ссылке.

Псевдонимы

Если вы взгляните на предыдущий пример, то вы заметите, что есть два столбца, названных одинаково: «name». Часто это может запутать. Решением данной проблемы являются псевдонимы. Они, к слову, помогают сделать название столбца красивее или понятнее в случае необходимости.

Чтобы присвоить столбцу псевдоним, можно использовать ключевое слово AS:

Update

Зачастую нам нужно изменить данные в таблице. В SQL это делается с помощью UPDATE.

Использование UPDATE включает в себя:

  • выбор таблицы, в которой находится поле, которое мы хотим изменить
  • запись нового значения
  • использование WHERE, чтобы обозначить конкретное место в таблице

Предположим, у нас есть таблица с самыми высокооценёнными сериалами всех времён. Однако у нас есть проблема: «Игра Престолов» обозначена как комедия и нам определённо нужно это изменить:

Удаление записей из таблицы

Удаление записи из таблицы через SQL — очень простая операция. Всё, что нужно — это обозначить, что именно мы хотим удалить.

Примечание: убедитесь, что используете WHERE, когда удаляете запись из таблицы. Иначе вы удалите все записи из таблицы, сами того не желая.

Удаление таблиц

Если мы хотим удалить все данные из таблицы, но при этом оставить саму таблицу, нам следует использовать команду TRUNCATE:

В случае, если мы хотим удалить саму таблицу, то нам следует использовать команду DROP:

Заключение

На этой ноте мы завершаем данный SQL-туториал. Само собой, это не всё, и для полного освоения нужно ещё много изучить, однако данное вступление даст вам толчок для дальнейшего изучения.

Читайте также:  Грамотная разметка диска для Linux

Более подробные уроки по SQL вы можете найти, перейдя по следующим ссылкам:

  • Codeacademy курс SQL
  • SQL Fiddle: онлайн-инструмент для тестирования SQL запросов

Источник

SQL за 20 минут

Предлагаем вашему вниманию статью с кричащим названием «SQL за 20 минут». Конечно, весь SQL за 20 минут вы не освоите, но хороший старт получите.

Каждый уважающий себя веб-разработчик должен знать SQL. Хоть он и существует аж с 70-х годов прошлого века, он до сих пор очень широко используется, и без него будет сложно создать нечто серьёзное. Большинство full-stack фреймворков умеют работать с SQL. В их числе: ActiveRecord, Doctrine, Hibernate и многие другие. Несмотря на это, иногда приходится «замарать руки» и пуститься в настоящий SQL.

Именно поэтому мы подготовили короткое вступление, в котором мы пройдёмся по фундаментальным вещам в SQL. Мы настоятельно рекомендуем вам попробовать все приведённые ниже примеры самостоятельно, ведь, как известно, теория — ничто без практики.

Что ж, приступим!

Создаём таблицу

Для того, чтобы создать таблицу в SQL, используется выражение CREATE TABLE. Он принимает в качестве параметров все колонки, которые мы хотим внести, а также их типы данных.

Давайте создадим табличку с названием «Months», в которой будет три колонки:

  • id — иными словами, порядковый номер месяца (целочисленный тип или int)
  • name — название месяца (строка или varchar(10) (10 символов — максимальная длина строки))
  • days — число дней в конкретном месяце (целочисленный тип или int)

Код будет выглядеть вот так:

Также, когда создаются таблицы, принято добавлять так называемый primary key. Это колонка, значения в которой уникальны. Чаще всего primary key колонкой является id, но в нашем случае это может быть и name, так как имена всех месяцев уникальны. Для более подробной информации предлагаем перейти по этой ссылке.

Ввод данных

Теперь давайте добавим пару месяцев в нашу табличку. Сделать это можно с помощью команды INSERT. Есть два разных способа использовать INSERT:

Первый способ не подразумевает указания названий колонок, а лишь принимает значения в том порядке, в котором они указаны в таблице.

Первый способ короче второго, однако если в будущем мы захотим добавить дополнительные колонки, все предыдущие запросы работать не будут. Для решения данной проблемы следует использовать второй способ. Его суть в том, что перед вводом данных мы указываем названия колонок.

В случае, если мы не укажем одну из колонок, на её место будет записано NULL или заданное значение по умолчанию, но это уже совсем другая история.

Select

Данный запрос используется в случае, если нам нужно показать данные в таблице. Наверное, самым простым примером использования SELECT будет следующий запрос:

Результатом данного запроса будет таблица со всеми данными в таблице characters. Знак звёздочки (*) означает то, что мы хотим показать все столбцы из таблицы без исключений. Так как в базе данных обычно больше одной таблицы, нам необходимо указывать название таблицы, данные из которой мы хотим посмотреть. Сделать это мы можем, используя ключевое слово FROM.

Когда вам нужны лишь некоторые столбцы из таблицы, то вы можете указать их имена через запятую вместо звёздочки.

Также иногда нам нужно отсортировать выводимые данные. Для этого мы используем ORDER BY «название столбца». ORDER BY имеет два модификатора: ASC (по возрастанию) (по умолчанию) и DESC (по убыванию).

Where

Теперь мы знаем, как показать только конкретные столбцы, но что если мы хотим включить в вывод лишь некоторые конкретные строки? Для этого мы используем WHERE. Данное ключевое слово позволяет нам фильтровать данные по определённому условию.

В следующем запросе мы выведем только тех персонажей, которые в качестве оружия используют пистолет.

Условия в WHERE могут быть написаны с использованием логических операторов (AND/OR) и математические операторы сравнения (=, , =, <>).

К примеру, у нас есть табличка, в которой записаны данные о 4 самых продаваемых музыкальных альбомах всех времён. Давайте выведем только те, жанром которых является рок, а продажи были меньше, чем 50 миллионов копий.

In/Between/Like

Условия в WHERE могут быть записаны с использованием ещё нескольких команд, которыми являются:

  • IN — сравнивает значение в столбце с несколькими возможными значениями и возвращает true, если значение совпадает хотя бы с одним значением
  • BETWEEN — проверяет, находится ли значение в каком-то промежутке
  • LIKE — ищет по шаблону

К примеру, мы можем сделать запрос для вывода данных об альбомах в жанре pop или soul:

Если мы хотим вывести все альбомы, которые были выпущены в промежутке между 1975 и 1985 годом, мы можем использовать следующую запись:

Также, если мы хотим вывести все альбомы, в названии которых есть буква ‘R’, мы можем использовать следующую запись:

Знак % означает любую последовательность символов (0 символов тоже считается за последовательность).

Если мы хотим вывести все альбомы, первая буква в названии которых — ‘R’, то запись слегка изменится:

В SQL также есть инверсия. Для примера, попробуйте самостоятельно написать NOT перед любым логическим выражением в условии (NOT BETWEEN и так далее).

Функции

В SQL полно встроенных функций для выполнения разных операций. Мы же покажем вам только наиболее часто используемые:

  • COUNT() — возвращает число строк
  • SUM() — возвращает сумму всех полей с числовыми значениями в них
  • AVG() — возвращает среднее значение среди строк
  • MIN()/MAX() — возвращает минимальное/максимальное значение среди строк

Чтобы вывести год выпуска самого старого альбома, в таблице можно использовать следующий запрос:

Обратите внимание, что если вы напишете запрос, в котором вам, к примеру, нужно будет вывести имя и среднее значение чего-либо, то вы получите ошибку на выводе.

Допустим, вы пишете такой запрос:

Чтобы избежать ошибки, вам следует добавить следующую строку:

Причиной тому является, что запись avg(age) является совокупной (aggregated), и вам необходимо группировать значения по имени.

Вложенные Select

В предыдущих шагах мы изучили, как делать простые вычисления с данными. Если мы хотим использовать результат данных вычислений, то часто нам необходимо использовать так называемые вложенные запросы. Допустим, нам необходимо вывести артиста, альбом и год выпуска самого старого альбома в таблице.

Вывести эти столбцы можно, используя следующий запрос:

Также мы знаем, как получить самый ранний год из имеющихся:

Объединить эти запросы можно в WHERE:

Присоединение таблиц

В сложных базах данных чаще всего у нас есть несколько связанных таблиц. К примеру, у нас есть две таблицы: про видеоигры и про разработчиков.

В таблице video_games есть столбец developer_id, в данном случае он является так называемым foreign_key. Чтобы было проще понять, developer_id — это связывающее звено между двумя таблицами.

Если мы хотим вывести всю информацию об игре, включая информацию о её разработчике, нам необходимо подключить вторую таблицу. Чтобы это сделать, можно использовать INNER JOIN:

Это, наверное, самый простой пример использования JOIN. Есть ещё несколько вариантов его использования. Для более подробной информации предлагаем перейти по этой ссылке.

Псевдонимы

Если вы взгляните на предыдущий пример, то вы заметите, что есть два столбца, названных одинаково: «name». Часто это может запутать. Решением данной проблемы являются псевдонимы. Они, к слову, помогают сделать название столбца красивее или понятнее в случае необходимости.

Чтобы присвоить столбцу псевдоним, можно использовать ключевое слово AS:

Update

Зачастую нам нужно изменить данные в таблице. В SQL это делается с помощью UPDATE.

Использование UPDATE включает в себя:

  • выбор таблицы, в которой находится поле, которое мы хотим изменить
  • запись нового значения
  • использование WHERE, чтобы обозначить конкретное место в таблице

Предположим, у нас есть таблица с самыми высокооценёнными сериалами всех времён. Однако у нас есть проблема: «Игра Престолов» обозначена как комедия и нам определённо нужно это изменить:

Удаление записей из таблицы

Удаление записи из таблицы через SQL — очень простая операция. Всё, что нужно — это обозначить, что именно мы хотим удалить.

Примечание: убедитесь, что используете WHERE, когда удаляете запись из таблицы. Иначе вы удалите все записи из таблицы, сами того не желая.

Удаление таблиц

Если мы хотим удалить все данные из таблицы, но при этом оставить саму таблицу, нам следует использовать команду TRUNCATE:

В случае, если мы хотим удалить саму таблицу, то нам следует использовать команду DROP:

Заключение

На этой ноте мы завершаем данный SQL-туториал. Само собой, это не всё, и для полного освоения нужно ещё много изучить, однако данное вступление даст вам толчок для дальнейшего изучения.

Более подробные уроки по SQL вы можете найти, перейдя по следующим ссылкам:

  • Codeacademy курс SQL
  • SQL Fiddle: онлайн-инструмент для тестирования SQL запросов

Источник

Простые SQL запросы — короткая справка и примеры

Язык SQL или Struc­tured Query Lan­guage (язык структурированных запросов) предназначен для управления данными в системе реляционных баз данных (RDBMS). В этой статье будет рассказано о часто используемых командах SQL, с которыми должен быть знаком каждый программист. Этот материал идеально подойдёт для тех, кто хочет освежить свои знания об SQL перед собеседованием на работу. Для этого разберите приведённые в статье примеры и вспомните, что проходили на парах по базам данных.

Читайте также:  Макет статистической таблицы это план

Простые SQL запросы

  1. Что такое SQL
  2. Что такое СУБД
  3. Какие СУБД бывают
  4. Виды SQL запросов
  5. Простые SQL запросы

Что такое SQL

За счет того, что информация в базе данных упорядочена, разделена на определённые сущности и представлена в виде таблиц, к ней легко обратиться и найти нужную нам информацию.

И тут возникает главный вопрос: а как к ней обратиться и получить необходимую нам информацию?

Для этого должен быть специальный инструмент, и здесь к нам на помощь как раз и приходит SQL, который является тем инструментом, с помощью которого происходит манипулирование данными (создание, извлечение, удаление и т.д.) в базе данных.

SQL (Struc­tured Query Lan­guage) — язык структурированных запросов, с помощью него пишутся специальные запросы (так называемые SQL инструкции) к базе данных с целью получения данных из базы данных или для манипулирования этими данными.

Также обязательно стоит отметить и то, что база данных, и в частности реляционная модель, основана на теории множеств, которая подразумевает объединение разных объектов в одно целое, под одним целым в базе данных как раз и имеется в виду таблица. Это важно, так как язык SQL работает именно со множеством, с набором данных, т.е. с таблицами.

Что такое СУБД

У Вас может возникнуть вопрос, если база данных это некая информация, которая хранится в таблицах, то как она выглядит физически? Как на нее посмотреть в целом?

Если очень коротко, то это просто файл, созданный в специальном формате, именно так и выглядит база данных (в большинстве случаев БД включает несколько файлов, но сейчас на этом уровне это не так важно).

Идем дальше, если база данных это файл в специальном формате, то как его создать или открыть? И тут возникает сложность, ведь просто так, без каких-либо инструментов создать такой файл, т.е. реляционную базу данных, нельзя, для этого нужен специальный инструмент, который мог бы создавать и управлять базой данных, иными словами, работать с этими файлами.

Таким инструментом как раз и выступает СУБД – это система управления базами данных, сокращенно СУБД.

Какие СУБД бывают

На самом деле, существует достаточно много различных СУБД, некоторые из них платные и стоят немалых денег, если говорить о полнофункциональных версиях, но даже у самых, так скажем, «крутых» есть бесплатные редакции, которые, кстати, отлично подходят для обучения.

Среди всех по своим возможностям и популярности можно выделить следующие системы:

  • Microsoft SQL Serv­er – это система управления базами данных от компании Microsoft. Она очень популярна в корпоративном секторе, особенно в крупных компаниях. И это не просто СУБД – это целый комплекс приложений, позволяющий хранить и модифицировать данные, анализировать их, осуществлять безопасность этих данных и многое другое;
  • Ora­cle Data­base – это система управления базами данных от компании Ora­cle. Это также очень популярная СУБД, и также среди крупных компаний. По своим возможностям и функциональности Ora­cle Data­base и Microsoft SQL Serv­er сопоставимы, поэтому являются серьезными конкурентами друг другу, и стоимость их полнофункциональных версий очень высока;
  • MySQL – это система управления базами данных также от компании Ora­cle, но только она распространяется бесплатно. MySQL получила очень широкую популярность в интернет сегменте, т.е. именно на MySQL работают чуть ли не все сайты в интернете, иными словами, большинство сайтов в интернете используют эту СУБД как средство хранения данных;
  • Post­greSQL – эта система управления базами данных также является бесплатной, и она очень популярна и функциональна.

Виды SQL запросов

DDL (Data Def­i­n­i­tion Lan­guage) язык определения данных. Задачей DDL запросов является создание БД и описание ее структуры. Запросами такого вида устанавливаются правила того, в каком виде различные данные будут размещаться в БД.

DML (Data Manip­u­la­tion Lan­guage) — язык манипулирования данными. В число запросов этого типа входят различные команды, используя которые непосредственно производятся некоторые манипуляции с данными. DML-запросы нужны для добавления изменений в уже внесенные данные, для получения данных из БД, для их сохранения, для обновления различных записей и для их удаления из БД. В число элементов DML-обращений входит основная часть SQL операторов.

DCL (Data Con­trol Lan­guage) — язык управления данными. Включает в себя запросы и команды, касающиеся разрешений, прав и других настроек СУБД.

TCL (Trans­ac­tion Con­trol Lan­guage) — язык управления транзакциями. Конструкции такого типа применяют чтобы управлять изменениями, которые производятся с использованием DML запросов. Конструкции TCL позволяют нам производить объединение DML запросов в наборы транзакций.

Основные типы SQL запросов по их видам:

Простые SQL запросы - короткая справка и примеры

Простые SQL запросы

Создаём таблицу

Для того, чтобы создать таблицу в SQL, используется выражение CREATE TABLE. Он принимает в качестве параметров все колонки, которые мы хотим внести, а также их типы данных.

Давайте создадим табличку с названием “Months”, в которой будет три колонки:

  • id — иными словами, порядковый номер месяца (целочисленный тип или int)
  • name — название месяца (строка или varchar(10) (10 символов — максимальная длина строки))
  • days — число дней в конкретном месяце (целочисленный тип или int)

Код будет выглядеть вот так:

CREATE TABLE months (id int, name varchar(10), days int);

Также, когда создаются таблицы, принято добавлять так называемый pri­ma­ry key. Это колонка, значения в которой уникальны. Чаще всего pri­ma­ry key колонкой является id, но в нашем случае это может быть и name, так как имена всех месяцев уникальны.

Ввод данных

Теперь давайте добавим пару месяцев в нашу табличку. Сделать это можно с помощью команды INSERT. Есть два разных способа использовать INSERT:

Первый способ не подразумевает указания названий колонок, а лишь принимает значения в том порядке, в котором они указаны в таблице.

INSERT INTO months VALUES (1,‘January’,31);

Первый способ короче второго, однако если в будущем мы захотим добавить дополнительные колонки, все предыдущие запросы работать не будут. Для решения данной проблемы следует использовать второй способ. Его суть в том, что перед вводом данных мы указываем названия колонок.

INSERT INTO months (id,name,days) VALUES (2,‘February’,29);

В случае, если мы не укажем одну из колонок, на её место будет записано NULL или заданное значение по умолчанию, но это уже совсем другая история.

Select

Данный запрос используется в случае, если нам нужно показать данные в таблице. Наверное, самым простым примером использования SELECT будет следующий запрос:

Результатом данного запроса будет таблица со всеми данными в таблице char­ac­ters. Знак звёздочки (*) означает то, что мы хотим показать все столбцы из таблицы без исключений. Так как в базе данных обычно больше одной таблицы, нам необходимо указывать название таблицы, данные из которой мы хотим посмотреть. Сделать это мы можем, используя ключевое слово FROM.

Когда вам нужны лишь некоторые столбцы из таблицы, то вы можете указать их имена через запятую вместо звёздочки.

SELECT name, weapon FROM characters

Также иногда нам нужно отсортировать выводимые данные. Для этого мы используем ORDER BY “название столбца”. ORDER BY имеет два модификатора: ASC (по возрастанию) (по умолчанию) и DESC (по убыванию).

SELECT name, weapon FROM “char­ac­ters” ORDER BY name DESC

Where

Теперь мы знаем, как показать только конкретные столбцы, но что если мы хотим включить в вывод лишь некоторые конкретные строки? Для этого мы используем WHERE. Данное ключевое слово позволяет нам фильтровать данные по определённому условию.

В следующем запросе мы выведем только тех персонажей, которые в качестве оружия используют пистолет.

SELECT *
FROM characters
WHERE weapon = ‘pis­tol’;

И/или

Условия в WHERE могут быть написаны с использованием логических операторов (AND/OR) и математические операторы сравнения (=, , =, <>).

К примеру, у нас есть табличка, в которой записаны данные о 4 самых продаваемых музыкальных альбомах всех времён. Давайте выведем только те, жанром которых является рок, а продажи были меньше, чем 50 миллионов копий.

SELECT *
FROM albums
WHERE genre = ‘rock’ AND sales_in_millions

Примечание: убедитесь, что используете WHERE, когда удаляете запись из таблицы. Иначе вы удалите все записи из таблицы, сами того не желая.

Удаление таблиц

Если мы хотим удалить все данные из таблицы, но при этом оставить саму таблицу, нам следует использовать команду TRUNCATE:

В случае, если мы хотим удалить саму таблицу, то нам следует использовать команду DROP:

На этой ноте мы завершаем данный SQL-туториал. Само собой, это не всё, и для полного освоения нужно ещё много изучить, однако данное вступление даст вам толчок для дальнейшего изучения.

Источник

Простые SQL запросы короткая справка и примеры

Простые SQL запросы — короткая справка и примеры

Простые SQL запросы - короткая справка и примерыПростые SQL запросы — короткая справка и примеры

Содержание

  • Простые SQL запросы
  • SQL запросы с условиями
  • Сложные SQL запросы
  • SQL запросы изменяющие данные
  • SQL рекомендации

Простые SQL запросы

Запросы написаны без экранирующих кавычек, так как у MySQL, MS SQL и PostGree они разные.

SQL запрос: получение указанных (нужных) полей из таблицы

Получаем список записей: ВСЕ страны и их население. Название нужных полей указываются через запятую.

* обозначает все поля. То есть, будут показы АБСОЛЮТНО ВСЕ поля данных.

SQL запрос: вывод записей из таблицы исключая дубликаты

Получаем список записей: страны, где находятся наши пользователи. Пользователей может быть много из одной страны. В этом случае это ваш запрос.

SQL запрос: вывод записей из таблицы по заданному условию

Получаем список записей: страны, где количество людей больше 100 000 000.

SQL запрос: вывод записей из таблицы с упорядочиванием

Получаем список записей: города в алфавитном порядке. В начале А, в конце Я.

Получаем список записей: города в обратном (DESC) порядке. В начале Я, в конце А.

SQL запрос: подсчет количества записей

Получаем число (количество) записей в таблице. В данном случае НЕТ списка записей.

SQL запрос: вывод нужного диапазона записей

Получаем 2 (вторую) и 3 (третью) запись из таблицы. Запрос полезен при создании навигации на WEB страницах.

SQL запросы с условиями

Вывод записей из таблицы по заданному условию с использованием логических операторов.

SQL запрос: конструкция AND (И)

Получаем список записей: города из России И имеют доступ к нефти. Когда используется оператор AND, то должны совпадать оба условия.

SQL запрос: конструкция OR (ИЛИ)

Получаем список записей: все города из России ИЛИ США. Когда используется оператор OR, то должно совпадать ХОТЯ БЫ одно условие.

SQL запрос: конструкция AND NOT (И НЕ)

Получаем список записей: все пользователи из России И сделавших НЕ МЕНЬШЕ 7 комментариев.

SQL запрос: конструкция IN (В)

Получаем список записей: все пользователи, которые проживают в (IN) (России, или Болгарии, или Китая)

SQL запрос: конструкция NOT IN (НЕ В)

Получаем список записей: все пользователи, которые проживают не в (NOT IN) (России или Китае).

SQL запрос: конструкция IS NULL (пустые или НЕ пустые значения)

Получаем список записей: все пользователи, где status не определен. NULL это отдельная тема и поэтому она проверяется отдельно.

Получаем список записей: все пользователи, где status определен (НЕ НОЛЬ).

SQL запрос: конструкция LIKE

Получаем список записей: пользователи, у которых фамилия начинается с комбинации «Иван». Знак % означает ЛЮБОЕ количество ЛЮБЫХ символов. Чтобы найти знак % требуется использовать экранирование «Иван\%».

SQL запрос: конструкция BETWEEN

Получаем список записей: пользователи, которые получает зарплату от 25000 до 50000 включительно.

Логических операторов ОЧЕНЬ много, поэтому детально изучите документацию по SQL серверу.

Сложные SQL запросы

SQL запрос: объединение нескольких запросов

Получаем список записей: пользователи, которые зарегистрированы в системе, а также те пользователи, которые зарегистрированы на форуме отдельно. Оператором UNION можно объединить несколько запросов. UNION действует как SELECT DISTINCT, то есть отбрасывает повторяющиеся значения. Чтобы получить абсолютно все записи, нужно использовать оператор UNION ALL.

SQL запрос: подсчеты значений поля MAX, MIN, SUM, AVG, COUNT

Вывод одного, максимального значения счетчика в таблице:

Вывод одного, минимальный значения счетчика в таблице:

Вывод суммы всех значений счетчиков в таблице:

Вывод среднего значения счетчика в таблице:

Вывод количества счетчиков в таблице:

Вывод количества счетчиков в цехе №1, в таблице:

Это самые популярные команды. Рекомендуется, где это возможно, использовать для подсчета именно SQL запросы такого рода, так как ни одна среда программирования не сравнится в скорости обработки данных, чем сам SQL сервер при обработке своих же данных.

SQL запрос: группировка записей

Получаем список записей: с названием континента и с суммой площадей всех их стран. То есть, если есть справочник стран, где у каждой страны записана ее площадь, то с помощью конструкции GROUP BY можно узнать размер каждого континента (на основе группировки по континентам).

SQL запрос: использование нескольких таблиц через алиас (alias)

Получаем список записей: заказы от покупателей, которые проживают только в Тюмени.

На самом деле, при правильном запроектированной базе данных данного вида запрос является самым частым, поэтому в MySQL был введен специальный оператор, который работает в разы быстрее, чем выше написанный код.

Рекомендуется использовать в запросах именно такой вид оформления SQL запросов.

Вложенные подзапросы

Получаем одну запись: информацию о пользователе с максимальным окладом.

Внимание! Вложенные подзапросы являются одним из самых узких мест в SQL серверах. Совместно со своей гибкостью и мощностью, они также существенно увеличивают нагрузку на сервер. Что приводит к катастрофическому замедлению работы других пользователей. Очень часты случаи рекурсивных вызовов при вложенных запросах. Поэтому настоятельно рекомендую НЕ использовать вложенные запросы, а разбивать их на более мелкие. Либо использовать вышеописанную комбинацию LEFT JOIN. Помимо этого данного вида запросы являются повышенным очагом нарушения безопасности. Если решили использовать вложенные подзапросы, то проектировать их нужно очень внимательно и первоначальные запуски сделать на копиях баз (тестовые базы).

SQL запросы изменяющие данные

SQL запрос: INSERT

Инструкция INSERT позволяют вставлять записи в таблицу. Простыми словами, создать строчку с данными в таблице.

Читайте также:  Средняя таблица размеров для женщин

Вариант №1. Часто используется инструкция:

В таблицу «table_name» будет вставлено 2 (два) пользователя сразу.

Вариант №2. Удобнее использовать стиль:

В этом есть свои преимущества и недостатки.

Основные недостатки:

  • Множество мелких SQL запросов выполняются чуть медленнее, чем один большой SQL запрос, но при этом другие запросы будут стоять в очереди на обслуживание. То есть, если большой SQL запрос будет выполняться 30 минут, то в все это время остальные запросы будут курить бамбук и ждать своей очереди.
  • Запрос получается массивнее, чем предыдущий вариант.

Основные преимущества:

  • Во время мелких SQL запросов, другие SQL запросы не блокируются.
  • Удобство в чтении.
  • Гибкость. В этом варианте, можно не соблюдать структуру, а добавлять только необходимые данные.
  • При формировании подобным образом архивов, можно легко скопировать одну строчку и запустить ее через командную строку (консоль), тем самым не восстанавливая АРХИВ целиком.
  • Стиль записи схож с инструкцией UPDATE, что легче запоминается.

SQL запрос: UPDATE

В таблице «table_name» в записи с номером будет изменены значения полей user_login и user_surname на указанные значения.

SQL запрос: DELETE

В таблице table_name будет удалена запись с id номером 3.

SQL рекомендации

  1. Все названия полей рекомендуются писать маленькими буквами и если надо, разделять их через принудительный пробел «_» для совместимости с разными языками программирования, таких как Delphi, PHP, Perl, Python и Ruby.
  2. SQL команды писать БОЛЬШИМИ буквами для удобочитаемости. Помните всегда, что после вас могут читать код и другие люди, а скорее всего вы сами через N количество времени.
  3. Называть поля с начала существительное, а потом действие. Например: city_status, user_login, user_name.
  4. Стараться избегать слов резервных в разных языках которые могут вызывать проблемы в языках SQL, PHP или Perl, типа (name, count, link). Например: link можно использовать в MS SQL, но в MySQL зарезервировано.

Данный материал является короткой справкой для повседневной работы и не претендует на супер мега авторитетный источник, коим является первоисточник SQL запросов той или иной базы данных.

Дополнительная информация по теме

Как правильно формулировать поисковой запрос и все о перспективах развития поисковых систем и новых типов поисковых запросов

В статье рассматриваются популярные варианты для ночной работы в сети Интернет для подработки

Статья, о новых стандартах sim карт на телефонном рынке, который сейчас активной обсуждается и способен вытеснить обычные sim карты

Подробное описание истории и устройство процессоров компании AMD, с графическими схемами и сравнительными характеристиками

Источник

SELECT, SELECT DISTINCT. Вывод данных из таблиц в MySQL

Команда SELECT

SELECT используется для создания выборок из базы данных MySQL.

С помощью SELECT можно:

  • выводить данные из одной или нескольких таблиц и колонок.
  • вывести все данные из таблицы используя оператор * .
  • выводить данные с условием, используя команду WHERE .
  • ограничить количество выводимых записей, используя команду LIMIT .
  • задать смещение колонок, используя команду OFFSET .

Синтаксис запроса вывода данных из таблицы

В запросе мы выбираем из каких колонок (column1, column2, . ) какой таблицы (table_name) мы хотим получить данные.

Если нужно получить данные всех колонок таблицы, то воспользуйтесь оператором * .

Вывод данных таблицы в терминале

Пример вывода данных колонок id, title, author, price, amount из таблицы books.

mysql> USE Bookstore;
Database changed

mysql> SELECT id, title, author, price, amount FROM books;
+—-+—————————+———————+———+———+
| id | title | author | price | amount |
+—-+—————————+———————+———+———+
| 1 | Дубровский (Акция) | Александр Пушкин | 230.00 | 20 |
| 2 | Нос (Акция) | Николай Гоголь | 255.20 | 7 |
| 3 | Мастер и Маргарита | Михаил Булгаков | 263.00 | 8 |
| 4 | Мёртвые души (Акция) | Николай Гоголь | 173.00 | 3 |
| 5 | Преступление и наказание | Фёдор Достоевский | 245.00 | 3 |
| 6 | Война и мир | Лев Толстой | 341.00 | 1 |
| 7 | Анна Каренина | Лев Толстой | 346.00 | 0 |
| 8 | Отцы и дети | Иван Тургенев | 371.00 | 3 |
| 9 | Собачье сердце | Михаил Булгаков | 232.00 | 10 |
| 10 | Бесы | Фёдор Достоевский | 212.00 | 8 |
+—-+—————————+———————+———+———+
10 rows in set (0.00 sec)

Запрос для вывода данных всех колонок из таблицы books, будет выглядеть так.

Вывод данных можно также организовать не только в виде таблицы, но и в виде списка, просто добавьте флаг \G после имени таблицы.

mysql> SELECT * FROM books \G;
*************************** 1. row ***************************
id: 1
title: Дубровский (Акция)
author: Александр Пушкин
genre: Драма,Повесть
price: 230.00
discount: 15
edition: 1
isbn: 841-6-817-134484-1
page_num: 120
publish_year: 1855
creation_date: 2019-01-28 15:17:12
amount: 20
shelf_position: f4a322ccca

Вывод данных из нескольких таблиц

Если у вас есть несколько связанных таблиц, то с помощью SELECT вы можете выводить их данные составляя из них одну таблицу.

Например мы имеем таблицу с книгами — books и их заказами — orders.

Выведем колонки id, book_id и status для таблицы orders.

Имея идентификаторы записей таблицы books в колонке book_id, мы можем соотнести их с колонкой id в таблице books с помощью команды WHERE . В результате мы можем узнать статус заказа для каждой книги.

Выведем колонки title, author, price из таблицы books и колонку status из таблицы orders.

mysql> SELECT title, author, price, status FROM books, orders WHERE books.id=book_id;
+———————+——————-+———+——————+
| title | author | price | status |
+———————+——————-+———+——————+
| Мастер и Маргарита | Михаил Булгаков | 263.00 | Новый |
| Дубровский (Акция) | Александр Пушкин | 230.00 | Обрабатывается |
+———————+——————-+———+——————+
2 rows in set (0.00 sec)

Вывести колонки с одинаковыми именами, например id, в данном случае не получится, т.к. они имеются в обоих таблицах.

Читайте также:  Грамотная разметка диска для Linux

Команда SELECT DISTINCT

В отличие от обычного SELECT , SELECT DISCTINCT позволяет выводить только уникальные (не повторяющиеся) данные из таблицы БД.

Источник



Основные команды SQL, которые должен знать каждый программист

Основные команды SQL, которые должен знать каждый программист

Основные команды SQL не ограничиваются стандартными CREATE , UPDATE и DELETE . Данная статья будет полезна тем, кто хочет освежить свои знания по SQL перед собеседованием на работу.

Обратите внимание, что в примерах используется MySQL, поэтому в конце каждого оператора ставится точка с запятой.

Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.

Настройка базы данных

Перед началом создайте БД с тестовыми данными. Для работы вам понадобится скачать два файла: DLL.sql и InsertStatements.sql. После установите MySQL, откройте терминал и войдите в консоль MySQL с помощью команды:

Затем введите пароль и выполните следующую команду. Назовём базу данных «university»:

SHOW DATABASES

SQL-команда, которая отвечает за просмотр доступных баз данных.

CREATE DATABASE

Команда для создания новой базы данных.

С помощью этой SQL-команды USE выбирается база данных, необходимая для дальнейшей работы с ней.

SOURCE

А SOURCE позволит выполнить сразу несколько SQL-команд, содержащихся в файле с расширением .sql.

DROP DATABASE

Стандартная SQL-команда для удаления целой базы данных.

SHOW TABLES

С помощью этой несложной команды можно увидеть все таблицы, которые доступны в базе данных.

CREATE TABLE

SQL-команда для создания новой таблицы:

Ограничения целостности при использовании CREATE TABLE

Может понадобиться создать ограничения для определённых столбцов в таблице. При создании таблицы можно задать следующие ограничения:

  • ячейка таблицы не может иметь значение NULL ;
  • первичный ключ — PRIMARY KEY(col_name1, col_name2, …) ;
  • внешний ключ — FOREIGN KEY(col_namex1, …, col_namexn) REFERENCES table_name(col_namex1, …, col_namexn) .

Можно задать больше одного первичного ключа. В этом случае получится составной первичный ключ.

Пример

Создайте таблицу «instructor»:

DESCRIBE

С помощью DESCRIBE

можно просмотреть различные сведения (тип значений, является ключом или нет) о столбцах таблицы.

INSERT

Команда INSERT INTO

в SQL отвечает за добавление данных в таблицу:

При добавлении данных в каждый столбец таблицы не требуется указывать названия столбцов.

UPDATE

SQL-команда для обновления данных таблицы:

DELETE

SQL-команда DELETE FROM

используется для удаления данных из таблицы.

DROP TABLE

А так можно удалить всю таблицу целиком.

SELECT

Далее мы рассмотрим основные команды SQL, которые позволяют работать непосредственно с данными. К одной из таких SQL-команд относится SELECT для получения данных из выбранной таблицы:

Следующей командой можно вывести все данные из таблицы:

SELECT DISTINCT

В столбцах таблицы могут содержаться повторяющиеся данные. Используйте SELECT DISTINCT для получения только неповторяющихся данных.

WHERE

Можно использовать ключевое слово WHERE в SELECT для указания условий в запросе:

В запросе можно задавать следующие условия:

  • сравнение текста;
  • сравнение численных значений;
  • логические операции AND (и), OR (или) и NOT (отрицание).

Пример

Попробуйте выполнить следующие команды. Обратите внимание на условия, заданные в WHERE :

SQL-команды: пример вывода с WHERE

GROUP BY

Оператор GROUP BY часто используется с агрегатными функциями, такими как COUNT , MAX , MIN , SUM и AVG , для группировки выходных значений.

Пример

Выведем количество курсов для каждого факультета:

SQL-команды: пример вывода с GROUP BY

HAVING

Ключевое слово HAVING было добавлено в SQL по той причине, что WHERE не может использоваться для работы с агрегатными функциями.

Пример

Выведем список факультетов, у которых более одного курса:

SQL-команды: пример вывода с HAVING

ORDER BY

ORDER BY используется для сортировки результатов запроса по убыванию или возрастанию. ORDER BY отсортирует по возрастанию, если не будет указан способ сортировки ASC или DESC .

Пример

Выведем список курсов по возрастанию и убыванию количества кредитов:

BETWEEN

BETWEEN используется для выбора значений данных из определённого промежутка. Могут быть использованы числовые и текстовые значения, а также даты.

Пример

Выведем список инструкторов, чья зарплата больше 50 000, но меньше 100 000:

Оператор LIKE используется в WHERE , чтобы задать шаблон поиска похожего значения.

Есть два свободных оператора, которые используются в LIKE :

  • % (ни одного, один или несколько символов);
  • _ (один символ).

Пример

Выведем список курсов, в имени которых содержится «to» , и список курсов, название которых начинается с «CS-» :

SQL-команды: пример вывода с LIKE

С помощью IN можно указать несколько значений для оператора WHERE :

Пример

Выведем список студентов с направлений Comp. Sci., Physics и Elec. Eng.:

JOIN используется для связи двух или более таблиц с помощью общих атрибутов внутри них. На изображении ниже показаны различные способы объединения в SQL. Обратите внимание на разницу между левым внешним объединением и правым внешним объединением:

SQL-команды: схема использования JOIN

Пример

Выведем список всех обязательных курсов и детали о них:

SQL-команды: пример вывода с JOIN

VIEW — это виртуальная таблица SQL, созданная в результате выполнения выражения. Она содержит строки и столбцы и очень похожа на обычную SQL-таблицу. VIEW всегда показывает самую свежую информацию из базы данных.

Создание

Удаление

Агрегатные функции

Это не совсем основные команды SQL, однако знать их тоже желательно. Агрегатные функции используются для получения совокупного результата, относящегося к рассматриваемым данным:

  • COUNT(col_name) — возвращает количество строк;
  • SUM(col_name) — возвращает сумму значений в данном столбце;
  • AVG(col_name) — возвращает среднее значение данного столбца;
  • MIN(col_name) — возвращает наименьшее значение данного столбца;
  • MAX(col_name) — возвращает наибольшее значение данного столбца.

Вложенные подзапросы

Вложенные подзапросы — это SQL-запросы, которые включают выражения SELECT , FROM и WHERE , вложенные в другой запрос.

Читайте также:  Методика изучения электронных таблиц

Пример

Найдём курсы, которые преподавались осенью 2009 и весной 2010 годов:

Источник

Примеры SQL запросов к базе данных MySQL


Содержание статьи
1. Самые простые MySQL запросы
2. Простые SELECT (выбрать) запросы
3. Простые INSERT (новая запись) запросы
4. Простые UPDATE (перезаписать, дописать) запросы
5. Простые DELETE (удалить запись) запросы
6. Простые DROP (удалить таблицу) запросы
7. Сложные MySQL запросы
8. MySQL запросы и переменные PHP

1. Самые простые SQL запросы

1. Выведет список ВСЕХ баз.

2. Выведет список ВСЕХ таблиц в Базе Данных base_name.

2. Простые SELECT (выбрать) запросы к базе данных MySQL

SELECT – запрос, который выбирает уже существующие данные из БД. Для выбора можно указывать определённые параметры выбора. Например, суть запроса русским языком звучит так — ВЫБРАТЬ такие-то колонки ИЗ такой-то таблицы ГДЕ параметр такой-то колонки равен значению.

1. Выбирает ВСЕ данные в таблице tbl_name.

2. Выведет количество записей в таблице tbl_name.

3. Выбирает (SELECT) из(FROM) таблицы tbl_name лимит (LIMIT) 3 записи, начиная с 2.

4. Выбирает (SELECT) ВСЕ (*) записи из (FROM) таблицы tbl_name и сортирует их (ORDER BY) по полю id по порядку.

5. Выбирает (SELECT) ВСЕ записи из (FROM) таблицы tbl_name и сортирует их (ORDER BY) по полю id в ОБРАТНОМ порядке.

6. Выбирает (SELECT) ВСЕ (*) записи из (FROM) таблицы users и сортирует их (ORDER BY) по полю id в порядке возрастания, лимит (LIMIT) первые 5 записей.

7. Выбирает все записи из таблицы users, где поле fname соответствует значению Gena.

8. Выбирает все записи из таблицы users, где значение поля fname начинается с Ge.

9. Выбирает все записи из таблицы users, где fname заканчивается на na, и упорядочивает записи в порядке возрастания значения id.

10. Выбирает все данные из колонок fname, lname из таблице users.

Внимание! Старайтесь указывать конкретные колонки (как в примере 10). Это важно для того, чтобы запросы обрабатывались намного быстрее!

11. Допустим у Вас в таблице пользовательских данных есть страна. Так вот если Вы хотите вывести ТОЛЬКО список встречающихся значений (чтобы, например, Россия не выводилось 20 раз, а только один), то используем DISTINCT. Выведет, из массы повторяющихся значений Россия, Украина, Беларусь. Таким образом, из таблицы users колонки country будут выведены ВСЕ УНИКАЛЬНЫЕ значения

12. Выбирает ВСЕ данные строк из таблицы users где age имеет значения 18,19 и 21.

13. Выбирает МАКСИМАЛЬНОЕ значение age в таблице users. То есть если у Вас в таблице самое большее значение age(с англ. возраст) равно 55, то результатом запроса будет 55.

14. Выберет данные из таблицы users по полям name и age ГДЕ age принимает самое маленькое значение.

15. Выберет данные из таблицы users по полю name ГДЕ id НЕ РАВЕН 2.

3. Простые INSERT (новая запись) запросы

INSERT – запрос, который позволяет ПЕРВОНАЧАЛЬНО вставить запись в БД. То есть создаёт НОВУЮ запись (строчку) в БД.

1. Делает новую запись в таблице users, в поле name вставляет Сергей, а в поле age вставляет 25. Таким образом, в таблицу дописывается новая строки с данными значениями. Если колонок больше, то они оставшиеся останутся либо пустыми, либо с установленными по умолчанию значениями.

4. Простые UPDATE запросы к базе данных MySQL

UPDATE – запрос, который позволяет ПЕРЕЗАПИСАТЬ значения полей или ДОПИСАТЬ что-то в уже существующей строке в БД. Например, есть готовая строка, но в ней нужно перезаписать параметр возраста, так как он изменился со временем.

1. В таблице users ГДЕ id равно 3 значение поля age становится 18.

2. Всё то же самое, что и в первом запросе, просто показан синтаксис запроса, где перезаписываются два поля и более.
В таблице users ГДЕ id равно 3 значение поля age становится 18, а country Россия.

5. Простые DELETE (удалить запись) запросы к базе данных MySQL

DELETE – запрос, который удаляет строку из таблицы.

1. Удаляет строку из таблицы users ГДЕ id равен 10.

6. Простые DROP (удалить таблицу) запросы к базе данных MySQL

DROP – запрос, который удаляет таблицу.

1. Удаляет целиком таблицу tbl_name.

7. Сложные запросы к базе данных MySQL

Любопытные запросы, которые могут пригодиться даже опытным пользователям

Данный сложный запрос ВЫБИРАЕТ колонки id,name,country В ТАБЛИЦАХ users,admins ГДЕ registration_date (дата) не старше 14 дней И activation НЕ РАВНО , СОРТИРОВАТЬ по registration_date в обратном порядке (новое в начале).

Выше указан пример так называемого запроса в запросе в SQL. Обновить возраст среди пользователей на 18+, где пол — мужской. Подобные варианты запроса не рекомендую. По личному опыту скажу, лучше создать несколько отдельных — они будут прорабатываться быстрее.

8. Запросы к базе данных MySQL и PHP

В MySQL запросы в PHP странице можно вставлять переменные в качестве сравниваемых и тп значений. Пара примеров

1. Выбирает все записи из таблицы users, где поле fname соответствует значению переменной $name.

2. В таблице users ГДЕ id равно 3 значение поля age изменяется на значение переменной $age.

Внимание! Если Вам интересен какой-либо ещё пример, то пишите вопрос в комментарии!

Источник