Основи мови sql. Оператор in. Віднімання, множення запитів.

Опис документу:
Мета: навчальна: ознайомитися з мовою SQL; визначити та розібрати, що є складним запитом, спробувати на практиці застосувати щойно набуті знання; розвиваюча: розвивати увагу, образну та словесно-логічну пам’ять, теоретично-понятійне та критичне мислення; виховна: виховувати складові інформатичної культури. Тип уроку: урок засвоєння нових знань.

Відображення документу є орієнтовним і призначене для ознайомлення із змістом, та може відрізнятися від вигляду завантаженого документу. Щоб завантажити документ, прогорніть сторінку до кінця

Перегляд
матеріалу
Отримати код

Клас 11 (профіль технічний)

Рівень програми з інформатики: профільний.

Урок №2/5

ТЕМА. ОСНОВИ МОВИ SQL. ОПЕРАТОР IN. ВІДНІМАННЯ, МНОЖЕННЯ ЗАПИТІВ.

Мета:

навчальна: ознайомитися з мовою SQL;  визначити та розібрати, що є складним запитом, спробувати на практиці застосувати щойно набуті знання;

розвиваюча: розвивати увагу, образну та словесно-логічну пам’ять, теоретично-понятійне та критичне мислення;

виховна: виховувати складові інформатичної культури.

Тип уроку: урок засвоєння нових знань.

План уроку

1. Організаційний момент. Актуалізація опорних знань (3 хв.)

2. Мотивація навчальної діяльності. (2 хв.)

3. Вивчення нового матеріалу. (25 хв.)

4. Дискусія на тему «Які зовнішні носії даних найнадійніші?» (10 хв.)

5. Перевірка первинного засвоєння знань. (3 хв.)

6. Підведення підсумків уроку. Повідомлення домашнього завдання. (2 хв.)

Хід уроку

  1. Організаційний момент. Актуалізація опорних знань (3 хв.)

  1. Згадаємо, що називається базою даних? ( База даних – це сукупність повідомлень (даних), поданих у вигляді впорядкованого набору елементів однакової структури та спеціальним чином організованих за певними правилами, що передбачають загальні принципи опису, зберігання і опрацювання даних).

  2. Які види баз даних ви знаєте? Чим вони характеризуються? (розрізняють фактографічні та документальні бази даних. У фактографічних базах даних містяться короткі відомості про об’єкт даних [база даних бібліотеки містить відомості: автор, назва, рік видання, видавництво тощо]; документальна база даних містить інформацію різного типу (текстову, графічну, звукову, мультимедійну)).

  3. Що таке СУБД (система управління базами даних)? (Це програмне забезпечення, призначене для створення баз даних, оновлення інформації, що зберігається в них, забезпечення зручного доступу до баз даних з метою перегляду і пошуку даних).

  4. Що таке запит? (Запити - це засіб обробки даних при розв'язанні тематичних, логічних, статистичних та технологічних інформаційних завдань. Запит - специфікація (припис) спеціальною мовою (мовою бази даних) для обробки даних).

2. Мотивація навчальної діяльності. (2 хв.)

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

У таких інформаційно-пошукових системах пошукові процедури стають потужнішими. За їх допомогою можна знаходити в базах даних відповіді на запити, виражені непрямо або навіть неявно.

  1. Вивчення нового матеріалу. (25 хв.)

База даних (БД) — впорядкований набір логічно взаємопов'язаних даних, що використовуються спільно, та зберігаються в одному місці. Якщо коротко, то найпростіша БД це звичайна таблиця з рядками та стовпцями у якій зберігається різного роду інформація (прикладом може слугувати таблиця в Excel). Так, часто, з БДнероздільно пов'язують Системи управління базами даних (СУБД), які надають функціонал для роботи з БД. Мова SQL якраз і є частиною СУБД, яка здійснює керування інформацією в БД. Ми будемо вважати БД набором звичайних таблиць, які зберігаються в окремих файлах.

Отже, переходимо до SQL.

SQL - проста мова програмування, яка має небагато команд і якій може навчитися будь-який бажаючий. Розшифровується як Structured Query Language - мова структурованих запитів, яка була розроблена для роботи з БД, а саме, щоб отримувати/добавляти/змінювати дані, мати можливість опрацьовувати великі масиви інформації та швидко отримувати структуровану та згруповану інформацію. Є багато варіантів мови SQL, але у них всіх основні команди майже однакові. Також існує і багато СУБД, але основними з них являються: Microsoft Access, Microsoft SQL Server, MySQL, Oracle SQL, IBM DB2 SQL, PostgreSQL та Sybase Adaptive Server SQL. Щоб працювати з SQL кодом, нам потрібна буде одна з вище перелічених СУБД. Для навчання ми будемо використовувати СУБД Microsoft Access.

SQL як і інші мови програмування має свої команди (оператори), за допомогою яких віддаються вказівки для вибірки даних. Щоб розглянути як працюють оператори SQL, ми будемо використовувати уявну БД з інформацією про реалізовану продукцію:

SQL-технологія реалізує наступні основні функції реляційних СУБД:

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

– доступ до даних - SQL забезпечує санкціонований доступ до даних клієнту;

– управління доступом - SQL забезпечує синхронізацію обробки бази даних різними прикладними програмами, захистом доступу від несанкційованого доступу;

– розділення даних - SQL координує роботу клієнтів, що одночасно виконують операції з БД;

– забезпечення цілосності даних, тобто використання SQL може забезпечити досить складні обмеження, задоволення яким буде перевірятися у випадках модифікації БД;

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

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

Сеанс SQL починається з вводу команди CONNECT, що виконує підключення користувача (клієнта) до БД. Формат команди наступний:

CONNECT <ім'я користувача>@<ім'я БД>

При підключенні користувача до БД буде автоматично надано запит на введення пароля користувача.

Завершення сеансу SQL здійснюється введенням команди DISCONNECT, введення якої відключить користувача від БД.

В SQL-технології підтримуються наступні типи даних:

– символьні - дані, що складають відповідні найменування із слів чи словосполучень, тобто текст;

=> числові - дані в числовому форматі, що придатні для проведення арифметичних операцій;

значення дати та часу- дата та час, що встановлені на внутрішньому годиннику комп 'ютера в принятих системою форматах. 

До символьних даних відносяться:

1) строки фіксованої довжини - це строки, довжина яких фіксована чи постійна. Для опису в БД строк фіксованої довжини використовується атрибут СНАRAСTER(п) або скорочено СНАR(n), den-фіксована довжина реквізиту;

2) строки змінної довжини - це строки, довжина яких є постійно різною, тобто плаваючою. Для визначення такої строки в стандарті SQL існує атрибут CHARACTER VARYING(n) абоскорочено VARCHAR(n), деп-максимальна довжина, що виділена для цього реквізиту. В СУБД Oracleвикористовується також; позначення VARCHAR2(n), що означає теж: саме.

До числових даних відносяться:

1) двоїчні числа - це числа, що можуть бути представлені з допомогою 0 та 1. Для їх опису в SQL існує атрибути ВІТ(п) ma BIT VAR YING(n), відповідно для фіксованої та змінної довжини;

2) десяткові числа - це числа в яких використовується десяткова розділова крапка. Для представлення десяткових чисел використовується атрибут DECIMAL(p,s), де р - точність, тобто загальна кількість знаків в числі, as-маштаб, тобто кількість знаків після десяткової крапки. Наприклад число 10251,025 може бути описане DECIMAL(8,3). Слід пам'ятати, що при введенні чисел, які перевищують формат опису, вони будуть округлятися, а також: формат задає максимально можливе число. Наприклад в останньому випадку не може бути введене число більше за 99999,999;

3) цілі числа - це додатні та від 'ємні числа, що не мають дробової частини. Для їх опису використовується атрибут INTEGER;

4) дійсні числа - це десяткові числа, що мають змінними точність та маштаб. Вони описуються атрибутами FLO А Т(п) або REA L (п).

В загальному випадку, згідно зі стандартом ANSI, всі числові значення можуть описуватись одним атрибутомNUMBER(n).

Значення дати та часу - можуть бути описані атрибутами DATE і TIME. Вони як правило вказуються без довжини, тобто значення передається автоматично за системними форматами.

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

мова визначення даних - Data Definition Language (DDL);

мова маніпуляції даними - Data Manipulation Language (DML);

мова запитів даних - Data Query Language (DQL);

мова управління даними - Data Control Language (DCL);

команди адміністрування даних;

команди управління транзакціями.

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

Розглянемо основні оператори мови визначення даних.

Одним із таких операторів є CREA ТЕTABLE, що призначений для створення таблиць в базі даних. Перед створенням таблиці необхідно визначитися з структурою таблиці, які типи даних будуть вводитись, як назвати таблицю та стовпці в ній, яку довжину мають стовпці тощо. Якщо вище перерахована інформація визначена, то створення таблиці виконується:

CREATE TABLE ім'я_таблиці

(ім'я реквізиту_1 тип_ланих(довжина) [not null], ім'я реквізиту_2 типланих(довжина) [not null], ім'я реквізиту_3 типланих(довжина) [not null],...);

З допомогою опції PRIMARY KEY можна призначати ключові реквізити. В прикладі ключовий реквізит NOMPD - номер платіжного доручення. В таблиці може бути задано і декілька ключів. З цією метою опція PRIMARY KEY вставляється в кінці опису стовпців з переліком імен ключових стовпців, наприклад PRIMARY KEY (NOMPD, DATE). Якщо є необхідність задати контроль стовпців на унікальність, тобто всі значення даних в цьому стовпці мають бути неповторними, то вказується опція UNIQUE. З допомогою опції NULL значення реквізиту контролюється на можливість пустого значення чи нуля. Відповідно в противному вказується NOT NULL.

Після створення таблиці її можна модифікувати з допомогою оператора AL TER ТАBLE, що дозволяє добавляти та видаляти стовпці, міняти визначення стовпців тощо. В загальному вигляді синтаксис оператора має формат:

ALTER TABLE ім'я таблиці [MODIFY] [COLUMN ім'я_стовпця] [тип_даних(довжина) | NULL NOT NULL]

[RESTRICT I CASCADE]

[DROP] [CONSTRAINT ім'я_обмеження]

[ADD] [COLUMN визначення_стовпця]

Наприклад, для зміни атрибутів стовпця MFOB таблиці PLATDOR, необхідно виконати оператор:

ALTER TABLE PLATDOR MODIFY (MFOB NUMBER(6));

Як бачимо після виконання оператора буде змінено тип даних стовпця MFOB з символьного CHAR(6) на числовий NUMBER(6). Аналогічно можна змінити довжину відповідних реквізитів.

З допомогою даного оператора можна добавляти нові стовпці в таблицю. Наприклад, щоб добавити в таблицю PLATDOR новий стовпець SLUGB - призвіще службовся, що провів операцію, необхідно виконати:

ALTER TABLEPLATDORADDCOLUMN(SLUGBVARCHAR2(20));

При видаленні таблиць необхідно перед іменем таблиці вказувати ім'я користувача. Видалятися може як вся таблиця разом з усіма посиланнями на інші таблиці так і окремі їїстовпці. Для видалення таблиці PLATDOR користувачем ADMIN необхідно виконати оператор:

DROP TABLE ADMIN.PLATDOR RESTRICT | CASCADE;

Опції RESTRICT - перевірка чи є на таблицю посилання (у випадку наявності оператором буде видана помилка) таCASCADE - видалення всіх посилань на таблицю не є обов'язковими.

Як ми вже визначили, для реляційних баз даних характерно встановлення відношень між доменами різних таблиць. З цією метою відповідні реквізити об'являються ключами. Якщо таблиці знаходяться в певних відношеннях, то виникає ситуація, коли дані стовпця залежної таблиці посилаються на ключ таблиці від якої залежать. В цьому випадку кажуть, що дані стовпця залежної таблиці створюють зовнішній ключ, а самі таблиці материнсько-дочірні відношення рис. 5

Рис. 5. Материнсько-дочірні відношення між: таблицями.

 

В даному випадку стовпець NMRA може бути призначений зовнішнім ключом дочірньої таблиці KLIENT_TBL. Цей зовнішній ключ посилається на стовпець NMRA з таблиці PLATDOR. Наявність зовнішнього ключа гарантує, при даному відношенні, що для кожного значення NMRA в таблиці KLIENT_TBL знайдеться відповідне значення NMRA в таблиці PLATDOR.

В стандарті SQL для створення зовнішнього ключа необхідно ввести оператор:

CREATE TABLE KLIENTTBL

(IDKOD CHAR(12) NOT NULL,

NAZVA VARCHAR(20) NOT NULL,

NMRA CHAR(14) NOT NULL,

SECEK CHAR(5) NULL,

ADRES CHAR(50) NULL,

KERIV CHAR(36) NULL,

CONSTRAINT NMRA_FK FOREIGN KEY (NMRA)

REFERENCESPLATDOR(NMRA));

Можна теж саме зробити дещо простіше, якщо таблиця KLI-ENT_TBL була створена раніше, наприклад:

ALTER TABLE KLIENT_TBL

ADD CONSTRAINT NMRA_FK FOREIGN KEY (NMRA)

REFERENCES PLATDOR (NMRA);

З допомогою SQL-технології можна задаватиумови для перевірки правильності даних, пошуку їх в базі даних тощо. Наприклад, якщо необхідно призначити умову перевірки значень стовпця MFOA, що дорівнює '315308', то необхідно виконати:

CREATE TABLE PLATDOR

(NOMPD

NUMBER(5)

NOT NULL PRIMARY KEY,

DATE

DATE

NOT NULL,

MFOA

CHAR(6)

NOT NULL,

NMRA

CHAR(14)

NOT NULL,

MFOB

CHAR(6)

NOT NULL,

NMRB

CHAR(14)

NOT NULL,

SUM

NUMBER(16)

NOT NULL,

PRIZ

CHARM 28)

NOT NULL),

CONSTRAINT CHK.MFOA CHECK (MFOA='315308');

Мова маніпулювання даними (DML) - це частина SQL, що надає користувачу БД можливість вводити реальні зміни в інформацію реляційної бази даних. З допомогою DML користувач може доповнювати таблиці новими даними, поновлювати існуючі дані та видаляти інформацію з БД. З цією метою в SQL є оператори INSER Т, UPDA ТЕ, DELETE.

Для введення нових даних в таблицю використовується оператор INSERT. В загальному вигляді оператор має формат:

INSERT INTO ім'я_схеми.ім'я_таблиці

УАШЕвСзначенняГ,'значенням,..., [NULL]);

Наприклад для введення нового запису в таблицю PLATDOR необхідно виконати оператор:

INSERT INTO PLATDOR

VALUES('25','30/ll/2004','315018','26001260254001',

'315405726004300145002735000.00',

'за послуги акт №025 від 29.11.2004');

Якщо інформацію потрібно ввести в певні стовпці, як наприлад в IDKOD, NMRA, NAZVA таблиці KLIENT_TBL, необхідно виконати оператор:

INSERT INTO KLIENT_TBL(IDKOD, NMRA, NAZVA)

УАШЕ8('1273201145726005802450001','ВАТУкртелеком');

Для оновлення даних в таблиці використовується оператор UPDA ТЕ, що не вводить та не видаляє записи, а лише змінює існуючі на нові. В загальному вигляді для зміни даних одного стовпця виконується оператор:

UPDATE ім'я_таблиці

SET ім'я_стовпця = 'значення'

[WHERE умова];

Наприклад для заміни значення MFOB на315816в таблиці PLATDOR, якщо значення NOMPD = 25, необхідно виконати оператор:

UPDATE PLATDOR

SET MFOB = '315816'

WHERE NOMPD = 25

Для видалення даних з таблиць використовується оператор DELETE, що в загальному вигляді має формат:

DELETE FROM ім'я_схеми.ім'я_таблиці

[WHERE умова];

Слід зазначити, що якщо оператори виконуються без опції WHERE, то в таблиці всі рядки будуть видалені чи навпаки замінені на однакові.

 Мова запитів даних - це складова частина SQL, що надає користувачу можливість вилучати інформацію з БД у зручному для нього вигляді. У стандарті SQL запити реалізовуються з допомогою оператора SELECT, що не використовується сам по собі, а потребує використання додаткових параметрів та ключових слів. Такими ключовими словами є обов'язкове слово FROM та необов'язкові WHERE і ORDERBY. В загальному випадку оператор SELECT має наступний формат:

SELECT [ * | ALL | DISTINCT стовпець 1,стовпець2,...]

FROM таблицяі [таблиця2,...];

В даному випадку '*' - означає, що в результаті запита будуть показані всі стовпці таблиці. Опція ALLвикористовується для того, щоб показати дані в стовпці всі, навіть ті які повторяються. На відміну від ALLопція DISTINCT дозволяє показувати в стовпці лише дані, які не повторяються. За ключовим словом SELECT слідує перелік стовпців, які користувач хоче бачити, а за словом FROM перелік таблиць з яких вказані дані будуть вилучатись.

Для прикладу розглянемо дані таблиці PLATDOR, що показані на рис.3. Оператором SELECT* FROMPLATDOR; з даної таблиці будуть вибрані та показані всі стовпці вказаної таблиці, тобто таблиця буде виведена повністю як на рис.3. Якщо виконати оператор SELECT MFOB FROM PLATDOR; то буде виведено лише один стовпець, що відповідає МФО банка отримувача. Опцію ALL в даному випадку вказувати немає сенсу, тому що вона діє по умовчуванню. Однак, якщо вказати в операторі опцію DISTINCT, як наприклад: SELECT DISTINCT MFOB FROM PLATDOR; то буде виведено стовпець 315018,300001,815013,315405, тобто 315018 лишеодин раз.

Оператор SELECT може виконуватись із заданою умовою, тобто частиною запиту, що несе інформацію про метод відбору даних із БД. В загальному випадку оператор має формат:

SELECT [ALL | * | DISTINCT стовпець 1,стовпець2,...]

FROM таблиця 1,[таблиця2]

WHERE [умоваї | виразі]

[AND умова2 | вираз2];

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

SELECT* FROM PLATDOR WHERE SUM > 35000;

Результатом його виконання буде два перших рядки з таблиці на рис.3.

Впорядкування даних можна проводити з допомогою оператора SELECT з ключовим словом ORDER BY. В загальному випадку оператор має формат:

SELECT [ALL | * | DISTINCT стовпець 1,стовпець2,...]

FROM таблиця 1, [таблиця2 ]

WHERE [умоваї | виразі]

[AND умова2 | вираз2]

[AND умова2 | вираз2]

ORDER BY стовпецьі | ціле_значення [ASC|DESC];

Опція ASC визначає порядок впорядкування даних за зростанням і може бути опущена тому що діє по умовчуванню. Відповідно опція DESC визначає порядок впорядкування по спаданню даних. Наприклад для впорядкування таблиці PLATDOR по спаданню стовпця NOMPD необхідно виконати оператор:

SELECT * FROM PLATDOR ORDER BY NOMPD DESC;

Очевидно, що результатом виконання даного оператора буде таблиця на рис.3 представлена навпаки, на першому місці буде останій рядок, а відповідно перший на останньому. В ORDER BY може вживатися номер стовпця, наприклад ORDER BY I DESC, де 1-й стовпець-це NOMPD.

З допомогою оператора SELECT та функції COUNT можна підрахувати кількість записів в таблиці. В загальному вигляді оператор має формат:

SELECT COUNT(*) FROM ім'я_таблиці;

Аналогічно можна підрахувати кількість значень в стовпцях:

SELECT СОШТ(ім'я_стовпця) FROM ім'я_таблиці;

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

> операції порівняння;

> логічні операції;

> арифметичні операції.

До операцій порівняння належать рівність - ( = ), нерівність -(<>), більше - ( >) та менше - (<). В деяких реалізаціях SQL нерівність позначається (!=) замість (<> ).

Операція рівності в SQL призначена для визначення рівності одного значення іншому. Наприклад, якщо потрібно знайти в таблиці платіжних доручень документ сума за яким рівна 36000, то це можна реалізувати оператором:

SELECT * FROM PLATDOR WHERE SUM = 36000;

Як бачимо, результатом виконання даного запиту буде документ за № 326. Аналогічно у випадку нерівності, оператором

SELECT * FROM PLATDOR WHERE SUM <> 36000;

буде отримано всі документи окрім платіжного доручення за № 326.

Логічні операції надаються ключовими словами:

IS NULL - використовується для перевірки рівності даного значення значенню NULL. Наприклад, якщо необхідно знайти документ в таблиці PLATDOR сума якого відповідає NULL, то необхідно виконати оператор: SELECT * FROM PLATDOR WHERE SUM = NULL; Результатом його роботи буде 0 документів, тому що немає в таблиці таких значень суми документа;

BETWEEN - використовується для пошуку значень, що попадають в діапазон від мінімального до максимального. Наприклад, якщо потрібно знайти всі платіжні доручення сума яких більша за 10000, але менша за 20000, то необхідно виконати оператор: SELECT * FROM PLATDOR WHERE SUM BETWEEN 10000 AND 20000;

IN - використовується для порівняння вказаного значення із заданим конкретним списком значень. Наприклад для пошуку документів за номерами 326,328,329 необхідно виконати оператор:

SELECT * FROM PLATDOR

WHERE NOMPD IN ('326','328','329');

LIKE - використовується для пошуку значень, що похожі на заданий контекст. Наприклад оператором: SELECT * FROM PLATDOR WHERE MFOB = '315%'; будуть виведені документи банк отримувача в яких починається з '315', тобто вибір банків Хмельницької області. Знак (%) використовується для представлення певної кількості символів від нуля до максимальної довжини реквізиту. Знак (_) означає один символ або число.

AND - логічне І (кон'юнкція) забезпечує зв'язок логічним І двох умов у ключовому слові WHERE.

OR - логічне АБО (диз'юнкція) забезпечує зв'язок логічним АБО двох умов у ключовому слові WHERE.

NOT - логічне заперечення НЕ надає всім атрибутам з якими вживається протилежного значення.

Арифметичні операції призначені для виконання елементарних арифметичних дій: додавання - (+), віднімання - (-), множення - (*) та ділення - (/). Арифметичні операції задаються оператором SELECT, що у загальному випадку має формат:

SELECT (стовпецьі + стовпець2 - стовпецьЗ) * стовпець5

FROM ім'я_таблиці;

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

COUNT - призначена для підрахунку кількості рядків в таблиці чи значень даних в стовпці відмінних від NULL. В загальному вигляді оператор функції має формат: COUNT [ (* ) | (DISTINCT | ALL) ] ( ім'я_стовпця)

SUM - використовується для підрахунку суми значень в стовпці.

Формат оператора функції наступний: SUM ([ DISTINCT ] ім'я_стовп-ця);

МАХ - призначена для визначення максимального значення вказаної групи рядків. В загальному випадку оператор має формат: МАХ ([ DISTINCT ] ім'я_стовпця);

MIN - призначена для визначення мінімального значення вказаної групи рядків. В загальному випадку оператор має формат: MIN ([ DISTINCT ] ім'я_стовпця);

AVG - використовується для підрахунку середнього арифметичного значення заданої сукупності рядків таблиці.В загальному випадку оператор має формат: AVG ([ DISTINCT ] ім'я_стовпця).

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

CONCATENATION - конкатенація, тобто об'єднання декількох строк в одну. В загальному випадку функція має формат: ім'я_строки1 П ім'я_строки2 абоім'я_строки1 + ім'я_строки2

TRANSLATE - заміняє символи в строці на вказані. Оператор має формат: TRANSLATE ( множина_строк, значення 1, значення2) де значення 1 вказує, що замінити, а значення2 на що замінити;

UPPER - призначена для переводу даних з регістра нижнього на верхній і має формат UPPER(строка_символів);

LOWER - призначена для переводу даних з регістра верхнього на нижній і має формат LOWER(строка_символів);

SUBSTR - використовується для виділення підстроки символів зі строки за вказаними позиціями. В загальному вигляді має формат: SUBSTR (ім'я_стовпця, початкова_позиція, довжина);

INSTR - призначена для пошуку заданого контексту символів в строці тексту і повертає позицію, починаючи з якої даний контекст зустрівся. Функція має формат: INSTR (ім'я_строки, 'контекст');

LENGTH - визначає довжину вказаної строки і має формат: LENGTH (ім'я_строки).

До математичних функцій відноситься:

ABS - абсолютне значення числа

SQRT - корінь квадратний

POWER - піднесення до степеня

ЕХР - експонента

ROUND - округлення

SIGN - знак числа

FLOOR - ціла частина числа

SIN, COS, TAN - тригонометричні функції

Математичні функції призначені для визначення значень деяких математичних величин, що зустрічаються в процесі алгоритмів обчислень і мають формат: ФУНКЦІЯ (ВИРАЗ).

З метою проведення прискореного пошуку даних у базі даних використовуються індекси. Індекс - це адресний вказівник на дані в таблиці. Аналогом його може бути предметний вказівник книги, тобто коли основні поняття, терміни, назви, тощо розміщуються в алфавітному порядку і навпроти кожного проставляється сторінка де це поняття описується, визначається чи просто упоминається. Очевидно, що пошук термінології в такому випадку буде здійснюватись шляхом пошуку потрібного терміну, визначення на яких сторінках він зустрічається, знаходження даних сторінок та їх опрацювання. Це буде набагато швидше ніж послідовно листата книгу та вибирати вказані терміни.

В SQL можна проводити індексування за стовпцями. При створенні індекса таблиці в нього заноситься інформація про розміщення даних в стовпці по якому проводиться індексування. Якщо вказане значення в індексі буде знайдено, то індекс швидко надасть адресу, тобто точне місцезнаходження даних в таблиці рис. 6.

В SQL для пошуку даних в стовпці MFOB, а саме він приведений на рис.6, необхідно виконати запит:

SELECT * FROM PLATDOR WHERE MFOB='315308';

Рис. 6. Схема доступу до даних з допомогою індекса.

Зрозуміло, що якщо індекс створено не було, то пошук буде здійснюватись послідовно по всій таблиці. У випадку створення індекса це буде швидко як на рис.5.11, тобто бачимо, що індекс впорядковано за зростаннями МФО банків, тому знайдений він буде відразу і передано управління за адресою де знаходяться дані в таблиці.

Для створення індекса в загальному випадку необхідно виконати оператор:

CREATE INDEX ім'я_індекса

ON ім'я_таблиці (ім'я_стовпця);

Розрізняють ^прості, ^складні та ^унікальні індекси.

ФПростий індекс - це індекс, що створюється за даними одного стовпця таблиці.

0 Складний індекс - це індекс, що створюється за даними декількох стовпців таблиці.

0 Унікальний індекс - це індекс, що використовується як для швидкого пошуку даних так і для контролю їх цілісності.

Унікальний індекс не дозволяє вводити в таблицю дані, що повторюються. В загальному випадку формат оператора для створення унікального індекса наступний:

CREATE UNIQUE INDEX ім'я_індекса

ON ім'я_таблиці (ім'я_стовпця);

Слід зазначити, що створення індексів має сенс у випадках:

- використання зовнішніх ключів, як елемента зв язування двох таблиць;

для стовпців, що часто використовуються у виразах ключових слів ORDER BY та GROUP BY;

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

Оператор IN дозволяє визначити список значень або введений явним чином, або за допомогою подзапроса і порівняти якесь значення з цим списком в реченні WHERE або HAVING. Іншими словами, ви можете запитати: «Є значення А в цьому списку значень?»

Синтаксис SQL 2003

{WHERE | HAVING | {AND | OR} } значення [NOT] IN ({сравнит_знач1, сравнит_знач2 [, ...] | підзапит })

Ключові слова

{WHERE HAVING (AND | OR} } значення

Дозволяється використовувати або з пропозицією WHERE, або з пропозицією HAVING.

Порівняння, що входить до речення IN, -також може використовуватися в реченні AND або OR пропозицій WHERE або HAVING з кількома умовами. Параметр значення може ставитися до будь-якого типу даних, але зазвичай являє собою ім'я стовпця, на який посилається транзакція, або, можливо, хост-змінну, якщо значення використовується програмно.
NOT
Додаткове речення, яке змушує складати результуючий набір значень, що не входять в список.

IN ({вычисляемое_знач1, вычисляемое_знач2 [, ...] | підзапит})

Визначається перелік порівняльних значень, за якими буде проводитися порівняння. Кожне порівняльне значення має належати до того або сумісного типу, що і початкове значення. Ці значення підпорядковуються стандартними правилами для типів даних. Наприклад, рядкові значення повинні бути укладені в лапки, а цілочисельні значення не мають. В якості альтернативи вказівкою конкретних значень ви можете написати в дужках підзапит, який повертає одне або кілька значень сумісного типу даних.
У наступному прикладі для SQL Server ми шукаємо в таблиці employee бази даних HR всіх службовців, які живуть в штатах Джорджія, Теннессі, Алабама або Кентуккі.

SELECT *
FROM hr..employee

WHERE home_state IN (' AL', 'GA', 'TN', 'K')

Також ми можемо знайти в таблиці employee бази даних HR всіх службовців, які згадуються в

якості авторів у базі даних PUBS.

SELECT *
FROM nr., employee

WHERE emp_id IN (SELECT au_id FROM pubs..authors)

Ви також можете використовувати ключове слово NOT для створення результуючого набору на основі відсутності якогось значення. У наступному прикладі штаб-квартира компанії знаходиться в Нью-Йорку, і багато співробітники приїжджають із сусідніх штатів. Ми хочемо побачити всіх таких співробітників.

SELECT *
FROM hr..employee WHERE home_state

NOT IN ('NY', 'NJ', 'MA', 'CT', 'RI', 'DE', 'NH')

Зверніть увагу, що Oracle, повністю підтримуючи функціональність стандарту ANSI, розширює можливості оператора IN, дозволяючи порівнювати декілька аргументів. Наприклад, у Oracle допустимо використання наступної інструкції SELECT... WHERE IN.

SELECT *

FROM hr..employee e

WHERE (e.emp_id, e.emp_dept) IN

((242, 'sales'), (442, 'mfg'), (747, 'mkt) )

Дивіться також:

ALL/ ANY/SOME

BETWEEN

EXISTS
LIKE
SELECT
SOME/ANY

4. Перевірка первинного засвоєння знань. (3 хв.)

6. Підведення підсумків уроку. Повідомлення домашнього завдання. (2 хв.)

Зверніть увагу, свідоцтва знаходяться в Вашому особистому кабінеті в розділі «Досягнення»