Структурированный язык запросов SQL в PHPMyAdmin

NovaInfo 17, скачать PDF
Опубликовано
Раздел: Технические науки
Просмотров за месяц: 39
CC BY-NC

Аннотация

Данная статья посвящена изучению темы "Основы Web-программирования", где продолжаем работать с базой данных, но уже с несколькими таблицами, создавая связи между ними и знакомясь с оператором SELECT.

Ключевые слова

SQL, БАЗА ДАННЫХ, ЗАПРОС, ТАБЛИЦА, СВЯЗЬ

Текст научной работы

phpMyAdmin — это программа написанная на PHP и предназначенная для управления сервером MySQL через всемирную сеть. phpMyAdmin поддерживает широкий набор операций над MySQL, наиболее часто используемые операции поддерживаются с помощью пользовательского интерфейса (управление базами данных, таблицами, полями, связями, индексами, пользователями, правами, и т. д.), одновременно вы можете напрямую выполнить любой SQL запрос.

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

SQL-запросы — запросы, строящиеся при помощи унифицированного набора инструкций SQL (Structured Query Language — структурированный язык запросов). SQL в полной мере нельзя отнести к традиционным языкам программирования, где бы вы вводили переменные, описывали тип и многое другое, он содержит только набор стандартных операторов доступа к данным, хранящимся в базе данных.

Язык SQL делиться четыре части:

  • Операторы определения данных (Data Definition Language, DDL): create («создать»), alter («изменить»), drop («удалить»);
  • Операторы манипуляции данными (Data Manipulation Language, DML): select («выбрать»), insert («вставить»), update («обновить») и delete («удалить»);
  • Операторы определения доступа к данным (Data Control Language, DCL): grant («предоставить») и revoke («лишить»);
  • Операторы управления транзакциями (Transaction Control Language, TCL): commit («завершить»), rollback («откатить»), savepoint («сохранить»).

Мы же рассмотрим, одну команду языка SQL — команду выборки данных SELECT, так благодаря этой команде можно организовать все возможные запросы.

Синтаксис оператора SELECT

SELECT [ALL|DISTINCT] <список полей, которые вы хотите отразить в запросе> |*

FROM <список таблиц, с которыми вы работаете>

[WHERE <предикат-условие выборки или неявное внутреннее соединение таблиц>]

[JOIN <предикат внутреннего соединения таблиц>]

[GROUPBY <список полей группировки> [HAVING <предикат-условия для группировки>]]

[ORDERBY <список полей, по которым упорядочивает вывод> [ASC|DESC]]

Информация, заключенная в квадратные скобки, как обычно является необязательной.

Рассмотрим несколько примеров запросов в phpMyAdmin, для этого воспользуемся предыдущей базой данных «Komp_texnika». В данной базе мы уже создали таблицу «product» (товар), в которой отразили соответствующие свойства сущности: product_ID (первичный ключ), maker (производитель), model (модель), god_sozd (год создания) и type_ID (тип продукта, является внешним ключом) (см. Рис.1).

Рисунок 1.

Так же в данной базе данных, мы добавили еще одну сущность «laptop» (тип товара), в которой отразили соответствующие свойства сущности: type_ID (первичный ключ), type (тип), OS (операционная система), processor (процессор), pamjat (память), zvet (цвет), ves (вес) и zena (цена) (см. Рис.2).

Рисунок 2.

Теперь прежде чем прейти к составлению запросов, необходимо установить связь между сущностями (таблицами). Для этого будем работать с таблицей «laptop», а именно выберем пункт «Связи» (см. Рис.3).

Рисунок 3.

После чего откроется страница, где необходимо указать поля, которые отвечают за связь между таблицами (см. Рис.4). Также связь можно установить другим способом, используя «Дизайнер» (см. Рис.4)

Рисунок 4.

Таким образом, установив связи между таблицами, мы можем перейти к созданию запросов, перейдя верхнем меню «SQL».

Запрос 1. Вывести информацию имеющейся техники за 2012 выпуска (см. рисунок 5).

selectmaker,modelfrom productwhere god_sozd=2012order by maker
Вывести информацию имеющейся техники за 2012 выпуска
Рисунок 5. Вывести информацию имеющейся техники за 2012 выпуска

Для реализации данного запроса мы использовали оператор select — для вывода информации из поля maker (производитель) и model (модель), from — для описания таблицы из которой нужно выдать информацию; предикат where — для условия отбора строк из таблицы результата, то есть выдает те данные, у которых год создания (god_sozd) равнялся 2012; orderby — для сортировки данным к полю maker (производитель).

Запрос 2. Вывести информацию о количестве технике имеющихся производителей (см. рисунок 6).

selectmaker,count(maker)from productgroup by maker
Вывести информацию о количестве технике имеющихся производителей
Рисунок 6. Вывести информацию о количестве технике имеющихся производителей

сount является одной из так называемых «агрегирующих функций», которая считает количество не пустых кортежей, являются мощным инструментом конструирования запросов, в данном случае вы сгруппировали вывод данных по maker (производителям).

Запрос 3. Вывести общую стоимость ноутбуков по имеющимся производителям, отсортировав по сумме по возрастанию (см. рисунок 7).

selectproduct.maker, laptop.type,count(laptop.type), sum(laptop.zena)from productjoin laptop on laptop.type_ID=product.type_IDgroup by laptop.type, product.makerorder by sum(laptop.zena)
Вывести общую стоимость ноутбуков по имеющимся производителям, отсортировав по сумме по возрастанию
Рисунок 7. Вывести общую стоимость ноутбуков по имеющимся производителям, отсортировав по сумме по возрастанию

В данном запросе необходимы данные из двух таблицы, для этого нам необходимо объединить таблицы «product» (товар) и «laptop» (тип товара), что бы это сделать использовали предикат join с указание объединения полей: первичного ключа таблицы laptop.type_ID и внешнего ключа таблицы product.type_ID. Так же обратите внимание, что при работе с двумя и более таблиц, в операторе select, при описании полей необходима, указывать имя таблицы данного поля, например laptop.type. sum, так же как и count относится к «агрегирующим функциям», которая считает сумму значений кортежей, в нашем случае сумму стоимости техники.

Запрос 4. Вывести данные о ноутбуках с операционной системой Windows-8, со стоимостью не больше 25 тысяч (см. рисунок 8).

selectproduct.maker, laptop.OS,laptop.pamjat as pamjat_v_GB, laptop.zenafrom laptopjoin product on laptop.type_ID=product.type_IDwhere (laptop.zena < 25000) and(laptop.OS like "%8")
Вывести данные о ноутбуках с операционной системой Windows-8, со стоимостью не больше 25 тысяч
Рисунок 8. Вывести данные о ноутбуках с операционной системой Windows-8, со стоимостью не больше 25 тысяч

Запрос 5. Выведите информацию о товаре: maker (производитель), model (модель), pamjat (память), processor (процессор) и zena (цена), по категории «podhodit» и «notpodhodit»

selectcasewhen (laptop.pamjat = 1000) and (laptop.processor >=2600) then "podhodit"else "not podhodit" end as itog, product.maker, product.model,laptop.pamjat as pamjat_v_Gb, laptop.processor as proc_v_Mgz,laptop.zenafrom product join laptop on laptop.type_ID=product.type_IDwhere laptop.type like "l%"order by 1 desc, 6

сaseend — предикат выбора, используется для распределения товара по категориям, в соответствии с критериями. like "1%" — предикат, который применяется для сопоставления строк с образцом. Образец представляет собой строку, в которой могут использоваться два специальных символа: «%» и «_», где «%» сопоставляется с любой строкой (возможно, пустой) и «_» сопоставляется с одним символом, любые другие символы, отличные от специальных, могут быть сопоставлены только со специальными символами и сами с собой. orderby[asc|desc] — предназначен для сортировки результатов запросов [возрастанию (стоит по умолчанию) | по убыванию], сортировка возможна как для одного поля, так и более.

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

Читайте также

Список литературы

  1. Аннотация к phpMyAdmin [Электронный ресурс] / URL: http://php-myadmin.ru/about/notice.html
  2. Запросы к базе данных и их использование. Виды запросов. Технология создания [Электронный ресурс] / URL: http://www.yaklass.ru/materiali?mode=cht&chtid=514
  3. Островский С.Л. Основы web-программирования для школьного «сайтостроительства». Лекция 5. PHP+MySQL [Текст]/ С.Л. Островский // Информатика. – 2008.-№21.-с.2-15

Цитировать

Соломатова, Е.И. Структурированный язык запросов SQL в PHPMyAdmin / Е.И. Соломатова. — Текст : электронный // NovaInfo, 2013. — № 17. — URL: https://novainfo.ru/article/1830 (дата обращения: 29.05.2022).

Поделиться