Всем привет! В этом уроке разберем пошаговое создание таблиц в базе данных Access. От вас потребуется только читать и повторять. Поехали!
Цель: научиться создавать таблицы базы данных, задавать их структуру, выбирать типы полей и управлять их свойствами; освоить приемы наполнения таблиц конкретным содержанием.

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

1. Запустите программу Microsoft Access (Пуск — Программы — Microsoft Office — Microsoft Access).

2. В окне Microsoft Access включите переключатель Новая база данных .

Создание БД Access — Пошаговое создание таблиц в базе данных Access

3. На боковой панели выберите место, где будет храниться база данных, дайте файлу имя: Комплектующие . Убедитесь, что в качестве типа файла выбрано Базы данных Microsoft Access и щелкните по кнопке Создать . В результате на экране должно появиться окно новой базы данных. Автоматически будет запущен режим создания первой таблицы:

4. Перейти из режима таблицы в режим конструктора, выбрав его в меню:
Когда программа запросит имя таблицы, ввести название: Комплектующие и нажать Ok. Откроется окно конструктора, в котором мы будем создавать структуру таблицы:

Создание Таблицы Access — Пошаговое создание таблиц в базе данных Access

5. Для первой таблицы введите следующие поля:

Обратите внимание на то, что в данном случае поле Цена задано не денежным типом, а числовым . Данные, относящиеся к денежному типу, имеют размерность, выраженную в рублях (если работа выполняется с версией Microsoft Access, локализованной в России). Но стоимость компонентов вычислительной техники выражать в этой единице измерения не принято. Для сравнимости цен разных поставщиков обычно используют “условные единицы”. В таких случаях удобно использовать поле числового типа, чтобы не перенастраивать всю СУБД.

Таблица «Комплектующие» — Пошаговое создание таблиц в базе данных Access

6. Щелкните на поле Цена . В нижней части бланка задайте свойство Число десятичных знаков , равным 2.

7. Для связи с будущей таблицей поставщиков надо задать ключевое поле. Поскольку здесь ни одно поле явно не претендует на “уникальность”, используем комбинацию полей Компонент и Модель . Выделите оба поля в верхней части бланка (при нажатой клавише SHIFT). Щелчком правой кнопки мыши откройте контекстное меню и выберите в нем пункт Ключевое поле .

После этого рядом с этими полями будет отображаться «ключ».

8. Закройте окно Конструктора (обычное закрытие – через «крест» в верхнем правом углу окна конструктора).
На запрос сохранения изменённой структуры таблицы ответить согласием.

9. Повторив действия пунктов 4-8, создайте таблицу Поставщики , в которую входят следующие поля:

Для этого нужно выполнить следующее: меню Создать — Таблица.

Выбрать режим Конструктора .

Обратите внимание на то, что поле номера телефона является текстовым, несмотря на то, что обычно номера телефонов записывают цифрами. Это связано с тем, что они не имеют числового содержания. Номера телефонов не сравнивают по величине, не вычитают из одного номера другой и т.д. Это типичное текстовое поле.
Ключевое поле можно не задавать – для текущей задачи оно не требуется.
10. В левой боковой панели окна базы данных двойным щелчком откройте по очереди созданные таблицы и наполните их экспериментальным содержанием (по 10 записей).
11. Закончив работу, закройте таблицы и завершите работу с программой.
В этом уроке на простом примере было показано Пошаговое создание таблиц в базе данных Access. Если было интересно, то рекомендую посмотреть видеоурок ниже.

Продолжение следует…
УРОК 1: Пошаговое создание таблиц в базе данных Access
УРОК 2: Создание межтабличных связей в базе Access
УРОК 3: Создание запроса на выборку данных в базе Access
УРОК 4: Создание запросов с параметром в базе Access
УРОК 5: Создание перекрёстного запроса в базе Access
УРОК 6: Создание запросов на изменение в базе Access
УРОК 7: Создание и заполнение форм в базе Access

В организации базы данных задействуется большое число различных объектов. Все объекты базы данных являются либо физическими, либо логическими. Физические объекты связаны с организацией данных на физических устройствах (дисках). Физическими объектами компонента Database Engine являются файлы и файловые группы. Логические объекты являются пользовательскими представлениями базы данных. В качестве примера логических объектов можно назвать таблицы, столбцы и представления (виртуальные таблицы).

Объектом базы данных, который требуется создать в первую очередь, является сама база данных. Компонент Database Engine управляет как системными, так и пользовательскими базами данных. Пользовательские базы данных могут создаваться авторизованными пользователями, тогда как системные базы данных создаются при установке СУБД.

Для создания базы данных используется два основных метода. В первом методе задействуется обозреватель объектов среды SQL Server Management Studio, как было показано ранее, а во втором применяется инструкция языка Transact-SQL CREATE DATABASE . Далее приводится общая форма этой инструкции, а затем подробно рассматриваются ее составляющие:

CREATE DATABASE db_name { file_spec1} ,...] Соглашения по синтаксису

Параметр db_name - это имя базы данных. Имя базы данных может содержать максимум 128 символов. Одна система может управлять до 32 767 базами данных. Все базы данных хранятся в файлах, которые могут быть указаны явно администратором или предоставлены неявно системой. Если инструкция CREATE DATABASE содержит параметр ON , все файлы базы данных указываются явно.

Компонент Database Engine хранит файлы данных на диске. Каждый файл содержит данные одной базы данных. Эти файлы можно организовать в файловые группы. Файловые группы предоставляют возможность распределять данные по разным приводам дисков и выполнять резервное копирование и восстановление частей базы данных. Это полезная функциональность для очень больших баз данных.

Параметр file_spec1 представляет спецификацию файла и сам может содержать дополнительные опции, такие как логическое имя файла, физическое имя и размер. Параметр PRIMARY указывает первый (и наиболее важный) файл, который содержит системные таблицы и другую важную внутреннюю информацию о базе данных. Если параметр PRIMARY отсутствует, то в качестве первичного файла используется первый файл, указанный в спецификации.

Учетная запись компонента Database Engine, применяемая для создания базы данных, называется владельцем базы данных . База данных может иметь только одного владельца, который всегда соответствует учетной записи. Учетная запись, принадлежащая владельцу базы данных, имеет специальное имя dbo . Это имя всегда используется в отношении базы данных, которой владеет пользователь.

Опция LOG ON параметра dbo определяет один или более файлов в качестве физического хранилища журнала транзакций базы данных. Если опция LOG ON отсутствует, то журнал транзакций базы данных все равно будет создан, поскольку каждая база данных должна иметь, по крайней мере, один журнал транзакций. (Компонент Database Engine ведет учет всем изменениям, которые он выполняет с базой данных. Система сохраняет все эти записи, в особенности значения до и после транзакции, в одном или более файлов, которые называются журналами транзакций. Для каждой базы данных системы ведется ее собственный журнал транзакций.)

В опции COLLATE указывается порядок сортировки по умолчанию для базы данных. Если опция COLLATE не указана, базе данных присваивается порядок сортировки по умолчанию, совершенно такой же, как и порядок сортировки по умолчанию системы баз данных.

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

Компонент Database Engine создает новую базу данных по шаблону образцовой базы данных model. Свойства базы данных model можно настраивать для удовлетворения персональных концепций системного администратора. Если определенный объект базы данных должен присутствовать в каждой пользовательской базе данных, то этот объект следует сначала создать в базе данных model.

В примере ниже показан код для создания простой базы данных, без указания дополнительных подробностей. Чтобы исполнить этот код, введите его в редактор запросов среды Management Studio и нажмите клавишу .

USE master; CREATE DATABASE SampleDb;

Код, приведенный в примере, создает базу данных, которая называется SampleDb. Такая сокращенная форма инструкции CREATE DATABASE возможна благодаря тому, что почти все ее параметры имеют значения по умолчанию. По умолчанию система создает два файла. Файл данных имеет логическое имя SampleDb и исходный размер 2 Мбайта. А файл журнала транзакций имеет логическое имя SampleDb_log и исходный размер 1 Мбайт. (Значения размеров обоих файлов, а также другие свойства новой базы данных зависят от соответствующих спецификаций базы данных model.)

В примере ниже показано создание базы данных с явным указанием файлов базы данных и журнала транзакций:

USE master; CREATE DATABASE Projects ON (NAME=projects_dat, FILENAME = "D:\projects.mdf", SIZE = 10, MAXSIZE = 100, FILEGROWTH = 5) LOG ON (NAME=projects_log, FILENAME = "D:\projects.ldf", SIZE = 40, MAXSIZE = 100, FILEGROWTH = 10);

Созданная в примере база данных называется Projects. Поскольку опция PRIMARY не указана, то первичным файлом предполагается первый файл. Этот файл имеет логическое имя projects_dat и он сохраняется в дисковом файле projects.mdf. Исходный размер этого файла 10 Мбайт. При необходимости, система выделяет этому файлу дополнительное дисковое пространство в приращениях по 5 Мбайт. Если не указать опцию MAXSIZE или если этой опции присвоено значение UNLIMITED, то максимальный размер файла может увеличиваться и будет ограничиваться только размером всего дискового пространства. (Единицу размера файла можно указывать с помощью суффиксов KB, TB и MB, означающих килобайты, терабайты и мегабайты соответственно. По умолчанию используется единица размера MB, т.е. мегабайты.)

Кроме файла данных создается файл журнала транзакций, который имеет логическое имя projects_log и физическое имя projects.ldf. Все опции спецификации файла журнала транзакций имеют такие же имена и значения, как и соответствующие опции для спецификации файла данных.

В языке Transact-SQL можно указать конкретный контекст базы данных (т.е. какую базу данных использовать в качестве текущей) с помощью инструкции USE . (Альтернативный способ - выбрать имя требуемой базы данных в раскрывающемся списке Database (Базы данных) в панели инструментов среды SQL Server Management Studio.)

Системный администратор может назначить пользователю текущую базу данных по умолчанию с помощью инструкции CREATE LOGIN или инструкции ALTER LOGIN. В таком случае пользователям не нужно выполнять инструкцию USE, если только они не хотят использовать другую базу данных.

Создание моментального снимка базы данных

Кроме создания новой базы данных, инструкцию CREATE DATABASE можно применить для получения моментального снимка существующей базы данных (база данных-источник). Моментальный снимок базы данных является согласованной с точки зрения завершенных транзакций копией исходной базы данных на момент создания моментального снимка. Далее показан синтаксис инструкции для создания моментального снимка базы данных:

Таким образом, чтобы создать моментальный снимок базы данных, в инструкцию CREATE DATABASE нужно вставить предложение AS SNAPSHOT OF . В примере ниже иллюстрируется создание моментального снимка базы данных SampleDb и сохранения его в папке D:\temp. (Прежде чем выполнять этот пример, нужно создать данный каталог.)

USE master; CREATE DATABASE SampleDb ON (NAME = "SampleDb_Data" , FILENAME = "D:\temp\snapshot_DB.mdf") AS SNAPSHOT OF SampleDb;

Моментальный снимок существующей базы данных - это доступная только для чтения копия базы данных-источника, которая отражает состояние этой базы данных на момент копирования. (Таким образом, можно создавать множественные моментальные снимки существующей базы данных.) Файл моментального снимка (в примере выше это файл D:\temp\snapshot_DB.mdf) содержит только измененные данные базы данных-источника. Поэтому в коде для создания моментального снимка необходимо указывать логическое имя каждого файла данных базы данных-источника, а также соответствующие физические имена.

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

Моментальные снимки баз данных можно создавать только на дисках с файловой системой NTFS (New Technology File System - файловая система новой технологии), т.к. только эта файловая система поддерживает технологию разреженных файлов, применяемую для хранения моментальных снимков.

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

Присоединение и отсоединение баз данных

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

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

Для присоединения базы данных используется инструкция CREATE DATABASE с предложением FOR ATTACH. Для присоединяемой базы данных должны быть доступными все требуемые файлы. Если какой-либо файл данных имеет путь, отличающийся от исходного пути, то для этого файла необходимо указать текущий путь.

Создание баз данных

Цель работы: изучение основных принципов работы и способов создания баз данных в среде MS Access

Краткие сведения о MS Access

База данных (БД) - это организованная структура, предназначенная для хранения информации. Система управления базой данных (СУБД) - это комплекс программных средств, предназначенных для создания структуры новой базы, наполнения ее содержимым, редактирования содержимого и визуализации информации.

Объекты MS Access:

Таблицы - основной объект любой БД; в таблицах хранятся все данные, имеющиеся в БД; таблицы хранят и структуру базы (поля, их типы и свойства).

Запросы - объект, служащий для отбора и анализа данных из таблиц и предоставления их пользователю в удобном виде.

Формы - объект, служащий для ввода новых данных, а также отображения их с помощью специальных средств оформления.

Отчеты - объект, предназначенный только для вывода данных на печатное устройство.

Страницы - специальный объект БД (MS Access 2000) выполненный в коде HTML и размещаемый на Web - странице, осуществляющий интерфейс между клиентом, сервером и базой данных, размещенной на сервере.

Макросы и модули - это категории объектов, предназначенные для автоматизации повторяющихся операций при работе с СУБД.

СУБД MS Access предоставляет несколько средств создания каждого из основных объектов БД. Эти средства можно классифицировать как:

ручные (разработка объектов в режиме Конструктора) ;

автоматизированные (разработка с помощью программ - мастеров);

автоматические (средства ускоренной разработки простейших объектов).

При разработке таблиц и запросов рекомендуется использовать ручные средства - работать в режиме Конструктора. При разработке форм, отчетов, наоборот, лучше пользоваться автоматизированными средствами, предоставляемыми мастерами. Это связано с тем, что для данных объектов большую роль играет внешний вид (дизайн этих объектов). Разработка Страниц, Макросов и Модулей в рамках общетехнического курса «Информатика» не рассматривается, так, как эти средства ориентированы на профессиональных разработчиков баз данных.

Работа с любыми объектами Access начинается с окна базы данных. Окно БД содержит перечень всех объектов БД на закладках. Окно БД открыто первоначально на закладке «Таблицы». Справа на панели окна БД сосредоточены три кнопки управления: «Открыть», «Конструктор», «Создать».

Работа с таблицами

Таблицы являются основными объектами любой БД. Структуру двумерной таблицы образуют столбцы и строки. Их аналогами в структуре простейшей БД являются поля и записи.

Поля - (вертикальные) столбцы данных в таблицах. Каждое поле представляет собой элемент, зарезервированный для данных определенного типа.

Записи - (горизонтальные) строки данных в таблицах. Каждая запись представляет собой элемент связанных данных.

Свойства полей БД:

Имя поля определяет, как следует обращаться к данным этого поля при автоматических операциях с базой. Имена полей используется в качестве заголовков столбцов таблиц. Имя поля не должно содержать точки. Например: Ф.И.О. - неверное имя поля. Правильное имя - ФИО.

Тип поля определяет тип данных, которые могут содержаться в данном поле. Таблицы БД, как правило, допускают работы с большим количеством разной типов данных, чем MS Excel.

MS Access работает со следующими типами данных:

  • - текстовый - тип данных, используемый для хранения обычного неформатированного текста ограниченного размера (до 255 символов);
  • - Поле Мемо - специальных типов данных для хранения больших объектов текста (до 65 535 символов);
  • - числовой - тип данных для хранения действительных чисел.
  • - денежный - тип данных для хранения денежных сумм.
  • - счетчик - специальный тип данных для уникальных (не повторяющихся в поле) натуральных чисел с автоматическим наращиванием.
  • - дата/ время - тип данных для хранения календарных дат и текущего времени.
  • - логический - тип для хранения логических данных (могут принимать только два значения, например ДА или НЕТ).

Создание таблиц

Существуют два основных способа создания таблицы: «вручную» и с помощью мастера таблиц. Следуя выше приведенным рекомендациям, рассмотрим способ создания таблицы «вручную».

Для создания таблицы «вручную» следует:

в окне БД на закладке «Таблицы» нажать кнопку «Создать»;

в окне «Новая таблица» нажать кнопку «Конструктор».

Появившееся окно Конструктора таблиц фактически является бланком для создания и редактирования структуры таблиц.

В первом столбце вводят имена полей, которые станут именами столбцов будущей таблицы. Тип данных для каждого поля задается во втором столбце из раскрывающейся списка, открываемого кнопкой выбора типа данных. Эта кнопка - скрытый элемент управления. Она отображается только после щелчка на каждой строке столбца «тип данных» на поле бланка. В MS Access очень много таких скрытых элементов управления, которые не отображаются, пока ввод данных не начат.

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

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

Ключевое поле или первичный ключ - это поле, значения которого однозначно определяют запись в таблице.

Закончив создание структуры таблицы, окно закрывают (при этом система выдает запрос на сохранение таблицы), после чего дают таблице имя, и с этого момента она доступна в числе прочих таблиц в основном окне БД. Оттуда ее можно открыть в случае необходимости.

Созданную новую таблицу открывают в окне БД двойным щелчком на ее значке или нажатием на кнопку «Открыть». Новая таблица не имеет записей - только названия столбцов, характеризующих структуру таблицы. Заполнение таблицы данными производится обычным порядком. Курсор ввода устанавливается в нужную ячейку указателем мыши. Шириной столбцов можно управлять методом перетаскивания их границ. Можно использовать автоматическое форматирование столбцов «по - содержимому». Для этого - установить указатель мыши на границу между столбцами (в строке заголовков столбцов), и когда указатель сменит форму, выполнить двойной щелчок.

После наполнения таблицы данными сохранять их не надо - все сохранится автоматически. Однако, если при работе с таблицей произошло редактирование ее макета (например, изменялась ширина столбцов), то СУБД попросит подтвердить сохранение этих изменений.

Если возникнет необходимость изменить структуру таблицы (состав полей или их свойства), таблицу надо открыть в режиме Конструктора. Для этого следует выделить ее в окне БД и щелкнуть на кнопке «Конструктор».

Создание межтабличных связей

Реляционная связь между таблицами имеет два основных назначения:

  • - обеспечение целостности данных;
  • - автоматизация задач обслуживания базы.

Связь между таблицами позволяет:

  • - либо исключить возможность удаления или изменения данных в ключевом поле главной таблицы, если с этим полем связаны какие-либо поля других таблиц;
  • - либо сделать так, что при удалении (или изменении) данных в ключевом поле главной таблицы автоматически (и абсолютно корректно) произойдет удаление или изменение соответствующих данных в полях связанных таблиц.

Создание межтабличных связей происходит в специальном окне «Схема данных», которое открывается кнопкой на панели инструментов или командой Сервис - Схема данных. Одновременно с открытием этого окна открывается диалоговое окно «Добавление таблицы», в котором можно выбрать таблицы, между которыми создаются связи. При этом одна из таблиц считается главной, а другая - связанной. Главная - это та таблица, которая участвует в связи своим ключевым полем (название этого поля на схеме данных отображается полужирным шрифтом).

На «Схеме данных» с помощью мыши необходимо выделить ключевое поле главной таблицы и, не отпуская кнопки мыши, перетащить это поле в связанную таблицу. При отпускании кнопки мыши автоматически откроется диалоговое окно «Изменение связей». Следующим шагом необходимо установить флажки «Обеспечение целостности данных», «Каскадное обновление связанных полей» и «Каскадное удаление связанных записей», затем нажать кнопку «ОК». Флажок «Обеспечение целостности данных» запрещает удалять данные из ключевого поля главной таблицы. Если вместе с ним включены флажки «Каскадное обновление связанных полей» и «Каскадное удаление связанных записей», то, соответствию, операции редактирования и удаления данных в ключевом поле главной таблицы разрешены, но сопровождаются автоматическими изменениями в связанной таблице.

Работа с запросами

При формировании и выполнении Запроса опрашивается активная база данных. Результат (ответ) представляет собой временную результирующую таблицу, которая может просматриваться на экране или распечатываться.

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

Основными типами запросов являются:

  • - Запросы на выборку - информация получается из таблиц на основе заданного критерия.
  • - Перекрестные запросы - используется критерий, задаваемый для группировки данных таблицы в табличном формате. Перекрестные запросы наиболее сложны в использовании, но очень полезны в ряде ситуаций.
  • - Итоговые запросы - выполняются вычисления по всем записям какого-либо числового поля.

Создание запроса

Запросы могут создаваться двумя способами: “вручную” и с помощью мастеров запроса. Имеется четыре мастера запросов:

мастер простых запросов;

мастер перекрестных запросов;

мастер повторяющихся записей;

мастер записей без подчинения.

В окне БД на закладке “Запросы” нажать кнопку “Создать”. В окне “Новый запрос” выбрать “Конструктор” и нажать кнопку “ОК”. Открывается окно бланка запроса. Бланк запроса состоит из 2-х областей. В верхней области отображается структура таблиц, к которым запрос адресован. Эти таблицы выбираются из окна «Добавление таблицы», открывающегося на панели инструментов кнопкой “Добавление таблицы”.

Нижняя область бланка разбита на столбцы - по одному столбцу на каждое поле будущей результирующей таблицы. Для заполнения этих столбцов в верхней области бланка щелкают двойными щелчками на названиях полей, необходимых для результирующей таблицы (запроса) при этом автоматически заполняются столбцы в нижней области бланка. Формируется структура запроса: заполняются строки: “Поле”, “Имя таблицы”, из которой выбрано это поле.

Если необходимо, чтобы отобранные данные были упорядочены по какому-либо полю, применяют сортировку. Для этого в нижней области бланка имеется специальная строка «Сортировка». При щелчке на этой строке открывается кнопка раскрывающегося списка, в котором можно выбрать метод сортировки: по возрастанию или по убыванию. В результирующей таблице данные будут отсортированы по тому полю, для которого задан порядок сортировки. Возможна многоуровневая сортировка: сразу по нескольким полям. В этом случае данные сортируются по полям слева направо.

В строке Вывод на экран по умолчанию все поля, включенные в запрос, выводятся на экран, но это не всегда целесообразно. Сброс флажка «Вывод на экран» запрещает отображение содержимого данного поля на экране.

В строке Условие отбора задается критерий (индивидуальное условие) для каждого поля, по которому выбираются данные из полей таблиц. Символы, используемые при задании критериев отбора:

- > (больше), < (меньше), = (равно), >< (не равно).

Например: а) Условие отбора по текстовому полю «ФИО» задано >К. Это значит в поле «ФИО» будут выбраны фамилии, начинающиеся на буквы от К до Я.

  • б) Условие отбора по числовому полю «Цена» задано
  • - * - замена нескольких символов.

Например: Условие отбора по текстовому полю «ФИО» задано *ов. Это значит в поле «ФИО» будут выбраны фамилии, оканчивающиеся на «ов», независимо от того, сколько впереди символов.

Замена одного символа.

Например: Условие отбора по числовому полю «Цена» задано?0. Это значит в поле «Цена» будут выбраны только значения 10, 20, 30, 40, 50, 60, 70, 80, 90.

  • - is null - поиск по «пустому» значению поля;
  • - is not null - поиск по «не пустому» значению поля.

Например, в исходной таблице поле "Размер премиальных" содержит помимо размера премии у некоторых сотрудников пустые, незаполненные строки у сотрудников, которые не получили премии. Условие отбора по полю "Размер премиальных" задано is null. Это значит в результирующей таблице (запросе), при условии ввода в нее поля "ФИО", будут выданы фамилии сотрудников, не получивших премию.

- «between значение 1 and значение 2» - поиск по интервалу между значением 1 и значением 2.

Например, условие отбора по полю "Дата рождения" задано between 01.01.82 and 31.12.82. Это значит в поле "Дата рождения" будут выбраны только даты родившихся в 1982 году.

При задании условий отбора в строку по нескольким полям между ними устанавливается логическое “И”, в столбец - логическое “ИЛИ”. Сформировав в бланке запроса по образцу структуру запроса, его закрывают, дают ему имя и далее запускают двойным щелчком на значке в окне База данных. Запустить запрос можно также в окне бланка запроса, щелкнуть на Панели инструментов кнопку с восклицательным знаком красного цвета. Порядок действий, рассмотренный выше, позволяет создать простейший запрос, называемый запросом на выборку.

Работа с формами

Формы - это средства для ввода данных. С помощью форм данные можно не только вводить, но и отображать с помощью специальных средств оформления. Формы предоставляют пользователю только те поля, которые ему заполнять положено. Одновременно с этим в форме могут размещаться специальные элементы управления для автоматизации ввода.

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

Простая форма - форма, которая создается на базе только одной таблицы или запроса.

Сложная форма - форма, которая основывается на полях из нескольких связанных таблиц или представляет собой композицию из нескольких форм.

Создание формы

Существует два вида формирования структуры форм: на основе таблицы и на основе запроса. Формы удобнее готовить с помощью средств автоматизации, хотя способ создания формы "вручную" также существует.

Полностью автоматические средства создания форм называются автоформами. Существует три вида автоформ:

  • - "в столбец" - все поля одной записи отображаются в столбец;
  • - ленточная - одновременно отображается группа записей;
  • - табличная - по внешнему виду не отличается от таблицы, на которой она основана.

Для создания автоформы следует:

  • 1. Открыть вкладку Формы в окне Базы данных и нажать кнопку Создать.
  • 2. В открывшемся окне Новая форма выбрать тип автоформы, а также таблицу (или запрос), на которой она будет основываться, нажать ОК.
  • 3. После щелчка на кнопке ОК автоформа формируется автоматические и немедленно готова к работе, то есть к вводу или отображению данных.

Автоформа создает только простые формы.

Создание формы с помощью мастера

Мастер форм - специальное программное средство, создающее структуру формы в режиме диалога с разработчиком. Мастера форм можно запустить из основного окна Базы данных щелчком на значке Создание формы с помощью мастера на вкладке Формы.

  • 1. На первом этапе работы Мастера форм выбирают таблицы (или запросы) и поля, которые войдут в будущую форму.
  • 2. На втором этапе выбирается внешний вид формы.
  • 3. На третьем этапе выбирается стиль оформления формы.
  • 4. На последнем этапе выполняется сохранение формы под заданным именем.

Работа с отчетами

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

Создание отчета

Отчеты, как и формы, проектируются тремя способами: “вручную”, автоматически (Автоотчет) и автоматизированным способом (Мастер отчетов). Рекомендуется создавать отчеты двумя последними способами, а редактировать структуру готового отчета в режиме Конструктора. Автоотчет запускается по команде: База данных - Создать - Новый отчет - Автоотчет в столбец. Кроме автоотчета "в столбец" существуют "ленточные" автоотчеты. Их структуры аналогичны соответственно форме "в столбец" и ленточной форме.

Мастер отчетов запускается по команде: База данных - Создать - Новый отчет - Мастер отчетов. Мастер отчетов работает в шесть этапов: выбор базовых таблиц или запросов; выбор полей, отображаемых в отчете; выбор полей группировки, выбор полей и методов сортировки, выбор формы печатного макета и стиля оформления.

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

Упражнения

Создание базовых таблиц

  • 1. Запустите программу MS Access.
  • 2. В окне MS Access включите переключатель Новая база данных и ОК.
  • 3. В окне Файл новой базы данных выберите папку Мои документы и дайте файлу имя Деканат. Убедитесь, что в качестве типа файла выбрано Базы данных MS ACCESS и щелкните на кнопке Создать. Откроется окно новой базы - Деканат: база данных.
  • 4. Открыта вкладка "Таблицы". Щелкните на кнопке - Создать.
  • 5. В окне Новая таблица выберите режим Конструктор, щелкните ОК. Откроется бланк создания структуры таблицы.
  • 6. Для первой таблицы введите следующие поля:
  • 7. Щелкните на поле Год рождения. В нижней части бланка Свойства поля из раскрывающегося списка задайте формат поля: Краткий формат даты. access запрос межтабличный
  • 8. Задайте Ключевое поле. Уникальным полем в таблице является поле № зачетной книжки. Выделите его щелчком правой кнопки мыши, откройте контекстное меню и выберите в нем пункт Ключевое поле.
  • 9. Закройте окно Конструктора. При закрытии окна дайте первой таблице имя сведения о студентах.
  • 10. На вкладке Таблицы создайте вторую таблицу Сведения о группах. Для этого нажмите на кнопку Создать.
  • 11. Повторив действия пунктов 6-9, создайте таблицу Сведения о группах, в которую входят следующие поля:

Ключевое поле - № группы

  • 12. В окне Деканат: база данных откройте по очереди созданные таблицы и заполните их: в таблице Сведения о студентах 20 записей, а в таблице Сведения о группах 5 записей. Причем № группы таблицы Сведения о студентах должно содержать все номера групп (они могут и должны повторяться) из таблицы Сведения о группах.
  • 13. Закончив работу, закройте таблицы.

Создание базовых таблиц

  • 1. Находясь в основном окне БД Деканат, найдите на панели инструментов кнопку Схема данных или выполните команду строки меню Сервис - Схема данных.
  • 2. Одновременно с открытием окна Схема данных, открывается диалоговое окно Добавление таблицы, на вкладке Таблицы выберите Сведения о группах, нажмите кнопку Добавить. Затем выберите Сведения о студентах, нажмите кнопку Добавить. Щелкните на кнопку Закрыть.
  • 3. В окне Схема данных откроются списки полей таблиц Сведения о группах и Сведения о студентах. При нажатой левой кнопке мыши выделите в таблице Сведения о группах ключевое поле № группы, мышью перетащите это поле в таблицу Сведения о студентах. При отпускании кнопки мыши автоматически откроется диалоговое окно Изменение связей.
  • 4. Установите флажки Обеспечение целостности данных, Каскадное обновление полей и Каскадное удаление связанных записей.
  • 5. Закройте окно Изменение связей и в окне Схема данных рассмотрите образовавшуюся связь. Тип связи один - ко - многим (1 -), что означает в одной группе учатся много студентов.
  • 6. Закройте окно Схема данных.

Создание запроса на выборку

Задание: Из общего списка студентов данного факультета выберите студентов только 1 курса; студентов, фамилии которых начинаются с буквы «А»; студентов одной группы; студентов, родившихся в одном месяце; найдите сведения о студентах по № зачетной книжки.

  • 1. Находясь в основном окне БД Деканат, откройте вкладку Запросы и щелкните на кнопку Создать.
  • 2. В окне Новый запрос выберите режим Конструктор и ОК. Откроется бланк запроса по образцу. Одновременно с ним откроется диалоговое окно Добавление таблицы выберите таблицу Сведения о студентах и щелкните на кнопке Добавить.
  • 3. Выберите таблицу Сведения о группах и щелкните на кнопке Добавить. Закройте окно Добавление таблицы.
  • 4. Поместите в нижнюю область бланка следующие поля из таблицы Сведения о студентах: ФИО, Год рождения, Адрес; из таблицы Сведения о группах - поле Курс.
  • 5. Задайте сортировку по возрастанию по полю ФИО (по алфавиту от А до Я).
  • 6. Для поиска (или отбора) студентов 1 курса из общего списка студентов задайте условие отбора для поля Курс: в соответствующую строку введите 1.
  • 7. Закройте бланк запроса по образцу. При закрытии запроса введите его имя Студенты 1 курса.
  • 8. В окне Деканат: база данных откройте только что созданный запрос и просмотрите результирующую таблицу.
  • 9. Для поиска студентов, фамилии которых начинаются с определенной буквы (например, А) повторите пункты с 1 по 6 , затем задайте условие отбора для поля ФИО. В соответствующую строку бланка запроса введите: А*.
  • 10. Просмотрите созданный запрос. Для чего в окне бланка запроса на Панели инструментов щелкните на кнопку! - «восклицательный знак».
  • 11. Закройте запрос и введите его имя - Фамилии на А.
  • 12. Аналогично найдите сведения о студентах, родившихся в один месяц. Дайте запросу имя Родившиеся в одном месяце.
  • 13. Найдите студентов, учащихся в одной группе. Дайте запросу имя Студенты одной группы.
  • 14. Найдите студентов, номера зачетных книжек которых больше определенного номера.. Дайте запросу имя По № зачетной книжки.
  • 8.6.4 Создание итогового запроса

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

Задание: подготовить итоговый запрос, с помощью которого можно определить суммарный размер стипендии студентов разных курсов.

  • 1. В окне Деканат: база данных откройте вкладку Таблицы, выберите таблицу Сведения о студентах.
  • 2. Щелчком на значке Конструктор откройте таблицу в режиме проектирования: необходимо создать дополнительное поле Размер стипендии, в котором будут храниться сведения о размере стипендии каждого студента.
  • 3. Выделите поле № группы и нажмите на клавишу INSERT, перед полем № группы будет вставлено новое поле. Введите имя нового поля Размер стипендии и определите его тип - Денежный.
  • 4. Закройте окно конструктора. При закрытии подтвердите необходимость изменить структуру таблицы.
  • 5. Откройте таблицу Сведения о студентах и заполните содержанием поле Размер стипендии.
  • 6. Закройте таблицу Сведения о студентах.
  • 7. Откройте закладку Запросы и щелкните на кнопку Создать.
  • 8. В окне Новый запрос щелкните на кнопке Конструктор.
  • 9. В открывшемся окне Добавление таблицы выберите таблицы Сведения о студентах и Сведения о группах. Закройте окно Добавление таблицы.
  • 10. В нижнюю область бланка запроса по образцу введите следующие поля: из таблицы Сведения о группах - Курс, из таблицы Сведения о студентах - Размер стипендии.
  • 11. Для поля Курс введите сортировку по возрастанию.
  • 12. На Панели инструментов щелкните на кнопку - групповые операции (или меню Вид/групповые операции). В нижней части бланка появится строка Групповые операции. Все поля, отобранные для запроса, получат в этой строке значение группировка.
  • 13. Для поля, по которому производится группировка записей (в нашем случае - Курс), оставьте в строке Групповые операции значение Группировка. Для остальных полей щелкните в этой строке, появится кнопка раскрывающегося списка, из которого можно выбрать итоговую функцию для расчета значений в данном поле.
  • 14. Для поля Размер стипендии выберите итоговую функцию Sum для определения суммарного размера стипендии.
  • 15. Закройте бланк запроса и дайте ему имя Суммарная стипендия по курсам. Запустите запрос и убедитесь, что он правильно работает.
  • 16. Проверьте на вкладке Запросы наличие шести запросов: "Студенты 1 курса", "Фамилии на А", "Родившиеся в одном месяце", "Студенты одной группы", "Суммарная стипендия по курсам".

Создание автоформы

Задание: создайте три простые формы с помощью автоформ: "в столбец", ленточную и табличную.

  • 1. В основном окне Деканат: база данных откройте вкладку Формы и щелкните на кн. Создать.
  • 2. В окне Новая форма выбрать тип автоформы - "в столбец" и в правом нижнем углу окна из раскрывающегося списка выбрать таблицу Сведения о студентах. Нажать ОК. Автоформа формируется автоматически. Дать ей имя Форма сведения о студентах.
  • 3. Повторите пункты 1-3 для создания ленточной автоформы на базе таблицы Сведения о группах, дайте ей имя Форма сведения о группах.
  • 4. Повторите пункты 1-3 для создания табличной формы на базе запроса Студенты 1 курса. Дайте ей имя Форма студенты 1 курса.

Создание формы с помощью Мастера форм

Задание: Создайте сложную форму на базе двух таблиц.

  • 1. В основном окне Деканат: база данных откройте вкладку Формы и щелкните на кнопку Создать.
  • 2. В окне Новая форма выберите Мастер форм. Описание мастера появляется в левой части диалогового окна. ОК.

Примечание. При использовании Мастера форм источник данных для формы следует указывать в следующем диалоговом окне Создание форм.

  • 3. В окне Создание форм выберите имя таблицы Сведения о студентах. С помощью кнопки перенесите в правый пустой столбец Выбранные поля все поля из левого столбца Доступные поля, содержащего поля таблицы Сведения о студентах.
  • 4. Выберите имя таблицы Сведения о группах. Из столбца Доступные поля перенесите в правый столбец Выбранные поля поле Курс. Нажмите кнопку Далее.
  • 5. В появившемся следующем окне Создание форм выберите внешний вид формы - в один столбец. Нажмите Далее.
  • 6. В следующем окне Мастер предлагает несколько различных стилей оформления формы. Просмотрите их (слева появляются изображения этих стилей и виды подписей на них). Выберите стиль "Сумерки" и нажмите Далее.
  • 7. Задайте имя формы Ввод данных о студентах. Нажмите кнопку Готово.
  • 8. Просмотрите готовую форму. Введите данные для нового студента.
  • 9. Закройте окно формы Ввод данных о студентах.
  • 10. Откройте вкладку Таблицы. Выберите таблицу Сведения о студентах. Нажмите кнопку Открыть. Просмотрите, появились ли в ней сведения о новом студенте.
  • 11. Закройте таблицу Сведения о студентах.

Создание автоотчета

  • 2 В окне Новый отчет выбрать тип автоотчета - "в столбец" и в правом нижнем углу окна из раскрывающегося списка выбрать запрос Родившиеся в одном месяце. Нажать ОК.
  • 3. Автоотчет формируется автоматически. Дать ему имя Отчет о родившиеся в одном месяце.
  • 4. Повторите пункты 1-3 для создания ленточного автоотчета на базе запроса Фамилии на А, дайте ему имя Отчет о студентах, фамилии которых начинаются на А.

Создание отчета с помощью Мастера отчетов

Задание: Создайте итоговый отчет на базе двух таблиц.

  • 1. В основном окне Деканат: база данных откройте вкладку Отчеты и нажмите на кнопку Создать.
  • 2 В окне Новый отчет выберите Мастер отчетов. Описание мастера появляется в левой части диалогового окна. Нажмите кнопку ОК.

Примечание. При использовании Мастера отчетов источник данных для отчета следует указывать в следующем диалоговом окне Создание отчета.

  • 3. В окне Создание отчета выберите имя таблицы Сведения о студентах. С помощью кнопки перенесите в правый пустой столбец Выбранные поля все поля из левого столбца Доступные поля, содержащего поля таблицы Сведения о студентах. Выберите имя таблицы Сведения о группах. Из столбца Доступные поля перенесите в правый столбец Выбранные поля поле Курс. Нажмите кнопку Далее.
  • 4. В следующем окне Мастера отчетов выбираются уровни группировки. Выбрать группировку по полю Курс. Нажать Далее.
  • 5. В следующем окне задается порядок сортировки записей по полям (не более четырех), если это необходимо. Выбрать сортировку по возрастанию по полю ФИО. В этом же окне формируется итоговый отчет. Для этого нажать кнопку Итоги. В появившемся окне задать по полю Размер стипендии вычисление функции Sum, для этого поставить флажок под этой функцией. Нажать Далее.
  • 6. В появившемся окне Создание отчета выберите вид макета для отчета - ступенчатый, ориентация - книжная. Нажмите Далее.
  • 7. В следующем окне Мастер предлагает несколько различных стилей оформления отчетов. Просмотрите их (слева появляются изображения этих стилей и виды подписей на них). Выберите стиль "Строгий" и нажмите Далее.
  • 8. Задайте имя отчета Отчет о студентах по курсам. Нажмите кнопку Готово.
  • 9. Просмотрите готовый отчет и закройте окно отчета.

Индивидуальные задания

Создайте базу данных для заданной предметной области (варианты заданий выдаются преподавателем).

База данных должна содержать:

не менее 2-х таблиц, каждая из которых содержит не менее 10 записей;

межтабличные связи;

три простые запроса на выборку с различными условиями отбора и один итоговый запрос;

простые формы для ввода данных по исходным таблицам и одну сложную форму;

отчеты созданные на базе разработанных запросов, включая итоговый отчет.

Для создания перспективного, расширяемого и эффективного сайта любой сложности следует начинать с простого. Это процесс нелёгкий, требует определённых базовых знаний PHP и MySQL, но если его рассмотреть по пунктам - то можно составить своего рода «рабочий план», который пригодится при создании новых сайтов. Подготовим «ядро» и базу для проекта. Вначале это будет обычный сайт визитка, но потом, добавляя функционал, его можна превратить во что угодно. Итак, приступим.

1. Подготовка базы данных. Создаём первую таблицу в БД MySQL

Создаём новую базу данных, например «mysite». Лично я привык работать с кодировкой UTF-8, по-этому сразу оговорюсь: проследите, чтобы все текстовые файлы сайта, сама база, таблицы и поля таблиц были в одной кодировке.
В новой базе делаем таблицу. Назовём её «pages». В этой таблице будут храниться статические страницы будущего сайта и информация о них. Таблица должна содержать следующие поля:

  • page_id - идентификатор страницы (SMALLINT, primary key, auto_increment);
  • page_alias - псевдоним страницы для строки адреса ЧПУ (VARCHAR, 255);
  • page_title - название страницы в окне браузера (VARCHAR, 255);
  • page_meta_d - мета описание страницы для тега meta description (VARCHAR, 255);
  • page_meta_k - мета ключевые слова для тега meta keywords (VARCHAR, 255);
  • page_h1 - заголовок страницы (VARCHAR, 255);
  • page_s_desc - краткое описание материала, например если материалы сайта будут в виде блога (TEXT);
  • page_content - основной текст страницы, который будет выводиться в центральную колонку сайта (TEXT);
  • page_publish - содержит «Y» - если страница опубликована, или «N» - если она скрыта (CHAR, по умолчанию «Y»).

Сразу после создания таблицы вставляем в неё значения для главной страницы сайта. В поле «page_alias» для главной страницы предлагаю вставить значение «home». Метатеги - соответственно тематике всего сайта. Таким же образом можно посоздавать другие страницы, например «О компании» с алиасом «about» и своими метатегами, или «Контакты» с алиасом «contacts» и т.д.

2. Создаём файл конфигурации сайта

В корневой папке сайта, которая должна быть пуста на данном этапе, создаём папочку «cfg», в ней с помощью.htaccess закрываем доступ директивой «deny from all». Создаём файл core.php следующего содержания:

// MYSQL
class MyDB
{
var $dblogin = "root"; // ВАШ ЛОГИН К БАЗЕ ДАННЫХ
var $dbpass = ""; // ВАШ ПАРОЛЬ К БАЗЕ ДАННЫХ
var $db = "mysite"; // НАЗВАНИЕ БАЗЫ ДЛЯ САЙТА
var $dbhost="localhost";

Var $link;
var $query;
var $err;
var $result;
var $data;
var $fetch;

Function connect() {
$this->link = mysql_connect($this->dbhost, $this->dblogin, $this->dbpass);
mysql_select_db($this->db);
mysql_query("SET NAMES utf8");
}

Function close() {
mysql_close($this->link);
}

Function run($query) {
$this->query = $query;
$this->result = mysql_query($this->query, $this->link);
$this->err = mysql_error();
}
function row() {
$this->data = mysql_fetch_assoc($this->result);
}
function fetch() {
while ($this->data = mysql_fetch_assoc($this->result)) {
$this->fetch = $this->data;
return $this->fetch;
}
}
function stop() {
unset($this->data);
unset($this->result);
unset($this->fetch);
unset($this->err);
unset($this->query);
}
}

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

Если Вы работаете в среде Windows, я могу порекоммендовать использовать редактор . В этом редакторе есть нумерация строк, и он легко переводит текст из одной кодировки в другую. ВНИМАНИЕ! Если Вы работаете в кодировке UTF-8 - конвертируйте файлы в UTF-8 without BOM - это поможет избежать проблем в будущем.

3. Создаём index.php - главный контроллер сайта

Файл конфигурации создан. Теперь в корневой папке сайта создаём index.php - это и будет основной скрипт сайта, своего рода «главный контроллер». Содержание файла index.php:

define("INDEX", ""); // УСТАНОВКА КОНСТАНТЫ ГЛАВНОГО КОНТРОЛЛЕРА

Require_once($_SERVER."/cfg/core.php"); // ПОДКЛЮЧЕНИЕ ЯДРА

// ПОДКЛЮЧЕНИЕ К БД
$db = new MyDB();
$db->connect();

// ГЛАВНЫЙ КОНТРОЛЛЕР
switch ($_GET) {
case "page":
include($_SERVER."/com/page.php");
break;
default:
include($_SERVER."/com/home.php");
break;
}

Include ($_SERVER."/template.php");
$db->close();

Переменная $_GET будет указывать главному контроллеру какой компонент сайта загружать при запросе. Сейчас в нашем сайте предусмотрено только два компонента: «страница» и «главная страница» (в принципе можно обойтись и одним компонентом вывода обычной страницы, но часто вид главной страницы сайта отличается от обычных страниц пунктов меню). Логика работы главного контроллера такова: из URL строки извлекается название нужного компонента (значение переменной $option), в зависимости от его значения подключается файл самого компонента (содержится в папке /com). Файл компонента выполняет все необходимые работы, извлекает из базы данные и записывает их в переменные, для передачи в шаблон дизайна. В самом конце подключается файл дизайна сайта, в который и передаются все переменные и данные, извлечённые в компонентах. Это звучит намного сложнее, чем работает.

4. Создаём компонент вывода обычной страницы

В корне сайта создаём папочку «com» - в ней будут храниться файлы компонентов. Компонент сайта, в моём понимании - это файл, в котором происходит обработка данных для разных разделов сайта. Например компонент обычной страницы извлекает из базы данных название, описание и текст материала, и записывает их в переменные $title, $meta_d, $meta_k, $content и др. Эти данные потом передаются в шаблон дизайна (под каждый компонент можно создавать свой шаблон дизайна) и выводятся пользователю в виде HTML-страницы. Например, компонент каталога, который можно создать в будущем, выполнял бы почти то же самое, но с данными про товары - а там своя специфика, другие поля в таблице, итд. По-этому для каждого функционального раздела сайта стоит создавать отдельный компонент. В схеме MVC (Model-View-Controller) компонент выполняет роль модели.

Создаём в папке «com» файл «page.php». Содержимое файла следущее:

/* КОМПОНЕНТ СТРАНИЦЫ */
$alias = $_GET;
$query = "SELECT * FROM pages WHERE page_alias="".$alias."" AND page_publish="Y" LIMIT 1";
$db->run($query);
$db->row();
// ПЕРЕМЕННЫЕ КОМПОНЕНТА
$id = $db->data;
$alias = $db->data;
$title = $db->data;
$h1 = $db->data;
$meta_d = $db->data;
$meta_k = $db->data;
$s_desc = $db->data;
$component = $db->data;
// ЕСЛИ СТРАНИЦЫ НЕ СУЩЕСТВУЕТ
if (!$id) {
header("HTTP/1.1 404 Not Found");
$component = "ОШИБКА 404! Данной страницы не существует";
}
$db->stop();

5. Создаём компонент вывода главной страницы

Главная страница у нас в базе данных хранится под псевдонимом «home», и пока по своей структуре не отличается от обычных страниц сайта - это просто статья. Тем не менее создадим для неё отдельный компонент - на перспективу, так сказать.


Содержимое компонента «home.php» в папке «com» почти совпадает с содержимым компонента обычной страницы, за исключением строки запроса к базе и названия компонента. Строка запроса теперь выглядит так:

$query = "SELECT * FROM wx_pages WHERE page_alias="home" LIMIT 1";

6. Создаём шаблон дизайна всего сайта

В корне сайта создаём файл template.php. По сути это обычный макет web-дизайна в формате HTML+CSS, только с PHP переменными в нужных местах. Между тегами title вставочка , в центральной колонке сайта вставочка и так по всему шаблону расставляем нужные переменные, которые объявлены в компонентах.

В корневой папке также должны быть папки «css» и «images» для элементов дизайна. В файле /css/style.css - можно настроить стили по своему усмотрению.

7. Чистые ссылки и файл.htaccess

Для создания чистых ссылок я использую mod_rewrite с прямыми указаниями правил для каждого компонента отдельно, так как разбор адресной строки средствами самого контроллера считаю излишним функционалом. Содержимое.htaccess на данном этапе такое:


RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

# ЗАПРЕЩЁННЫЕ ФАЙЛЫ
RewriteRule .htaccess - [F]
RewriteRule template.php - [F]

# ПРАВИЛА mod_rewrite
RewriteRule page/(+)([\/]{0,1})\.htm$ index.php?option=page&alias=$1 [L]

В будущем мы будем дописывать правила для компонентов поиска, каталога, блога статей и т.д. Смысл один: преобразовать ссылки вида «mysite.com/index.php?option=pages&alias=about » в ссылку вида «mysite.com/pages/about.htm » - смотрится довольно красиво. Старайтесь в разработке избегать массива $_GET в целях безопасности и не надеяться на него. Целесообразно хранить в нём только параметры для главного контроллера (переменная $option) и для компонента (переменная $alias).

Также в каждой папке сайта «на всякий случай» создайте пустой файл index.html - это нужно для того, чтобы при обращении к каталогу через адресную строку ничего не отображалось.

Теги: php, mysql, движок сайта, контроллер, создание сайта, mvc

Здравствуйте, уважаемые читатели блога сайт! Сегодня подробно остановимся на таких действиях в админ панели хостинга () как создание базы данных, добавление нового сайта и дополнительных доменов (алиасов).

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

Хочу отметить, что все возможные действия, связанные с , я рассматривал и буду дальше это делать на примере своего провайдера Спринтхост , поскольку уже на протяжении довольно длительного времени пользуюсь его услугами и хорошо знаю все тонкости ( на Sprinthost.ru).

Создание базы данных в админ панели хостинга

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

Например, при (или другой CMS, например, Joomla) сразу же происходит автоматическое создание базы , после чего вы получаете от хостера логин и пароль для входа в панель управления вэбсайта, то есть практически в тот же момент можете приступать к работе со своим проектом.

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

Надо сказать, что подавляющее большинство хостеров использует самую , которая применяется для управления базами данных, построенными по принципу таблиц с помощью специального языка SQL. Такие БД обычно называют реляционными .

В сегодняшней публикации мы разберем, как создать базу данных SQL для вебсайта в админ панели, а в следующей статье я расскажу, как скачать WordPress (ссылку найдете чуть ниже), привязать к сайту созданную БД и установить этот движок на хостинг вручную. Итак, идем дальше и выбираем нужную ссылку в разделе «Базы данных» ПУ:

После этого осуществляется переход на страницу, где наряду с информацией об уже имеющихся базах MySQL находится кнопка для создания новой БД:


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

Кстати, при заполнении второй части названия database система может автоматически заполнить графу пользовательского имени, продублировав наименование БД (в нашем примере «wn01»). Вы можете изменить его по своему усмотрению сразу либо оставить вариант, предложенный системой (в дальнейшем можно будет подвергнуть редактированию состав пользователей):


Также нужно составить пароль посложнее. Весь пасворд или его часть (добавив свои символы) можно тут же сгенерировать, применив кнопку «Произвольный». Если уж зашла речь о пасвордах, то в целях облегчения их запоминания и усиления общей безопасности советую использовать программу KeePass ( об этом менеджере подробнейшая статья). После заполнения всех полей жмите результирующую кнопку создания database:


Практически имя пользователя и пароль вам могут понадобиться, если вы решите повысить уровень безопасности при работе с базами данных MySQL и применить для подключения к ним SSH-туннель с помощью специального софта (например, программы PuTTY ).

Также предоставленные на скриншоте данные пригодятся на следующем шаге, когда будете , поэтому обязательно запишите куда-нибудь в надежное место всю эту информацию. Теперь, если вновь перейти по ссылке в раздел «Базы данных», то в списке окажется только что созданная database:


При клике по ее названию вы переместитесь на страницу, где можно произвести проверку, восстановление, оптимизацию таблиц (у новой БД они отсутствуют), а также скачать или загрузить резервную копию базы.

Если щелкнуть по числу напротив имени любой из database, то, переместившись на отдельную вкладку редактирования, можно создать нового пользователя, добавив его к уже имеющемуся или удалить уже существующих (помните, я говорил об этом чуть выше при создании БД). Кроме того, здесь же есть опция смены пароля:

Если в админ панели доступны, так сказать, глобальные опции для работы с базой данных, то для более тонких операций можно воспользоваться приложением , вход в который обычно осуществляется прямо из панели управления аккаунта на хостинге. На Спринтхосте, к примеру, для этого достаточно щелкнуть по нужной ссылке опять же в разделе «Базы данных» (см. пред-предыдущий скриншот), после чего осуществится переход:


Перейдя по линку, попадаем в интерфейс программы, где с левой стороны имеется список всех установленных БД (на картинке выше). Выбрав одну из них, имеем возможность проделывать всевозможные действия с этой базой и входящими в ее состав таблицами. После создания БД и подключения ее к сайту Вордпресс состав таблиц будет таким:


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

Тем самым вы спасете результаты своего многодневного труда. Согласитесь, ради этого стоит изучить данный вопрос. В дальнейшем еще не раз вернемся к этой теме, поскольку это очень важный момент в деле управления сайтом. Поскольку очень многие сайты располагаются на хостинге, где управление совершается посредством cPanel, предлагаю соответствующее видео:

");">

Добавление нового сайта в панели управления

Теперь переходим к тому, как добавить сайт дополнительно к уже имеющимся на серверах хостера. Многие хостинги позволяют это сделать в условиях текущего тарифа. Например, на Спринтхосте я могу добавить один проект имея самый младший тарифный план. Для этого нужно перейти по ссылке «Добавить сайт»:

После чего оказываемся на странице, где можно произвести нужную операцию:


Как вы, наверное, понимаете, здесь нужно ввести , которое будет служить названием нового вэбпроекта. Если отметить галочкой опцию «Зарегистрировать этот домен» , это будет сделано автоматически, поскольку в данном случае провайдер является партнером нескольких регистраторов доменных имен, в этом случае никаких дополнительных действий больше совершать не нужно.

Если же domain уже куплен (я, например, воспользовался услугами реселлера Reghouse), то галочку ставить не нужно. Нажимаете результирующую кнопку и сайт через несколько секунд будет добавлен. Для проверки можно вернуться на главную страницу административной панели, где только что добавленный сайт будет красоваться в числе прочих.

Как осуществить связь между доменом и хостингом

Но это далеко не все. Если вы при добавлении сайта не отметили чекбокс, который активирует автоматическую регистрацию доменного имени, то необходимо прописать адреса ДНС серверов () для данного домена второго уровня, чтобы связать его с сервером хостинга. Скажем, после того, как я купил domain у регистратора, данные о нем в моем были представлены в следующей форме:


Как видите, домен пока не делегирован, то есть не связан с Ай Пи адресом сервера, на котором будет располагаться вебресурс. Для того, чтобы ликвидировать этот недочет, заходите в админ-панель своего хостинг аккаунта в раздел «Управление сайтами», ссылку на который находите в левом меню:


Щелкаете по нему и попадаете на вебстраницу со списком ссылок на различные вкладки, где можно выполнять те или иные действия по администрированию проекта. Выбираете там «Настройка DNS» :


После чего вас перебросит на следующую страничку, где расположена нужная информация:


Копируем адреса ДНС, переходим в аккаунт регистратора, куда вставляем скопированные данные. Формы для ввода DNS серверов могут различаться у разных регистраторов, но сути дела это не меняет. У Рэгхауз надо нажать на значок карандаша, вследствие чего откроется страница редактирования информации о ДИ, одним из пунктов которой как раз и будет поле ввода необходимых данных:


Вводим скопированные у провайдера адреса и в самом низу нажимаем кнопку «Далее»:


Завершающим аккордом еще раз проверяете корректность введенных данных. Если допущена ошибка, то просто возвращаетесь на шаг назад и исправляете недочет. После того, как вы убедились в правильности информации, жмете «Вперед»:


Через небольшой промежуток времени (у меня это заняло где-то полчаса) происходит изменение статуса домена:


Теперь этот domain уже делегирован, то есть, грубо говоря, связан с IP сервера, на котором будет расположен вэбсайт. Однако, процесс обновления баз данных ДНС займет некоторое время, от 24 до 72 часов, но на практике обычно все происходит гораздо быстрее. Спустя некоторое время попробуйте ввести в адресную строку браузера URL вебресурса, частью которого будет служить зарегистрированный домен 2 уровня:

Http://vkusnyi-sait.ru

Если к этому времени обновление завершилось, на странице браузера отобразится заглушка хостинг провайдера:


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

Кстати, вы сможете увидеть папки и файлы, которые будут расположены в корневом каталоге нового сайта (впрочем, как и других ваших ресурсов). Для этого попробуйте подсоединиться по FTP к серверу, где находится ресурс, посредством специальной программы ( , которая окажет вам посильную помощь и в дальнейшем):


Итак, подытоживая, еще раз напоминаю необходимые действия при создании очередного сайта:

  • Покупка домена (на любом сервисе ). Кстати, зарегистрировать ДИ в большинстве случаев можно и у самого хостинг провайдера;
  • Добавление сайта в панели управления хостинга;
  • Операция по делегированию домена, то есть привязки его к серверу хостера. Если вы при создании первого или последующих проектов на хостинге отмечаете опцию «Зарегистрировать домен» (называться она может по-разному в зависимости от провайдера, но суть одна), то никаких действий совершать не нужно, все будет сделано на автомате;
  • Создание базы данных. Опять же, при установке движка с использованием функционала хостинга этот шаг можно пропустить, так как БД будет создана автоматически;
  • Установка CMS (), например, WordPress, которая включает подключение базы данных к сайту (для автоматической инсталляции см. пункт выше).

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

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

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

Как добавить дополнительный домен и создать псевдоним (alias), или синоним сайта

В стандартном варианте у каждого уважающего себя хостера есть возможность беспрепятственно добавить несколько доменов и сайтов (конечно, их количество зависит от тарифного плана). На Спринтхосте начальный тариф предусматривает создание 2 дополнительных сайтов (всего 3) и неограниченного числа доменов.

Вы спросите, а зачем такие условия нужны, если каждому сайту должен соответствовать единственный домен? Ведь ежели можно добавить в панели управления 3 сайта, то и доменов должно быть столько же. Казалось бы, в этом случае возможность добавления сколь-угодного числа domain просто не имеет смысла.

Однако, не спешите, все не так просто и однозначно. Единственное, что бесспорно, так это то, что каждому доменному имени (второго, третьего уровня и т.д.) может соответствовать только один вебсайт. Не случайно ведь, регистрируя domain, мы предварительно проверяем, не занят ли он.

А вот у сайта может быть сколько угодно ДИ (псевдонимов). Скажем, у меня есть вэбресурс, которому соответствует домен 2 уровня:

Сайт

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

Http://goldbusinessnet.ru

Открывалась бы вэбстраница моего основного проекта (сайт). Прежде всего, для этого необходимо зарегистрировать доменное имя второго уровня в зоне.ru:

Goldbusinessnet.ru

Предварительно ДИ необходимо проверить на занятость, в общем, нужно действовать по стандартной схеме регистрации. После покупки этого domain name переходите в административную панель хостера в раздел «Управление сайтами».

Там выбираете нужный ресурс (в нашем случае «сайт») и во вкладке «Домены сайта» нажимаете кнопку «Добавить новый домен» :


После этого на следующей вебстранице вводите ДИ и жмете кнопку добавления:


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

Спустя некоторое время алиас (псевдоним, или синоним) основного проекта появится в том же разделе «Домены сайта». Там же получите информацию о ДНС, возможность добавить domain names для основного вебресурса, а также в любое время удалить любой из них. Таким образом, есть возможность управлять количеством псевдонимов для каждого из ваших веб-проектов.

Для приведенного мною примера наиболее оптимальным будет использовать именно в дополнительном доменном имени, что я и продемонстрировал. Однако, если название проекта в ДИ включает какие-то ключевые слова, то можно поэкспериментировать с этой стороны и создать несколько псевдонимов в одной и той же доменной зоне (хотя можно и в разных), но с различными вариантами доменов второго уровня. Пример:

Основной сайт: kak-sozdat-sajt.ru Синонимы сайта (алиасы): sozdanie-sajtov.ru kak-sozdavat-sajty.com

Ну и надо, наверное, сказать, для чего вообще нужно создавать alias, какую практическую пользу могут принести псевдонимы? Самая очевидная причина — повысить узнаваемость бренда и получить дополнительную заинтересованную аудиторию на свой вебсайт. Ведь даже если посетитель вдруг неправильно наберет его адрес, то все-равно окажется на вашем проекте. Такой возможностью очень часто пользуются крупные мировые корпорации.

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