русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Загальні відомості про мову SQL


Дата добавления: 2015-07-09; просмотров: 1872; Нарушение авторских прав


Глава 5. Мова баз даних Jet SQL

Мова SQL (Structured Query Language) є інструментом, призначеним для вибірки й обробки інформації, що міститься в комп'ютерній реляційній базі даних. Теоритичним підѓрунтям мови були реляційна алгебра (РА) та реляційне числення (РЧ). Офіційний стандарт мови SQL був опублікований Американським національним інститутом стандартів (American National Standards Institute - ANSI) і Міжнародною організацією по стандартизації (International Standards Organization - ISO) в 1986 році, розширений в 1989 році, а потім - в 1992 році. Протягом останніх десяти років багато інших міжнародних, урядових і промислових груп внесили свій внесок у стандартизацію різних складових SQL, таких як інтерфейси програмування й об‘єктно-орієнтовані розширення. З часом багато з подібних ініціатив стали складовою частиною стандарту ANSI/ISO. Тому назва мови «мова структурованих запитів» не зовсім відповідає дійсності. По-перше, сьогодні SQL являє собою щось більше, ніж просто інструмент створення запитів, хоча саме для цього він і був спочатку розроблений. Незважаючи на те що вибірка даних як і раніше залишається однією з найбільш важливих функцій SQL. Зараз ця мова використовується для реалізації майже всіх функціональних можливостей, які СКБД надає користувачеві. До них відносяться:

· Організація даних. SQL надає користувачеві можливість змінювати структуру подання даних, а також встановлювати стосунки між елементами бази даних.

· Вибірка даних. SQL надає користувачеві або додатку можливість витягати з бази даних інформацію, що утримується в ній, і користуватися нею.

· Обробка даних. SQL надає користувачеві або додатку можливість змінювати базу даних, тобто додавати в неї нові дані, а також видаляти або обновляти вже наявні в ній дані.

· Керування доступом. За допомогою SQL можна обмежити можливості користувача по вибірці й зміні даних і захистити їх від несанкціонованого доступу



· Спільне використання даних. SQL координує спільне використання даних користувачами, що працюють паралельно, щоб вони не заважали один одному.

· Цілісність даних. SQL дозволяє забезпечити цілісність бази даних, захищаючи її від руйнування через неузгоджені зміни або відмову системи.

SQL - це не повноцінна комп'ютерна мова типу COBOL, С, C++ або Java. У ньому немає інструкції if для перевірки умов, немає інструкції goto для організації переходів і немає інструкцій DO або FOR для створення циклів SQL є підмовою баз даних, у який входить біля сорока інструкцій, призначених для керування базами дані інструкції SQL вбудовуються в базову мову, наприклад Pascal або С, і дають можливість одержувати доступ до баз даних. Крім того, з такої мови, як С, C++ або Java інструкції SQL можна посилати СКБД у явному виді, використовуючи інтерфейс викликів функцій.

Нарешті, SQL - це слабко структурована мова, особливо в порівнянні з такими високоструктурованими мовами, як С, Pascal або Java Інструкції SQL нагадують англійські речення й містять "порожні слова", що не впливають на зміст інструкції, але полегшують її читання. В SQL майже немає нелогічностей і до того ж є ряд спеціальних правил, що запобігають створенню інструкцій, які виглядають як абсолютно правильні, але не мають змісту.

Незважаючи на не зовсім точну назву, SQL на сьогоднішній день є єдиною стандартною мовою для роботи з реляційними базами даних.

Сам по собі SQL ні є системою керування базами даних, ні окремим програмним продуктом. SQL - це невід'ємна частина СКБД, інструмент, за допомогою якого здійснюється зв'язок користувача з нею. На рис. 5.1 зображена структурна схема типової СКБД, компоненти якої з'єднуються в єдине ціле за допомогою SQL.

Рис. 5.1. Компоненти типової СКБД

Оскільки стандарт SQL-92 має рекомендований характер (іншим він і не може бути), кожний із розробників СКБД в силу різних причин розробляли свої версії SQL, тобто кожна СКБД має свій діалект мови SQL. Так, СКБД Access має свою реалізацію SQL – Jet SQL. Він має деякі відмінності від SQL2. У даних матеріалах розглядається основна частина команд цього діалекту мови SQL. В СКБД Access вона реалізована як інтерпретатор, тобто виконується кожний оператор мови, ознакою закінчення якого є символ крапка з комою “;”. Усі оператори (команди) Jet SQL можна поділити на:

· оператори визначення даних або керуючі оператори (визначення і вилучення таблиць, полів, індексів) та модифікації даних (зміна структур таблиць, додавання, вилучення та модифікація полів й індексів). Цю групу операторів називають ще керуючими операторами;

· запити на селекцію (вибирання) даних;

· оператори керування даними.

До останніх відносяться оператори встановлення прав, привілеїв, фрагментації даних по серверах, розповсюдження оновлень, формування та управління транзакціями, тощо, але вони притаманні архітектурам „клієнт/сервер” і тому реалізовані в серверних СКБД. Тут розглядаються перші дві групи операторів.

Програма мовою SQL являє собою просту лінійну послідовність операторів мови SQL. Мова SQL у своєму «чистому» вигляді не має операторів керування порядком виконання запитів до БД (циклів, розгалужень, переходів).

Оператори мови SQL будуються із застосуванням:

· зарезервованих ключових слів;

· ідентифікаторів (імен) таблиць і стовпців таблиць;

· логічних, арифметичних і строкових виразів, використовуємих для формування критеріїв пошуку інформації в БД і для обчислення значень осередків результуючих таблиць;

· ідентифікаторів (імен) операцій і функцій, використовуємих у виразах.

Всі ключові слова, імена функцій й, як правило, імена таблиць і стовпців представляються 7-ми бітними символами ASCII (інакше кажучи - латинськими літерами).

У мові SQL не робиться відмінність між прописними (великими) і рядковими (маленькими) літерами, тобто, наприклад, рядок «SELECT», «Select», «select» являють собою те саме ключове слово.

Для конструювання імен таблиць й їхніх стовпців припустимо використовувати букви, цифри й знак «_» (підкреслення), але першим символом імені обов'язково повинна бути буква.

Заборонено використання ключових слів й імен функцій такі як ідентифікатори таблиць й імен стовпців. Повний список ключових слів й імен функцій (а він досить великий) можна знайти в документації на конкретну СКБД.

Оператор починається із ключового слова-дієслова (наприклад, «CREATE» - створити, «UPDATE» - обновити, «SELECT» - вибрати й т.п.) і закінчується знаком «;» (крапка з комою). Оператор записується у вільному форматі й може займати кілька рядків.

Припустимими роздільниками лексичних одиниць в операторі є:

· один або кілька пробілів,

· один або кілька символів табуляції,

· один або кілька символів «новий рядок».

На жаль, розроблювачі реальних СКБД неакуратно звертаються з вимогами стандартів мови SQL у частині коментарів. Тому коментарі при використанні в різних СКБД у текстах «програм» мовою SQL можуть позначатися такими способами:

· від подвійного мінуса («- -») до кінця рядка;

· від символу «#» до кінця рядка;

· між послідовностями «/*» й «*/» (стиль коментарів мови С).

 

 

5.2. Керуючі оператори мови Jet SQL

 

Як наводилося, усі оператори мови Jet SQL можна поділити на три категорії, з яких тут розглядаються дві, на які вони поділяються в залежності від того, чи здійснюють вони якись дії з фізично розташованими у зовнішній пам’яті таблицями БД, що приводять до змін їх структури або вмісту, чи вони здійснюють тільки пошук інформації в физичних та/або віртуальних таблицях, створюючі віртуальні таблиці, які можна:

· вивести на дисплей;

· використовувати для створення форм на дисплеї або звітів для друку;

· експортувати до інших програмних систем, що працюють з таблицями.

Першу групу операторів відносять до операторів дії (оператори Action), до яких відносяться:

CREATE TABLE – створити таблицю (визначити структуру таблиці).

CREATE INDEX – створити індекс, в т.ч. складений.

INSERT – вставити (додати) дані (рядок або рядки як бепосереднє у форматі команди, так й із іншої таблиці/запиту).

UPDATE - оновити дані (поля) в таблиці.

DELETE – видалити рядки із таблиці.

ALTER TABLE - змінити структуру таблиці (додати поле – ADD, видалити – DROP).

DROP TABLE - видалити таблицю(і).

DROP INDEX - видалити індекс.

SELECT ... INTO ... – створити таблицю під час запиту.

До другої групи відносяться оператори: вибірки (SELECT), об’єднання (UNION), створення віртуальної перехресної таблиці (TRANSFORM):

SELECT – вибірка або селекція даних з однієї або кількох физичних та/або віртуальних таблиць;

SELECT ... UNION SELECT ... – алгебраїчне об’єднання віртуальних таблиць, отриманих опціями SELECT;

TRANSFORM – створення віртуальних перехресних таблиць.

У даному розділі буде розглянуто тільки оператори (інструкції) першої групи. Інші оператори, у тому числі оператор першої групи „SELECT... INTO ...” будуть розглянуті в наступних розділах.

5.2.1. CREATE TABLE – cтворити таблицю

Сінтаксис команди:

CREATE TABLE <TableName>(<FieldName1> <FieldType> [(n<Length> [,m<Presition>] [NOT NULL]] [PRIMARY KEY|UNIQUE][, <FieldName2> <FieldType> [(nРозмір[,nТочність], … ] [, CONSTRAINT <ConstraintIndexName> PRIMARY KEY|UNIQUE] (<FieldNameN>[,<FieldName M>…]]);

де

<FieldType> – тип поля : Byte, Smallint (ціле число), Integer(довге ціле число), Long, Currency, Single (або Real), Double (або Float), Text, Date, Bit (або Logical для логічного типу), Memo, OLEobject;

NOT NULL – вказується якщо поле обов’язкове.

Приклад 1: CREATE TABLE DYSCYPL1 (KodDyscTEXT (5) PRIMARY KEY, NazvDyscTEXT (80) NOT NULL);

У режимі конструктора структуру цієї таблиці показано на рис. 5.2.

Рис. 5.2. Структура таблиці DYSCYPL1

 

Приклад 2: CREATE TABLE DSCPL2 (KdDscTEXT (5) PRIMARY KEY, NzvDscTEXT (80) NOT NULL);

Таблиці DYSCYPL1і DSCPL2хоч і мають різні назви атрибутів, але вони сумісні за своєю структурою, чим ми скористаємося у п. 5.2.9.

Приклад 3: CREATE TABLE VYKLADACH1 (KodVykl SMALLINT PRIMARY KEY, PrizvVykl TEXT (25), KodPost TEXT (2), NomKafBYTE);

 

У режимі конструктора структуру цієї таблиці показано на рис. 5.3.

Рис. 5.3. Структура таблиці VYKLADACH1

 

Приклад 4: CREATE TABLE ZAKR_DYSC (KodVyklINTEGER, PrizvVykl TEXT (25), PostVyklTEXT (25), KodDyscTEXT (5), NazvDyscTEXT (50), CONSTRAINT Zakr PRIMARY KEY (KodVykl, KodDysc) );

У режимі конструктора структуру цієї таблиці показано на рис. 5.4.

Рис. 5.4. Структура таблиці ZAKR_DYSC

Приклад 5: CREATE TABLE POSADA1 (KodPost TEXT (2) PRIMARY KEY, PostVyklTEXT (25), NormPostNUMBER NOT NULL);

У режимі конструктора структуру цієї таблиці показано на рис. 5.5.

Рис. 5.5. Структура таблиці POSADA1



<== предыдущая лекция | следующая лекция ==>
Вибір мови маніпулювання даними | CREATE INDEX – створити індекс


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.471 сек.