Вы находитесь на странице: 1из 10

Урок 4.

Тема урока: SQL – язык запросов.


Цели урока: научить учащихся работать с базами данных и SQL -
запросам.
Задачи урока:
- обучающая – научить пользоваться запросами, составлять самим SQL
- запросы;
- развивающая – развитие у учащихся познавательных интересов;
- воспитательная – привитие учащимся навыков самостоятельной
работы.
Тип урока: комбинированный.
Продолжительность урока: 80 минут.
Оборудование: ЭВМ.
Ход урока:
Ι. Организационный момент: приветствие класса, проверка
отсутствующих и домашнего задания.
ΙΙ. Объяснение нового материала.
Первый международный стандарт языка SQL был принят в 1989 г., его
часто называют SQL/89. Среди недостатков этого стандарта выделяют в
первую очередь то, что многие важные свойства он устанавливал как
определяемые в реализации. Отсюда произошло множество расхождений в
реализациях языка разными производителями. Кроме того, высказывались
претензии по поводу отсутствия в этом стандарте упоминаний о
практических аспектах языка, таких как его встраивание в язык
программирования Си.
Следующий международный стандарт языка SQL был принят в конце
1992 г. И стал называться SQL/92. Он получился гораздо более точным и
полным, чем SQL/89, хотя и не был лишен недостатков. В настоящее время
большинство систем почти полностью реализуют этот стандарт. Однако, как
известно, прогресс не остановишь, и в 1999 году появился новый стандарт
SQL:1999, также известный как SQL3. SQL3 характеризуется как «объектно-
ориентированный SQL» и является основой нескольких объектно-
реляционных систем управления базами данных (например, ORACLE8
компании Oracle, Universal Server компании Informix и DB2 Universal
Database компании IBM). Этот стандарт является не просто слиянием SQL-92
и объектной технологии. Он содержит ряд расширений традиционного SQL, а
сам документ составлен таким образом, чтобы добиться более эффективной
работы в области стандартизации в будущем.
Если говорить о MySQL, то она соответствует начальному уровню
SQL92, содержит несколько расширений этого стандарта и стремится к
полной поддержке стандарта ANSI SQL99, но без ущерба для скорости и
качества кода.
Далее, говоря об основах языка SQL, будем придерживаться его
реализации в СУБД MySQL.
Основные типы запросов данных

CREATE DATABASE
Эта команда создает новую базу данных:

CREATE DATABASE db_name;

Здесь db_name является именем создаваемой базы данных.


CREATE TABLE
Команда CREATE TABLE создает новую таблицу в выбранной базе
данных и которая в простейшем случае имеет следующий синтаксис:

CREATE TABLE <имя таблицы>


( <имя столбца> <тип данных> [NOT NULL]
[,<имя столбца> <тип данных> [NOT NULL]] ... )

Создадим первую таблицу базы данных shop, которая называется tovar


и содержит различные данные о данном товаре: наименование товара (title),
рисунок (imager), описание (description), категория (categories). Кроме
перечисленных полей в таблице имеется поле tovar_id, являющийся
первичным ключом таблицы.

CREATE TABLE tovar(


tovar_id INT NOT NULL auto_increment,
title VARCHAR(100) NOT NULL,
imager BLOB NOT NULL,
price INT NOT NULL,
description TEXT NOT NULL,
categories VARCHAR(200) NOT NULL,
PRIMARY KEY (tovar_id); )
SELECT
Команда SELECT предназначена для извлечения строк данных из одной
или нескольких таблиц.
Оператор выборки записей имеет формат вида:

SELECT [ALL | DISTINCT]


<список данных>
FROM <список таблиц>
[WHERE <условие выборки>]
[GROUP BY <имя столбца> [,<имя столбца>]... ]
[HAVING <условие поиска>]
[ORDER BY <спецификация> [,<снецификация>] ...]

Это наиболее важный оператор из всех операторов SQL.


Функциональные возможности его огромны. Рассмотрим основные из них.
Оператор SELECT позволяет производить выборку и вычисления над
данными из одной или нескольких таблиц. Результатом выполнения
оператора является ответная таблица, которая может иметь (ALL), или не
иметь (DISTINCT) повторяющиеся строки. По умолчанию в ответную
таблицу включаются все строки, в том числе и повторяющиеся. В отборе
данных участвуют записи одной или нескольких таблиц, перечисленных в
списке операнда FROM.
Список данных может содержать имена столбцов, участвующих в
запросе, а также выражения над столбцами. В простейшем случае в
выражениях можно записывать, имена столбцов, знаки арифметических
операций (+, -,*,/), константы и круглые скобки. Если в списке данных
записано выражение, то наряду с выборкой данных выполняются
вычисления, результаты которого попадают в новый (создаваемый)' '. столбец
ответной таблицы.
При использовании в списках данных имен столбцов нескольких
таблиц для указания принадлежности столбца некоторой таблице применяют
конструкцию вида:
<имя та6лицы>.<имя столбца>.
Операнд WHERE задает условия, которым должны удовлетворять
записи в результирующей таблице. Выражение <условие выборки> является
логическим. Его элементами могут быть имена столбцов, операции
сравнения, арифметические oneрации, логические связки (И, ИЛИ, НЕТ),
скобки, специальные функции LIKE, NULL, IN и т. д.
Операнд GROUP BY позволяет выделять в результирующем множестве
записей группы. Группой являются записи с совпадающими значениями в
столбцах, перечисленных за ключевыми словами GROUP BY. Выделение
групп требуется для использования в логических выражениях операндов
WHERE и HAVING, а также для выполнения операций (вычислений) над
группами.
В логических и арифметических выражениях можно использовать
следующие групповые операции (функции): AVG (среднее значение в
группе), МАХ (максимальное значение в группе), MIN (минимальное
значение в группе), SUM (сумма значений в группе), COUNT (число значений
в группе).
Операнд HAVING действует совместно с операндом GROUP BY и
используется для дополнительной селекции записей во время определения
групп. Правила записи <условия поиска> аналогичны правилам
формирования <условия выборки> операнда WHERE.
Операнд ORDER BY задает порядок сортировки результирующего
множества. Обычно каждая <спецификация> аналогична соответствующей
конструкции оператора CREATE INDEX и представляет собой пару вида:
<имя столбца> [ ASC | DESC ].

INSERT INTO…VALUES
Команда INSERT…VALUES вставляет новые записи в существующую
таблицу. Оператор вставки новых записей имеет форматы двух видов:
INSERT INTO <имя таблицы>
[(<список столбцов>)]
VALUES (<список значений>)

INSERT INTO <имя таблицы>


[(<список столбцов>)]
<предложение SELECT>

В первом формате оператор INSERT предназначен для ввода новых


записей с заданными значениями в столбцах. Порядок перечисления имен
столбцов должен соответствовать порядку значений, перечисленных в списке
операнда VALUES. Если <список столбцов> опущен, то в <списке значений>
должны быть перечислены все значения в порядке столбцов структуры
таблицы.
Во втором формате оператор INSERT предназначен для ввода в заданную
таблицy новых строк, отобранных из другой таблицы с помощью
предложения SELECT.

UPDATE
Оператор изменения записей имеет формат вида:

UPDATE <имя та6лицы>


SET <имя столбца> {<выражение> , NULL }
[, SET <имя столбца> {<выражение> , NULL }... ]
[WHERE <условие>]

Выполнение оператора UPDATE состоит в изменении значений в


определенных операндом SET столбцах таблицы для тех записей, которые
удовлетворяют условию, заданному операндом WHERE.
Новые значения полей в записях могут быть пустыми (NULL), либо
вычисляться в соответствии с арифметическим выражением. Правила записи
арифметических и логических выражений аналогичны соответствующим
правилам оператора SELECT.
DELETE
Оператор удаления записей имеет формат вида:

DELETE FROM <имя таблицы>


[WHERE <условие>]

Результатом выполнения оператора DELETE является удаление из


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

Задание: создать таблицу товара, клиента с помощью оператора SQL,


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

Для того чтобы создать таблицу tovar, необходимо в данном окне ввести
следующий код:
CREATE TABLE tovar(
tovar_id INT NOT NULL auto_increment,
title VARCHAR(100) NOT NULL,
imager BLOB NOT NULL,
price INT NOT NULL,
description TEXT NOT NULL,
categories VARCHAR(200) NOT NULL,
PRIMARY KEY (tovar_id) )

Если запрос правильно введен, то появится окошечко следующего вида.

Аналогично для таблицы client.

SELECT * FROM `tovar` WHERE `title` LIKE 'F%'


SHOW TABLES

SELECT title FROM tovar ORDER BY title


Домашнее задание:
I. Вам необходимо создать:
1. титульный лист
2. меню клиента
3. меню admin
И все эти файлы соедините в один фай (с расширением .php).
Титульный лист может содержать приветствие, разные изображения
(выводимые случайным образом).
Меню admin можно выставлять на показ, т.е. сделать так, чтобы клиент
не видел его функции (можно сделать просто ссылку).
II. Подготовиться к контрольной работе по пройденному курсу.

Оценить