Данный урок — продолжение предыдущей темы про работу с базами данных.
Сейчас мы с вами научимся получать, добавлять и удалять данные с помощью SQL.
- Что такое база данных
- Интерфейс PhpMyAdmin:
- Создание базы данных в PhpMyAdmin:
- Рассмотрение таблицы:
- Добавляем данные в таблицу:
- Изменение и удаление таблицы:
- Вывод:
- Подписываетесь на соц-сети:
- Оценка:
- Дополнительно:
- Синтаксис MySQL запросов:
- MySQL основные команды:
- Примечание:
- Работа с MySQL в PhpMyAdmin:
- Вывод:
- Подписываетесь на соц-сети:
- Оценка:
- Дополнительно:
- Аннотация
- Ключевые слова
- Текст научной работы
- Аннотация
- Ключевые слова
- Текст научной работы
- Примеры работы с SELECT
- Задачи на PhpMyAdmin
- PhpMyAdmin
- Читайте также
- Анализ существующих способов формирования баз данных, моделей представления данных для моделирования воздушной обстановки
- Экстрадиция в уголовном праве
- Разработка информационной системы для начальника нефтяной базы
- Информационная система оценивания эффективности и результативности труда сотрудника лаборатории
- Создание базы данных в PHPMyAdmin. Работа с данными используя PHP, MySQL и HTML
- Список литературы
- Цитировать
- Поделиться
- Команда DELETE — удаление записей
- Команда INSERT — вставка данных в БД
- Выбор столбцов
- AUTO_INCREMENT
- Что можно писать в условие?
- Типы переменных
- Тестируем работоспособность
- Читайте также
- Совершенствование механизмов поворота гусеничных транспортных средств
- Совершенствование планетарных передач транспортных средств
- Организация студенческого учебного исследования на основе принципов data mining с использованием средств СДО Moodle
- Элементы математической логики в среде NXT-G. Работа с данными
- Структурированный язык запросов SQL в PHPMyAdmin
- Список литературы
- Цитировать
- Поделиться
- Как работать с mySQL через PHP
- Массовая вставка через INSERT
- Более сложная логика
- Устанавливаем соединение с БД
- Проблемы с кодировками
- Посылаем запросы к базе данных
- Примеры на OR и AND
- Видео на PhpMyAdmin
- Команда SELECT — выборка из БД
- Начнем практиковаться
- Что вам делать дальше
- Отлавливаем ошибки базы данных
- Группировки условий
- Другой синтаксис INSERT
- Как достать результат
Что такое база данных
База данных (сокращенно БД) — это место, в котором хранятся данные сайта.
База данных состоит из таблиц. Что такое таблица вы знаете из жизни: это строки и столбцы.
А на пересечении строк и столбцов располагаются ячейки.
В базах данных столбцы часто называют полями.
Это легко можно вообразить себе, представив документ Excel.
Базой данных будет являться сам документ (книга),
а таблицами — каждый лист этой книги.
Интерфейс PhpMyAdmin:
Для начала разберём интерфейс, он тут очень простой поэтому вам не придётся как то напрягаться.
- Там будут показываться какие базы данных и таблицы у вас есть;
- Тут вкладки для работы со самой базой данных;
- Данные о сервере, PhpMyAdmin и SQL которая сейчас используется;
Как видите тут не чего сложного нет.
Создание базы данных в PhpMyAdmin:
Рассмотрение таблицы:
Здесь нет нечего особо сложного, всё интуитивно понятно, я расскажу только об самых основных столбцах.
- Имя — какое имя применить к строке;
- Тип — Тип строки, например: INT, VARCHAR, TEXT, DATE;
- Длинна/Значения — В этом параметре назначают, количество символов которое может использоватся в строке (строка/число);
- По умолчанию — Просто назначается значение по умолчанию;
- NULL — Выбирает значение по умолчанию NULL;
- Индекс — Индексирует строку, в основном, используются для ускорения выборки данных;
- A_I — Авто инкремент, автоматически создаёт значение строки;
Здесь описаны лишь самые важные столбцы, для начального этапа.
Вот такая таблица у меня получилась:
Когда все параметры выбрали, просто нажимаем сохранить.
Добавляем данные в таблицу:
Для этого нужно нажать на саму таблицу, которая находится с лева страницы, потом выбрать вкладку «вставить».
Вставляем в нужный столбец, нужное значение, нажимаем «вперёд» и всё готово.
Я не стал назначать «id», так как он поставится автоматически, потому что стоит параметр A_I.
Изменение и удаление таблицы:
Если вам нужно изменить данные в самой таблице, то нажимаем на её название и выбираем строку которая вам нужна, если вы хотите изменить, то нажимаете карандаш, если удалить, то крестик.
Вывод:
Подписываетесь на соц-сети:
Оценка:
Дополнительно:
В это статье будет описано основы MySQL для начинающих, если вы изучаете PHP, то скорее всего в основном вы в первое время будите работать с базой данных MySQL, поэтому я её и показываю.
Если же вам надо будет работать с другой БД, то зная одну, вам не составит особого труда изучить другую.
Синтаксис MySQL запросов:
Для начала надо разобрать основы его синтаксиса, вот как он выглядит.
Если вы работали с командной строкой или с терминалом, то синтаксис может показаться не много знакомым.
MySQL основные команды:
Основных команд не так много, но есть ещё куча дополнительных, они поваляют более гибко работать с БД.
- SELECT — Позволяет получить строки таблицы;
- INSERT — Добавляет новую строку;
- UPDATE — Позволяет обновить строку;
- DELETE — Удалить строку;
Как видите команд действительно не так много, но это только основные, есть ещё куча дополнительных.
Теперь надо показать как работать с ним.
- SELECT [Нужные параметры] FROM [
Название таблицы
] WHERE [Условие] - INSERT INTO [
Название таблицы
] ([Название параметров]) VALUES ([Значение параметров]) - UPDATE [
Название таблицы
] SET [Изменение параметров] WHERE [Условие] - DELETE FROM [
Название таблицы
] WHERE [Условие]
Примечание:
Можно назначать несколько через запитую.
Работа с MySQL в PhpMyAdmin:
После этого откроется простой текстовой редактор, в нём можете писать запросы, попробуем добавит нового пользователя в БД для этого используем команду INSER INTO.
После того как написали MySQL запрос, нажимаем «Вперёд» и у вас должно появится уведомление, что строка добавлена, вот результат команды.
Как видите всё работает, надо лишь не много потренироваться. Подобная работа и с другими типами запросов в MySQL.
Вывод:
В этой части учебника описывалось основы MySQL для начинающих, конечно, сам язык не много сложнее и там ещё есть различные условия и другие настройки в запросах, но для стартого уровня этого будет достаточно.
Если вам нужен прям подробное руководство по этому языку, то зайдите сюда.
Подписываетесь на соц-сети:
Оценка:
Дополнительно:
Опубликовано 14 ноября 2013
Раздел:
Просмотров за месяц:
Аннотация
Ключевые слова
Текст научной работы
Создание современных электронных вычислительных машин позволило автоматизировать обработку данных во многих сферах человеческой деятельности. В настоящее время без современных систем обработки данных трудно представить передовые производственные технологии, управление экономикой на всех ее уровнях, научные исследования, образование, издательское дело, функционирование средств массовой информации и многое другое. Такие системы обработки данных называют информационными системами.
В настоящее время широкое распространение получили информационные системы, основанные на технологиях баз данных, называемая «система управления баз данных» (СУБД). Зародившаяся около четырех десятилетий назад, данная технология оказалась весьма плодотворной. Современное СУБД основано на реляционной модели данных, для взаимодействия с реляционной базой данных, в середине 70-х годов фирмой IBM разработан язык структурированных запросов SQL, ставший впоследствии стандартом при работе с базами данных.
В нашем информационном времени существует множество программ для работы с базами данных, как например: InterBase, FilePro, mSQL, MS Access, Oracle, MySQL и т.д..
Мы же, рассмотрим, как можно создать и работать с базой данных в локальном доступе, используя возможности PHP и MySQL, для этого нам понадобиться «джентльменский набор» Web-разработчика Denwer.
Denwer — это локальный сервер, в котором уже имеется: Apache, PHP, MySQL, Perl и многое другое. Так же он, прост в установке, что немало важно на первом этапе работы с web-программированием, создавая первую базу в PHP.
Мы рассмотрим с вами как создавать базу данных, на примере одной таблицы и работать с ней, использую PHP и HTML-формы.
Для начала нам необходимо определиться с тематикой базы данных, в которой нужно выделить сущности и их характеристики, которой будет обладать наша сущност(ь/и). Затем определимся с типами данных — характеристик, которыми обладает сущность. И последним этапом подготовительного этапа, является определение связей между нашими сущностями («один к одному», «один ко многим», «много ко многим»).
Например, мы создадим маленькую базу данных «Компьютерные технологии (komp_texn)» с одной таблицей «Продукт (product)».
В появившейся странице, в верхнем меню выберите вкладку «Базы данных», введите имя создаваемой базы — «Komp_texnika» (см. рис.1).
После чего переходим к созданию сущности/таблиц, базы данных, описывая ее название и сколько выделяете характеристик, для этой сущности — «Product», 4 — столбца (см. рис.2).
Следующим действием, будет описание характеристик/свойств, и указание их типов в соответствующих диапазонах (см. рис.3).
Теперь в нашей базе данных имеется пустая таблица Product, которую нужно заполнить, для этого в верхнем меню выберите вкладку «Вставить» и перед вами откроется страница для заполнения данных полей (см. рис.4).
Хочу обратить ваше внимание, на то что, в таблицу можно вставить с начало только две записи. Для добавления еще значения, нужно в нижней части странице в выпадающем списке выбрать пункт «Добавить новую запись» и нажать ОК.
Заполнив информацией базу данных (см. рис.5), займемся работой с базой данных, используя скриптом PHP.
С начало создадим форму на HTML, для заполнения информацией нашей таблицы, то есть создадим непосредственную связь между таблицей в базе данных и формой (см. рисунок 6).
Теперь отразим имеющуюся информацию в базе данных на web-странице, в виде массива данных и добавив некоторые возможности в работе с данными. То есть добавление, редактирование и удаление данных. Чтобы реализовать эти действия, необходимо создать еще три web-страницы для: создания новых данных — new.php (см. рисунок 7), редактирование данных — edit.php (см. рисунок 8) и удаления данных из таблицы в базе данных — delete.php (см. рисунок 9).
Объединив все эти действия в одну web-страницу под названием index2.php, мы можем свободно работать с базой данных в привычном, понятном для пользователя виде (см. рисунок 10.).
Это все что хотелось рассмотреть по созданию базы данных в PHP, после рассмотрим как работать с несколькими таблицами в базе данных, используя запросы SQL.
Опубликовано 14 ноября 2013
Раздел:
Просмотров за месяц:
Аннотация
Данная статья посвящена изучению темы «Основы Web-программирования», где продолжаем работать с базой данных, но уже с несколькими таблицами, создавая связи между ними и знакомясь с оператором SELECT.
Ключевые слова
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
FROM <список таблиц, с которыми вы работаете>
Информация, заключенная в квадратные скобки, как обычно является необязательной.
Так же в данной базе данных, мы добавили еще одну сущность «laptop» (тип товара), в которой отразили соответствующие свойства сущности: type_ID (первичный ключ), type (тип), OS (операционная система), processor (процессор), pamjat (память), zvet (цвет), ves (вес) и zena (цена) (см. Рис.2).
Теперь прежде чем прейти к составлению запросов, необходимо установить связь между сущностями (таблицами). Для этого будем работать с таблицей «laptop», а именно выберем пункт «Связи» (см. Рис.3).
После чего откроется страница, где необходимо указать поля, которые отвечают за связь между таблицами (см. Рис.4). Также связь можно установить другим способом, используя «Дизайнер» (см. Рис.4)
Запрос 1. Вывести информацию имеющейся техники за 2012 выпуска (см. рисунок 5).
Для реализации данного запроса мы использовали оператор select — для вывода информации из поля maker (производитель) и model (модель), from — для описания таблицы из которой нужно выдать информацию; предикат where — для условия отбора строк из таблицы результата, то есть выдает те данные, у которых год создания (god_sozd) равнялся 2012; orderby — для сортировки данным к полю maker (производитель).
Запрос 2. Вывести информацию о количестве технике имеющихся производителей (см. рисунок 6).
сount является одной из так называемых «агрегирующих функций», которая считает количество не пустых кортежей, являются мощным инструментом конструирования запросов, в данном случае вы сгруппировали вывод данных по maker (производителям).
Запрос 3. Вывести общую стоимость ноутбуков по имеющимся производителям, отсортировав по сумме по возрастанию (см. рисунок 7).
В данном запросе необходимы данные из двух таблицы, для этого нам необходимо объединить таблицы «product» (товар) и «laptop» (тип товара), что бы это сделать использовали предикат join с указание объединения полей: первичного ключа таблицы laptop.type_ID и внешнего ключа таблицы product.type_ID. Так же обратите внимание, что при работе с двумя и более таблиц, в операторе select, при описании полей необходима, указывать имя таблицы данного поля, например laptop.type. sum, так же как и count относится к «агрегирующим функциям», которая считает сумму значений кортежей, в нашем случае сумму стоимости техники.
Запрос 4. Вывести данные о ноутбуках с операционной системой Windows-8, со стоимостью не больше 25 тысяч (см. рисунок 8).
Запрос 5. Выведите информацию о товаре: maker (производитель), model (модель), pamjat (память), processor (процессор) и zena (цена), по категории «podhodit» и «notpodhodit»
Оператора SELECT есть не что иное, как выражение для получения результирующего набора из таблиц базы данных. Мы формируем запрос при помощи оператора SELECT, а он, в свою очередь, выполнив свою работу, возвращает результирующий набор данных. Возвращаются эти данные в виде таблицы, которая в свою очередь, может быть обработана следующим оператором SELECT и т.д.
Что такое SQL?
- SQL (англ. Structured Query Language — язык структурированных запросов) — универсальный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Этот язык был разработан IBM (экспериментальная СУБД «System R») в 1974-1979 годах. Первый стандарт языка SQL был принят ANSI в 1987 (так называемый SQL level 1) и несколько уточнён в 1989 году (SQL level 2), 1992 и 1999 году. После этого, индустрия начала широко использовать SQL как язык реляционных баз данных, и на сегодняшний день практически каждая база данных основана на SQL.
Архитектура данных, к которой обращается SQL называется реляционной. В реляционных базах данных все данные представлены в виде простых таблиц, разбитых на строки и столбцы, на пересечении которых расположены данные. Запросы к таким таблицам возвращают таблицы, которые сами могут становиться предметом дальнейших запросов. Каждая база данных может включать несколько таблиц, которые, как правило, связаны друг с другом, откуда и произошло название реляционные.
В данной статье мы будем использовать MySQL, популярную открытую реализацию SQL, которая предоставляется абсолютным большинством хостинг-провайдеров.
- В качестве примера, мы будем использовать географическую информационную систему. Допустим, мы решили, что нам необходима информация о городах и странах — таким образом, нам понадобятся две таблицы, которые будут частью базы данных `geodb`. Для создания таблиц можно использовать блок «Создать новую таблицу в базе данных» на вкладке «Структура» на странице просмотра базы данных, или использовать блок SQL-запросов для ввода соответствующего выражения.
Чтобы создать таблицу, воспользуемся выражением CREATE TABLE, в котором мы зададим имя нашей новой таблицы. Выражение начинается с CREATE TABLE, после которой следует имя таблицы. Затем в скобках указывается список столбцов, и информация о ключах. Каждому столбцу дается имя, указывается тип данных, указывается атрибут NULL или NOT NULL (здесь, NOT NULL означает, что колонка не может иметь значение NULL), и значение по умолчанию, если оно уместно.
Код: Выделить всё
CREATE TABLE cities ( id int(11) NOT NULL auto_increment, city_name varchar(50) NOT NULL default '', latitude varchar(15) NOT NULL default '', longitude varchar(15) NOT NULL default '', population int(11) NOT NULL default '0', country_code char(2) NOT NULL default '', PRIMARY KEY (id) ) TYPE=MyISAM AUTO_INCREMENT=1 ;
Столбец id — это первичный ключ (primary key), колонка, которая уникально идентифицирует каждый город. Тип данных этого столбца — INT (целое число нормального размера), MySQL назначает уникальные значения для этого столбца, благодаря атрибуту auto_increment. Обратите внимание на то, что мы не можем использовать название городов в качестве первичного ключа, т.к. некоторые имена городов не уникальны в мире. Для отображения численности населения мы также используем целое число.
Другие столбцы используют в качестве типов данных строки фиксированной длины (CHAR) либо строки переменной длины (VARCHAR). Когда мы точно знаем длину строки, лучше использовать CHAR, задавая длину столбца как CHAR(2). В противном случае, мы используем в качестве типа данных строки переменной длины, указывая только максимальную длину строки, например: VARCHAR(15).
После списка столбцов, мы можем указать дополнительные параметры таблицы, например, её тип, первое значение для столбца автоинкремента. SQL-выражение заканчивается точкой с запятой. Создав таблицу для городов, мы делаем ту же операцию, но на этот раз для таблицы стран.
Код: Выделить всё
CREATE TABLE countries ( country_code char(2) NOT NULL default '', country_name varchar(100) NOT NULL default '' ) TYPE=MyISAM;
Заметьте, что столбец `country_code` присутствует в обеих таблицах. Это отражает принцип связи: country_code в `cities` связан с одноименным столбцом в таблице `countries`. Таким образом, мы экономим на месте, указывая название страны в базе данных только однажды.
После того как таблицы созданы, следует ввести в них какие-нибудь данные.
- В данном разделе мы изучим базовый синтаксис выражений INSERT, UPDATE, DELETE, и SELECT.
Добавление данных с помощью INSERT
- Для начала изучим выражение INSERT, на примере кода, который генерирует phpMyAdmin при выполнении операции INSERT. Для этого открываем вкладку «Вставить» на странице просмотра таблицы `countries`, и вводим данные о стране.
Код: Выделить всё
INSERT INTO `countries` (`country_code` , `country_name` ) VALUES ('ca', 'Canada');
После части INSERT INTO, следует имя таблицы. В MySQL, мы можем заключать имена таблиц и имена столбцов в обратные галочки «`», если в именах используются спецсимволы, зарезервированные слова. Затем мы открываем первую скобку, перечисляем столбцы в которые будет осуществлена вставка, разделяя их друг от друга запятыми. После перечисления списка названий столбцов скобка закрывается и указывается зарезервированное слово VALUES, после которого в скобках перечисляются значения которые нужно вставить в таблицу, причем перечисляются в том же порядке, что и названия столбцов. Если значения имеют символьный тип данных, необходимо заключать их в кавычки.
Давайте занесем в таблицу `cities` данные города:
Код: Выделить всё
INSERT INTO `cities` ( `id` , `city_name` , `latitude` , `longitude` , `population`, `country_code` ) VALUES ('', 'Sherbrooke', '45 23 59.00', '-71 46 11.00', 125000, 'ca');
Здесь, мы указываем пустое значение для id, потому что атрибут автоинкремента данного столбца обеспечивает автоматическое выставление уникального значения. Также следует обратить внимание, что значение `population` — числовое, поэтому не заключено в кавычки.
Давайте закончим этот раздел вставкой некоторых данных для нескольких других стран и городов, которые понадобятся нам позже.
Код: Выделить всё
INSERT INTO `countries` ( `country_code` , `country_name` ) VALUES ('zh', 'China'); INSERT INTO `cities` ( `id` , `city_name` , `latitude` , `longitude` , `population` , `country_code` ) VALUES ('', 'Shanghai', '31 13 58.00', '121 26 59.99', 11000000, 'zh');
Обновление данных с помощью UPDATE
- Сначала кликните на «Обзор» для таблицы `cities` в результате будет выведена пока единственная запись. Кликая по иконке в виде карандаша, мы переходим на панель редактирования данной строки. Изменим значение столбца `population` на 130000. После щелчка на «Сохранить», phpMyAdmin отображает следующее выражение:
Код: Выделить всё
UPDATE `cities` SET `population` = '130000' WHERE `id` = '1' LIMIT 1 ;
Ключевое слово в данном выражении — `UPDATE`, за которым следует название таблицы. Слово `SET` предваряет список модификаций (в нашем случае — только для столбца `population`) который записывается в формате «столбец = новое значение».
Мы видим, что в выражении присутствует условие: WHERE `id` = ‘1’, в котором используется первичный ключ, чтобы ограничить изменение значения столбца `population` только данной строкой, т.е. только для данного города.
Код: Выделить всё
UPDATE `cities` SET `city_name` = 'Sherbrooke, Quebec', `population` = '130001' WHERE `id` = '1' LIMIT 1 ;
Удаление данных с помощью DELETE
Выборка данных с помощью SELECT
- Извлечение информации из таблиц — вероятно наиболее часто используемый вид запроса. Например, запросы SELECT позволяют получить ответы на подобные вопросы: «какие города имеют численность населения большую, чем данное число?». Фактически, мы уже предварительно использовали SELECT, когда кликали на ссылку «Обзор» для таблицы `cities`. Это сгенерировало простейшую форму выражения запроса SELECT:
Звездочка здесь означает «все столбцы». Мы добавили FROM и имя таблицы, в которой будет выполнен запрос на выборку. LIMIT 0,30 означает что выборка начинается с записи номер 0 (самой первой), и содержит максимум 30 записей.
Вкладка Search позволяет увидеть большее количество опций для запроса SELECT. Выберем вкладку «Поиск» для таблицы cities, и выберем только те столбцы, которые нам нужны. Затем справа от списка столбцов мы выберем порядок сортировки полученной выборки по столбцу `population` по убыванию:
Код: Выделить всё
SELECT `city_name` , `population` FROM `cities` WHERE 1 ORDER BY `population` DESC LIMIT 0,30;
Мы видим, что звездочка была заменена списком столбцов, разделенных запятыми. Условие WHERE 1, добавленное phpMyAdmin-ом, всегда истинно и выбирает все записи. Чуть позже мы увидим, что можно заменить его другим условием. Кроме того, появляется условие ORDER BY , после которого следует название столбца по которому мы хотим сортировать результат выборки, и ключевое слово DESC для сортировки по убыванию (мы могли также использовать ASC для сортировки по возрастанию).
- Для начала изучим выражение INSERT, на примере кода, который генерирует phpMyAdmin при выполнении операции INSERT. Для этого открываем вкладку «Вставить» на странице просмотра таблицы `countries`, и вводим данные о стране.
Условия в SQL-запросах
- Самым простым способом добавить условие — клик по SQL-query: Изменить, на странице результатов, в результате которого будет открыто всплывающее окно «SQL». Добавим условие для столбца `country`:
Код: Выделить всё
SELECT `city_name` , `population` FROM `cities` WHERE country_code = 'zh' ORDER BY `population` DESC;
Это условие выберет все города, находящиеся в Китае. При обозначении условий может быть использовано богатое множество операторов и функций. Вот — два примера:
Найти канадские города с численностью населения более 100000:
Код: Выделить всё
WHERE population > 100000 AND country_code = 'ca';
Найти города, чьи названия начинаются с символа «A»:
- Итоговая информация может быть сгенерирована в результате группировки по определенному столбцу. Давайте узнаем среднюю численность городского населения в стране:
Код: Выделить всё
SELECT country_code, AVG(population) FROM cities GROUP BY country_code
Другие возможные функции группировки — MIN(), MAX(), SUM() и COUNT(), которые вычисляют соответственно минимальное значение, максимальное значение, сумму значений, и число записей. Например, с помощью следующего запроса мы можем получить число городов в стране:
Код: Выделить всё
SELECT country_code, count(city_name) FROM cities GROUP BY country_code;
- Обычно, реляционная база данных включает множество таблиц, связанных общими ключами. Часто возникает необходимость в запросах сразу для нескольких таблиц. Связать, или объединить, таблицы можно с помощью различных методов; мы сосредоточимся на самом простом методе, заключающемся в сравнении ключей.
В нижерассмотренном запросе, условие FROM содержит список названий таблиц, разделенных запятыми. В списке столбцов, мы используем названия таблиц и точку в качестве префикса перед каждым названием столбца (в этом нет необходимости в случае, если все столбцы из одной таблицы).
Код: Выделить всё
SELECT cities.city_name, cities.population, countries.country_name FROM cities, countries WHERE cities.country_code = countries.country_code LIMIT 0,30
- Те элементарные выражения, что были рассмотрены нами здесь не раскрывают полностью возможности SQL. Однако, эта статья поверхностно осветила основы SQL, и показала как использовать phpMyAdmin в качестве инструмента для углубления знаний в SQL.
Примеры работы с SELECT
Давайте разберем примеры более сложных запросов с SELECT.
Выберем из нашей тестовой таблицы workers работника с id равным 2:
<?php
//В $data будет лежать одна строка с данными на Петю:
$query = "SELECT * FROM workers WHERE id=2";
?>
Выберем из нашей таблицы workers работников с id больше 2:
<?php
//В $data будут все работники, кроме первого и второго:
$query = "SELECT * FROM workers WHERE id>2";
?>
Выберем из нашей таблицы workers работников с id больше 2 включительно:
<?php
//В $data будут все работники, кроме первого:
$query = "SELECT * FROM workers WHERE id>=2";
?>
Выберем из нашей таблицы workers работников с id, не равным 2:
<?php
//В $data будут все работники кроме Пети (потому что у него id равен 2):
$query = "SELECT * FROM workers WHERE id != 2";
?>
Выберем из нашей таблицы workers работников возрастом 23 года:
<?php
//В $data будут Дима и Вася:
$query = "SELECT * FROM workers WHERE age=23";
?>
Выберем из нашей таблицы workers работников с зарплатой 500$:
<?php
//В $data будут Петя, Вася и Иван:
$query = "SELECT * FROM workers WHERE salary=500";
?>
Выберем из нашей таблицы workers работника с именем Дима:
<?php
//В $data будет только Дима:
$query = "SELECT * FROM workers WHERE name='Дима'";
/*
Обратите внимание на кавычки:
поскольку вся строка запроса у нас лежит в двойных
кавычках, то строку 'Дима' мы возьмем в одинарные!
*/
?>
Задачи на PhpMyAdmin
Чтобы вам было проще с ним освоится, сделайте следующие практические задачи:
- Создайте базу данных test.
- В ней создайте таблицу users.
- В этой таблице сделайте 4 поля (столбца):
- id (для него нужно поставить галочку AUTO_INCREMENT или A.I.), тип integer,
- name, тип varchar, 32 символа,
- age, тип integer,
- birthday (англ. день рождения), тип date.
- Найдите вкладку ‘вставить’ и с ее помощью вставьте несколько строк в эту таблицу
При этом поле id заполнять не нужно! Оно заполнится автоматически! - Поредактируйте какую-нибудь запись.
- Удалите какую-нибудь запись.
- Поменяйте кодировку для таблицы и для всей базы данных (на utf8_general_ci).
- Переименуйте таблицу.
- Переименуйте базу данных.
PhpMyAdmin
Вы можете править содержимое таблиц, создавать новые базы данных и таблицы — и все это через веб-интерфейс,
не зная SQL.
Читайте также
Анализ существующих способов формирования баз данных, моделей представления данных для моделирования воздушной обстановки
- Шапкарин А.М.
Экстрадиция в уголовном праве
- Андреасян С.А.
Разработка информационной системы для начальника нефтяной базы
- Хусаинов И.Г.
Информационная система оценивания эффективности и результативности труда сотрудника лаборатории
- Хусаинов И.Г.
Создание базы данных в PHPMyAdmin. Работа с данными используя PHP, MySQL и HTML
- Соломатова Е.И.
Список литературы
- Аннотация к phpMyAdmin [Электронный ресурс] / URL: http://php-myadmin.ru/about/notice.html
- Запросы к базе данных и их использование. Виды запросов. Технология создания [Электронный ресурс] / URL: http://www.yaklass.ru/materiali?mode=cht&chtid=514
- Островский С.Л. Основы web-программирования для школьного «сайтостроительства». Лекция 5. PHP+MySQL [Текст]/ С.Л. Островский // Информатика. – 2008.-№21.-с.2-15
Цитировать
Поделиться
Команда DELETE — удаление записей
С помощью команды DELETE можно удалять записи из таблицы.
Ее синтаксис очень похож на команду SELECT:
<?php
//УДАЛИТЬ ИЗ таблицы_такой_то ГДЕ условие_такое_то
"DELETE FROM имя_таблицы WHERE условие_по_которому_следует_удалять_строки";
?>
Давайте удалим запись с id=6:
<?php
//УДАЛИТЬ ИЗ workers ГДЕ id=6
$query = "DELETE FROM workers WHERE id=6";
/*
Обратите внимание на то,
что после удаления id=6 в таблице не будет вообще.
*/
?>
Команда INSERT — вставка данных в БД
С помощью команды INSERT
можно добавлять новую информацию в таблицу.
//ВСТАВИТЬ В имя_таблицы УСТАНОВИТЬ поле1=значение1, поле2=значение2, поле3=значение3
INSERT INTO имя_таблицы SET поле1=значение1, поле2=значение2, поле3=значение3...;
Давайте добавим нового работника Гену, в возрасте 30 лет, с зарплатой 1000$:
<?php
//ВСТАВИТЬ В имя_таблицы УСТАНОВИТЬ имя='Гена', возраст=30, зарплата=1000
$query = "INSERT INTO workers SET name='Гена', age=30, salary=1000";
/*
Обратите внимание на то, что строку 'Петя' мы взяли в кавычки.
Также обратите внимание на то, что поле id мы не указываем -
база данных сама поставит в него нужное значение.
*/
?>
<?php
//В $data будет только Вася (только он подпадает под два условия сразу)
$query = "SELECT * FROM workers WHERE salary=500 AND age=23";
?>
Что будет, если не указать значение какого-либо столбца?
<?php
//ВСТАВИТЬ В имя_таблицы УСТАНОВИТЬ имя='Гена', зарплата=1000
$query = "INSERT INTO workers SET name='Гена', salary=1000";
//Мы не выставили поле "возраст", хотя оно есть в таблице!
?>
Ошибки в данном случае не будет.
База данных просто поставит значение по умолчанию для данной колонки.
В нашем случае это будет ноль. Проверьте это!
Выбор столбцов
В результат, который вернет нам база данных,
не обязательно включать все столбцы.
Пусть мы хотим узнать только имя и возраст работника,
не вытягивая из базы данных всю остальную информацию:
<?php
/*
В $data будут только ключи name и age и не будет id, salary
(звездочка *, которую мы ставили раньше, командует вернуть ВСЕ столбцы):
*/
$query = "SELECT name, age FROM workers WHERE id>0";
?>
AUTO_INCREMENT
Обратите внимание на то, что мы создали поле id и поставили ему галочку AUTO_INCREMENT.
Это очень важный шаг!
Теперь при вставке новой записи (строки) в таблицу это поле будет заполняться автоматически уникальным номером.
При этом если мы удалим строку с каким-то id (например 1), то такого id больше никогда не будет.
Зачем нужно поле id?
Затем, чтобы мы всегда могли обратиться к конкретной строке по ее id,
например с целью удаления или редактирования.
Что можно писать в условие?
Привожу минимум необходимых команд, на самом деле их больше, но о них ниже:
= равно,
!= не равно,
<> так тоже не равно,
> больше,
< меньше,
>= больше либо равно,
<= меньше либо равно.
Типы переменных
В SQL довольно много типов переменных,
но чаще всего приходится пользоваться следующими:
- integer – целочисленный.
- text – большое текстовое поле.
- varchar – не очень большое текстовое поле, при этом мы должны задать его размер (он должен быть степенью двойки: 8, 16, 32, 64, 128, 256 и т.д.).
- date — поле для хранения даты (дата хранится в SQL-формате: год-месяц-день, пример: 2013-06-24).
Тестируем работоспособность
Прежде чем начать работу, следует протестировать работоспособность —
попробуем сделать какой-нибудь запрос к нашей базе.
Просто скопируйте этот код и запустите его у себя:
<?php
//Устанавливаем доступы к базе данных:
$host = 'localhost'; //имя хоста, на локальном компьютере это localhost
$user = 'root'; //имя пользователя, по умолчанию это root
$password = ''; //пароль, по умолчанию пустой
$db_name = 'test'; //имя базы данных
//Соединяемся с базой данных используя наши доступы:
$link = mysqli_connect($host, $user, $password, $db_name);
//Устанавливаем кодировку (не обязательно, но поможет избежать проблем):
mysqli_query($link, "SET NAMES 'utf8'");
//Формируем тестовый запрос:
$query = "SELECT * FROM workers WHERE id > 0";
//Делаем запрос к БД, результат запроса пишем в $result:
$result = mysqli_query($link, $query) or die(mysqli_error($link));
//Проверяем что же нам отдала база данных, если null – то какие-то проблемы:
var_dump($result);
?>
Если var_dump($result) вернет resource,
то все работает, если же null – то возникли какие-то проблемы.
в новых версиях PHP в $result будет лежать объект с данными (всегда будет непустой).
Если обработать его через mysqli_fetch_assoc будет или результат или null (про mysqli_fetch_assoc
см ниже или видео https://youtu.be/J8GFuyA_k_8 ,
которое уже было выше в пункте «Устанавливаем соединение»)
В таком случае проверьте все еще раз,
уберите последовательно все ошибки PHP, если таковые есть.
Читайте также
Совершенствование механизмов поворота гусеничных транспортных средств
- Сухов А.А.
- Терновский А.В.
Совершенствование планетарных передач транспортных средств
- Сухов А.А.
- Попов А.В.
- Коноплев И.Е.
Организация студенческого учебного исследования на основе принципов data mining с использованием средств СДО Moodle
- Конев К.А.
Элементы математической логики в среде NXT-G. Работа с данными
- Соломатова Е.И.
Структурированный язык запросов SQL в PHPMyAdmin
- Соломатова Е.И.
Список литературы
- Островский, С.Л. Лекция 6. Свои журналы ближе к телу [Текст]/ С.Л. Островский // Информатика. – 2008.-№22.-с.2-13.
- Яковлева, Тамара Что такое Denwer (денвер) и как его утановить? [Электронный ресурс]/Т.Яковлева//URL: http://blog.sistemainternetzarabotka.ru/chto-takoe-denwerdenver-i-kak-ego-ustanovit.
- Моисеенко Сергей Интерактивный учебник поSQL [Электронный ресурс]/С.Моисеевнко // URL: http://www.sql-tutorial.ru/.
- PHP и MySQL.Совместная работа [Электронный ресурс]//URL: http://www.softtime.ru/bookphp/gl12_1.php.
Цитировать
Поделиться
Как работать с mySQL через PHP
Работа с БД из PHP осуществляется всего лишь
с помощью трех функций:
- mysqli_connect – соединение с сервером и базой данных.
- mysqli_query — универсальная функция отправки запросов к БД, с помощью нее можно сделать все.
- mysqli_error — вывод ошибок.
Далее подробнее про каждую из функций.
Массовая вставка через INSERT
С помощью INSERT можно вставлять не одну запись,
а несколько. Синтаксис такой:
<?php
/*
ВСТАВИТЬ В имя_таблицы (поле1, поле2...)
ЗНАЧЕНИЯ (значение1, значение2...), (значение1, значение2...)...
*/
$query = "INSERT INTO имя_таблицы (поле1, поле2...)
VALUES (значение1, значение2...), (значение1, значение2...)...";
?>
Давайте добавим одновременно трех новых работников:
Гену, в возрасте 30 лет, с зарплатой 1000$,
Васю, в возрасте 25 лет, с зарплатой 500$,
Ивана, в возрасте 27 лет, с зарплатой 1500$:
<?php
/*
ВСТАВИТЬ В workers (name, age, salary)
ЗНАЧЕНИЯ ('Гена', 30, 1000), ('Вася', 25, 500), ('Иван', 27, 1500)
*/
$query = "INSERT INTO workers (name, age, salary)
VALUES ('Гена', 30, 1000), ('Вася', 25, 500), ('Иван', 27, 1500)";
?>
Более сложная логика
В условии выборки можно делать более сложные комбинации
с помощью слов OR (или) и AND (и).
Работают они так же, как и их аналоги в конструкции if.
Устанавливаем соединение с БД
Прежде, чем начать работать с базой данных из PHP, нужно установить соединение с сервером,
на котором эта база находится.
Делается это с помощью функции PHP mysql_connect, которая принимает 3 параметра:
имя хоста (сервера), имя пользователя,
под которым мы работаем с базой и пароль для этого пользователя.
Если вы работаете на своем компьютере то это будут ‘localhost’, ‘root’ и
пароль в виде пустой строки (на некоторых серверах он тоже может быть root).
Если ваша база данных в интернете — то эти данные дает вам хостер.
Давайте установим соединение с базой данных:
<?php
//Устанавливаем доступы к базе данных:
$host = 'localhost'; //имя хоста, на локальном компьютере это localhost
$user = 'root'; //имя пользователя, по умолчанию это root
$password = ''; //пароль, по умолчанию пустой
$db_name = 'test'; //имя базы данных
//Соединяемся с базой данных используя наши доступы:
$link = mysqli_connect($host, $user, $password, $db_name);
/*
Соединение записывается в переменную $link,
которая используется дальше для работы mysqi_query.
*/
?>
Проблемы с кодировками
Зачастую у новичков возникает проблема с кодировками —
казалось бы нормальный русский текст в базу данных записывается абракадаброй или вопросиками.
Чтобы не было проблем с кодировками следует придерживаться простых правил:
- Базу данных следует создавать в кодировке utf8_general_ci.
- Документ PHP должен быть в кодировке utf8.
- Таблицы в БД должны быть в utf8_general_ci.
- На всякий случай сразу после команды mysqli_connect добавьте такое запрос: mysqli_query($link, «SET NAMES ‘utf8′»);
Посылаем запросы к базе данных
Запросы к базе данных представляют собой обычные строки,
которые мы вставляем в функцию PHP mysqli_query
(первым параметром это функция принимает переменную, в которую мы записали
результат mysqli_connect, в нашем случае это переменная $link):
<?php
//Внутри функции PHP mysqli_query стоит обычная строка:
$link = mysqli_query($link, "SELECT*FROM workers WHERE id>0");
//Мы можем формировать эту строку с помощью переменных:
$table = 'workers'; //задаем имя таблицы в переменной
mysqli_query($link, "SELECT*FROM ".$table." WHERE id>0");
?>
Принято правило, по которому команды SQL следует писать в верхнем регистре (то есть большими буквами),
а все остальное — в нижнем.
Это относиться к командам SELECT, UPDATE, FROM, DELETE, WHERE
и другим такого рода.
Конечно, синтаксической ошибки не будет, если вы напишите их маленькими буквами,
но принято большими.
Примеры на OR и AND
Выберем из таблицы workers работников с зарплатой 500$ И возрастом 23 года:
<?php
//В $data будет только Вася (только он подпадает под два условия сразу)
$query = "SELECT * FROM workers WHERE salary=500 AND age=23";
?>
Выберем из таблицы workers работников с зарплатой 500$ ИЛИ возрастом 23 года:
<?php
/*
В $data будут все работники у кого з/п 500$
и все у кого возраст 23 года.
Это Дима (23 года), Вася (оба условия),
Петя (з/п 500$) и Иван (з/п 500$).
*/
$query = "SELECT * FROM workers WHERE salary=500 OR age=23";
?>
Выберем из таблицы workers работников с зарплатой от 450$ до 900$:
<?php
//В $data будут Петя (з/п 500$), Вася (з/п 500$), Иван (з/п 500$):
$query = "SELECT * FROM workers WHERE salary>450 AND salary<900";
?>
Выберем из таблицы workers работников с возрастом от 23 до 27 лет включительно:
<?php
/*
В $data будут Дима (23 года), Петя (25 лет),
Вася (23 года), Иван (25 лет),
а вот Коля (30 лет) и Кирилл (28 лет) сюда не попадут:
*/
$query = "SELECT * FROM workers WHERE age>=23 AND age<=27";
?>
Видео на PhpMyAdmin
https://youtu.be/st9A8d4J6Js
Команда SELECT — выборка из БД
Разберемся теперь с командой SELECT,
которую вы уже видели в тестовом коде.
Команда SELECT позволяет нам достать
несколько строк из нашей таблицы.
Синтаксис ее таков:
//ВЫБРАТЬ все_столбцы ИЗ таблицы_такой_то ГДЕ условие_такое_то
SELECT * FROM имя_таблицы WHERE условие_по_которому_следует_выбрать_строки;
Далее я привожу полный код примера, то есть весь код, который должен быть у вас в документе.
Часть этого кода вы уже набрали, когда тестировали работу с базой.
Итак, пример выборки из БД по какому-либо условию, в нашем случае это условие id>0,
то есть выбрать все записи, id которых больше нуля:
<?php
//Устанавливаем доступы к базе данных:
$host = 'localhost'; //имя хоста, на локальном компьютере это localhost
$user = 'root'; //имя пользователя, по умолчанию это root
$password = ''; //пароль, по умолчанию пустой
$db_name = 'test'; //имя базы данных
//Соединяемся с базой данных используя наши доступы:
mysqli_connect($host, $user, $password, $db_name) or die(mysqli_error($link));
//Устанавливаем кодировку (не обязательно, но поможет избежать проблем):
mysqli_query($link, "SET NAMES 'utf8'")
//ВЫБРАТЬ все_столбцы ИЗ workers ГДЕ ад_ди_больше_нуля (т.е. все)
$query = "SELECT * FROM workers WHERE id > 0";
//Делаем запрос к БД, результат запроса пишем в $result:
$result = mysqli_query($link, $query) or die( mysqli_error($link) );
//Преобразуем то, что отдала нам база в нормальный массив PHP $data:
for ($data = []; $row = mysqli_fetch_assoc($result); $data[] = $row);
//Массив результата лежит в $data, выведем его на экран:
var_dump($data);
?>
Запрос мы делаем к нашей таблице workers.
Функция var_dump покажет нам,
что в массиве $data лежат все строки нашей таблицы.
Впредь я не буду приводить полный код,
а буду писать только содержимое переменной $query (то есть текст запроса).
Начнем практиковаться
Сейчас мы с вами начнем изучить SQL запросы на практике.
Для этого нам понадобится тестовая таблица в базе данных,
заполненная некоторыми данными. Сейчас мы с вами ее сделаем и заполним.
Назовите ее «test».
Создайте в этой базе новую таблицу.
Назовите ее «workers» (англ. работники).
В ней создайте 4 столбца (столбцы по другому называются поля):
- id – тип integer, не забудьте поставить ему галочку AUTO_INCREMENT (чтобы в этом столбце номера проставлялись автоматически).
- name (англ. имя) – тип varchar, размером в 256 знаков.
- age (англ. возраст) — тип integer.
- salary (англ. зарплата) — тип integer.
Ее заполните тестовыми данными,
как показано в таблице ниже (этот шаг обязателен, так как дальше все задачи будут по этой таблице):
Итак, у нас есть таблица с работниками фирмы, в которой указаны их имена, возрасты и зарплаты (в $).
Далее мы будем работать с этой таблицей.
Что вам делать дальше
Приступайте к решению задач по следующей ссылке: задачи к уроку.
Когда все решите — переходите к изучению новой темы.
Отлавливаем ошибки базы данных
Многие начинающие зачастую не умеют отлавливать ошибки,
которые вернула база данных.
Поэтому при работе с БД у них постоянно возникают сложности. Что-то не работает, а что — не понятно,
так как ошибок они не видят, так как
PHP не выводит ошибки mySQL, если ему об этом не сказать
Чтобы вывести ошибки, следует пользоваться конструкцией or die ( mysqli_error($link) ),
которую необходимо добавлять к каждому запросу к БД.
Смотрите пример: mysqli_query($link, $query) or die( mysqli_error($link) );
Таким образом вы сразу будете получать сообщения об ошибках синтаксиса SQL.
Обратите внимание на то, что на рабочем сайте эти конструкции следует удалять,
чтобы пользователи и тем более хакеры не видели ошибок БД.
Группировки условий
Если вам нужны сложные комбинации команд OR и AND то,
так же, как в if, их можно группировать с помощью круглых скобок ( ),
чтобы показать приоритет условий.
Давайте выберем всех работников в возрасте
от 20 лет до 27 лет или с зарплатой от 300$
(обратите внимание на расстановку скобок () —
именно они группируют условия):
SELECT * FROM workers WHERE (age>20 AND age<27) OR (salary>300)
Другой синтаксис INSERT
INSERT имеет альтернативный синтаксис:
<?php
//ВСТАВИТЬ В имя_таблицы (поле1, поле2...) ЗНАЧЕНИЯ (значение1, значение2...)
$query = "INSERT INTO workers (поле1, поле2...) VALUES (значение1, значение2...)";
?>
Давайте добавим нового работника Гену, в возрасте 30 лет, с зарплатой 1000$
с помощью альтернативного синтаксиса:
<?php
//ВСТАВИТЬ В workers (name, age, salary) ЗНАЧЕНИЯ ('Гена', 30, 1000)"
$query = "INSERT INTO workers (name, age, salary) VALUES ('Гена', 30, 1000)";
?>
Как достать результат
После того, как мы сделали запрос к базе, в переменной $result
будет лежать результат этого действия.
Однако лежит он не в той форме, которая нам нужна в PHP, а в той форме,
в которой его прислала нам база.
Достать результат в нормальном виде (в массиве)
можно с помощью следующего кода:
<?php
//Делаем запрос к БД, результат запроса пишем в $result:
$result = mysqli_query($link, $query) or die(mysqli_error($link));
//Преобразуем то, что отдала нам база в нормальный массив PHP $data:
for ($data = []; $row = mysqli_fetch_assoc($result); $data[] = $row);
?>
Как работает последняя строка?
Функция mysqli_fetch_assoc считывает последовательно каждую строку результата,
который прислала нам база.
В цикле for мы считываем построчно результат из базы.
Когда цикл дойдет до последней строки — mysqli_fetch_assoc
вернет false и цикл for закончит свою работу.
А результат из БД будет лежать в нормальном виде в массиве $data.