- → Программирование
- → MySQL
- → Статьи
MySQL запросы: простые и сложные mysql запросы
Эта статья будет полезна как для начинающих пользователей базы данных (БД) mysql, так и для профессионалов. Потому что мы будем рассматривать как простые mysql запросы, так и сложные mysql запросы. Если вы начинающий программист и не знаете, о чем идет речь, в пару словах попытаемся объяснить.
MySQL запрос – это обращение к базе данных MySQL, с помощью которого мы можем реализовать: получение, изменение, удаление, сортировку, добавление, и другие манипуляции с данными базы.
Все mysql запросы поделены на простые и сложные запросы. Нами также выделена категория очень простых запросов, структура которых очень понятна и не требует дополнительных разъяснений.
Простые mysql запросы – запросы в которых участвует одна таблица базы данных.
Сложные mysql запросы – запросы в которых могут участвовать две и более таблиц БД.
Подробнее о базе данных mysqlвы можете узнать на страницах статей нашего сайта. А сейчас перейдем ближе к теме.
Очень простые mysql запросы
show databases;
Выведет список всех баз.
show tables in base_name;
Покажет список всех таблиц в базе данных base_name.
Простые mysql запросы
Зная структуру БД, таблиц в БД и полей, можно посылать следующие запросы в MySQL.
Select запросыслово select, говорит само за себя, и становится понятно, что пользуясь данными запросами, мы будем выбирать (читать) информацию из БД. |
|
SELECT count(*) FROM table_name; Выведет количество всех записей в таблице |
|
SELECT * FROM table_name; Выбирает все записи из таблицы БД |
|
SELECT * FROM table_name LIMIT 2,3; Выбирает 3 записи из таблицы, начиная с 2 записи. Этот запрос полезен при создании блока страниц навигации. |
|
SELECT * FROM person ORDER BY number; Выберет все записи из таблицы person в порядке возрастания значений поля number. |
|
SELECT * FROM person ORDER BY number DESC; Выбирает все записи из person, но уже в порядке убывания (т.е. в обратном порядке). |
|
SELECT * FROM person ORDER BY number LIMIT 5; Выбирает 5 записей из таблицы person, в порядке возрастания. |
|
SELECT * FROM person WHERE name='Anna'; Выбирает все записи из таблицы person, где поле name соответствует значению Anna. |
|
SELECT * FROM person WHERE name LIKE 'An%'; Выбирает все записи из таблицы person, в которой значения поля nameначинаются с An. |
|
SELECT * FROM person WHERE name LIKE '%na' ORDER BY number ; Выбирает все записи из таблицы person, где name заканчивается на na, и упорядочивает записи в порядке возрастания значения number. |
|
SELECT name, last_name FROM person; Выбирает все значения полей name и last_name из таблицы person. |
|
SELECT DISTINCT site FROM table_name; Выбирает уникальные (DISTINCT) значения поля site из таблицы table_name. Например, при 5 значениях поля site: sitear.ru, sitear.ru, sitear.ru, yaveterinar.ru, wi-korporaciya.ru; выведет только 3 уникальные значения: sitear.ru, yaveterinar.ru, wi-korporaciya.ru; |
|
SELECT * from person where age in (12,15,18); Выведет все записи таблицы person в которых значения поля age будет равно 12 или 15 или 18. |
|
select max(age) from person; Выберет максимальное значение age из таблицы person. |
|
select name, min(age) from person; Выберет минимальное значение age из таблицы person. |
|
Insert запросыданные запросы позволяют вставить запись в таблицу БД. Другими словами создать строку в таблице или добавить информацию в таблицу БД. |
|
insert into table_name(site, description) values ('sitear.ru', 'SiteAR – создание сайтов') Вставит в таблицу table_name, а точнее в поля site и description данной таблицы, соответствующие значения. |
|
Update запросынаправлены на изменение уже имеющихся данных в таблице БД. |
|
update table_name set site = 'domain.com' where id = '3' Изменяет значение поля site на domain.com в таблице table_name где id равен 3. |
|
Delete запросыудаляют записи из таблицы БД. |
|
delete from table_name where id = '3' Удаляет запись из table_name где id равен 3. |
|
Сложные mysql запросы
Как уже упоминалось раньше, сложные mysql запросы, работают более, нежели с одной таблицей БД. Данные mysql запросы, мы будем рассматривать более в индивидуальном порядке, так как они сложные и их будет немного.
SELECT DISTINCT last_name FROM person, address WHERE person.adress_no = address.address_no AND city LIKE 'L%';
или
SELECT DISTINCT last_name FROM person p, address adr WHERE p.adress_no = adr.address_no AND city LIKE 'L%';
Выводит все уникальные фамилии людей (last_name), которые живут в городе с названием на букву L. (предполагаем, что в таблице address есть поля address_no, city).
Данные примеры сложных mysql запросов, выведут один и тот же результат. Запросы не очень то и сложные, нужно только указать имя таблицы БД, а потом, через точку указать поле таблицы. Или же можно, как во втором примере, дать короткие имена таблицам (p для person, adr для address). Результат запросов будет один и тот же.
SELECT heroes.char_name, heroes.count, char_templates.ClassName FROM char_templates, heroes WHERE char_templates.ClassId = heroes.class_id Order by char_templates.ClassName;
или
SELECT char_name, count, ClassName FROM heroes left join char_templates on heroes.class_id=char_templates.ClassId;
Берем из таблицы heroes поле char_name, из heroes поле count, из таблицы char_templates поле ClassName, где char_templates.ClassId и heroes.class_id имеют общий идентификатор и сортируем запрос по имени класса героев.
Таким же образом, можно подавать сложные mysql запросы с помощью update, insert, delete и др.
Если у вас возникли вопросы по поводу mysql запросов, можете их задать в комментариях ниже. Надеюсь, подборка запросов используемых в mysql, будет очень полезна.
69
td69
Дальше: CAPTCHA на PHP: реализация скрипта каптчи на php



































Development — Taras Moroz