Отчёт по курсовой работе на тему «Лабораторный практикум по изучению языка структурированных запросов sql при использовании субд mysql по курсу «Базы данных»
Вид материала | Практикум |
- Методическое пособие по курсу «Базы данных и информационные системы» 2011, 489.34kb.
- Лекция №1: Стандарты языка sql, 1420.56kb.
- Курс 2778. Создание запросов на языке Microsoft sql server 2005 Transact-sql. Курс, 16.57kb.
- Сервер баз данных, 379.17kb.
- Методические рекомендации по использованию sql-ориентированных заданий, выполняемых, 151.55kb.
- - это аббревиатура выражения Structured Query Language (язык структурированных запросов)., 3691.83kb.
- Программа дисциплины «Базы данных», 380.05kb.
- Программа дисциплины «Базы данных», 395.38kb.
- Курсовая работа, 52.16kb.
- Курс лекций "Базы данных и субд" Ульянов В. С. Лекция Язык sql. Создание таблиц и ограничений, 146.46kb.
Создание представлений
Для создания представлений используется оператор CREATE VIEW. Представление может быть создано на основе одной или нескольких таблиц и/или других представлений. Наиболее типичный синтаксис оператора создания представлений имеет следующий вид:
CREATE VIEW имя_представления AS {оператор выборки данных}
Оператор выборки может быть любой сложности, он может содержать любые условия отбора и предложения группировки.
После создание представления с ним можно работать как с обычной таблицей, имеющей имя, заданное в качестве имени представления. Некоторым исключением являются представления, содержащие предложения группировки. Для таких представлений нет никаких ограничений по выборке данных, но применение к ним операторов манипулирования данными (подмножества команд DDL) недопустимо.
Удаление представлений
Удаление представлений выполняется с помощью оператора DROP VIEW, при вызове которого могут указываться параметры RESTRICT или CASCADE. Данные параметры определяют действия при удалении представления, на которое ссылаются другие представления и/или ограничения. При использовании варианта RESTRICT в этом случае будет выдано сообщение об ошибке, и удаление не будет выполнено. Если же используется режим CASCADE, то выполнение оператора DROP VIEW приведет к удалению всех базовых представлений и ограничений.
Типовой синтаксис оператора DROP VIEW имеет следующий вид:
DROP VIEW имя_предстаеления [RESTRICT | CASCADE]
Удаление представления (в отличие от удаления таблицы) не приводит к удалению данных, на которые это представление ссылается. Удаляется лишь запрос на выборку данных, на основе которого было создано представление.
1.3. Манипулирование данными
Для манипулирования данными, хранящимися в базе данных, используется группа операторов SQL, выделяемая в качестве отдельного типа команд, называемых языком манипулирования данными (DML — Data Manipulation Language). С помощью операторов DML пользователь может загружать в таблицы новые данные, модифицировать и удалять существующие данные.
В языке SQL определены три основных оператора DML:
INSERT, UPDATE; DELETE.
Добавление в таблицу новой информации
Процесс ввода в таблицу базы данных новой информации обычно называется загрузкой данных. Для загрузки данных используется оператор INSERT.
Добавление к таблице новой записи
Для добавления к таблице новой записи используется следующая синтаксическая форма оператора INSERT:
INSERT INTO имя_таблицы
VALUES (значение_1. значение_2..... значение_Ю
При использовании данной формы оператора INSERT список VALUES должен содержать количество значений, равное количеству полей таблицы. Причем тип данных каждого из значений, указываемых в списке VALUES, должен совпадать с типом данных поля, соответствующего этому значению.
ПРИМЕЧАНИЕ---------------------------------------
Последовательность полей определяется последовательностью их описания в операторе CREATE TABLE, с помощью которого таблица была создана.
Значения, относящиеся к символьным типам и датам, должны быть заключены в апострофы. В списке значений может также использоваться значение NULL.
Рассмотрим пример. Таблица ДОЛЖНОСТИ была создана с использованием следующего оператора:
CREATE TABLE Должности (
Код_должности INTEGER NOT NULL PRIMARY KEY.
Должность VARCHAR(50) NOT NULL UNIQUE.
Разряд INTEGER NOT NULL.
Зарплата DECIMAL (7,2) NOT NULL)
Для добавления новой записи в эту таблицу следует использовать следующий оператор INSERT:
INSERT INTO Должности
VALUES (12, 'Ведущий программист'. 12. 2000.00)
Ввод данных в отдельные поля таблицы
При добавлении данных в таблицу можно заполнять не все поля, а лишь некоторые из них. В этом случае используется следующая синтаксическая форма оператора INSERT:
INSERT INTO иня_таблицы (имя_поля_1. имя_поля_2..... имя_поля_И)
VALUES (значение_1. значение_2..... значение_N)
Например, при добавлении информации о новом сотруднике в таблицу ФИЗИЧЕСКОЕ ЛИЦО необходимо указать только информацию о полном имени сотрудника. В этом случае можно использовать следующий оператор:
INSERT INTO Физические_лица (Код_физического_лица, Имя.
Фамилия. Отчество)
VALUES (234.'Иванов','Федор'.'Михайлович')
Список полей в операторе INSERT может иметь произвольный порядок, не зависящий от порядка задания полей при создании таблицы. Однако список значений должен соответствовать порядку, в котором указаны поля, связанные с этими значениями.
При выполнении данного оператора во все остальные поля будет занесено значение NULL. Естественно, что поля, которые не указываются в круглых скобках после имени таблицы, не должны иметь ограничения NOT NULL, иначе попытка выполнения оператора INSERT окажется неудачной.
Занесение в таблицу данных, содержащихся в другой таблице
Иногда требуется перенести часть информации из одной таблицы в другую. Такого рода операцию можно выполнить с помощью комбинации оператора INSERT с оператором выборки данных SELECT.
С помощью оператора выборки данных SELECT формируется запрос — обращение к базе данных с целью получения определенной информации. Вопросы выборки данных подробно описываются далее, в главе 2. «Выборка данных».
Объединяя операторы INSERT и SELECT, можно добавить в таблицу данные, полученные в результате выполнения запроса из другой таблицы (таблиц). Синтаксис оператора INSERT в этом случае будет иметь следующий вид:
INSERT INTO имя_таблицы (имя_поля_1. имя_поля_2..... имя_поля_N
SELECT [* | имя_поля_1. имя_поля_2..... имя_поля_М]
FROM имя_таблицы
WHERE условие
В данном операторе вместо предложения VALUES используется оператор SELECT. Кратко поясним синтаксис этого оператора. После слова SELECT указывается список полей, значения которых включаются в выборку (если после SELECT указать символ *, то в выборку будут включены все поля). Предложение FROM используется для указания имени таблицы, из которой производится выборка данных. Предложение WHERE является необязательным и используется для наложения ограничений на данные, включаемые в выборку.
Количество полей, указываемых в круглых скобках после имени таблицы в операторе INSERT, должно быть равно количеству полей, включаемых в выборку. Соответствие полей определяется порядком их следования: первому полю в списке оператора INSERT соответствует первое поле в списке оператора SELECT и т. д.
Изменение данных, хранящихся в таблице
Для изменения данных, уже занесенных в таблицу, используется оператор UPDATE. Данный оператор не добавляет новых записей в таблицу, а заменяет существующие данные на новые. Оператор UPDATE может быть применен как к одному полю таблицы (наиболее часто используемый случай), так и к нескольким полям. Количество изменяемых записей зависит от потребностей пользователя — с помощью UPDATE можно изменить как одну, так и несколько записей (вплоть до изменения значения всех записей, содержащихся в таблице).
Модификация данных в одном поле таблицы
Для изменения данных только в одном из полей таблицы используется наиболее простая форма оператора UPDATE, имеющая следующий вид:
UPDATE имя_таблицы SET имя_поля = значение [WHERE условие]
Смысл отдельных синтаксических элементов оператора UPDATE достаточно очевиден: после ключевого слова UPDATE указывается имя таблицы, в которой модифицируются данные, после ключевого слова SET выполняется присвоение полю с заданным именем нового значения. Условие, задаваемое с помощью необязательного предложения WHERE, определяет количество записей, которые будут модифицированы.
Условие, указываемое в предложении WHERE оператора UPDATE, формируется по тем же правилам, что и условие, задаваемое в предложении WHERE оператора SELECT, который будет подробно рассмотрен в главе 2 «Выборка данных».
Рассмотрим пример. Допустим, требуется изменить номер телефона сотрудника организации, хранящийся в таблице ФИЗИЧЕСКИЕ ЛИЦА (такая необходимость может возникнуть либо при смене номера телефона, либо в случае корректировки ошибочно занесенных данных). В этом случае оператор UPDATE должен изменить значение только одного поля и только в одной записи. Поэтому в предложении WHERE необходимо указать такое условие, которое бы выбирало необходимую нам запись. Наиболее простым решением будет использовать для отбора нужной записи поле первичного ключа «Код_физического_лица». Значения, хранящиеся в этом поле, уникальны и однозначно определяют сотрудника. Тогда оператор UPDATE, выполняющий изменение номера телефона, будет иметь следующий вид:
UPDATE Физические_лица
SET Телефон = '(095) 2347890'
WHERE Код_физического_пица = 16
Данный оператор изменит значение номера телефона только для записи, соответствующей сотруднику, зарегистрированному в базе данных под номером 16. Если бы мы не задали ограничительного условия в приведенном выше операторе, то значение номера телефона было бы изменено для всех записей в таблице.
При использовании оператора UPDATE необходимо быть очень внимательным и правильно формулировать ограничительные условия. В противном случае выполнение оператора UPDATE может привести к потере информации, хранящейся в базе данных.
Изменение значений в нескольких полях таблицы
С помощью оператора UPDATE можно одновременно изменять значения в нескольких полях таблицы. Для этого следует указать после ключевого слова SET не одно, а несколько полей:
UPDATE имя_таблицы
SET имя_поля_1 = значение_1.
имя_поля_2 = значение_2,
имя_поля_N = значение_М [WHERE условие]
Использование оператора в данной форме ничем не отличается от рассмотренного ранее. Здесь точно так же нужно быть очень осторожным при формировании условия.