Sql

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 записи. Этот запрос полезен при создании блока страниц навигации.


Пример mysql запроса
SELECT * FROM person ORDER BY number;


Выберет все записи из таблицы person в порядке возрастания значений поля number.


Пример mysql запроса
SELECT * FROM person ORDER BY number DESC;


Выбирает все записи из person, но уже в порядке убывания (т.е. в обратном порядке).


Пример mysql запроса
SELECT * FROM person ORDER BY number LIMIT 5;


Выбирает 5 записей из таблицы person, в порядке возрастания.


Пример mysql запроса
SELECT * FROM person WHERE name='Anna';


Выбирает все записи из таблицы person, где поле name соответствует значению Anna.


Пример mysql запроса
SELECT * FROM person WHERE name LIKE 'An%';


Выбирает все записи из таблицы person, в которой значения поля nameначинаются с An.


Пример mysql запроса
SELECT * FROM person WHERE name LIKE '%na' ORDER BY number ;


Выбирает все записи из таблицы person, где name заканчивается на na, и упорядочивает записи в порядке возрастания значения number.


Пример mysql запроса
SELECT name, last_name FROM person;


Выбирает все значения полей nameи last_name из таблицы person.


Пример mysql запроса
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;


Пример mysql запроса
SELECT * from person where age in (12,15,18);


Выведет все записи таблицы personв которых значения поля age будет равно 12 или 15 или 18.


Пример mysql запроса
select max(age) from person;


Выберет максимальное значение age из таблицы person.


Пример mysql запроса
select name, min(age) from person;


Выберет минимальное значение age из таблицы person.


Пример mysql запроса

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 запросы
Добавлено: 14 Августа 2013 02:45:27 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...