Как настроить смартфоны и ПК. Информационный портал
  • Главная
  • Ошибки
  • Основы языка запросов SQL – оператор SELECT. Что такое язык SQL и оператор SELECT. SHOW DATABASES: Список всех баз данных

Основы языка запросов SQL – оператор SELECT. Что такое язык SQL и оператор SELECT. SHOW DATABASES: Список всех баз данных

Представляю Вашему вниманию вольный перевод статьи SQL for Beginners

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

Что вам нужно

SQL (структурированный язык запросов) - язык разработанный для взаимодействия с реляционными системами управления базами данных (СУБД), таких как MySQL, Oracle, Sqlite и другими. Для выполнения SQL-запросов из этой статьи, я полагаю, что у вас установлен MySQL . Так же рекомендую использовать phpMyAdmin как визуальное средство отображения для MySQL .

Следующие приложения позволят легко установить MySQL и phpMyAdmin на ваш компьютер:

  • WAMP для Windows
  • MAMP для Mac

Приступим к выполнению запросов в командной строке. WAMP уже содержит ее в консоли MySQL . Для MAMP , возможно потребуется прочитать вот это.

CREATE DATABASE: Создание базы данных

Наш самый первый запрос. Мы создадим базу данных, с которой будем работать.

Первым делом откройте консоль MySQL и залогинтесь. Для WAMP , по-умолчанию, используется пустой пароль. Для MAMP пароль должен быть "root".

После входа напечатайте вот этот запрос и нажмите Enter :

CREATE DATABASE my_first_db;

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

Так же, ключевые слова CREATE DATABASE нечувствительны к регистру, как и все ключевые слова в SQL . Но мы будем писать их в верхнем регистре для улучшения читаемости.

На заметку: набор символов и порядок сопоставления

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

CREATE DATABASE my_first_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Вы найдете список поддерживаемых наборов символов и сопоставлений в MySQL .

SHOW DATABASES: Список всех баз данных

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


DROP DATABASE: Удалить базу данных

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


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

С технической точки зрения это не запрос. Это "оператор" и не требует точки с запятой в конце.


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

Что такое таблица базы данных?

Вы можете думать о таблице в базе данных как о обычной таблице или как о csv-файле, который имеет структурированные данные.


Как в этом примере, в таблице есть имена строк и столбцы с данными. Используя SQL-запросы мы можем создать эту таблицу. Еще мы можем добавлять, считывать, изменять и удалять данные.

CREATE TABLE: Создать таблицу

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

Следующий запрос создает таблицу с двумя столбцами.

CREATE TABLE users (username VARCHAR(20), create_date DATE);

Обратите внимание, мы можем записать запрос на нескольких строках и использовать Tab для отступа.

С первой строкой все просто. Мы создаем таблицу с именем users . Далее, в скобках, перечисляются столбцы таблицы через запятую. После каждого имени столбца идет тип данных, например, VARCHAR или DATE .

VARCHAR(20) означает, что столбец строкового типа и может быть не более 20 символов в длину. DATE - тип данных предназначенный для хранения дат в формате: "YYYY-MM-DD".

Первичный ключ

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

Запрос становится таким:

CREATE TABLE users (user_id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(20), create_date DATE);

INT - 32х битный целочисленный тип (числовой). AUTO_INCREMENT автоматически создает новый номер id каждый раз при добавлении строки данных. Оно не обязательно, но с ним удобнее.

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

Давайте выполним запрос:


SHOW TABLES: Список всех таблиц

Запрос позволяет получить список всех таблиц в текущей базе данных.


EXPLAIN: Показать структуру таблицы

Используйте этот запрос для того, чтобы посмотреть структуру существующей таблицы.


В результате показаны поля (столбцы) и их свойства.

DROP TABLE: Удалить таблицу

Как и DROP DATABASES , этот запрос удаляет таблицу и ее содержимое без каких либо предупреждений.


ALTER TABLE: Изменить таблицу

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

Благодаря читабельности SQL , этот запрос не нуждается в объяснении.



Удалить так же просто. Используйте запрос с осторожностью, данные удаляются без предупроеждений.

Заново добавим поле email , позже оно еще понадобится:

ALTER TABLE users ADD email VARCHAR(100) AFTER username;

Иногда вам может понадобится изменить свойства столбца, для этого не обязательно его удалять и создавать опять.


Этот запрос переименовывает поле username в user_name и изменяет его тип с VARCHAR(20) на VARCHAR(30) . Такие изменения не влияют на данные в таблице.

INSERT: Добавляем данные в таблицу

Давайте добавим записи в таблицу, используя запросы.


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

Обратите внимание, первое значение равно NULL для первичного ключа, поле которого мы назвали user_id . Все потому что поле отмечено как AUTO_INCREMENT и id генерируется автоматически. Первая строка данных будет иметь id равный 1. Следующая добавленная строка - 2 и т.д.

Альтернативный синтаксис

Вот другой синтаксис вставки строк.


На этот раз мы использовали ключевое слово SET вместо VALUES . Отметим несколько вещей:

  • Столбец может быть опущен. Например, мы не присвоили значение полю user_id , потому что оно отмечено как AUTO_INCREMENT . Если не присвоить значение полю с типом VARCHAR , то по-умолчанию оно примет значение пустой строки (если другое значение по-умолчанию не было задано при создании таблицы).
  • К каждому столбцу можно обращаться по имени. Поэтому поля могут идти в любом порядке, в отличии от предыдущего синтаксиса.

Альтернативный синтаксис номер 2

Вот еще один пример.


Как и раньше к полям можно обращаться по имени, они могут идти в любом порядке.

Используйте этот запрос для того, чтобы получить id последней вставленной строки.


NOW()

Пришло время показать вам как использовать функции MySQL в запросах.

Функция NOW() возвращает текущую дату. Используйте ее для автоматического добавления текущей даты в поле с типом DATE .


Обратите внимание, что мы получили предупреждение от MySQL , но это не так важно. Причина в том, что функция NOW() фактически возвращает информацию о времени.


Мы создали поле create_date , которое может содержать только дату, но не время, поэтому данные были усечены. Вместо NOW() мы могли бы использовать CURDATE() , которая возвращает только текущую дату, но в конечном итоге результат был бы тем же.

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

Очевидно, что данные которые мы записали бесполезны пока мы не можем их прочитать. На помощь приходит запрос SELECT .

Простейший пример использования запроса SELECT для чтения данных из таблицы:


Звездочка (*) означает, что мы хотим получить все столбцы таблицы. Если вам надо получить только определенные столбцы, используйте что-то вроде этого:


Чаще всего мы хотим получить только определенные строки, а не все. Например, давайте получим E-mail адрес пользователя nettuts .


Он подобен условию IF. WHERE позволяет задать условие в запросе и получить нужный результат.

Для условия равенства используется одиночный знак (=), а не двойной (==), который, возможно, вы используете в программировании.

Так же вы можете использовать другие условия:


AND и OR используются для комбинирования условий:


Обратите внимание, числовые значения не нужно заключать в кавычки.

IN()

Применяется для сравнения с несколькими значениями.


LIKE

Позволяет задавать шаблон для поиска.


Знак процента (%) используется для задания шаблона.

Условие ORDER BY

Используйте это условие, если хотите чтобы результат возвращался отсортированным:


По-умолчанию задан порядок ASC (по возрастанию). Добавьте DESC для сортировки в обратном порядке.

LIMIT … OFFSET …

Можно ограничивать количество возвращаемых строк.


LIMIT 2 берет две первых строки. LIMIT 1 OFFSET 2 берет одну строку, после первых двух. LIMIT 2, 1 означает тоже самое, только первое число это смещение, а второе - ограничивает количество строк.

UPDATE: Обновление данных в таблице

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


В большенстве случаев используется вместе с WHERE , для того чтобы обновить определенные строки. Если условие WHERE не задано, то изменения будут применены ко всем строкам.

Для ограничения изменяемых строк, можно использовать LIMIT .


DELETE: Удаление данных из таблицы

Как и , этот запрос часто используется совместно с условием WHERE .


TRUNCATE TABLE

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

DELETE FROM users;

Для повышения производительности используйте .


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

Экранирование строковых значений и специальные слова

Строковые значения

Некоторые символы нужно экранировть, иначе могут быть проблемы.


Обратный слэщ (\) используется для экранирования.

Это очень важно по причинам безопасности. Любые пользовательские данные, перед записью в базу данных, должны быть экранированы. В PHP используйте функцию mysql_real_escape_string() или подготовленные запросы.

Специальные слова

Поскольку в MySQL много зарезервированных слов, таких как SELECT или , во избежании противоречий, заключайте имена столбцов и таблиц в кавычки. Причем нужно использовать не обычные кавычки, а обратные (`).

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


Заключение

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

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

База состоит из множества таблиц. Каждая строка - одна запись. Вот, к примеру, простая таблица для пользователей:

Чтобы начать работать с sql-запросами, для начала надо .

Рассмотрим самые простые запросы для начинающих.

Создание базы данных - CREATE DATABASE

CREATE DATABASE `mybase`

В кавычках мы указываем имя нашей базы (кавычки не обязательны, но с ними легче работать).

Установка кодировки - SET NAMES

SET NAMES "utf-8"

Установка кодировки часто помогает в избежание «кракозябр».

Создание таблицы - CREATE TABLE

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

CREATE TABLE `mybase`.`users`(`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `login` VARCHAR(20), `password` VARCHAR(20), `regdate` DATE)

Тут не всё так сложно. Здесь мы пишем, что создаём в базе «mybase» таблицу с названием «users».

`название колонки` тип данных(количество макс. значения) атрибуты

Атрибуты указывать необязательно.

Например, тут мы создали колонку с именем «regdate» с типом данных «DATE».

`regdate` DATE

Здесь, ещё в скобках указали максимально-допустимое значение. Тип данных - символьный

`login` VARCHAR(20),

При создании столбца «id» мы написали атрибуты, рассмотрим их:

  • UNSIGNED - Только положительные числа;
  • NOT NULL - Ячейка не может быть пустой(обязательное заполнение);
  • AUTO_INCREMENT - Автоматическое заполнения поля, начиная от 0 и +1, при создании строки;
  • PRIMARY KEY - Значения поля не сможет повторяться в данным столбце ячеек, делает столбец первичным ключом;

У «id» тип данных - целочисленный.

Добавление информации в базу данных - INSERT

INSERT INTO `users` (login`,`password`,`regdate`) VALUES ("Vasya", "12345", "2015-04-22 17:38:50")

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

Поле «id» заполнять не нужно, оно создаётся автоматически.

Обновление информации - UPDATE

Теперь рассмотрим, как обновить данные в какой-либо строке таблицы. К примеру, поменяем пароль у конкретного пользователя.

UPDATE `users` SET `password` = "54321" WHERE `id` = "1"

Меняем значение поля «password» на новое в строке с «id» равным 1.

Если убрать «WHERE» но изменятся все строки, а не конкретная строка.

Удаление информации - DELETE

Теперь удалим эту строку, со всеми её полями.

DELETE FROM `users` WHERE `id` = "1"

Работает также как и добавление.

Выборка информации из базы данных SELECT

Для работы с информацией в базе, нужно её выбрать.

SELECT * FROM `users` WHERE `id` = "1"

Здесь мы выбрали все строки в таблице «users» (* - все поля).

А можно выбирать только конкретные поля.

SELECT `login`,`password` FROM `users` WHERE `id` = "1"

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

  • Основы реляционных баз данных

    В этой главе… | Организация информации | Что такое база данных | Что такое СУБД | Сравнение моделей баз данных | Что такое реляционная база данных

  • Основы SQL

    В этой главе… | Что такое SQL | Заблуждения, связанные с SQL | Взгляд на разные стандарты SQL | Знакомство со стандартными командами и зарезервированными словами SQL | Представление чисел, символов, дат, времени и других типов данных | Неопределенные значения и ограничения

  • Компоненты SQL

    В этой главе… | Создание баз данных | Обработка данных | Защита баз данных | SQL - это язык, специально разработанный, чтобы создавать и поддерживать данные в реляционных базах. И хотя компании, поставляющие системы для управления такими базами, предлагают свои реализации SQL, развитие самого языка определяется и контролируется стандартом ISO/ANSI.

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

    В этой главе… | Создание, изменение и удаление таблицы из базы данных с помощью инструмента RAD. | Создание, изменение и удаление таблицы из базы данных с помощью SQL. | Перенос базы данных в другую СУБД.

  • Создание многотабличной реляционной базы данных

    В этой главе… | Что должно быть в базе данных | Определение отношений между элементами базы данных | Связывание таблиц с помощью ключей | Проектирование целостности данных | Нормализация базы данных | В этой главе будет представлен пример создания многотабличной базы данных.

  • Манипуляции данными из базы

    В этой главе… | Работа с данными | Получение из таблицы нужных данных | Вывод информации, выбранной из одной или множества таблиц | Обновление информации, находящейся в таблицах и представлениях | Добавление новой строки в таблицу

  • Определение значений

    В этой главе… | Использование переменных для уменьшения избыточного кодирования | Получение часто запрашиваемой информации, находящейся в поле таблицы базы данных | Комбинирование простых значений для создания составных выражений | В этой книге постоянно подчеркивается, насколько важной для поддержания целостности базы данных является структура этой базы.

  • Сложные выражения со значением

    В этой главе… | Использование условных выражений case | Преобразование элемента данных из одного типа данных в другой | Экономия времени ввода данных с помощью выражений со значением типа запись | В главе 2 SQL был назван подъязыком данных.

  • "Пристрелка" к нужным данным

    В этой главе… | Указание требуемых таблиц | Отделение нужных строк от всех остальных | Создание эффективных предложений where | Как работать со значениями null | Создание составных выражений с логическими связками | Группирование вывода результата запроса по столбцу

  • Реляционные операторы

    В этой главе… | Объединение таблиц, имеющих похожую структуру | Объединение таблиц, имеющих разную структуру | Получение нужных данных из множества таблиц | SQL - это язык запросов, используемый в реляционных базах данных.

  • Использование вложенных запросов

    В этой главе… | Извлечение данных из множества таблиц с помощью одного оператора SQL | Поиск элементов данных путем сравнения значения из одной таблицы с набором значений из другой | Поиск элементов данных путем сравнения значения из одной таблицы с выбранным с помощью оператора select единственным значением из другой

  • Привет, уважаемый читатель! Этой записью я открою новую рубрику на свое блоге, в которой буду публиковать записи и даже не просто записи, а видео записи. Рубрика будет называться SQL и реляционные базы данных и публиковаться в ней будут видео уроки по технологии SQL и теория реляционных баз данных, естественно, в формате видео. Сам я не люблю слово курс, поскольку считаю, что курсы преподаются в университетах, но реалии Рунета таковы, что это слово используют очень часто, буду использовать иногда его и я.

    Мой видео курс представляет собой набор видео скринкастов по теме SQL и базы данных, в качестве СУБД использовалась библиотека SQLite. Скринкасты разбиты на темы, темы в свою очередь разбиты на части, каждая часть — это отдельный видео урок продолжительностью 5-15 минут, в котором мы будем разбираться с теорией баз данных или SQL командами и запросами. Но не буду тянуть кота за хвост и сразу дам вам ссылку плейлист в Ютуб: SQL и реляционные базы данных . Видео в плейлисте расположены в том порядке, в котором я бы рекомендовал их смотреть. И не забудьте подписаться на мой канал, будет еще интереснее и больше!

    Для кого будут полезны видео уроки из курса SQL и реляционные базы данных для начинающих?

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

    Отмечу, что эти видео уроки будут полезны не только новичкам SQL, но и более продвинутым пользователям, которые имеют определенный набор знаний по SQL и базам данных, но этот набор знаний не систематизирован и не позволяет перейти к самостоятельной работе. Хоть начинаем мы и с простых вещей, которые я стараюсь рассказать доступно и внятно, но заканчиваем мы сложным SQL запросами, хотя кого я пугаю? :)) Сложных SQL запросов не бывает, бывают объемные запросы и запросы, потребляющие много ресурсов.

    Как построены эти видео уроки?

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

    Основы SQLite и особенности данной СУБД?

    В первой теме мы поговорим про особенности СУБД SQLite, посмотрим, где используют данную библиотеку и в каких целях, а также попробуем установить и настроить SQLite на компьютер под управлением операционной системы Windows 10. За основу были взяты публикации из первой темы: .

    1. Выбираем СУБД и говорим про программы для работы и администрирования баз данных.
    2. SQLite — программа для создания базы данных при помощи языка SQL.
    3. Установка приложения SQLite для работы с базами данных. Настраиваем доступ к базе данных.
    4. Система управления базами данных SQLite или где используется эта база данных.
    5. Беспалтные графические программы для работы с базами данных (менеджеры баз данных).
    6. Управление и администрирование баз данных при помощи DBeaver.

    Пробуем составлять SQL запросы и работать с базой данных SQLite

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

    Теория реляционных баз данных

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

    Язык запросов SQL

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

    Типы данных в SQLite

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

    SQL команды опрделения данных (DML команды)

    Здесь мы начнем уже плотно работать с языком SQL и познакомимся с SQL команды опрделения данных, которые позволяют работать с объектами базы данных: создавать их, удалять и модифицировать. К объектам базы данных можно отнести: саму базу данных, таблицу в базе данных, VIEW, индексы, триггеры и др. Видео уроки данной темы посвящены синтаксису SQL команд CREATE, DROP, ALTER и их использованию..html

    SQL команды манипуляции данными (DML команды)

    Эта тема видео уроков познакомит вас с синтаксисом (правилами написания) SQL команд манипуляции данными (DML команд), к этим командам относятся: INSERT, DELETE, UPDATE, SELECT. Соответственно, команды позволяют: вставлять и добавлять строки в таблицы, удалять строки из таблиц, модифицировать данные в таблицах и делать выборку данных..html

    SQL команды управления транзакциями

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

    Работаем с таблицами базы данных

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

    Обеспечение целостности данных

    Эта тема моих видео уроков SQL хорошо демонстрирует применение теории реляционных баз данных на практике в языке SQL. Здесь мы научимся задавать различные ограничения, для того чтобы обезопасить свои данные! Также мы рассмотрим использование ключей или ключевых атрибутов на практике и научимся делать различные виды связей между таблицами..html

    SQL триггеры на примере базы данных SQLite

    Индексы SQL таблиц на примере баз данных SQLite

    2 комментария к записи Видео курс и бесплатные уроки по SQL и реляционным базам данных для начинающих и не только

    Здравствуйте! А где видео??? Где видео уроки то??? Весь сайт перерыл, все ссылки, всю карту сайта...

    Please enable JavaScript to view the

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

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

    Что такое язык SQL и оператор SELECT

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

    SELECT – оператор языка SQL, относится к группе операторов манипуляции данными (Data Manipulation Language, DML ) и служит для выборки данных из базы данных.

    Примечание! Для того чтобы изучать язык SQL и базы данных существуют специальные бесплатные редакции крупных СУБД, например в SQL Server от компании Microsoft есть редакция Express. Как установить данную СУБД можете почитать в материале - Описание установки Microsoft SQL Server 2016 Express .

    Вот самый простой пример использования оператора SELECT.

    SELECT * FROM Table

    • * - показать все данные;
    • FROM - из источника;
    • Table - название источника (в нашем случае таблица ).

    Но, на практике, зачастую нам нужны не все данные из таблицы, а иногда только некоторые колонки, для этого просто указываем вместо * название нужной колонки (или колонок ), например:

    SELECT Price FROM Table

    где, Price и есть название колонки.

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

    Если Вам нужно указать несколько колонок, то просто перечисляйте их через запятую после оператора SELECT, например

    SELECT price, name, model FROM Table

    где, price, name, model это колонки из таблицы Table.

    Условие выборки – оператор WHERE

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

    SELECT price FROM Table WHERE price > 100

    где, WHERE и есть условие, т.е. мы отображаем только те строки, которые соответствуют нашему условию (цена больше 100) .

    Операторы сравнения в SQL

    • «>» – больше чего-либо;
    • «<» – меньше чего-нибудь;
    • «=» – равно;
    • «<>» – не равно;
    • «>=» – больше или равно;
    • «<=» – меньше или равно.

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

    SELECT price FROM table WHERE price BETWEEN 400 AND 600

    где, мы указываем, что цена должна быть в промежутке от 400 до 600.

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

    SELECT price FROM table WHERE price IN (400, 600)

    В данном случае мы хотим получить только цену со стоимостью 400 и 600.

    Если нам нужно получить только уникальные строки источника, можно указать ключевое слово DISTINCT , например

    SELECT DISTINCT price FROM Table WHERE price > 100

    Примечание! Язык SQL не чувствителен к регистру, запросы можно писать как в одну строку, так и разбивать их на несколько. Например, следующие два запроса абсолютно одинаковые.

    SELECT price FROM Table

    Select price From Table

    Сортировка ORDER BY

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

    SELECT price FROM Table ORDER BY price DESC

    Этот пример сортировки по убыванию, но можно сортировать и по возрастанию, вместо DESC пишем ASC, но обычно так не пишут, так как сортировка по возрастанию является по умолчанию.

    Агрегирующие функции в SQL

    В SQL очень полезные так называемые агрегирующие функции, а именно:

    • COUNT - количество значений в указанном столбце;
    • SUM - сумма значений в указанном столбце;
    • AVG - среднее значение в указанном столбце;
    • MIN - минимальное значение в указанном столбце;
    • MAX - максимальное значение в указанном столбце.

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

    SELECT AVG(price), MAX(price), MIN(price) FROM table

    Группировка GROUP BY

    Можно проводить группировку значений по колонкам, например, нам нужно узнать среднюю цену для каждой модели компьютера, в данном случае запрос будет вот таким

    SELECT model, AVG (price) AS AVGPrice FROM table GROUP BY model

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

    Также как и при использовании условий в отдельных колонках можно указывать и условие на целую группу, с помощью функции HAVING . Например, нам нужно определить максимальную цену компьютера, сгруппированную по моделям этих компов, но максимальная цена которых, меньше 500.

    SELECT model, MAX(price) FROM table GROUP BY model HAVING MAX(price) < 500

    В этом случае наш запрос выдаст нам сгруппированные по моделям компьютеры, максимальная цена которых, меньше 500.

    Примечание! Подробней о группировке в SQL можете почитать вот в этом материале .

    NULL значение в SQL

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

    SELECT * FROM table WHERE price IS NULL

    Что и будет означать поиск всех строк, в которых отсутствует значение для поля price.

    Упрощенный синтаксис оператора SELECT

    SELECT <Список полей> или * , ...] , ...]

    На сегодня пока все, мы рассмотрели с Вами небольшую часть языка SQL, а именно оператор SELECT. Удачи!

  • Лучшие статьи по теме