SQL запросы для начинающих: примеры команд + исходники кодов для скачивания

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

SQL запросы для начинающих: примеры команд + исходники кодов для скачивания

Что такое СУБД? Способы хранения данных

СУБД (Система Управления Базами Данных) – это ПО, с помощью которого можно производить разные действия – добавлять, удалять, редактировать контент. На сегодняшний день существует несколько популярных СУБД – Оracle, MySQL, PostgreSQL и другие.

Использование одного из вариантов СУБД зависит от разрабатываемого приложения, если это веб-сайт, то здесь самым популярным решением является MySQL.

Когда требуется хранить личную инфу сотрудников, то в этом случае применяется специальный софт, его необходимо установить и настроить. Для небольших проектов применяется Access входящий в программный пакет Office.

Если для разработки веб-сайтов основным языком программирования является php, который может обеспечить подключение, то для проектов, не связанных с веб-разработкой обычно выступают языки высокого уровня, например, С или Delphi.

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

Перейдем к самому простому – сохранению информации. Этот вариант подходит для логов на сайте, т.е. когда требуется сохранить ошибки. Предположим, пользователь зашел на веб-сайт, но получил сообщение “Произошла ошибка с БД, свяжитесь с администратором”. Разумеется, в скрипте включены специальные функции, которые скрывают все ошибки, вместо этого в текстовый файл error_log.txt, отправляется сообщение.

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

SQL запросы для начинающих: примеры команд

Перейдем к сути, как правильно подключать и взаимодействовать с сервером СУБД. Независимо от поставленной задачи, создания сайта или разработки софта, синтаксис кода везде будет одинаковым.

Важно: основные команды для работы – это select (выбрать), insert (вставить), update (обновить), delete (удалить).

№1. Веб-разработка (PHP+MySQL)

В php существует три способа подключение к db: устаревший mysql, mysqli и pdo. Рекомендуется выбрать pdo. Чтобы подключиться указываем имя бд, логин и пароль, а также хост (по умолчание localhost).

PHP+MySQL подключение

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

Класс PDO, который обеспечивает соединение, окружен try catch, это сделано для того, чтобы в случае возникновения ошибок вместо try срабатывал catch. Дальше появляется сообщение, где предлагается написать администратору о возникшей ошибке. File_put_contents, принимает три значения.

  1. Имя txt файла, куда будет предварительно сохраняться все “логи”.
  2. Сообщение, который выдает getMessage, символ “\n” означает – переместить курсор на новую строчку и с каждой строки будет добавляться новый “месседж”.
  3. FILE_APPEND – этот параметр следует указывать тогда, когда требуется, чтобы файл не перезаписывался каждый раз. Новое сообщение добавлялось бы в конце документа. Если убрать FILE_APPEND, то вместо этого будет сохраняться последний текст, который вызывает функция, при этом полностью очищая весь документ.

Select делает выборку из бд. Здесь можно выбрать одну заметку или вывести целый список постов. Приведем пример – показ “username” через идентификатор.

“username” через идентификатор

Метод fetch возвращает строку, из результата выборки, полученное значение можно отобразить командой “echo”. Для показа списка достаточно выбрать другой метод fetchAll и через цикл отобразить содержимое “users”, это будет выглядеть вот так.

метод fetchAll

Когда основная задача создать постраничную навигацию, делается подсчет, сколько постов находится в конкретном разделе, вот так. $count_article = $STH->rowCount();

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

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

контента существует Insert

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

sql запрос

Удаление осуществляется delete, в условии where следует указать уникальный ключ.

удаление части кода.

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

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

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

Итог наших действий – это получение внутреннего ключа автора и отображение по нему новостей.

Backup наших статей можно сделать по аналогии предыдущего примера, только на этот раз воспользуемся insert.

Backup статей

После того, как вы используете insert, все новости перенесутся в bup_news.

Обновление полей осуществляется update.

Обновление баз через SQL запросы

На скриншоте выше показано, как мы увеличиваем count2 на 50. Проверкой служит поле views из другой таблицы, если при переборе новостей встречаются views со значением больше 500, то count2 в bup_news прибавиться на 50.

Следующий образец демонстрирует, как удалить новости, где просмотров больше 500.

удаленеи старый статей через sql

Сложное построение – “джоины”?

Для объединения применяются Join, их бывает четыре типа (самые распространенные).

  1. Left – возвращает всю информацию из левой table, даже при условии если отсутствуют совпадение с правой. Это значит, что возвращаемое значение колонок справа будет NULL.
  2. Right – делает то же самое, что и предыдущий вариант, только на этот раз показывает информация из правой table.
  3. Inner – внутреннее соединение, вывод произойдет только в том случае если подтвердиться наличие факта коннекта. Другими словами, каждый сотрудник из списка обладает профессией, которая расположена в другом “table”. Для их связи используется идентификатор, если у какого-то сотрудника отсутствует id и вместо него допустим “NULL”, то он отображаться не будет. Образец ниже. Для сокращения, INNER можно вообще убрать и оставить только JOIN, суть от этого не меняется.Inner – внутреннее соединение sql
  4. Full – возвращает все строки.

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

sql запрос Join пример

Обратите внимание на “AS”, на скриншоте выше он указан красной стрелкой. Позволяет переименовать параметр. Допустим, выбор происходит из списка юзеров и группы, там могут встречаться поля с одинаковыми названиями. Переименовав одно поле, вы сможете вызвать его и избежать проблемы с одинаковыми именами. Мы так и сделали в цикле for.

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

Смена названий в команде запроса

Перейдем к Inner или просто Join.

Команда Join sql

Ищет связи между users и groups, если находит совпадения, выводит их.

Последний из “джоинов”, который осталось рассмотреть это FULL. В mysql отсутствует full join, поэтом его следует “собрать” другим способом.

Sql запросы пример

№2. Реализация db на Delphi – библиотека sqlite

В среде разработки Object Pascal, есть специальные компоненты, позволяющие осуществлять “connect” с database. Для этого требуется их разместить на форме, создать alias и правильно настроить связь. Для новичков это будет достаточно сложный процесс. Поэтому тем, кто изучает sql запросы для начинающих с нуля, этот вариант явно не подойдет. Самый быстрый способ разработать простенькое приложение для вывода списка сотрудников – это подключить библиотеку sqlite3.dll, а также пару pas файлов. Исходники прикреплены к этой статье.

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

SQLite3 и SQLiteTable команды

В качестве области, где будет происходить вывод наших строк, будет выступать StringGrid.StringGrid1 команды sql

Так же кнопки, которые выполняют действие, такие как “добавить”, “удалить” и “редактировать”. Процесс коннекта происходит следующим образом, сначала объявляем наши переменные после var, потом в процедуре connectDB вызываем функцию GetTable и указываем в скобках параметры, дальше выводим эту инфу в StringGrid1.

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

 

Для отправки в db, применим ExecSQL.

ExecSQL запрос к базе

В нашем случае применяются модульные окна, чтобы открыть новую форму, где записывается ФИО клиента, и все это отправляется на сервер. Если проводить аналог с веб-разработкой, то Modal Windows можно ассоциировать, с popup окнами на сайте. Чтобы при нажатии кнопки код запускался и выполнял поставленные задачи как надо, в настройках у формы в свойствах ModalResult следует установить mrOk. Если этого не сделать, то ничего работать не будет.

Проверка формы

Перейдем к редактированию, сначала делаем выборку из database. Потом вносим изменения.

делаем выборку из database

Процедура удаления сама простая в коде по id вычисляем запись и удаляем её.

Удаление строки по id

Частые вопросы новичков по SQL

  1. Как создать таблицу.Таблица SQL
  2. Что такое первичный и внешний ключ.

Первичный ключ или primary key – он позволяет идентифицировать поле, каждый внесенный id является уникальным и не подлежит дублированию.

Внешний ключ или foreign key – также является идентификаторам и обеспечивает связь двух таблиц.foreign key

  1. Как отсортировать статьи по возрастание и убыванию – для этого существует оператор ORDER by и параметры сортировки ASC (возрастанию) и DESC (по убыванию).отсортировать статьи по возрастание и убыванию
  2. Как показать только уникальные записи поля?

Для этого следует воспользоваться DISTINCT.SQL запросы для начинающих: примеры команд + исходники кодов для скачивания

  1. Как переименовать таблицу?

Используя ALTER можно поменять имя у table.Замена имени

  1. Что такое sql?

Structured Query Language – предназначен для управления database. Основные функции – создание таблицы, размещение новых постов, а также редактирование, удаление.

  1. За сколько можно выучить SQL?

Сам язык достаточно прост, и его можно выучить за 5-8 часов. Вся сложность, с которыми могут столкнуться новички, это использование “джоинов” для объединения нескольких таблиц.

  1. Как выполнять query?

Существуют специальные зарезервированные слова, которые позволяют выполнить команды. Разработчик может осуществить следующие действия select (выборка), insert (вставить), update(редактировать), delete(удалить).

  1. Как правильно подключиться к db?

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

  • PHP для коннекта используется класс PDO
  • Delphi – создание альясов (Alias), настройка “коннекта” через компоненты. Все это делается с помощью раздела администрирования в Windows. Если для вас это слишком сложно, то есть другой вариант – подключить библиотеку sqlite и два pas файла, исходники в архиве.
  1. Как объединить несколько таблиц и вывести результат? Для этого существуют джоины: Inner, Left, Right и Full.

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

СКАЧАТЬ ИСХОДНИКИ К СТАТЬЕ ДЛЯ РАБОТЫ

Не забываем сделать репост и поставить лайк. Всех благ!

Рейтинг
( 2 оценки, среднее 4.5 из 5 )
Руслан Галиулин/ автор статьи
Если вы решили чему-то научиться и познать что-то новое в сфере заработка в интернете и построении бизнеса, то вы на правильном пути, и мой блог — Вам в помощь.
Понравилась статья? Поделиться с друзьями:
FIRELINKS.RU
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: