
- •Практическое занятие №6 построение запросов к субд
- •Команда select
- •Некоторые другие команды sql
- •Insert into таблица [(поля)] values (значения)
- •Insert into regions values (77,'Москва')
- •Компонент запроса Query
- •Особенности работы с запросами
- •Отчет должен содержать:
- •Цель работы.
- •Контрольные вопросы:
Практическое занятие №6 построение запросов к субд
(6 часов)
ЦЕЛЬ РАБОТЫ:
Получить навыки построения запросов к СУБД.
СОДЕРЖАНИЕ РАБОТЫ:
Ознакомьтесь с теоретическим материалом;
Выполните задания из пункта 4;
Ответьте на контрольные вопросы.
ПЕРЕЧЕНЬ ОБОРУДОВАНИЯ И ПО:
Персональный компьютер с установленной программой Delphi 7
Принтер.
ВЫПОЛНЕНИЕ:
Ознакомиться с краткими теоретическими сведениями.
Построить простые запросы к СУБД.
Построить сложные запросы к СУБД.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ:
Все современные клиент-серверные СУБД имеют одну общую черту - работа с ними строится на языке SQL - Structured Query Language (структурированный язык запросов). Кроме того, чтобы не лишать разработчиков БД на Delphi возможности работать при помощи SQL с обычными файловыми СУБД типа dBase и Paradox, BDE предоставляет возможность прозрачного использования SQL и для них, используя свои внутренние механизмы.
Стандарт языка SQL определяется ANSI (Американским национальным институтом стандартов). Вместе с тем, каждый производитель СУБД считает своим долгом дополнить язык собственными расширениями которые, как они считают, будут весьма полезны. Иногда они несколько нарушают стандарт языка, хотя хорошие идеи имеют тенденцию развиваться и вскоре становиться стандартами де-факто сами по себе в силу полезности своих качеств. Здесь мы будем рассматривать SQL на основе наиболее полно поддерживаемых всеми СУБД вариантами ANSI-89 и ANSI-92.
Язык SQL предназначен для манипулирования данными в реляционных базах данных, определения структуры баз данных и для управления правами доступа к данным в многопользовательской среде. По этой причине язык SQL состоит из 3 составных частей:
Языка манипулирования данными (Data Manipulation Language, DML);
Языка определения данных (Data Definition Language, DDL);
Языка управления данными (Data Control Language, DCL).
Все эти языки являются составной частью языка SQL. Фактически, каждый из них содержит набор команд SQL, предназначенных для своей области. В процессе работы с БД, пожалуй, чаще всего используется язык манипулирования данными, состоящий из 4 основных команд - SELECT, INSERT, UPADTE и DELETE, при помощи которых производится, соответственно, выборка, вставка, обновление и удаление данных.
Язык определения данных служит для создания и изменения структуры БД - таблиц, индексов и т.д. Он состоит из 3 групп команд - CREATE, ALTER и DROP (создание, изменение и удаление, соответственно), каждая из которых может манипулировать с одним из 6 объектов - базой данных, таблицей, виртуальной таблицей, индексом, триггером или хранимой процедурой. Таким образом, например, для команды CREATE мы получаем следующие 6 вариантов:
CREATE DATABASE - создать базу данных;
CREATE TABLE - создать таблицу;
CREATE VIEW - создать виртуальную таблицу;
CREATE INDEX - создать индекс;
CREATE TRIGGER - создать триггер;
CREATE PROCEDURE - создать хранимую процедуру.
Впрочем, триггеры и, в особенности, хранимые процедуры относятся исключительно к компетенции промышленных СУБД, которые мы в этой книге рассматривать не будем. То же самое относится и к языку управления данными (иногда его еще называют языком управления доступом) - он состоит из 2 основных команд - GRANT (дать права) и REVOKE (забрать права).
ПРИМЕЧАНИЕ
На самом деле, для современных клиент-серверных СУБД существует ряд дополнительных команд SQL, позволяющих, например, определять собственные функции для обработки данных (CREATE FUNCTION), создавать резервные копии таблиц, преобразовывать типы таблиц и т.д. Далеко не все они входят в состав стандарта языка SQL, поэтому информацию по ним следует брать из поставляемой вместе с конкретной СУБД документации.
Мы не будем рассматривать точный синтаксис всех команд SQL, поскольку это потребовало бы объема, соизмеримого с целой книгой. Вместо этого мы рассмотрим основные команды на примерах, что намного более важно для понимания SQL, чем точный синтаксис, который, при необходимости, всегда можно посмотреть в документации на используемую СУБД. А начнем с рассмотрения команд языка манипулирования данными.