Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в Веб программирование.doc
Скачиваний:
81
Добавлен:
07.11.2018
Размер:
4.42 Mб
Скачать

Операция соединения.

Внутреннее соединение возвращает только те строки, для которых условие соединения принимает значение true. Рассмотрим пример запроса:

SELECT StudName, ExamMark FROM Student, Exams WHERE Kurs=2 AND ExamMark=5 – получить список студентов 2-го курса, сдававших экзамен на 5.

Внешнее соединение возвращает все строки из одной таблицы и те строки из другой таблицы, для которых условие соединения принимает значение true. Существуют два вида внешнего соединения: в левом соединении (LEFT JOIN) запрос возвращает все строки из таблицы, стоящей слева от LEFT JOIN и только те из правой таблицы, которые удовлетворяют условию соединения. Для правого соединения – все наоборот. Например:

SELECT name, department FROM employee e LEFT JOIN department d ON e.dept_no = d.dept_no – получить список сотрудников и название их отделов, включая сотрудников, еще не назначенных ни в какой отдел.

Команды sql для создания баз данных и таблиц

CREATE DATABASE database_name - создать базу данных,

CREATE TABLE table_name(Имя_поля1 тип1, Имя_поля2 тип2…)-создать таблицу,

DROP DATABASE database_name - удалить базу данных,

DROP TABLE table_name -удалить таблицу,

ALTER DATABASE database_name - модифицировать базу данных,

ALTER TABLE table_name -модифицировать таблицу,

INSERT INTO table_name (Имя_поля1 тип1, Имя_поля2 тип2…) values(‘val1’,’val2’,…) - вставка записи со значениями полей val1, val2, … .

DELETE FROM table_name WHERE выражение -удаление записи, для которой выполнено выражение

UPDATE table_name SET(Имя_поля1 ‘val1’, ‘Имя_поля2 val2’…) where выражение –обновить таблицу.

Для выполнения SQL запроса используется функция mysql_query($sql);. Сначала создается строка, содержащая SQL – запрос. Затем эта строка передается для выполнения. Рассмотрим пример выполнения команд SQL по созданию базы данных из PHP:

//соединяемся с сервером

int mysql_connect();

// создаем базу данных:

$sql=”create database ‘mydb’”;

mysql_query($sql);//выполнение директивы SQL

//Cоздаем таблицу:

$sql=”CREATE TABLE userstable

(name VARCHAR(25), email VARCHAR(25), choise VARCHAR(15))”

mysql_query($sql); );//выполнение директивы SQL

Аналогично порядок работы с MySQL для выборки данных из базы в PHP устанавливается следующий:

Создать соединение с сервером MySQL, расположенным на $hostname:

int mysql_connect([string $hostname],[string $username],[string password]);

или mysql_pconnect().

Здесь hostname - имя хоста (по умолчанию localhost), username - имя пользователя, password - пароль пользователя. Функция возвращает параметр ID соединения (link_identifier), который равен 0, если соединение не прошло успешно.

Выбрать базу данных для работы:

int mysql_select_db(string $database_name[, int link_identifier]);

Здесь: database_name - имя базы данных, link_identifier – необязательный параметр, содержащий ID соединения из mysql_connect. Если этот параметр отсутствует, выбирается последнее открытое соединение. Функция возвращает значение true или false.

Выполнить запрос к базе данных.

int mysql_query(string $query[, int $link_identifier]);

Здесь $query - строка, содержащая SQL запрос, link_identifier –ID соединения. Функция возвращает ID результата или 0, если произошла ошибка.

Закрыть соединение с MySQL.

int mysql_close(int link_identifier); Параметры: link_identifier - ID соединения. Функция возвращает значение true или false.

Пример: Создание базы данных и таблицы.

<html>

<head>

<title>Запрос информации</title>

<body>

<center> Введите Ваши данные <p>

<table width = 400><tr><td align = right>

<form action="pr1BD.php" method="post">

Ваше имя:<BR>

<input type="text" name="name" size="20" maxlength="30">

<P>

Ваш email:<BR>

<input type="text" name="email" size="20" maxlength="30">

<p>

<input type="submit" value="Отправить запрос!">

</form>

</td></tr></table></center>

</body>

</html>

<?php // pr1bd.php - скрипт создает БД и таблицу

$dbName ='mydb';

/* создать соединение */

$link = mysql_connect( "localhost" , "root" ) or exit("Could not connect");;

/* уничтожить старую БД */

$sql= sprintf("DROP DATABASE %s ",$dbName);

if (mysql_query($sql, $link)) {

echo "Database drop successfully\n";

} else { echo 'Error drop database: ' . mysql_error() . "\n"; }

/* создать новую БД */

$sql="create database $dbName";

//выполнение директивы SQL

if (mysql_query($sql, $link)) {

echo "Database created successfully\n";

} else { echo 'Error creating database: ' . mysql_error() . "\n"; }

//Cоздаем таблицу: mydb.clients

$tablename = 'clients' ;

$sql=sprintf("CREATE TABLE %s.%s (

`name` VARCHAR( 25 ) NOT NULL , `email` VARCHAR( 25 ) NOT NULL ) ENGINE = MYISAM ",$dbName,$tablename);

if (mysql_query($sql, $link)) {

echo "Table created successfully\n";

} else { echo 'Error creating Table: ' . mysql_error() . "\n"; }

$name=$_POST['name'];

$email=$_POST['email'];

// вставка записи со значениями полей val1, val2,

$sql=sprintf("INSERT INTO %s.%s values('$name', '$email')", $dbName, $tablename);

if (mysql_query($sql, $link)) {

echo "Table insert successfully\n";

} else { echo 'Error insert Table: ' . mysql_error() . "\n"; }

mysql_close($link); /* Закрыть соединение */

$link = mysql_connect( "localhost" , "root" )or die("Не могу создать соединение ");;

//Выбрать БД

$result =mysql_select_db("$dbName",$link) or die("Не могу выбрать базу данных ");

//создать SQL - запрос

$sql=sprintf("Select * from %s", $tablename);

$result = mysql_query($sql,$link);

if (!$result) { die('Invalid query: ' . mysql_error()); }

$myrow=mysql_fetch_array($result); //установка первой записи

echo"<br>", $myrow['name'];//вывод поля “name” первой записи

echo $myrow['email'];

mysql_close($link);/* Закрыть соединение */

?>

Phpmyadmin

Программное средство phpmyadmin представляет удобные средства и инструменты для создания баз данных, для проектирования и создания таблиц. Вызвать утилиту возможно следующим образом: http://www.localhost/phpmyadmin

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