|
Программирование >> Создание клиентов mysql
Давайте рассмотрим работу с базами даннгх на примере автосалона. Кен, торговец автомобилями, владеет более чем 100 машинами. Естественно, Кен не может помнить детальное описание каждой из них, поэтому он решает создать базу даннгх. В ней будет содержаться таблица с описанием каждого автомобиля, включая производителя, модель, год выпуска и ряд других параметров. В США у каждого автомобиля есть уникальныйидентификационный номер (VIN, Vehicle Identification Number). Он также занесен в таблицу, чтобы можно было различать модели с одинаковыми параметрами. Для работы с базой данных необходима СУБД (система управления базами данных), т.е. программа, которая берет на себя все заботы, связанные с доступом к данным. Она содержит команды, позволяющие создавать таблицы, вставлять в них записи, искать и даже удалять записи. MySQL - это быстрая, надежная и недорогая СУБД. Бизнес Кена невелик, поэтому он не может себе позволить приобрести дорогую корпоративную систему, но точно так же он не может допустить, чтобы с базой данных произошел крах. Поэтому он выбрал открыто распространяемый пакет, з надежной работе которого он больше уверен. Кроме того, Кен обнаружил, что есть много бесплатных ресурсов, посвященных поддержке MySQL. Если же ему понадобится профессиональная поддержка с гарантией, он сможет оплатить соответствующую услугу в компании MySQL AB. MySQL берет на себя заботу об эффективном хранении записей и таблиц на жестком диске. Кен избавлен от этого. Ему лишь нужно вводить правильные команды. MySQL, как и многие другие СУБД, функционирует по модели клиент/сервер . Под этим подразумевается сетевая архитектура, в которой компьютеры играют роли клиентов либо серверов. Серверы обычно обладают более мощными ресурсами и предназначены для предоставления услуг группам клиентов. Именно на серверах концентрируются вычислительные мощности и данные, тогда как на клиентах располагаются интерфейсные программы, посредством которых пользователи получают доступ к ресурсам сервера. На рис. 1.1 изображена схема передачи информации между компьютером Кена и жестким диском сервера. Рис. 1.1. Схема передачи данных в архитектуре клиент/сервер Кен работает с клиентской программой MySQL, которая представляет собой утилиту командной строки. Эта программа подключается к серверу по сети. Команды, выполняемые сервером, обычно связаны с чтением и записью данных на жестком диске. Клиентские программы могут работать не только в режиме командной строки. Есть и графические клиенты, например MySQL GUI. О них пойдет речь в главе 3, Взаимодействие с MySQL . Принципы использования баз данных Язык баз данных MySQL взаимодействует с базой данных на языке, называемом SQL (Structured Query Language - язык структурированных запросов). Одни люди произносят эту аббревиатуру как сиквел , другие, и я в том числе, - как эскюэль . Последний вариант, похоже, нравится и разработчикам MySQL. Они заявляют, что название программы должно произноситься так: май-эскюэль . Первое, что нужно сделать Кену, разобравшись с полями записей, - это создать таблицу. Данной цели служит команда, показанная в листинге 1.1. CREATE TABLE car ( VIN VARCHAR(17) NOT NULL, Make VARCHAR(16) NOT NULL, Model VARCHAR(16) NOT NULL, ModelYear INT(16) NOT NULL, WholesalePrice FLOAT(6,2) NOT NULL, Color VARCHAR(S) NOT NULL, Mileage INT (11) NOT NULL, Comments TEXT, PRIMARY KEY(VIN) С этой командой стоит познакомиться поближе. После названия команды CREATE TABLE указано имя таблицы: саr. Далее в фигурных скобках идет список разделенных запятыми строк, описывающих поля таблицы. Первое поле называется VIN и его тип - VARCHAR, т.е. строка символов переменной длины. Максимальное число символов в строке - 17. Спецификатор NOT NULL говорит о том, что строка не может быть пустой, т.е. пользователь обязательно должен ввести в эту строку какие-то данные. Некоторые поля имеют другой тип. Например, поле WholesalePrice содержит число с плавающей запятой. Формат этого числа таков: шесть цифр до запятой, и две - после. Поле ModelYear содержит целое число, состоящее не более чем из четырех цифр. Последняя строка списка представляет собой определение не поля, а индекса. В ней сообщается о том, что поле VIN является первичным ключом таблицы. Как уже говорилось выше, идентификационный номер автомобиля должен быть уникальным. А чтобы гарантировать уникальность значений в столбце, его нужно сделать первичным ключом. MySQL не позволит вставить в таблицу две записи с одинаковым значением поля VIN. Запросы к базам данных На языке баз данных команды, обращающиеся к базе, называются инструкциями либо запросами. Инструкция- это более общий термин. Запросом обычно считается такая инструкция, которая возвращает информацию (их еще называют запросами на выборку). Запрос можно рассматривать как вопрос, задаваемый базе данных, напри- мер: Существуют ли записи, в которых цвет автомобиля указан белтм? Если такие записи имеются, они будут выданы в виде результатов запроса. Запрос, показанный в листинге 1.2, представляет собой инструкцию SELECT. Она отбирает записи, соответствующие следующему критерию: поле Color записи содержит строку White. Но возвращается не вся запись целиком, а лишь четыре поля: VIN,Make,Model и ModelYear. SELECT VIN, Make, Model, ModelYear FROM car WHERE Color = White; Обратите внимание на то, что инструкция SELECT напоминает предложение, записанное по-английски. Такова особенность языков четвертого поколения, к которым относится и SQL. К языкам первого поколения относятся платформно-зависимые машинные коды, напрямую воспринимаемые центральным процессором. Второе поколение - это ассемблерные языки. Языки третьего поколения считаются высокоуровневыми, и на них работают большинство программистов. В качестве примера можно привести С и РНР. Языки четвертого поколения еще на шаг приближены к естественным человеческим языкам. Показанный выше запрос можно модифицировать как угодно, но результат пока что будет одним и тем же. СУБД ненайдет ни одной записи, так как таблица пуста! Следовательно, нужно что-то добавить в нее. Для этого предназначена инструкция INSERT. Данная инструкция относится к семейству запросов на изменение и официально называется запросом на добавление записей. В листинге 1.3 показана инструкция, которая добавляет запись в таблицу саr. Порядок значений соответствует порядку столбцов в таблице. INSERT INTO car VALUES ( 12345678901234567, Plymouth, Roadrunner, 1969, 5500.00, Blue, 148123, Unrestored Такие инструкции должны быть выполнены для всех автомобилей, находящихся в распоряжении Кена. Имея заполненную таблицу, Кен может производить в ней более предметный поиск. Например, если клиент спросит, есть ли в продаже автомобили Форд по цене меньше $10000, Кен сможет проверить это с помощью показанного ниже запроса (листинг 1.4).
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |