5

Подобни документи
Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 1

Информатика

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г ноември 2018 г. Трифон Трифонов (УП 18/19) Ма

Microsoft Word - Glava24.doc

Програмиране на Паскал

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 9 ноември 2016 г. Триф

Структура на програма в C - Част 2 - типове, функции

Формуляри

Пощенска Банка Формат на входни файлове за масови плащания Съдържание: 1. Общи характеристики Плащания с кредитен превод Плащания на з

2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет

-

КРАТКО РЪКОВОДСТВО ЗА ПОЛЗВАНЕ НА СИСТЕМАТА tickets.ndk.bg СЪДЪРЖАНИЕ 1. Регистрация и влизане в системата Избор на събитие Избор на ме

Структура на програма в C - Част 9 - низове от символи, C-string

Структура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор

Приложение ГРАФИК На смените за почивка в КК Албена - сезон 2019 година СМЯНА от дата: до дата: І-ва г г. ІІ-ра г. 04.0

Exam, SU, FMI,

Wolfram Mathematica & SQL

ИЗИСКВАНИЯ ЗА ДОКЛАДИТЕ А. ОБЩИ ИЗИСКВАНИЯ І. Докладът трябва да е написан на компютърна програма Microsoft Word. ІІ. Файлът да бъде записан като *.do

1 КаБел ЕООД Документация за софтуерния продукт КаБел ЕООД, подпомагащ организация на складовата дейност в железария Автор: Румен Ангелов История на в

Допълнения в периода Версия Модул Документи Към Права на достъп до екземпляри документи е добавено право Изтриване на док

Описание на интерфейсите за комуникация с ЕСТИ Автоматизирано подаване на данни за туристически регистрации към Единната система за туристическа инфор

IATI Day 1/Junior Task 1. Trap (Bulgaria) X INTERNATIONAL AUTUMN TOURNAMENT IN INFORMATICS SHUMEN 2018 Задача 1. Капан Образуваме редица от точки, кои

ИНСТРУКЦИЯ 2 ЗА НАИМЕНОВАНИЯТА НА ДОМЕЙНИТЕ И ПОДДОМЕЙНИТЕ, ИЗПОЛЗВАНИ ОТ АДМИНИСТРАЦИИТЕ Глава първа ОБЩИ ПОЛОЖЕНИЯ Чл. 1. С тази инструкция се опред

Microsoft Word - Primer3_1.doc

ИЗИСКВАНИЯ ЗА ПУБЛИКУВАНЕ НА МАТЕРИАЛИ В СП

Microsoft Word - VM22 SEC55.doc

ICS Natioanal

Microsoft Word - nbb2.docx

ТЕХНИЧЕСКИ УНИВЕРСИТЕТ СОФИЯ НИЛ ПО КОМПЮТЪРНА ГРАФИКА И ГИС СОФТУЕРНА ГРУПА АКСТЪР тел./факс(02) , (02) ; E-MAI

Платформа за достъп до обществена информация Регистриране на потребител (Заявител) на Платформата... 2 Заявление за достъп до обществена информация...

Виртуални функции

СЪДЪРЖАНИЕ

Kontrolno 5, variant 1

РЕПУБЛИКА БЪЛГАРИЯ КОМИСИЯ ЗА ФИНАНСОВ НАДЗОР Изх. РГ от г. ДО Г-Н ВАЛЕНТИН МАРКОВ УПРАВИТЕЛ НА ИНОВА АВТОРЕМОНТ ЕООД РАЙОН СЕРДИК

Декларация за експлоатационни показатели Възстановяване Декларация за експлоатационни показатели Издание Идентификационен

2018 г. Какво ново в Е-либ Прима?

Декларация за експлоатационни показатели Добавки за бетон Декларация за експлоатационни показатели Издание Идентификационен

Декларация за експлоатационни показатели Добавки за бетон Декларация за експлоатационни показатели Издание Идентификационен

Препис:

4. ОПЕРАТОР ЗА ИЗБОР НА ДАННИ ОТ ТАБЛИЦА За различните видове справки най-често се използва оператор SELECT. Обикновено резултатът от изпълнението му е таблица. Общ вид на оператора 1 : [ DISTINCT ] <име на атрибут> {, <име на атрибут> } FROM <име на таблица> [ WHERE <критерий за избор>] [ ORDER BY <критерий за наредба>] Тук <име на таблица> и <име на атрибут> са идентификатори; <критерий за избор> задава критерий за избор на редове от таблицата; <критерий за наредба> задава критерий за наредба на редовете в резултатната таблица. 4.1. Критерии за избор на редове от таблици СРАВНЕНИЯ Допустими са обичайните сравнения за езиците за програмиране, като могат да се сравняват идентични по смисъл атрибути или атрибут с идентична по смисъл константа. Особен случай е, когато стойността на някой от атрибутите е NULL, тогава резултатът е винаги UNKNOWN, дори когато двете стойности са NULL. Пример1: Извеждат се на наличните данни за касетата с номер 2: SELECT Number, NameFilm, Value, Is_here WHERE Number=2 Пример2: Извеждат се имената на клиентите, заедно с номера на абонамента и тел.номер, на тези от тях, чийто срок на абонамент приключва преди 20.09.2001г. WHERE Srok < '20-Sep-2001' Пример3: Да се изведат имената на клиентите, заедно с номера на абонамента и срока на абонамента, на тези клиенти, които не живеят в гр. Шумен:, Town WHERE Town<> 'гр.шумен' БУЛЕВИ ИЗРАЗИ Допустими са обичайните булеви операции NOT, AND и OR. Особеност в езика SQL е тризначната логика, при която предикатите приемат една от трите стойности: TRUE, FALSE или UNKNOWN (с изключение на предикатите: IS NULL, EXISTS и UNIQUE). Ако една стойност е NULL, то сравнението й с произволна стойност, включително и стойност NULL, е неопределено (изключение прави предиката IS NULL). Дотолкова, доколкото не винаги предварително е ясно какви стойности ще се сравняват, се оказва, че често резултатът е непредсказуем. По долу са дадени таблиците на логическите операции NOT, AND и OR, като е включена и стойността UNKNOWN т.е. дадените таблици са за тризначна логика. 1 Общият вид на оператора ще бъде доуточняван понататък.

Табл.6. X TRUE FALSE UNKNOWN NOT X FALSE TRUE UNKNOWN Операцията NOT е едноаргументна и в случая се прилага над аргумента X. Табл.7. AND TRUE FALSE UNKNOWN TRUE TRUE FALSE UNKNOWN FALSE FALSE FALSE FALSE UNKNOWN UNKNOWN FALSE UNKNOWN Операциите AND и OR са двуаргументни. В таблиците операцията е посочена горе вляво, потъмнените полета са стойности на аргументите, а стойностите на резултата са на бял фон. Табл.8. OR TRUE FALSE UNKNOWN TRUE TRUE TRUE TRUE FALSE TRUE FALSE UNKNOWN UNKNOWN TRUE UNKNOWN UNKNOWN Даден е и оператор IS, който в InterBase се използва като предикат IS NULL. Табл.9. IS TRUE FALSE UNKNOWN TRUE TRUE FALSE FALSE FALSE FALSE TRUE FALSE UNKNOWN FALSE FALSE TRUE Пример1: Да се изведат регистрираните във видеотеката филми на режисьора Фелини, създадени преди 1987г.: WHERE ( Director = 'Фелини' ) AND ( Year_cr < 1987 ) Пример2: Да се изведат имената на клиентите, заедно с номера на абонамента и тел.номер, на тези клиенти, които не живеят в град Шумен: SELECT Name, Num_ab, Tel_num, Town WHERE NOT ( Town= 'гр.шумен' ) Пример3: Да се изведат имената на клиентите, заедно с номера на абонамента и тел.номер, на тези клиенти, които не живеят в гр.шумен или чийто срок на абонамент приключва преди 20.09.2001г.: IN WHERE NOT ( Town= 'гр.шумен' ) OR Srok< '20-Sep-2001' Смисълът на предиката е проверка, дали стойността на указания атрибут принадлежи или не принадлежи на множеството от стойности, изброени в скобите. Общ вид: <име на атрибут > [ NOT ] IN ( <списък от константи > ) Пример1: Да се изведe наличната информация за клиентите, живущи в градовете Шумен, Нови Пазар и Смядово: WHERE Town= 'гр.шумен' OR Town= 'гр.нови Пазар' OR Town='гр.Смядово'

Един възможен запис на заявката е даден по-горе. Новият запис с предиката IN е: WHERE Town IN ( 'гр.шумен', 'гр.нови Пазар', 'гр.смядово' ) Пример2: Да се изведат данните за наличните във видеотеката касети, чиято цена за еднодневно ползване е под 4лв.: SELECT Number, NameFilm, Value, Is_here WHERE ( Value< 4 ) AND Is_here IN ( 'Д', 'д', 'Y', 'y' ) Пример3: Да се изведе наличната информация за клиентите, които са се регистрирали с адрес извън градовете Шумен, Нови Пазар, Смядово или Провадия: WHERE Town NOT IN ( 'гр.шумен', 'гр.нови Пазар', 'гр.смядово', 'гр.провадия' ) Пример4: Да се изведат номерата на абонаментите на клиентите, взели касета касети на някоя от датите 8.10.2001г., 15.10.2001г. или 22.10.2001г.: SELECT Num_ab, TakeDate FROM FORM WHERE TakeDate IN ( '8-Oct-2001', '15-Oct-2001', '22-Oct-2001' ) BETWEEN Смисълът на предиката е проверка, дали стойността на указания атрибут е или не е в диапазона, указан с изразите. Общ вид: <име на атрибут > [ NOT ] BETWEEN <израз > AND <израз > Пример1: Да се изведат регистрираните във видеотеката филми, създадени между 1987г. и 1997г., включително и през тези години: Един възможен запис на заявката е: WHERE (Year_cr>=1987) AND ( Year_cr<=1997 ) Новият запис с предиката BETWEEN е: WHERE Year_cr BETWEEN 1987 AND 1997 Пример2: Да се изведат имената на клиентите заедно с номера на абонамента и тел.номер, на тези клиенти, чийто срок на абонамент приключва през месец септември 2001г.: WHERE Srok BETWEEN '01-Sep-2001' AND '30-Sep-2001' Пример3: Да се изведат номерата на касетите, заедно с името на филма, чиято цена за еднодневно ползване не е между 1.20 и 2 лева:

SELECT Number, NameFilm, Value WHERE Value NOT BETWEEN 1.20 AND 2.00 IS NULL В SQL има отделно условие за проверка на неопределена стойност на някой атрибут. Възможно е и отрицание на условието. Общ вид: <име на атрибут > IS [ NOT ] NULL Пример1: Да се изведат имената на клиентите, заедно с номера на абонамента и срока на абонамента, на тези клиенти, които не са дали адрес при регистрация: WHERE Adress IS NULL Пример2: Да се изведат имената на клиентите, заедно с номера на абонамента и тел.номер на тези клиенти, които при регистрация не са дали адреса си, но са дали телефонен номер: LIKE SELECT Name, Num_ab, Tel_num WHERE Adress IS NULL AND Tel_num IS NOT NULL Смисълът на предиката е проверка, дали стойността на атрибута наподобава указан шаблон. В шаблона могат да се използват два специални символа: % замества нула, един или няколко символа и _ замества точно един символ. Възможно е и отрицание на условието. Общ вид: <име на атрибут > [ NOT ] LIKE <шаблон> Пример1: Да се изведе наличната информация за клиентите с първо име Антон : WHERE Name LIKE 'Антон%' Пример2: Да се изведе наличната информация за клиентите, чиито имена съдържат низа "Иван": WHERE Name LIKE %Иван%' С така зададения шаблон, заявката извежда клиентите, в чието име се съдържа някое от имената Иван, Иванка, Иванета, Иванов, Иванова, Ивански и т.н.. Пример3: Да се изведе наличната информация за клиентките, чието фамилно име не завършва на ва : WHERE Name NOT LIKE '%ва' Пример4: Да се изведат имената на четирибуквените филми, регистрирани във видеотеката. SELECT Name, Director WHERE Name LIKE ' S '

В шаблона, зададен в тази заявка, първите четири символа са произволни, а останалите символи до дължината на низа, предвидена при описанието на полето (в случая char(20) ), се задават с интервал. Обърнете внимание, че InterBase допълва въведеното име до указаната при създаването на таблицата дължина с интервали. 4.2. Предотвратяване на избор на еднакви редове За да се предотврати появата на еднакви редове в резултатната таблица се използва служебната дума DISTINCT във фразата SELECT. Тя се поставя непосредствено преди атрибута, за когото се цели избягване на повторения на стойности. Пример1: Да се изведат данните за наличните в момента филми във видеотеката, като тези които са налични върху повече от една касета се извеждат само веднъж: SELECT DISTINCT NameFilm WHERE Is_here IN ( 'Д', 'д', 'Y', 'y' ) Пример2: Да се изведат номерата на абонаментите на клиентите, взели поне една касета на някоя от датите между 8.10.2001г. и 15.10.2001г. включително: SELECT DISTINCT Num_ab FROM FORM WHERE TakeDate BETWEEN '8-Oct-2001' AND '15-Oct-2001' ЗАДАЧИ ЗА САМОСТОЯТЕЛНА РАБОТА Задача1. За изхранването на животните в един зоопарк се поддържа Базата от данни ANIMALS / виж описанията на таблиците в упр.2 /. a) Да се изведе наличната информация за животните в зоопарка, от животинските видове маймуни, тигри, слонове и носорози. b) Да се изведе информация за всички животни в зоопарка, които не са месоядни, подредени по животински вид и по намаляваща ст-ст на възрастта във вида. c) Да се изведе информация за всички маймуни в зоопарка на възраст между 5 и 15 години, подредени по име. d) Да се изведе информация за всички месоядни животни в зоопарка с тегло над 20кг, подредени по животински вид и намаляваща ст-ст на теглото в рамките на вида. Задача2. За стоковата наличност в една ведомствена книжарница се поддържа Базата от данни BOOKSTORE / виж описанията на таблиците в упр.2 /. a) Да се изведе наличната информация за всички видове тетрадки в книжарницата; b) Да се изведе информация за всички стоки в книжарницата, за които наличното количество е по-голямо от 10 или единицата мярка е кашон; c) Да се изведе информация за всички стоки в книжарницата, за които цената е между 20стотинки и лев или единицата мярка е кашон или пакет. d) Да се изведат имената на фирмите доставчици, за които в БД няма данъчен номер. e) Да се изведат имената на фирмите доставчици, за които в БД няма въведен телефон, но има адрес и данъчен номер. Задача3. За обслужване на фирма за таксиметрови услуги се поддържа Базата от данни TAXI / виж описанията на таблиците в упр.2 /.: a) Да се изведат номерата на свободните в момента таксита, подредени по време на започване на смяната. b) Да се изведат всички повиквания от адреса "Латинка 13", подредени по дата и час. c) Да се проследят всички поръчки на таксито с номер 100 в периода от 22.12.2001г. до 8.1.2002г., подредени по дата и час. d) Да се изведе наличната информация за всички таксита от марки рено,волво,мазда и пежо с шуменска регистрация.