Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

FAQ MySQL запросы - как единственно верный способ вывода данных

Alex_Bardakov

Изучающий
Пользователь
Регистрация
18 Фев 2015
Сообщения
542
Лучшие ответы
0
Репутация
106
Как только человек начинает работать с множеством данных, возникает необходимость их каким-либо образом упорядочивать и архивировать, поэтому рано, или поздно приходит мысль о создании такого виртуального архива, как база данных, в которой и будет храниться вся необходимая информация. Тогда можно прибегнуть, к примеру, к такой программе, как Microsoft Access.
Создав в ней базу данных, кажется, что дело уже сделано, но уже совсем скоро появится необходимость, которую диктует современная жизнь — это возможность пользоваться всеми данными заключенными в базе через интернет с других компьютеров.
MySQL представляет собой наиболее популярную и распространенную СУБД для сети интернет. Данная СУБДне предназначена для того, чтобы работать с большим количеством информации, но ее возможности позволяют справляться со всеми задачами, необходимыми для работы интернет сайтов как скромных, так и ресурсов приличных размеров.
Чтобы обращаться и собственно работать с БД MySQL существуют определенные команды, которые обычно обозначают как запросы MySQL. Именно с помощью запросов можно выполнять такие манипуляции с базой как удаление, сортировка, изменение, добавление, получение и т.д.
Какими бывают MySQL запросы?

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

Существует два запроса, которые можно назвать максимально или супер простыми.
«Show databases;» — данный запрос выведет на экран список всех имеющихся баз данных.

«Show tables in bd;» — данная команда позволит узнать количество и наименования всех таблиц, которые есть в базе данных под названием bd.
Ну а теперь от супер простых запросов перейдем просто к простым.
Запросы MySQL типа Select

Зная значение слова select, можно понять, что все команды, связанные с данным словом, будут направлены на выбор и просмотр информации хранящейся только в одной таблице принадлежащей к базе.
«SELECT count(*) FROM cart;» — данный запрос позволит узнать, сколько записей содержится в упомянутой таблице:
Запрос «SELECT * FROM cart;» — позволит просмотреть все данные, которые имеются в таблице cart из базы данных:
«SELECT * FROM cart LIMIT 2,3;» — с помощью данного запроса можно выбрать блок данных и вывести его. В данном случае выбраны 3 записи на вывод, начиная со второй строчки. Такой запрос может быть очень полезен для создания блоков со страницами для навигации:
«SELECT * FROM people ORDER BY number;» — данная команда позволит вывести все поля таблицы под названием people в соответствии с полем number в порядке увеличения его значений:
«SELECT * FROM people ORDER BY number DESC;» — данный запрос позволяет выбрать все строки той же таблицы people, только упорядоченные не так как в предыдущем примере, а по убыванию:
«SELECT * FROM people ORDER BY number LIMIT 5;» — этот запрос выбирает из таблицы people только 5 строк, которые располагаются в соответствии с увеличением значения поля number:
«SELECT * FROM people WHERE name=’Anna’;» — данный запрос делает выборку полей таблицы people, в которых в роли значения поля name указана переменная Anna:
«SELECT * FROM people WHERE name LIKE ‘An%‘;» — выводит только те поля таблицы people, в которых в полях под названием name начинается с букв An:
«SELECT * FROM people WHERE name LIKE ‘%na’ ORDER BY number ;» — запрос выводит данные таблицы peopleтолько тогда, когда значение поля name оканчивается буквами na, причем данные выводятся упорядоченными в соответствии с увеличением значения поля number:
«SELECT name, last_name FROM people;» — выводит на экран только данные таблицы people заключенные в полях last_name и name:
«SELECT DISTINCT site FROM cart;» — команда выводит только не повторяющиеся значения поля site из таблицы cart. К примеру, если таблица будет содержать только три значения sit.ru, sit.ru, wi-de.ru, то после работы данной команды будет выведено только два значения — sit.ru и wi-de.ru:
«SELECT * from people where age in (12,15,18);» — данный запрос выведет на экран только те данные из таблицы people, у которых в качестве значения поля под названием age будут указаны цифры 12, 15 или 18:
Запросы MySQL типа Insert

Данные виды запросов к базе данных позволяют вставить необходимую информацию в таблицу. То есть, посредством команд insert можно вставить в таблицу строку, добавив тем самым информацию к базе данных.
«INSERT into cart (sit, des) values (‘sit.ru’, ‘Sit-разработка сайтов’)» — данный запрос позволит вставить в таблицу базы под названием cart еще одну строку, у которой в поле sit будет значение sit.ru а в поле des значение Sit-разработка сайтов.
Запросы MySQL типа Update

Данный вид запросов занимается изменением данных уже имеющихся в базе.
«UPDATE cart set sit = ‘do.com’ where id = ‘3’» — запрос изменит значение, записанное в поле sit таблицы cart, в строке, номер id которой равен 3, на значение do.com.
Запросы MySQL типа Delete

Запросы данного типа позволяют производить удаление записей таблицы, являющейся частью базы данных.
«DELETE from cart where id = ‘3’» — данной командой удаляется вся информация из строки, id которой соответствует 3 в таблице cart.
Сложные запросы MySQL

Как уже было сказано ранее, сложный тип запросов — это запросы, которые способны одновременно задействовать две или даже больше двух таблиц в базе. Для того чтобы осознать принципы построения подобных команд рассмотрим хотя бы некоторые из них.
«SELECT DISTINCT name FROM people, address WHERE people.adress_no = ads.addr_no AND city LIKE ‘L%’;» — запрос сортирует и выводит все уникальные значения, записанные в поле name таблицы people, которые проживают по адресу с названием, начинающимся на букву L в соответствии со значением поля addr_no из таблицы баз под названием ads.
Данный запрос иначе может быть введен так:
«SELECT DISTINCT name FROM people p, ads a WHERE p.adress_no = a.addr_no AND city LIKE ‘L%’;».

Оба этих запроса выведут на экран одно и то же. Если присмотреться, то подобные запросы не слишком то и сложны, главное точно знать наименование таблицы и через точку указать наименование поля, или же дать таблицам сокращенные имена для удобства и скорости ввода.
«SELECT her.char_name, her.cnt, char_temp.ClassName FROM char_temp, her WHERE char_temp.ClassId = her.class_id Order by char_temp.ClassName;» — Данный запрос позволяет вывести на экран данные из полей char_name, и cnt таблицы базы под названием her и поля ClassName из таблицы char_temp благодаря тому, что значения полей ClassId таблицы char_temp и class_id таблицы her имеют одинаковые идентификаторы. Данные выводятся в упорядоченном виде по полю ClassName таблицы char_temp.
В сокращенном виде данная команда будет выглядеть так: «SELECT char_name, cnt, ClassName FROM her left join char_temp on her.class_id=char_temp.ClassId;».
Если суть построения команд для вас стала понятной, то вы без труда сможете составлять сложные запросы, используя не только команду SELECT, но и команды UPDATE, DELETE, INSERT и другие.
Вложенные запросы MySQL

Во время работы с таблицами баз данных, особенно в деле разработки сайтов, зачастую возникает необходимость работать с множеством различных таблиц, пользуясь сложными запросами, но в иных случаях такое использование запросов может быть крайне неудобно и даже чересчур сложно. Да и к тому же множество запросов может сделать сайт слишком медленным.
Именно для того, чтобы избежать таких проблем MySQL делает возможным включение одного запроса в состав другого. Такие двойные запросы называются вложенные запросы или подчиненные. В подобных запросах оператор SELECT, который располагается внутри запроса, заключается в круглые скобки.
Сначала выполняется запрос, который располагается в скобках, а затем с теми данными, которые этот запрос предоставил, работает главный запрос.
Рассмотрим на примере. Допустим, в нашей базе данных есть две таблицы. Первая таблица под названием Cat:
И вторая таблица под названием STR:
Наша задача заключается в том, чтобы с помощью вложенного запроса взять данные обеих таблиц и в итоге вывести на экран информацию о том, к какому имени раздела, сколько статей относиться.
Выглядеть данный запрос будет следующим образом: «SELECT (SELECT COUNT(*) FROM `STR` WHERE STR.category_id = cat.id) as `count`, cat.name FROM cat/».
Первым будет выполняться запрос в скобках (SELECT COUNT(*) FROM ` STR ` WHERE STR.category_id = cat.id), который предоставит информацию обо всех категориях, а в нем уже сделаем выборку для того, чтобы вычислить количество страниц, предназначенных для указанных категорий, посредством запроса «SELECT (*) as `count`, cat.name FROM cat».
Быстрота вывода результатов запроса

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

СУБД MySQL — это одна из множества баз данных, поддерживаемая языком программирования PHP. Запросы к MySQL во время создания веб-страниц это обычное дело, потому что основная информация как раз таки и хранится в таблицах базы данных и чтобы вывести ее на экран, необходимы PHP запросы к MySQL.
Для того чтобы работать с MySQL в документах PHP предусмотрен специализированный алгоритм действий:

  • Установка соединения с базой данных при помощи команды mysql_connect();
  • Выбор необходимой базы данных командой mysql_select_db();
  • PHP запросы к MySQL через команду mysql_query();
  • Обработка результата запроса mysql_fetch_array();
  • Закрытие соединения с базой данных или отключение от сервера БД mysql_close();
Из всего описанного можно понять, что работать с базами MySQL не так то и сложно, главное — суметь понять и правильно строить запросы к нужной информации.
Если вы освоите правила построения запросов MySQL, тогда ваш сайт будет работать гораздо быстрее, и даже в случае если его одновременно будут использовать множество пользователей, это не сможет существенно отразиться на скорости открытия страниц.

Статья была взята из тех. Документации к MySQL
 
Последнее редактирование:
Сверху Снизу