7598

Мова SQL. Загальна характеристика

Лекция

Информатика, кибернетика и программирование

Мова SQL Загальна характеристика. Як уже було сказано вище, обробка об’єктів БД виконуються мовою SQL, яка має певний набір команд. Команди SQL завжди починаються з дії (verb) - слова або групи слів, що описують задану операцію. Крім того,...

Украинкский

2013-01-26

116 KB

20 чел.

Мова SQL

Загальна характеристика. Як уже було сказано вище, обробка об’єктів БД виконуються мовою SQL, яка має певний набір команд. Команди SQL завжди починаються з дії (verb) – слова або групи слів, що описують задану операцію. Крім того, команда SQL може містити одну або декілька секцій, які уточнюють її сенс. Основні команди SQL перелічені в таблиці 3.1.

        Таблица 3.1 – Окремі команди PostgreSQL

Команда

Опис команди

CREATE 

Створення об’єкта бази даних

SELECT

Вибірка записів з таблиці

INSERT 

Вставка одного або декількох нових записів у таблицю

UPDATE 

Модифікація даних у записах

DELETE 

Видалення записів з таблиці

DROP 

Знищення об’єкта бази даних

ALTER 

Модифікація об’єкта бази даних

GRANT 

Надання користувачу прав доступу до об’єкта БД

REVOKE 

Позбавлення прав доступу до об’єкта БД

        PostgreSQL має цілий ряд розширень мови SQL, вони такі:

  •  збережені процедури; 
  •  тригери; 
  •  правила (rules); 
  •  агрегатні функції, задані користувачем;
  •  вбудовані мови програмування; 
  •  оператори, створені користувачем; 
  •  генератори числових послідовностей, задані користувачем; 
  •  нові типи даних, задані користувачем. 

        Наприкінці команди мовою SQL обов’язково ставиться крапка з комою.

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

        Кожна лексема може бути ключовим словом, ідентифікатором, захищеним ідентифікатором, константою або одним із спеціальних символів. До категорії ключових належать слова, які мають заздалегідь певний сенс у контексті SQL або PostgreSQL, це дії, секції, імена функцій і деякі необов’язкові складники команд SQL, наприклад, слово WORK у команді COMMIT. Ідентифікаторами позначаються імена змінних, таблиць, полів та інших об’єктів.

        Команди SQL можуть містити спеціальні символи. До них належать зарезервовані символи, вони впливають на зміст і розташування ключових слів, ідентифікаторів і літералів. До категорії спеціальних символів також належать і оператори, які використовуються в логічних та математичних виразах. Спеціальні символи можна розглядати як свого роду розділові знаки в командах SQL. Лексеми можуть знаходитися в одному або декількох рядках, оскільки модуль лексичного розбору PostgreSQL ігнорує зайві пробіли.

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

        Таблиця 3.2 – Спеціальні символи

Символ

Опис

* (зірочка)

Вибірка всіх полів таблиці командою SELECT, а також підрахунок всіх записів агрегатною функцією count()

( )  (круглі дужки)

Групування виразів, зміна пріоритету операторів, виклик функцій

 [ ]  (квадратні дужки)

Вибірка конкретного элемента масиву або оголошення типу массиву (наприклад, у команді CREATE TABLE)

; (крапка з комою)

Ознака завершення команди SQL. Всередині команди може вживатися в строковых константах і захищених ідентифікаторах

, (кома)

Розділювач елементів у списку

. (крапка)

Десяткова крапка у десяткових константах

: (двокрапка)

Позначення зрізу (slices) у масивах

$ (знак доллара)

Позначення позиційного параметра в визначенні функції

         Для забезпечення “читабельності” команда може містити однорядковий коментар, який починається знаком – – (два мінуси), та взятий у знаки /* та */ (у стилі мови С).

        Літерна константа (строка символів) являє собою довільну послідовність символів, вкладену у апострофи. Строкові константи часто використовуються при вставці нових даних у таблицю і при передачі символьної інформації іншим об’єктам бази даних. Якщо в самій послідовності символів зустрічається апостроф, то слід поставити два апострофи підряд. Модуль лексичного аналізу сприймає подвоєний апостроф у рядковій константі як один апостроф-літерал, наприклад, видача слів “Обєкт БД” виглядатиме так:

SELECT Об’’єкт БД’ AS example;

  example

---------------- 

 Обєкт БД

        PostgreSQL також дозволяє екранувати апострофи зворотною косою рискою, в стилі мови С, наприклад, так:

SELECT 'Об\’єкт БД' AS example;

        Бітові послідовності призначені для представлення двійкових величин у вигляді довільної послідовності нулів та одиниць. Вони звичайно потрібні лише під час роботи з двійковими функціями і таблицями, що містять двійкові дані. Як і строкові константи, бітові послідовності беруться в апострофи, але починаються вони з обов’язкового префікса В (верхнього або нижнього регістру), наприклад, так: B'00000000'.

        Цілочисловою константою вважається будь-яка лексема, яка складається з цифр (без десяткової крапки) і не взята в апострофи. Інтервал допустимих значень цілочислових констант у PostgreSQL за замовчуванням представляється чотирма байтами як цілочисловий тип і приймає значення з інтервалу від -2 147 483 648 до 2 147 483 647.

        Дійсні константи використовуються для задавання величин з дробовою частиною.

        Логічні (булеві) константи приймають лише два допустимі значення: true і false, не укладені в апострофи.

        Константою можна назвати й псевдозначення NULL, яке означає відсутність значень.

        Типи даних. Кожне поле таблиці характеризується певним типом даних, найбільш вживані типи перелічені в таблиці 3.3.  

        Таблиця 3.3 – Типи даних

Тип

Стандарт

Коментар

bool, boolean

SQL99

Логічний (true/false)

bit(n)

SQL92

Бітова послідовність довжиною n біт

character

SQL89

Рядок символів довжиною один символ

char(n), character (n)

SQL89

Рядок фіксованої довжини, рівно n символів

varchar(n)

SQL92

Рядок змінної довжини до n символів

text

PostgreSQL

Текст необмеженої довжини

float4, real 

SQL89

4- байтове дійсне число

float8, float 

SQL89

8-байтове дійсне число

int2, smallint 

SQL89

2-байтовое знакове ціле

int, int4, integer 

SQL92

4-байтове знакове ціле

int8, bigint

PostgreSQL

8-байтове знакове ціле, до 18 цифр 

date

SQL92

Календарна дата (день, місяць, рік)

time

SQL92

Час дня

interval

SQL92

Проміжок часу

timestamp

SQL92

Дата i час 

time with time zone

SQL92

Час дня з врахуванням зони

line

PostgreSQL

Лінія в одній площині (2D)

circle

PostgreSQL

Коло в одній плосколсти (2D)

lseg

PostgreSQL

Відрізок в одній площині (2D)

box 

PostgreSQL

Прямокутник в одній площині (2D)

point

PostgreSQL

Геометрична точка в одній площині (2D)

polygon

PostgreSQL

Закритий багатокутник в одній площині (2D)

inet

PostgreSQL

IP-адреса в формате IPv4

cidr

PostgreSQL

Ідентифікатор об’єкта (запису)

        Хоча PostgreSQL, як бачимо, має досить широкий спектр вбудованих типів даних,  але користувач може також утворювати власні типи командою CREATE TYPE.  

        Створення таблиці, точніше її макета, структури забезпечує команда CREATE TABLE. Її власником є користувач, який виконав цю команду.  

        Рекомендується всі таблиці виготовляти під час створення самої бази даних, внесення нових таблиць у діючу БД є небажаним, бо через це змінюється її структура. Такий крок може бути оправданим хіба що на стадії розробки або налагодження БД, коли виникають труднощі з визначенням її структури. До діючої БД таблицю найчастіше додають з метою зберігання проміжних, тимчасових даних.

        Команда CREATE TABLE має такий загальний вигляд:

CREATE [ TEMPORARY | TEMP ] TABLE імя_таблиці (

{ ім’я_поля тип [ обмеження_поля [...] ] | обмеження таблиці } )

[ INHERITS ( базова_таблиця [ , ... ] ) ]

        Параметри команди:

  1.  TEMPORARY | TEMP. Ознака тимчасової таблиці. Таблиця, створена з ключовим словом TEMPORARY або TEMP, автоматично знищується наприкінці поточного сеансу Всі конструкції рівня таблиці (наприклад, індекси і обмеження) знищуються наприкінці сеансу разом з таблицею. Якщо ім’я тимчасової таблиці співпадає з ім’ям існуючої таблиці, то всі посилання на таблицю з цим ім’ям впродовж сеансу відноситимуться до тимчасової таблиці. Іноді це викликає проблеми, оскільки тимчасова таблиця побічно заміщає існуючу таблицю в контексті поточного сеансу до моменту її знищення.
  2.  таблиця. Ім’я створюваної таблиці, позначається ідентифікатором.
  3.  поле. Ім’я поля в новій таблиці, позначається ідентифікатором. Імена полів перераховуються в круглих дужках і розділяються комами.
  4.  тип. Відразу ж після імені користувача задається його тип – стандартний тип або масив одного із стандартних типів.
  5.  обмеження_поля.
  6.  базова_таблиця. Ім’я таблиці, від якої нова таблиця успадковує поля. Якщо імена успадкованих полів збігаються з іменами полів, раніше включених в структуру таблиці, PostgreSQL видає повідомлення про помилку і перериває виконання команди.

        У визначенні нової таблиці перераховуються всі імена і типи полів (крім полів, успадкованих від базової таблиці). Ім’я таблиці може мати довжину до 31 символа і автоматично перетвориться до нижнього регістра, якщо воно не взято в лапки. Імена таблиць не можуть збігатися з іменами існуючих типів даних і таблиць системного каталога, а також починатися з префікса pg_, зарезервованого для системних таблиць.

        Поле може мати стандартний тип даних (наприклад, integer, character) або містити масив (описується стандартним типом даних з квадратними дужками, наприклад, float[]). Максимальна кількість полів таблиці дорівнює приблизно 1600. З урахуванням проблем,

        Приклад, створити таблицю gazpr, яка має 4 поля: kod_g типу INTEGER, naz_g типу CHARACTER(50), kil_n типу INTEGER та diam типу INTEGER:

CREATE TABLE gazpr(kod_g INTEGER, naz_g CHARACTER(50), kil_n INTEGER, diam INTEGER);

        Вставка нових даних у таблицю виконуєтья командою INSERT, яка виглядає так:

INSERT INTO ім’я_таблиці [(перелік_імен_попів)] VALUES (перелік_значень)

        Тип кожного значення в секції VALUES повинен відповідати типу поля, якому воно присвоюється. Якщо необов’язковий список полів відсутній, то PostgreSQL припускає, що секція VALUES містить значення всіх полів таблиці в порядку їх визначення. Якщо кількість значень менше кількості полів, PostgreSQL намагається використовувати значення за замовчуванням (або NULL при його відсутності) для кожного пропущеного елемента.

     Таблиця Gazpr має містити контрольні дані. Ними, як правило, користуються на етапі налагодження програм. До контрольних даних ставляться певні вимоги. По-перше, вони не повинні бути громіздкими та багаточисленними, трудними для ручних обчислень, які виконуються паралельно з програмними і служать для перевірки правильності алгоритму. По-друге, ці дані повинні забезпечувати всі режими роботи програми та охоплювати всі діапазони зміни параметрів, які нею обробляються.

        У нижченаведеному прикладі створюється новий запис таблиці gazpr:

 

INSERT INTO gazpr(kod_g, naz_g, kil_n, diam) VALUES (1, 'Україна', 8, 1400);

        Якщо додаються значення всіх полів (як у цьому прикладі і це – найбільш поширений випадок), то перелік полів може бути опущений. Додамо, наприклад, запис у таблицю oblik, яка має 4 поля: kod_g, kod_p, kilk i data, за допомогою такої команди:

INSERT INTO oblik VALUES (3, 2, 3, '31.07.2012');

        Імена полів у списку можна переставити, але тоді повинен змінитися й відповідний їм порядок значень у секції VALUES.

        Нижче подані копії таблиць БД gazoprovid з контрольними даними.

        Таблиця gazpr:

kod_g,

integer

naz_g,

character(50)

kil_n,

integer

diam,

integer

1

Україна                                     

8

1400

2

Єлецьк-Орел                              

8

1800

3

Уренгой-Помари-Ужгород      

6

1800

4

Гадяч-Париж                           

7

1500

5

Гадяч-держкордон                   

2

 800

       

        Таблиця pidpr:

kod_p,

integer

naz_p,

character(50)

misto,

character(30)

1

Київтрансгаз

Київ

2

Гадячгазпром

Полтава

3

Львівгазпром

Львів

4

Прикарпаттрансгаз

Галич

        Таблиця oblik:

kod_g,

integer

kod_p,

integer

kilk,

real

data,

date

1

2

3

2010-06-12

2

2

5

2011-06-12

3

2

3

2012-07-31

4

2

5

2011-09-21

2

3

4

2012-06-13

9

4

2

2009-10-25

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

 


 

А также другие работы, которые могут Вас заинтересовать

33694. ПОНЯТИЕ И ЗНАЧЕНИЕ КРИМИНАЛИСТИЧЕСКОЙ ХАРАКТЕРИСТИКИ ПРЕСТУПЛЕНИЙ 12.1 KB
  Своеобразие криминалистической характеристики преступлений определяется двумя моментами: 1 особенностями отражаемой в ней реалии и ее признаков; 2 спецификой целей подобного отражения. Два других уровня символизируют одну общую для них но отличающуюся от предыдущей систему координат рассмотрение криминалистической характеристики преступлений в ее обобщенном типовом варианте. С этой точки зрения криминалистическая характеристика преступлений может быть представлена в качестве типовой информационной модели которая отражает типичные с...
33695. ПОНЯТИЕ И КЛАССИФИКАЦИЯ ЧАСТНЫХ МЕТОДИК РАССЛЕДОВАНИЯ 12.36 KB
  Классификация частных методик: 1 по объему: а полные разрабатываются для всего процесса расследования какоголибо вида преступлений; б сокращенные методические рекомендации для какоголибо одного этапа расследования; 2 в зависимости от отношения к уголовному закону: а типичные методики построенные в зависимости от вида преступлений; б особенные методики где в качестве оснований могут быть место совершения преступления личность преступника или потерпевшего например расследование преступлений на водном или воздушном...
33696. Криминалистическая характеристика краж 24.5 KB
  Чаще всего совершаются кражи из квартир дач гаражей и других помещений принадлежащих гражданам кражи личных вещей на вокзалах и в поездах карманные кражи на рынках в магазинах в городском транспорте а также на улицах. В последние годы распространенными стали кражи урожая с полей и садовых участков. Нередко совершаются также кражи из магазинов со складов и других мест хранения или сбыта материальных ценностей.
33697. Отдельные элементы криминалистической характеристики 12.12 KB
  Отдельные элементы криминалистической характеристики: кража государственного и общественного имущества: кражи совершаемые путём свободного доступа кражи из охраняемых объектов кражи личного имущества: из квартир и личных домовладений из гостиниц общежитий дач из подсобных помещений из автомобилей у пассажиров кражи из карманов кражи временно оставленного неохраняемого имущества. Подготовка кражи: подбор конкретного объекта посягательства выявление лица имеющего ценности места нахождения имущества: выявление квартир в которых...
33698. Дела о карманных кражах 14.9 KB
  К числу обстоятельств подлежащих установлению при расследовании краж относятся: 1 имела ли место кража; 2 время место и условия ее совершения; 3 предмет кражи что похищено преступником его стоимость признаки; 4 кому принадлежало похищенное; 5 способ совершения кражи; 6 субъект кражи кем она совершена; 7 не совершена ли кража преступной группой если да степень виновности каждого участника группы; 8 место время и способ сбыта краденого; 9 обстоятельства смягчающие или отягчающие ответственность виновных; 10 причины и...
33699. Разбои и грабежи 14.7 KB
  Кроме того разбои и грабежи часто совершаются группами на базе которых складываются особо опасные преступные формирования совершающие бандитские нападения вымогательство и т. Грабежи и разбойные нападения направленные на завладение государственным имуществом или имуществом коммерческих структур на хранилища денежных средств. Среди способов разбоев и грабежей можно выделить следующие 1 нападения на открытой местности либо в помещении совершаемые с использованием фактора внезапности без применения насилия рывки сумок шапок денег у...
33700. Криминалистическая характеристика преступлений 11.16 KB
  Открытый характер и дерзость совершения этих преступлений то впечатление которое они производят на потерпевших и очевидцев обусловливают значительный общественный резонанс чему способствует и относительно низкая раскрываемость грабежей и разбоев подчас групповой характер этих преступлений.
33701. КРИМИНАЛИСТИЧЕСКАЯ ХАРАКТЕРИСТИКА МОШЕННИЧЕСТВА 12.34 KB
  При мошенничестве подлежат установлению следующие обстоятельства:1имело ли место мошенничество; 2 место время условия способ совершения мошенничества; кто был очевидцем преступления; 3 наличие преступного умысла; 4 предмет мошенничества какая сумма денег была незаконно получена мошенником; 5 объект посягательства государственная или общественная организация коммерческая структура частное лицо; 6 данные о личности преступника место работы трудовая характеристика...
33702. КРИМИНАЛИСТИЧЕСКАЯ ХАРАКТЕРИСТИКА УБИЙСТВ 12.38 KB
  В зависимости от объема и характера первичной информации имеющейся в распоряжении следователя на момент возбуждения уголовного дела все убийства могут быть разделены на две группы: 1так называемые очевидные убийства факт совершения которых не вызывает сомнения и к началу расследования которых известно лицо совершившее это преступление; 2убийства совершенные в условиях неочевидности. Обстоятельства подлежащие доказыванию по делам об убийствах: 1 факт убийства; 2 место время и способ...