WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 || 3 |

3.2. Создание, удаление и модернизация таблиц Таблицы создаются командой CREATE TABLE. Команда CREATE TABLE в основном определяет имя таблицы, в виде описания набора имен столбцов указанных в определенном порядке. Она также определяет типы данных и размеры столбцов (см.

табл. 3.1). Каждая таблица должна иметь, по крайней мере, один столбец. Пример создания таблицы pet приведен ниже:

CREATE TABLE pet ( name VARCHAR(50), sex VARCHAR(1), birth DATE, death DATE );

Удаление таблиц осуществляется командой DROP TABLE, например для удаления таблицы pet надо ввести команду: DROP TABLE pet;. Для модернизации уже существующих в базе данных таблиц их необязательно удалять, а потом вновь создавать в измененном виде. Для модернизации таблиц существует команда ALTER TABLE, например ALTER TABLE pet DROP COLUMN death;.

Таблица 3.1. Типы данных Вещественное число с точностью p вплоть до 38 цифр (общим количеством цифр) и масштабом s (числом цифр NUMBER(p,s) справа от десятичной точки). Масштаб может находится в диапазоне от –84 до 127.

Сохраняет информацию о дате. Использует формат DATE "YYYY-MM-DD".

Символьные данные фиксированной длины равной size CHAR(size) байт. Максимум size составляет 2000 байт, а минимум байт.

Строка переменной длины, максимальный размер которой VARCHAR2(size) не может превышать size символов или байтов.

Максимальное значение size – 4000.

Строка переменной длины, максимальный размер которой LONG не может превышать 2 Гбайт, или 231-1 байт.

Двоичные данные, максимальный размер которых не RAW(size) может превышать size байтов. Максимальное значение size – 2000.

Двоичные данные, максимальный размер которых не LONGRAW может превышать 2 Гбайт, или 231-1 байт.

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

CREATE TABLE dept_ (employee_id NUMBER(4) CONSTRAINT emp_id_pk PRIMARY KEY, last_name VARCHAR2(10), job_id VARCHAR2(9), manager_id NUMBER(4), hire_date DATE, salary NUMBER(7,2), commission_pct NUMBER(7,2), department_id CONSTRAINT fk_deptno REFERENCES departments(department_id));

В примере создается таблица dept_20, в которой поле employee_id является первичным ключом, а поле department_id – внешним ключом и указывает на поле departments в таблице department_id. При задании первичного и внешнего ключей были использованы ограничения с названиями emp_id_pk и fk_deptno соответственно. Как видно из примера ограничения задаются при помощи ключевого слова CONSTRAINT.

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

ALTER TABLE sales ADD CONSTRAINT sales_pk PRIMARY KEY (prod_id, cust_id);

В таблице sales создается ограничение sales_pk, которое объявляет поля prod_id и cust_id составным первичным ключом. Аналогичной по построению конструкцией описывается составной внешний ключ, например:

ALTER TABLE dept_ ADD CONSTRAINT fk_empid_hiredate FOREIGN KEY (employee_id, hire_date) REFERENCES job_history(employee_id, start_date);

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

CREATE TABLE company( ID NUMBER(8) PRIMARY KEY, brief_name VARCHAR(50) CHECK (brief_name = UPPER(brief_name)), full_name VARCHAR(200) NOT NULL, country REFERENCES countries(ID), city REFERENCES cities(ID), zip NUMBER(6) NOT NULL, address VARCHAR(200) NOT NULL );

В таблице определены следующие ограничения:

• поле ID является первичным ключом;

• поля country и city являются внешними ключами;

• поле brief_name должно быть набрано прописными символами;

• поля full_name, zip и address должны быть обязательно определены при создании записи.

3.4. Автоматизация работы с базами данных Для ускорения процедуры загрузки структуры базы данных и самих данных все необходимые для этого SQL-конструкции помещают в один текстовый файл.

Например, файл script.sql следующего содержания DROP TABLE staff CASCADE CONSTRAINTS;

CREATE TABLE staff( id NUMBER(8) PRIMARY KEY, person REFERENCES person(ID), section REFERENCES section(ID), position REFERENCES position(ID), salary NUMBER(10,2), begindate DATE NOT NULL, enddate DATE NOT NULL );

DROP TABLE person CASCADE CONSTRAINTS;

CREATE TABLE person( id NUMBER(8) PRIMARY KEY, firstname VARCHAR(50) NOT NULL, lastname VARCHAR(50) NOT NULL, middlename VARCHAR(50) NOT NULL, birthdate DATE NOT NULL, sex CHAR(1) CHECK (sex IN ('M','W')) );

DROP TABLE section CASCADE CONSTRAINTS;

CREATE TABLE section( id NUMBER(8) PRIMARY KEY, name VARCHAR(100) NOT NULL );

DROP TABLE position CASCADE CONSTRAINTS;

CREATE TABLE position( id NUMBER(8) PRIMARY KEY, name VARCHAR(100) NOT NULL );

предназначен для создания структуры базы данных, инфологическая модель которой изображена на рис. 3.1. Для исполнения SQL-инструкция, находящихся в файле script.sql необходимо в среде SQLPlus выполнить команду @[путь]\script.sql Person Staff Position id id id firstname name persone lastname position middlename section birthdate salary sex begindate Section enddate id name Рис.3.1 Инфологическая модель базы данных «Кадры» 3.5. Запросы на выборку данных Оператор SELECT является краеугольным камнем всего языка SQL. Он используется, чтобы выполнить запросы к базе данных. Это действительно основа языка SQL. Все запросы на получение практически любого количества данных из одной или нескольких таблиц выполняются с помощью предложения SELECT. В синтаксисе предложение SELECT могут использоваться следующие обозначения:



• звездочка (*) для обозначения "все" - употребляется в обычном для программирования смысле, т.е. "все случаи, удовлетворяющие определению";

• точка с запятой (;) - завершающий элемент предложений SQL;

• запятая (,) — используется для разделения элементов;

Стандартная форма SQL-запроса:

• SELECT (выбрать) данные из указанных столбцов;

• FROM (из) перечисленных таблиц, в которых расположены эти столбцы;

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

Фраза WHERE включает набор условий для отбора строк:

• значение_1 { = | <> | < | <= | > | >= } значение_2;

• логические операторы AND, OR, где значение_1 – это поле таблицы, а значение_2 – это значение условия отбора строк, AND – когда должны удовлетворяться оба разделяемых с помощью AND условия, OR – когда должны удовлетворяться одно из разделяемых с помощью OR условия. Пример записи WHERE-условий:

• WHERE dolgnost=’директор’ • WHERE dolgnost=’учитель’ AND pol=’м’ • WHERE telefon>’5’ • WHERE dolgnost=’учитель’ OR dolgnost=’завуч’ Примеры SQL- запросов:

• SELECT * FROM sotrudniki; - запрос: выдать все (*) из таблицы sotrudniki;

• SELECT imia, familia FROM ludi; - запрос: выдать все имена и фамилии из таблицы ludi;

• SELECT * FROM ludi WHERE pol=’м’; - запрос: выбрать всех (*) мужчин из таблицы ludi;

• SELECT * FROM ludi WHERE familia like ’И%’; - запрос: выбрать всех сотрудников, фамилии которых начинаются на букву И.

3.6. Построение запросов INSERT и DELETE Кроме предложения SELECT язык SQL поддерживает следующие предложения.

DELETE - удаление записи из таблицы, например:

• DELETE FROM sotrudniki; – удалить все из таблицы sotrudniki.

• DELETE FROM ludi WHERE pol=’м’; - удалить всех мужчин из таблицы ludi.

INSERT – добавление (вставка) одной записи в таблицу, например: INSERT INTO ludi (familia,imia) VALUES (’Иванов’,’Иван’); - добавить в таблицу ludi в поля familia и imia значения Иванов и Иван соответственно.

В предложении INSERT за самим оператором следует ключевое слово INTO, после которого указывается название базы данных. Далее в скобках следуют поля этой базы данных, в которые производится запись. Они разделяются запятыми, но не могут дублироваться. Порядок их перечисления может не соответствовать порядку, установленному в базе данных. Значения после ключевого слова VALUES – это значения, которые необходимо занести в таблицу. Они разделяются запятыми. В предложении INSERT должно быть строгое соответствие по типу данных полей и значений.

3.7. Построение запроса UPDATE Запросы UPDATE предназначены для обновления одного или нескольких полей таблицы. В предложении UPDATE можно использовать фразу WHERE, для того, чтобы указать условия для производимых изменений. Например:

UPDATE ludi SET familia=’Хромов’ WHERE familia =’Громов’;

Этот запрос изменяет все фамилии Громов на фамилию Хромов в таблице ludi.

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

SELECT OBJECT_NAME, OBJECT_TYPE FROM USER_OBJECTS;

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

SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'название_таблицы';

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

4. ОСНОВЫ ЯЗЫКА СЕРВЕРНЫХ СЦЕНАРИЕВ PHP 4.1. Общие сведения Язык PHP был создан Расмусом Лердорфом (Rasmus Lerdorf) осенью 1994 года.

Аббревиатура PHP расшифровывалась как Personal Home Page. На тот момент PHP обладал весьма скромными возможностями, но уже к середине 1995 года он научился принимать данные HTML-форм и работать с базами данных. С тех пор PHP все время совершенствовался, и на сегодняшний день представляет собой удобный инструмент для создания динамических HTML-страниц. Изменилось и значение аббревиатуры: теперь PHP рекурсивно расшифровывается как PHP:

Hypertext Preprocessor (PHP - гипертекстовый препроцессор).

PHP - это язык сценариев, интерпретируемый на стороне сервера. После выполнения сценария сервером Web-обозревателю передаются результаты его работы в виде HTML-страницы.

Для того чтобы отлаживать сценарии, необходимо установить на компьютере WWW-сервер, например Apache (http://www.apache.org), и собственно сам PHP (http://www.php.net или http://ru.php.net).

4.2. Структура PHP-сценария Сценарий представляет собой обычный текстовый файл, в котором содержится одна или несколько секций . Пример простейшего сценария, который выводит в Web-обозреватель HTML-страницу с надписью «Это первый сценарий», приведен ниже.

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

> В этом примере echo - это функция PHP для вывода текстовых данных в Webобозреватель. С ее помощью можно выводить просто текст, как мы делали еще в первом примере, а можно и значения переменных. Так же, как и в С/С++, в PHP каждая отдельная конструкция должна завершаться точкой с запятой – <;>.





4.3. Комментарии В PHP есть несколько возможностей добавления комментариев: можно закомментировать либо целую строку, либо несколько строк. Символы «//» или «#» свидетельствуют о том, что все стоящее после них и до конца строки является комментарием. Если необходимо закомментировать какой-то фрагмент сценария, то лучше воспользоваться комбинацией «/*» и «*/». Пример:

*/ > 4.4. Переменные В отличие от большинства языков программирования, в PHP нет необходимости переменные и их тип объявлять заранее. О том, что это переменные, свидетельствует знак «$» в начале их имени. По аналогии с языками С и С++ имена переменных в PHP могут состоять из символов латиницы, цифр и знака подчеркивания. Кроме того, PHP чувствителен к регистру, поэтому $var1 и $Varбудут двумя разными переменными.

4.5. Константы Если возникает необходимость использовать в скрипте данные, которые не изменяются по ходу его выполнения, то их лучше всего объявить в виде константы:

define("CONST","value");. Особенность объявления констант заключается в том, что это необходимо делать в начале секции:

echo IP;

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

Последовательность выполнения операций определяется следующими факторами:

• приоритетом операций;

• порядком расположения операций в выражении;

• использованием скобок.

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

Таблица 4.1. Приоритеты операций Приоритет Операции Первый *, /, % Второй +, - Третий ==, !=, >=, <=, <, > Таблица 4.2. Арифметические операции Операция Действие + Сложение - Вычитание * Умножение / Деление % Остаток от деления Таблица 4.3. Операции отношения Операция Действие == Равно != Не равно < Меньше > Больше <= Меньше или равно >= Больше или равно Таблица 4.4. Логические операции Операнды Операции A B !A (не) A && B (и) A || B (или) False False True False False False True True False True True False False False True True True False True True При реализации алгоритма работы скрипта действия, которые необходимо выполнить, описываются операторами. Операторы бывают простые и структурные.

К простым относится, например, оператор присваивания <=>. А вот для реализации «логики» скрипта используются структурные операторы, такие как if, switch, do...while, for. Вот пример их использования:

$v2=4;

$v3=8;

//если $v2 не равно $vif($v2!=$v3) { //то $v4=10;

} // иначе else { $v4=20;

} switch($v3) { // если $v3 равно case 3:

echo "v3=3";// то выводим на экран строку: v3=break; // выход из оператора case 8: // если $v3 равно echo "v3=8";// то выводим на экран строку: v3=break; // выход из оператора default: // если переменная $v3 не равна ни одному // из предшествующих выражений // то выводим // на экран строку: v3 != 3, v3 != echo "v3 != 3, v3 != 8";

break; // выход из оператора } $i = 10;

do // выполняем операторы внутри фигурных скобок { echo $i; // выводим значение переменной $i i--; // уменьшаем значение переменной на единицу } // пока переменная $i больше нуля while ($i>0);

// выполняем операторы внутри // фигурных скобок 10 раз for($i=0;$i<10;$i++) { echo "hi! -".$i;

// прибавляем (символ "." объединяет // строки) к строке "hi! -" // значение переменной $i // и выводим результат } > 4.7. Функции, массивы, работа с файлами При программировании сценариев могут возникнуть ситуации, при которых некоторые части сценария повторяются, а меняются лишь данные, которыми оперирует сценарий. В таких случаях целесообразно разбить сценарий на подпрограммы. РНР предоставляет такую возможность. Для этого можно использовать функции. Вот пример функции:

} else { return $var2; } } echo "
".MinVal(3,5); // функция вернет число echo "
".MinVal(4,8); // функция вернет число > PHP предоставляет также возможность работать с массивами. Массив можно определить несколькими способами, в частности, так:

"orange", "b"=>"banana", "c"=>"apple");

// где a, b, c являются индексами массива, а "orange", // "banana" и "apple", // соответственно, значениями ячеек, на которые // ссылаются эти индексы // выводим значения ячеек массива echo $fruits[a]." "; // выведет "orange" echo $fruits[c]; // выведет "apple" // а вот другой способ определения массива:

$fruits2[0] = "apple";

Pages:     | 1 || 3 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.