Transcript Document
Министерство образования Республики Беларусь Белорусский Государственный университет Реферат по информатике студентки 1 курса группы ЭТ Волковой Ольги Минск 2007г. Введение в реляционные базы данных Введение Что такое реляционная база данных? Связывание одной таблицы с другой Произвольный порядок строк Идентификация строк (первичные ключи) Наименование и нумерация столбцов Типовая база данных Резюме SQL: обзор Как работает SQL? Что делает ANSI? Интерактивный и встроенный SQL Подразделы SQL Различные типы данных Несогласованности SQL Что такое пользователь? Условия и терминология Резюме Использование SQL для извлечения информации из таблиц. Создание запроса Что такое запрос? Где применяются запросы Команда SELECT Выбирайте самый простой способ Описание SELECT Просмотр определенного столбца таблицы Переупорядочивание столбцов Удаление избыточных данных Параметры DISTINCT ALL вместо DISTINCT Квалифицированный выбор при использовании предложений (WHERE) Резюме Типы данных в SQL SQL (обычно произносится "сэквэл") означает Структурированный Язык Запросов (Structured Query Language). Это — язык, который дает вам возможность создавать и работать в реляционных базах данных, которые являются наборами связанной информации, сохраняемой в таблицах. Мир баз данных становится все более и более единым, что привело к необходимости создания стандартного языка, который мог бы использоваться, чтобы функционировать в большом количестве различных видов компьютерных сред. Стандартный язык позволит пользователям, знающим один набор команд, использовать их, чтобы создавать, отыскивать, изменять и передавать информацию, независимо от того, работают ли они на персональном компьютере, сетевой рабочей станции, или на универсальной ЭВМ. Пользователь имеет огромное преимущество в использовании и обобщении информации из ряда источников с помощью большого количества Реляционная база данных — это связанная информация, сохраняемая в двумерных таблицах. Напоминает адресную или телефонную книгу. В книге имеется большое количество входов, каждый из которых соответствует определенной особенности. Для каждой такой особенности, может быть несколько независимых фрагментов данных, например имя, телефонный номер, и адрес. Каждая строка (называемая также записью) будет соответствовать определенной особенности; каждый столбец будет содержать значение для каждого типа данных — имени, телефонного номера, и адреса представляемого в каждой строке. Адресная книга могла бы выглядеть следующим образом: Имя Телефон Адрес Gerry Farish (415)365-8775 127 Primrose Ave.,SF Celia Brock (707)874-3553 246 #3rd St., Sonoma Yves Grillet (762)976-3665 778 Modernas, Barcelona Рассмотрим пример: Предположим, что персонажи в нашей первой таблице (адресной книги) — это пациенты больницы. В другой таблице, мы могли бы запомнить дополнительную информациюПациент об этихДоктор пациентах. Страховка Баланс Farish Grillet Brock Drume Halben Halben B.C./B.S. None Health,Inc. $272.99 $44.76 $9077.47 Параметры таблицы включают в себя фрагменты информации, связанные в различных таблицах друг с другом. Например, возьмем докторов. Предположим, доктор Halben захотел получить номера телефонов всех своих пациентов. Чтобы извлечь эту информацию, он мог бы связать таблицу с номерами телефонов пациентов (по адресной книге) с таблицей, которая бы указывала, какой из пациентов — его. Программы реляционной базы данных разрабатывались Идентификация строк (первичные ключи) В таблице вы должны иметь столбец, который бы уникально идентифицировал каждую строку. Обычно этот столбец содержит номер — например, номер пациента, назначаемый каждому пациенту. Такой уникальный столбец (или уникальная группа столбцов), используемый, чтобы идентифицировать каждую строку и хранить все строки отдельно, называются первичными ключами таблицы. Первичные ключи таблицы — важный элемент в структуре базы данных. Когда вы хотите найти определенную строку таблице, вы ссылаетесь к этому первичному ключу. Столбцы именуются и нумеруются Каждый столбец данной таблицы должен иметь уникальное имя, чтобы избежать неоднозначности. Лучше всего, если эти имена указывают на содержание поля. В типовых таблицах, мы будем использовать такие сокращения для имени столбца, как cname для имени заказчика, и odate для даты Заказа. Мы также дадим каждой таблице столбец с личным числовым номером в качестве первичного ключа. Таблица 1.1: Продавцы SNUM 1001 1002 1004 1007 1003 SNAME Peel Serres Motika Rifkin Axelrod CITY London San Jose London Barcelona New York COMM .12 .13 .11 .15 .10 Таблица 1.2: Заказчики CNU M 2001 2002 2003 2004 2006 2008 2007 CNAME CITY RATING SNUM Hoffman Giovanni Liu Grass Clemens Cisneros Pereira 100 200 200 300 100 300 100 1001 1003 1002 1002 1001 1007 1004 CNUM 2008 2001 2007 2003 2008 2002 2004 2006 2004 2006 SNUM 1007 1001 1004 1002 1007 1003 1002 1001 1002 1001 London Rome SanJose Berlin London SanJose Rome Таблица 1.3: Заказы ONUM 3001 3003 3002 3005 3006 3009 3007 3008 3010 3011 AMT 18.69 767.19 1900.10 5160.45 1098.16 1713.23 75.75 4723.00 1309.95 9891.88 ODATE 10/03/1990 10/03/1990 10/03/1990 10/03/1990 10/03/1990 10/04/1990 10/04/1990 10/05/1990 10/06/1990 10/06/1990 Как работает SQL? SQL — это язык, ориентированный специально на реляционные базы данных. Он устраняет много работы, которую вы должны были бы сделать, если бы вы использовали универсальный язык программирования. Команды в SQL могут работать со всеми группами таблиц как с единым объектом и могут обрабатывать любое количество информации, извлеченной или полученной из их, в виде единого модуля. Что делает ANSI? стандарт SQL определяется с помощью кода ANSI (Американский Национальный Институт Стандартов). ANSI определил стандарт, к которому они должны быть приведены (определение таких стандартов и является функцией ANSI). Так как не всегда ANSI определяет то, что является наиболее полезным, то программы пытаются соответствовать стандарту ANSI, не позволяя ему ограничивать их слишком сильно. Интерактивный и встроенный SQL Интерактивный SQL используется для функционирования непосредственно в базе данных, чтобы производить вывод для использования его заказчиком. Встроенный SQL состоит из команд SQL, помещенных внутри программ, которые обычно написаны на некотором другом языке (типа КОБОЛА или Паскаля). Это делает эти программы более мощными и эффективным. Подразделы SQL DDL (Data Definition Language — Язык Определения Данных) — так называемый Язык Описания Схемы в ANSI, состоит из команд, которые создают объекты (таблицы, индексы, просмотры, и так далее) в базе данных. DML (Data Manipulation Language — Язык Манипулирования Данными) — это набор команд, которые определяют, какие значения представлены в таблицах в любой момент времени. DCL (Data Control Language — Язык Управления Данными) состоит из средств, которые определяют, разрешить ли пользователю выполнять определенные действия или нет. Тип данных Так как системы с реляционной базой данных базируются на связях между фрагментами информации, различные типы данных должны понятно отличаться друга от друга, так чтобы соответствующие процессы и сравнения могли быть в них выполнены. В SQL это делается с помощью назначения каждому полю типа данных, который указывает на тип, значения, которое это поле может содержать. Что такое пользователь? Таблица или другой объект принадлежат пользователю, который имеет над ним полную власть. Специальное значение — USER (ПОЛЬЗОВАТЕЛЬ) может использоваться как аргумент в команде. Оно указывает на доступный идентификатор пользователя, выдавшего команду. Создание запроса Термин SQL означает "Структурированный Язык Запросов". Запросы — вероятно, наиболее часто используемый аспект SQL. Что такое запрос? Запрос — команда, которую вы даете вашей программе базы данных, и которая сообщает ей, чтобы она вывела определенную информацию из таблиц в память Все запросы в SQL состоят из одиночной команды. Структура этой команды обманчиво проста, потому что вы должны расширять ее так, чтобы выполнить высоко сложные оценки и обработки данных. Эта команда называется — SELECT (ВЫБОР). Описание SELECT Команда SELECT способна извлечь строго определенную информацию из таблицы. Сначала, мы можем предоставить возможность увидеть только определенные столбцы таблицы. Это выполняется легко, простым исключением столбцов, которые вы не хотите видеть, из части команды SELECT. Например, запрос SELECT sname, comm FROM Salespeople; будет производить вывод, показанный на Рисунке 3.2. =============== SQL Execution Log ============ | SELECT snum, comm | | FROM Salespeople; | | ==============================================| | sname comm | | --------------------| | Peel 0.12 | | Serres 0.13 | | Motika 0.11 | | Rifkin 0.15 | | Axelrod 0.10 | =============================================== Рисунок 3.2: Выбор определенных столбцов Типы ANSI TEXT —Текст. CHAR (CHARACTER) — Строка текста в формате, определенном реализацией\ 'text‘\. EXACT NUMERIC __ Точное число DEC (DECIMAL) — Десятичное число. NUMERIC INT (INTEGER) — Число без десятичной точки. SMALLINT — Такое же как INTEGER, размер по умолчанию может (или не может) быть меньше, чем INTEGER. APPROXIMATE NUMERIC__Приблизительное число. FLOAT — Число с «плавающей» запятой. REAL — Такое же, как FLOAT, но никакого аргумента размера не используется. DOUBLE PRECISION (DOUBLE) — Такое же, как REAL, но точность, определяемая реализацией для DOUBLE PRECISION должна превышать определяемую реализацией точность Эквивалентные типы данных в других языках SQL ТИП CHAR DECIMAL INTEGER FLOAT ЭКВИВАЛЕНТ PL/1 CHAR FIXED DECIMAL FIXED BINARY FLOAT BINARY КОБОЛ SQL ТИП CHAR(<integer>) INTEGER NUMERIC ЭКВИВАЛЕНТ КОБОЛА PIC X (<integer>) PIC S (<nines>) USAGE COMPUTATIONAL PIC S (<nines with embedded V>) DISPLAY SING LEADING SEPARATE ПАСКАЛЬ SQL ТИП INTEGER REAL CHAR (<length>) ЭКВИВАЛЕНТ ПАСКАЛЯ INTEGER REAL PACKED ARRAY [1..<length>] OF CHAR ФОРТРАН SQL ТИП CHAR INTEGER REAL ЭКВИВАЛЕНТ ФОРТРАНА CHAR INTEGER REAL DOUBLE PRECISION DOUBLE PRECISION Структурированный язык запросов SQL даёт возможность эффективно работать с многочисленными таблицами данных, используя улучшенную технику для запроса более чем одной таблицы одновременно, строить комплекс запросов и подзапросов, и использовать представления, чтобы создавать базы данных и работать с базами данных раздельно с многими таблицами. Элегантность и независимость от специфики компьютерных технологий, а также его поддержка лидерами промышленности в области технологии реляционных баз данных, сделало SQL, и вероятно в течение обозримого будущего оставит его, основным стандартным языком. По этой причине, любой, кто хочет работать с базами данных 90-х годов, должен знать SQL.