Основные запросы SQL работа с базой данных PHP


X

Основные запросы SQL работа с базой данных PHP

Вся работа с базой данных осуществляется с помощью четырех основных запросах: получение (SELECT), удаление (DELETE), обновление (UPDATE) и добавление данных (INSERT).

Если вы хотите сделать запрос к базе данных, сначала проговорите, как должен он работать и что он должен делать, пример:

Получить из базы данных "user" значения пользователя, а имено адрес и телефон, как буду его искать (по его id). Значит запрос будет примерно следующим: 

 

SELECT adres, phone FROM user WHERE id = $id

 

$id - это переменная которую я присвою заранее. 

Если вы хотите получить все поля пользователя:

 

SELECT * FROM user WHERE id = $id

 

А теперь посмотрим все запросы по одному:

SELECT

Самый простая и часто употребляемая команда, которая позволяет получить от сервера практически любую информацию из таблиц. Её синтаксис прост:

 

SELECT [имя_поля] FROM имя_таблицы

 

Если дословно: ВЫБРАТЬ поле ИЗ таблицы. Имена полей необходимо указывать через запятую или использовать * для вывода всех полей. В примерах, не забывайте указывать префикс таблиц, если он у вас есть. Вот и вся сложность.

Пример:

SELECT type, title FROM node

 

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

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

$sql ="SELECT * FROM user WHERE id = $id";


$poluchit_otvet = mysql_query($sql); //Выполнить запрос 


$prevratit_v_massiv = mysql_fetch_array($poluchit_otvet);


print_r($prevratit_v_massiv); //Отобразить массив

 

Этот запрос подайдет когда в ответе одна запись, если записей много их нужно выводить через цикл WHILE, пример:

 

$sql ="SELECT * FROM user"; //Вывод всех юзеров которые есть в БД


$poluchit_otvet = mysql_query($sql); //Выполнить запрос 


$prevratit_v_massiv = mysql_fetch_array($poluchit_otvet);


//Создаем пустой массив и наполняем его:


 $PageStaticList = array();

        $i = 0;

        while ($row = $result->fetch()) {

            $PageStaticList[$i]['id'] = $row['id'];

            $PageStaticList[$i]['phone'] = $row['phone'];

            $PageStaticList[$i]['adres'] = $row['adres'];

            $PageStaticList[$i]['email'] = $row['email'];

            $i++;

        }

 

Чтобы вывести эти значения я использую конструкцию foreach as, пример:

 

foreach ($PageStaticList as $arr): 


//Говору что циклить закончим когда все превратим в переменную - массив arr


echo $arr['phone'];


// Каждую пройденую итерацию, вывожу переменную phone,


//тем самым получаю все номера телефонов user - ов, которые есть в БД


endforeach;


 

 

WHERE

WHERE поле условие значение

Получение данных полей таблиц не составляет большого труда, достаточно знать имена полей(какие в них хранятся логические данные) и таблицы. Но есть одно но - в большинстве случаев нужны не все записи, а записи, удовлетворяющие определённому условию. Тут на помощь нам приходит выражение WHERE:

 

SELECT [имя_поля] FROM имя_таблицы WHERE поле условие значение

 

К нашему запросу мы добавили условие фильтра, позволяющего из общей массы отобрать только нужные нам данные.

Пример:

SELECT name, mail FROM users WHERE uid = 1

 

Данных “хакерским” запросом можно получить имя и email пользователя №1 системы, ограничив количество просматриваемых записей только записью, у которой uid = 1 т.е. супер-пользователя сайта.

Выражение WHERE довольно мощное и позволяет создавать очень сложные фильтры, и применять различные условия в зависимости от типа данных поля. Основные условия это:

  • знаки сравнения >, <, =, >=(больше или равно), <=(меньше или равно), <> или != (не равно).
  • оператор LIKE (шаблон) для строк. В шаблоне: % - любое количество, _ - 1 символ
  • AND, OR, NOT, XOR стандартные функции И, ИЛИ, НЕ, ОДИН ИЗ. Используйте ( ), для избежания двусмысленностей
  • IN (список_значений) аналог множественного OR

Примеры:

SELECT title FROM node WHERE type IN ('page', 'forum') AND status = 1;

 

Выбрать заголовки материалов типов page или forum которые опубликованны. Это же выражение можно переписать в следующем виде:

 

SELECT title FROM node WHERE (type = 'page' OR  type = 'forum') AND status = 1;

 

 

SELECT name, mail FROM users WHERE (name like '%sex%') OR (mail like '%sex%');

 

Позволит просмотреть записи, у которых часть ника или email содержит комбинацию символов ‘sex’.

ORDER BY

 

ORDER BY [BINARY] имя_поля [DESC]

 

Выражение в запросе позволяет отсортировать выводимые строки по заданным полям. При этом оно не влияет на получаемый результат, а только упорядочивает его вывод. Если используется выражение WHERE, то ORDER BY должно быть после него.
Необязательное BINARY позволяет осуществлять сортировку строковых данных с учётом регистра, а DESC изменить порядок сортировки на обратный.

Пример:

SELECT name FROM users WHERE status = 1 ORDER BY access DESC;

 

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

LIMIT

 

LIMIT количество, смещение  или  LIMIT число или LIMIT число OFFSET смещение

 

Данное выражение MySQL, в дополнение к WHERE позволяет ограничить количество выводимых SELECT строк заданным количеством. Если указано смещение, то заданное количество строк будет пропущено при начале отсчёта вывода.

Пример:

SELECT name FROM users WHERE status = 1 ORDER BY access DESC LIMIT 5;

 

Вывод только 5 ников пользователей, отсортированных по времени их последнего входа на сайт.

DELETE

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

 

DELETE FROM имя_таблиц;

 

Имена столбцов не используются, поскольку применяется для удаления целых строк а не значений из строк. Зачастую имеет смысл удалить только часть строк, по заданным критериям, поэтому в команде SELECT можно использовать инструкции WHEREORDER BY и LIMIT.

Пример:

DELETE FROM users WHERE (name like '%sex%') OR (mail like '%sex%');

 

Используя данную команду, мы почистим таблицу пользователей от тех, кто содержит в любой части поля ника или email последовательность ‘sex’

Если вам нужно выполнить полную очистку(удаление) всех данных в таблице - воспользуйтесь командой:

 

TRUNCATE TABLE имя_таблицы

 

При этом структура таблицы разрушается и заново создаётся. При этом все данные удаляются.

UPDATE

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

 

UPDATE имя_таблицы SET имя_поля = значение

 

Как и в предыдущей команде, тут можно использовать инструкции WHERE, ORDER BY и LIMIT, чтобы ограничить количество и диапазон затрагиваемых строк.

Пример:

UPDATE users SET status = 0 WHERE (name like '%sex%') OR (mail like '%sex%');

 

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

INSERT

Инструкция используется для добавления новых данных в таблицу.

 

INSETR INTO имя_таблицы VALUES (значения1), (значения2),...

 

Значения должны быть все (по числу полей в таблице), записаны через запятую, и их порядок должен соответствовать порядку следования столбцов в таблице. Альтернативный синтаксис:

INSETR INTO имя_таблицы (имена_полей) VALUES (значения1), (значения2),...

В данном случае порядок значений для полей должен соответствовать перечисленному порядку. Пропущенные поля будут заполнены значениями по умолчанию. И ещё один тип синтаксиса:

 

INSETR INTO имя_таблицы SET имя_поля = значение, …

 

В данном варианте необходимо указывать, через запятую, имена полей и их значения

Пример:

INSERT INTO role VALUES (3,"Суперадмин"),(4,"Модератор");

 

Данным запросом была добавлены новые роли с именем Суперадмин и Модератор.

 

Здесь может быть ваша реклама! Блок 1. Настройка рекламы в личном кабинете.
FastFinder Просмотров сегодня +1 03 дек 2018 команда сайта
Ещё пока нет комментариев, будь первым!
Оставить комментарий
Здесь может быть ваша реклама! Блок 2. Настройка рекламы в личном кабинете.
   🔔 Отдохните не много, может Вам будет интересно прочитать статьи пользователей нашего сайта.

Тег button - это кнопка

Как сделать добавление новостей на сайте при помощи MVC и PHP

Как разрезать изображение на части и склеить обратно из фрагментов, используя PHP и Ajax

Тег article - это статья

Недостатки раскрутки групп Вконтакте специальными сервисами

Как на MVC с помощью PHP правильно загружать файлы на сервер. Часть Первая

Как на MVC и PHP сделать вывод новостей из БД с использованием пагинации

Как создать свою CMS или фреймворк на MVC. Часть Первая

Как на MVC с помощью PHP правильно загружать файлы с сервера. Часть Вторая

Как на MVC с помощью PHP загружать изображения на сервер

Тег b - это полужирный шрифт

Как сделать алгоритм поиска по нескольким словам на PHP из БД
Здесь может быть ваша реклама! Блок 3. Настройка рекламы в личном кабинете.

Здесь может быть ваша реклама! Блок 4. Настройка рекламы в личном кабинете.
Создание сайтов и мобильных приложений от 5 500 руб. Любой сложности!
Реклама Собственный фреймворк. Большие и сложные проекты. ТОП 100 разработчиков РФ.
irogex.ru
Конструкторы Ugears купить в Иркутске от 690 руб. с Доставкой!
Реклама UGEARS это путешествие в удивительную атмосферу гармонии природы и совершенства конструкторской мысли
ugears-irk.ru
Стоматология в Улан-Удэ | ДентаВита | Шок цены от 100 руб!
Реклама От всей нашей семьи хотим выразить огромную благодарность стоматологической клинике
dentavita03.ru
Реклама помогает поддерживать
и развивать наш сервис.


Подробнее
(ссылка откроется в новой вкладке)