Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС. Лабораторная работа №5.doc
Скачиваний:
13
Добавлен:
20.11.2018
Размер:
247 Кб
Скачать
☆

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

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

CREATE TABLE имя_таблицы (определение столбца1,

определение столбца2,

…

)

Для каждого из столбцов, разделенных запятой, задается имя столбца и тип столбца. Наиболее часто используемыми типами являются TEXT, VARCHAR (переменное число символов), DATETIME и INT (целое). Настоятельно рекомендуется создавать в каждой таблице столбец, который действует как первичный ключ (столбец, все значения которого являются уникальными, и поэтому могут использоваться для выбора каждой строки). С учетом этого простая команда CREATE TABLE может выглядеть так:

CREATE TABLE my_table (id INT PRIMARY KEY,

information TEXT

)

Например, при необходимости создания в базе данных таблицы регистрации пользователей последовательность инструкций языка PHP может быть следующей:

$query = "CREATE TABLE database1.register(

SN VARCHAR(255) DEFAULT NULL,

FN VARCHAR(255) DEFAULT NULL,

PN VARCHAR(255) DEFAULT NULL,

Email VARCHAR(255) DEFAULT NULL,

Phone DECIMAL(15, 0) DEFAULT NULL,

Login VARCHAR(255) NOT NULL,

Password VARCHAR(255) DEFAULT NULL

)";

$result = mysql_query($query, $link1);

Включение данных в базу данных

Очевидно, что таблица должна содержать данные, которые в нее можно записать с помощью SQL-команды INSERT, синтаксис которой имеет два варианта:

INSERT INTO имя_таблицы (имя_столбца1, имя_столбца2, …)

VALUES (значение1, значение2, …)

INSERT INTO имя_таблицы

VALUES (значение1, значение2, значение3, …)

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

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

$query = "INSERT INTO register

VALUES('$lN', '$fN', '$pN', '$eA', '$ma', '$lI', '$pW')";

$result = mysql_query($query, $link1);

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

Получение данных из базы данных

Как уже говорилось ранее, получение данных из одной или нескольких таблиц базы данных производится с помощью команды (запроса) SELECT языка SQL. Основной синтаксис запроса SELECT для получения данных следующий:

SELECT список столбцов FROM список таблиц

Наиболее простой запрос для считывания данных одной таблицы:

SELECT * FROM имя_таблицы

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

SELECT Login, Password FROM register

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

Ограничение количества получаемых записей достигается добавлением в запрос предложения WHERE:

SELECT * FROM register WHERE Login='Eugen'

Этот запрос получает все поля записи, в которой значение столбца с именем Login равно «Eugen».

Как уже говорилось ранее, доступ к данным, полученным с помощью запроса SELECT, в программе на PHP осуществляется с помощью идентификатора результата, возвращаемого функцией mysql_query(), например.

$query = "SELECT Login, Password FROM register

WHERE Login='Eugen'";

$result = mysql_query($query, $link1);

print "Ваш пароль = ".mysql_result($result, 0, 1).\n";