Справочник от Автор24
Информатика

Конспект лекции
«Базы данных и PHP.»

Справочник / Лекторий Справочник / Лекционные и методические материалы по информатике / Базы данных и PHP.

Выбери формат для чтения

ppt

Конспект лекции по дисциплине «Базы данных и PHP.», ppt

Файл загружается

Файл загружается

Благодарим за ожидание, осталось немного.

Конспект лекции по дисциплине «Базы данных и PHP.». ppt

txt

Конспект лекции по дисциплине «Базы данных и PHP.», текстовый формат

ЛЕКЦИЯ № 5 WEB-технологии и компью терное моделирование Краткий учебны й курс 1 Структура учебного курса  Лекция 1. Введение в интернет технологии и компьютерное моделирование.  Лекция 2. Создание WEB страниц с использованием HTML.  Лекция 3. Работа с графикой в Adobe Photoshop и Flash CS.  Лекция 4. Создание динамических WEB страниц с использованием JavaScript и PHP.  Лекция 5. Базы данны х и PHP.  Лекция 6. Пример реализации «Эконометрической модели экономики России» под WEB.  Лекция 7. Основы компьютерного моделирования с использованием Powersim и AnyLogic. 2 Введение в БАЗЫ ДАННЫХ База данны х - это набор информации, организованной тем, или иным способом. Классическая реляционная модель данных требует, чтобы данные хранились в так называемых плоских таблицах. Фактически база данных – это один или несколько файлов, содержащих определенную информацию, представленную в табличном виде. Классический пример – база данных MS Access (файл *.mdb) С Базами данных можно взаимодействовать через различные интерфейсы, в том числе через WEB. Для этого существуют различные средства (например, с помощью PHP, ASP, JSP, С# и др.) и технологии (ADO, JDBC, ODBC и др.). Реляционная модель основана на теории множеств и математической логике. Для доступа к реляционным данным используется язык SQL (Structured Query Language - язы к структурированны х запросов). 3 Введение в БАЗЫ ДАННЫХ Операции над множ ест вами Основны ми операциями над множествами являю тся объединение, пересечение и разность. Определение 1. Объединением двух множеств назы вается новое множество Определение 2. Пересечением двух множеств назы вается новое множество Определение 3. Разностью двух множеств назы вается новое множество Если класс объектов, на которы х определяются различны е множества обозначить  , то дополнением множества A назы вают разность 4 Введение в БАЗЫ ДАННЫХ Таблица «Заказы » (orders) Таблица «Клиенты » (clients) ID2 ID1 Goods ID1 Family Name OLD 1 1 Bred 1 Jonson Jon 18 2 1 cheese 2 Hamilton Bob 30 3 1 biff 4 2 Chicken 5 2 tomato Между таблицами в реляционной СУБД могут бы ть заданы различны е отношения, например «один к одному», «один ко многим», «многие ко многим» и др. 5 Введение в БАЗЫ ДАННЫХ Язы к SQL Основу языка SQL составляют операторы, условно разбитые не несколько групп по выполняемым функциям: Операторы DDL (Data Definition Language) - операторы определения объектов базы данных CREATE SCHEMA - создать схему базы данных DROP SHEMA - удалить схему базы данных CREATE TABLE - создать таблицу ALTER TABLE - изменить таблицу DROP TABLE - удалить таблицу CREATE DOMAIN - создать домен ALTER DOMAIN - изменить домен DROP DOMAIN - удалить домен CREATE COLLATION - создать последовательность DROP COLLATION - удалить последовательность CREATE VIEW - создать представление DROP VIEW - удалить представление 6 Введение в БАЗЫ ДАННЫХ Язы к SQL Операторы DML (Data Manipulation Language) - операторы манипулирования данными SELECT - отобрать строки из таблиц INSERT - добавить строки в таблицу UPDATE - изменить строки в таблице DELETE - удалить строки в таблице COMMIT - зафиксировать внесенные изменения ROLLBACK - откатить внесенные изменения Операторы защиты и управления данны ми CREATE ASSERTION - создать ограничение DROP ASSERTION - удалить ограничение GRANT - предоставить привилегии пользователю или приложению на манипулирование объектами REVOKE - отменить привилегии пользователя или приложения 7 Введение в БАЗЫ ДАННЫХ Язы к SQL Примеры использования операторов манипулирования данны ми (DML) Пример 1. Выбрать все данные из таблицы «Клиенты» SELECT * FROM clients; Пример 2. Выбрать все данные из таблицы «Клиенты», где возраст клиентов > 20 SELECT * FROM clients WHERE clients.old >20 ; Пример 3. Выбрать все данные из таблицы «Заказы» для клиента Jon Jonson. SELECT * FROM orders WHERE orders.ID1 = (SELECT ID1 FROM clients WHERE clients.name = ‘Jon’ AND clients.family=‘Jonson’); (вложение запросов) 8 Введение в БАЗЫ ДАННЫХ Язы к SQL (DML) Пример 4. Вставка нового клиента в таблицу clients INSERT INTO clients (ID1, Name, Family) VALUES (3, “Иван”, "Иванов"); Пример 5. Обновление данных в таблице clients. Изменение имени и фамилии третьего клиента. UPDATE clients SET Name = ‘Петр’, Family = ‘Петров’ WHERE ID1 = 3; Пример 6. Удаление третьего клиента из таблицы clients. DELETE FROM clients WHERE ID1=3 Обратите внимание. Если у третьего клиента уже есть заказы, т.е. записи в таблице orders с ID1=3, то их тоже нужно удалить из таблицы orders (каскадное удаление данны х) 9 Введение в БАЗЫ ДАННЫХ Язы к SQL (DML) Пример 7. Формирование перечня клиентов сделавших заказы. SELECT * FROM clients WHERE clients.ID1 = (SELECT DISTINCT ID1 FROM orders); Обратите внимание. DISTINCT применяется для выборки уникальных (не повторяющихся) значений ID1 из таблицы orders. В противном случае записи по клиентам будут дублироваться Пример 8. Селекция всех клиентов с именем, начинающимся на J SELECT * FROM clients WHERE clients.name LIKE ‘J%’ Пример 9. Селекция всех клиентов с ID1 = 1 и 3. Использование IN для перечисления множества. SELECT * FROM clients WHERE clients.ID1 IN (1, 3); Пример 10. Селекция всех клиентов с ID1 между 3 и 10 SELECT * FROM clients WHERE clients.ID1 BEETWEEN (3, 10); 10 Введение в БАЗЫ ДАННЫХ Язы к SQL (DML) Пример 11. Допустим у Вас есть две таблицы - новые и старые заказы: old_orders new_orders ID2 ID1 Goods ID2 ID1 Goods 1 1 Bred 1 1 coffee 2 1 Cheese 2 2 Chicken 3 2 tomato Тогда, что бы получить список всех заказов (и новы х и стары х) нужно вы полнить запрос SELECT * FROM old_orders UNION Объ единение множества запросов в один SELECT * FROM new_orders; 11 Введение в БАЗЫ ДАННЫХ Язы к SQL (DML) Пример 12. Внутренние соединения. Внутреннее соединение возвращает только те строки, для которых условие соединения принимает значение true. Например, SELECT * FROM old_orders, new_orders WHERE new_orders.ID1 = old_orders.ID1; Результат запроса из двух таблиц old_orders.ID2 old_orders.ID1 old_orders.Goods new_orders.ID2 new_orders.ID1 new_orders.Goods 1 1 Bred 1 1 coffee 2 1 Cheese 1 1 coffee Обратите внимание. В результат попали данные из двух таблиц, для которых ID1=1. Потому что, данных с ID1 = 2 нет в old_orders 12 Введение в БАЗЫ ДАННЫХ Язы к SQL (DML) Пример 13. Внешние соединения. В отличие от внутренних соединений, внешние соединения возвращают все строки из одной таблице и и только те строки из другой таблицы, для которых условие соединения принимает значение true. Строки второй таблицы, не удовлетворяющие условию соединения (т.е. имеющие значение false), получают значение null в результирующем наборе. Существует два вида внешнего соединения: LEFT JOIN и RIGHT JOIN. В левом соединении (LEFT JOIN) запрос возвращает все строки из левой таблицы (т.е. таблицы, стоящей слева от зарезервированного словосочетания “LEFT JOIN”) и только те из правой таблицы, которые удовлетворяют условию соединения. Если же в правой таблице не найдется строк, удовлетворяющих заданному условию, то в результате они замещаются значениями null. 13 Введение в БАЗЫ ДАННЫХ Язы к SQL (DML) Пример 13. Внешние соединения. Пример. SELECT * FROM new_orders LEFT JOIN old_orders ON new_orders.ID1 = old_orders.ID1; Результат new_orders.ID2 new_orders.ID1 new_orders.Goods old_orders.ID2 old_orders.ID1 old_orders.Goods 1 1 coffee 2 1 Cheese 1 1 coffee 1 1 Bred 2 2 Chicken 3 2 tomato Обратите внимание. В результат попали все данные из таблицы new_orders и данные из таблицы old_orders для которых ID1=1, т.е. Cheese и Bred. 14 Введение в БАЗЫ ДАННЫХ Язы к SQL (DML) Пример 14. Сортировка записей в порядке возрастания, например по ID1 SELECT * FROM new_orders ORDER BY ID1 Пример 16. Сортировка записей в порядке убывания, например по ID1 SELECT * FROM new_orders ORDER BY ID1 DESC Пример 17. Группировка записей, например по ID1 с сортировкой SELECT ID1, Goods FROM new_orders GROUP BY ID1, Goods ORDER BY ID1 Пример 18. Подсчет количества записей в таблице new_orders SELECT count(*) FROM new_orders Пример 19. Вычисление максимального значения ID1 в таблице new_orders SELECT MAX(ID1) FROM new_orders 15 Введение в БАЗЫ ДАННЫХ Язы к SQL (DDL) Пример1. Эта команда будет создавать таблицу Клиенты . CREATE TABLE Clients ( ID1 integer, Name varchar(50), Family varchar(50)); Пример2. Эта команда уничтожит таблицу Клиенты . DROP TABLE Clients Пример.3 Создание таблицы Клиенты c первичны м ключом ID1. CREATE TABLE Clients ( ID1 INTEGER NOT NULL PRIMARY KEY, Name varchar(50), Family varchar(50)); 16 Введение в БАЗЫ ДАННЫХ Язы к SQL (DDL для СУБД MySQL) Пример.4 Создание таблицы Заказы c автоматически инкрементируемы м первичны м клю чом ID1 для СУБД MySQL. CREATE TABLE orders ( ID2 INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, ID1 INTEGER NOT NULL, Goods varchar(50), FOREIGN KEY (ID1) REFERENCES Clients(ID1)); Обратите внимание. Использование ключевого слова AUTO_INCREMENT PRIMARY KEY, поддерживаемого именно MySQL, позволяет автоматически увеличивать значение ID2 при вставке новой записи. В свою очередь использование FOREIGN KEY позволяет ограничить вставку записей в таблицу orders по клиентам, которых еще нет в таблице Clients Orders Clients ID1 Family Name OLD 1 Jonson Jon 18 2 Hamilton Bob 30 ID2 ID1 Goods 1 1 Bred 2 1 cheese 3 1 biff 4 2 Chicken www.mysql.ru 17 Введение в БАЗЫ ДАННЫХ Язы к SQL (DDL для СУБД MS SQL Server) Пример.4 Создание таблицы Заказы для СУБД MS SQL Server. CREATE TABLE orders ( ID2 INTEGER IDENTITY (1, 1) NOT NULL PRIMARY KEY, ID1 INTEGER NOT NULL FOREIGN KEY (ID1) REFERENCES Clients(ID1), Goods varchar(50)); Обратите внимание на важнейшие отличия с MySQL: 1) Использование IDENTITY (1, 1) вместо AUTO_INCREMENT; Запись FOREIGN KEY сразу вместе с определением атрибута ID1. Orders Clients ID1 Family Name OLD 1 Jonson Jon 18 2 Hamilton Bob 30 ID2 ID1 Goods 1 1 Bred 2 1 cheese 3 1 biff 4 2 Chicken Обращайте внимание на различия синтаксиса DDL для различны х СУБД! 18 Введение в БАЗЫ ДАННЫХ Язы к SQL (DDL для СУБД MS SQL Server) Пример.5 Создание таблицы Заказы для СУБД MS SQL Server. CREATE TABLE orders ( ID2 INTEGER IDENTITY (1, 1) NOT NULL PRIMARY KEY, ID1 INTEGER NOT NULL FOREIGN KEY (ID1) REFERENCES Clients(ID1), Goods varchar(50)); Обратите внимание на важнейшие отличия с MySQL: 1) Использование IDENTITY (1, 1) вместо AUTO_INCREMENT; Запись FOREIGN KEY сразу вместе с определением атрибута ID1. Orders Clients ID1 Family Name OLD 1 Jonson Jon 18 2 Hamilton Bob 30 ID2 ID1 Goods 1 1 Bred 2 1 cheese 3 1 biff 4 2 Chicken Обращайте внимание на различия синтаксиса DDL для различны х СУБД! 19 Введение в БАЗЫ ДАННЫХ Язы к SQL (некот оры е особенност и MS SQL) Пример.5 В MS SQL Server, в частности, возможна массовая вставка файлов из *.txt файлов с помощью специальной команды T-SQL . BULK INSERT Clients В таблицу клиенты FROM ‘clients.txt' вставляем данны е из WITH ( clients.txt CODEPAGE='1251', FIELDTERMINATOR = ';', ROWTERMINATOR = '\n'); Язы к Transact-SQL является клю чом к использованию SQL Server. Все приложения, взаимодействующие с экземпляром SQL Server, независимо от их пользовательского интерфейса отправляют серверу инструкции Transact-SQL. Подробную документацию по MS SQL Server можно посмотреть здесь : http://technet.microsoft.com/ru-ru/library/default.aspx http://msdn.microsoft.com/ru-ru/library/ 20 МНОГОМЕРНЫЕ БАЗЫ ДАННЫХ Схема «звезды », схема звёздного соединения, звездоподобная схема, звёздная схема (от англ. star schema) — специальная организация реляционных таблиц, удобная для хранения многомерных показателей. Лежит в основе реляционного OLAP. Таблицы измерений Таблицы измерений Таблица фактов 21 БАЗЫ ДАННЫХ и PHP Пример 1. Создание соединения и вы бор базы данны х для MySQL <?PHP /* Некоторые переменные */ $hostname = "localhost"; $username = "myusername"; $password = "mypassword"; $dbName = "products"; /* создать соединение */ MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db("$dbName"); /* Осуществляем определенные операции с БД */ /* Закрыть соединение */ MYSQL_CLOSE(); ?> 22 БАЗЫ ДАННЫХ и PHP Пример 2. Создание соединения и вы бор базы данны х для MSSQL <?PHP /* Некоторые переменные */ $hostname = "localhost"; $username = "myusername"; $password = "mypassword"; $dbName = "products"; /* создать соединение */ $link = MSSQL_CONNECT($hostname,$username,$password) or die ("Не могу создать соединение "); Mssql_select_db ("$dbName“, $link); /* Осуществляем определенные операции с БД */ /* Закрыть соединение */ MSSQL_CLOSE(); ?> Обратите внимание на различия MYSQL и MSSQL Server 23 БАЗЫ ДАННЫХ и PHP Обратите внимание. Что бы обеспечить работу на PHP c различны ми СУБД (например, MS SQL Server, Oracle и др.), Вам нужно предварительно сконфигурировать файл C:\Windows\PHP.INI PHP.INI ……………………………………………………………………………… ; Directory in which the loadable extensions (modules) reside. extension_dir = " C:\PHP\ext“ ……………………………………………………………………………. ;extension=php_dbase.dll extension=php_mssql.dll extension=php_mysql.dll ……………………………………………………………………………. Обратите внимание. Cимвол ‘;’ – это комментарий. Убрав его Вы обеспечиваете работу соотв. строки в файле php.ini 24 БАЗЫ ДАННЫХ и PHP Пример 3. Создание новой таблицы в MS SQL с помощью PHP <?PHP $link = mssql_connect (“ 127.0.0.1” ," sa" ," " ) or die (" Could not connect" ); Mssql_select_db(" GRAF" , $link); $strSQL = " CREATE TABLE scenar( // Таблица со значением результатов прогноза data1 datetime, nomer_sc INTEGER, E decimal (20,2), O decimal (20,2), GT decimal (20,2), TR decimal (20,2), P decimal (20,2), Y decimal (20,2), M decimal (20,2), N decimal (20,2), X decimal (20,2), CO decimal (20,2) )" ; $roma10 = mssql_query($strSQL); if($roma10 ==1) echo(" Таблица scenar создана успешно<BR>" ); ?> 25 БАЗЫ ДАННЫХ и PHP Пример 4. Заполнение таблицы в MS SQL с помощью PHP данны ми из файла <?PHP $link = mssql_connect (“ 127.0.0.1” ," sa" ," " ) or die (" Could not connect" ); Mssql_select_db(" GRAF" , $link); $fp = file(" baza/data2.txt" ); // В файле data2.txt находятся исходны е данны е $strSQL = " delete from scenar" ; $roma = mssql_query($strSQL); // Удаляем преды дущие данны е for($i = 0; $i < count($fp); $i++){ $pat =" ;" ; $arr = split($pat, $fp[$i]); // Разбиваем текущую строку файла на массив значений по “ ;” $strSQL =" SET DATEFORMAT dmy" ; //День-месяц-год $roma = mssql_query($strSQL); $strSQL = " insert into scenar(data1, nomer_sc, E, O, GT, TR, P, Y, M, N, X, CO) values('$arr[0]',$arr[1] , $arr[2], $arr[3], $arr[4],$arr[5] , $arr[6], $arr[7], $arr[8],$arr[9] , $arr[10], $arr[11])" ; $roma = mssql_query($strSQL); //Вы полняем команду вставки записей } ?> 26 БАЗЫ ДАННЫХ и PHP Фрагмент файла data2.txt 01.07.2001;1;29.33;25.89;175.98;82.124;102.2;2193.884;12.7;1088.143;28.3;926.828; 01.07.2001;2;29.33;25.89;205.31;46.928;102.2;2229.08;12.6;1132.138;26.6;941.493; 01.07.2001;3;29.33;25.89;190.645;64.526;102.2;2193.45;12.6;1097.1;27.5;927.7; 01.07.2001;4;29.33;25.89;284.501;87.99;102.2;2190.951;12.7;1173.2;28.6;941.493; 01.10.2001;1;31;15;305;105;102.83;2543.18;13.45;1378.74;29.44;1091.46; Обратите внимание. Если файл с данны ми большой (например, имеет ты сячи записей и более), то лучше использовать массовую загрузку данны х командой BULK INSERT. Это будет намного бы стрее. 27 БАЗЫ ДАННЫХ и PHP Пример 5. Вы полнение запроса к базе по заданному критерию <?PHP $link = mssql_connect (“ 127.0.0.1” ," sa" ," " ) or die (" Could not connect" ); Mssql_select_db(" GRAF" , $link); $strSQL1 = " select * from scenar where nomer_sc=1 AND data1 >= ‘2008-01-01’" ; $zapr1=mssql_query($strSQL1); // YYYY-MM-DD $idx=1; while($r1 = mssql_fetch_array($zapr1)) { $E_1[$idx] = $r1[" E" ]; // Считы ваем значения переменны х из Базы в массивы переменны х $O_1[$idx] = $r1[" O" ]; $GT_1[$idx] = $r1[" GT" ]; $TR_1[$idx] = $r1[" TR" ]; $P_1[$idx] = $r1[" P" ]; $Y_1[$idx] = $r1[" Y" ]; $M_1[$idx] = $r1[" M" ]; $N_1[$idx] = $r1[" N" ]; $X_1[$idx] = $r1[" X" ]; $CO_1[$idx] = $r1[" CO" ]; $idx++; } // Осуществляем различны е манипуляции с массивами переменны х $E_1[$idx], $O_1[$idx] и др. ?> 28 БАЗЫ ДАННЫХ и PHP Обратите внимание. Здесь значения переменны х берутся из Базы Данны х 29 БАЗЫ ДАННЫХ и PHP Для представления данны х из Базы на графике можно использовать библиотеку PHP – GD или Flash библиотеку Обратите внимание. Данны е из Базы Данны х можно представить на графике. 30 БАЗЫ ДАННЫХ и PHP Существуют программы - “ билдеры ” для ускорения процесса разработки веб-страниц, взаимодействую щих с базами данны х: 1) PHP Report Maker 2) ASP.NET Maker Любая СУБД 3) Crystal Reports XI - Мощная система отчетов интегрируемы х с WEB 4) Oracle Application Express – вклю чает мощны й построитель WEB страниц для СУБД Oracle (PL/SQL) 31

Рекомендованные лекции

Смотреть все
Программирование

Работа с СУБД MySQL в PHP.

Лекция 4. Работа с СУБД MySQL в PHP. Введение. MySQL - Система Управления Базами Данных (СУБД). Основное преимущество перед большинством остальных СУБ...

Информатика

Создание динамических WEB страниц с использованием JavaScript и PHP

ЛЕКЦИЯ № 4 WEB-технологии и компью терное моделирование Краткий учебны й курс 1 Структура учебного курса  Лекция 1. Введение в интернет технологии и ...

Информатика

Пример реализации «Эконометрической модели экономики России» под WEB

ЛЕКЦИЯ № 6 WEB-технологии и компью терное моделирование Краткий учебны й курс 1 Структура учебного курса  Лекция 1. Введение в интернет технологии и ...

Информатика

Введение в интернет технологии и компьютерное моделирование

ЛЕКЦИЯ № 1 WEB-технологии и компью терное моделирование Краткий учебны й курс 1 Структура учебного курса  Лекция 1. Введение в интернет технологии и ...

Информатика

Понятие веб-сервера. Знакомство с lamp (Linux Apache MySQL PHP)

ЛЕКЦИЯ Понятие веб-сервера. Знакомство с lamp (Linux Apache MySQL PHP) Понятие веб-сервера. Знакомство с Архитектурой LAMP (LINUX APACHE MYSQL PHP). 1...

Программирование

Работа с графикой в PHP.

Лекция 5. Работа с графикой в PHP. 1. Введение Язык программирования PHP позволяет работать не только с текстовой информацией в различных форматах (на...

Программирование

Сортировка данных в PHP-скриптах

Лекция №11 2.8. Сортировка данных   Результирующий набор записей, полученный в результате выполнения запроса на выборку, по умолчанию отображается в с...

Информационные технологии

Управление ИТ-сервисами предприятия

Доцент, к.ф.м.н. Владимир Андреевич Цупин Кафедра Бизнес информатики Системы управления контентом В мире существует множество систем управления контен...

Автор лекции

Цупин В.А.

Авторы

Информатика

Основы научно-технической деятельности

МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «МИРЭА – Российский технологический университе...

Информационные технологии

Прикладной уровень стека TCP/IP. Электронная почта

15 Прикладной уровень стека TCP/IP. Электронная почта Всемирная паутина (WWW, World Wide Web) - это архитектура, являющаяся основой для доступа к связ...

Смотреть все