Часть 12.1: Простая выборка данных из таблиц баз данных в SQLite

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

Простая выборка данных из таблиц баз данных в SQLite

Простая выборка данных из таблиц баз данных в SQLite

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


Как сделать выборку данных из базы данных SQLite3

Ранее мы уже рассматривали синтаксис команды SELECT, которая относится к командам группы манипуляции данными, теперь давайте немного повторим пройденное и поговорим про SQL запрос SELECT. Мы поговорим о том, как сделать простую выборку данных из базы данных под управлением SQLite3.

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

Главное, нужно понимать в какой последовательности использовать ключевые слова в запросе на выборку и какого результата ждать от того или иного ключевого слова. Наши примеры будут усложняться в каждой последующей части. Сейчас мы разберем самые простые примеры выборки данных из базы данных без использования различных клаузул и предикатов (уточняющих фраз), которые нужны чтобы задать условия на выборку данных, отфильтровать данные выборке, отсортировать значения при выборке.

Чтобы успешно делать выборку данных нужно понимать, что SQL запрос, использующий команду SELECT всегда возвращает данные в виде таблицы, что бы вы не делали, какой бы сложные запрос ни был, SQLite, как и другие РСУБД, всегда будет возвращать таблицу. Это главное правило, которое нужно помнить.

Так же стоит помнить последовательность ключевых слов при выборке данных:

  1. Сначала идет ключевое слово SELECT.
  2. Затем в круглых скобках мы указываем столбцы, значения которых хотим получить.
  3. После столбцов идет ключевое слово FROM.
  4. За ключевым словом FROM мы указываем имя таблицы, из которой будет сделана выборка.
  5. Далее идут еще ключевые слова, у которых тоже есть определенный порядок, но сейчас мы не будем усложнять наши примеры.

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

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

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

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

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

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

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

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

Давайте сделаем выборку данных из таблицы table1, получим значение из всех столбцов в нашей таблице, для этого у нас есть две возможности: перечислить имена всех столбцов или использовать символ «*»:

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

Мы видим, что SQLite3 во всех трех случаях реализовала разную выборку данных и вернула разные таблицы.

Использование псевдонимов при выборке данных из базы данных SQLite3: AS и SELECT

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

В качестве имен столбцов мы задали псевдонимы и теперь, вместо выражение у столбцов есть имена: result и expr. Но мы можем использовать ключевое слово AS с SELECT и тогда, когда мы делаем выборку данных из таблиц баз данных. Давайте посмотрим пример:

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

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

Комбинирование выборки данных с другими SQL командами

Мы можем комбинировать команду SELECT с другими SQL запросами и командами. Отметим, что SELECT мы не сможем комбинировать с командами группы определения доступа к данным, так как их в SQLite3 нет. Так же можно не брать в расчет команды группы управления транзакциями, так как внутри транзакции мы можем использовать любые SQL запросы, в том числе и запросы на выборку данных. Остаются только команды определения данных:

  1. Когда мы создаем таблицу в базе данных при помощи команды CREATE, мы можем использовать ключевое слово AS и SELECT для создания новой таблицы на подобие старой.
  2. Мы не сможем скомбинировать выборку данных с командой ALTER, если необходимо сделать модификацию таблицы в базе данных.
  3. Мы не можем использовать вместе выборку данных и команду DROP, которая используется для удаления объектов базы данных.

И команды манипуляции данных:

  1. Во-первых, мы можем делать подзапросы SELECT и объединять запросы SELECT при помощи UNION, а также объединять таблицы при помощи ключевого слова JOIN. Еще мы можем сравнивать результаты двух запросов: EXCEPT и INTERSECT. Поэтому мы можем комбинировать два и более SQL запроса SELECT.
  2. Мы можем комбинировать выборку данных и команду INSERT, когда мы добавляем строки в таблицу базы данных.
  3. Легко комбинируется выборка данных с командой DELETE, которая служит для удаления данных из базы данных.
  4. Когда мы делаем модификацию данных, то вместе с командой UPDATE мы легко можем использовать команду SELECT.

Далее мы будем рассматривать более сложные примеры выборки данных из базы данных SQLite3.

Текст комментария: