Очила за корекция на пресбиопия. Избор на офис очила

И над данните от таблицата.

Езикът SQL се нарича вградена, защото съдържа функциите на пълноценен език за разработка и се фокусира върху достъпа до данни, в резултат на което е включен в инструментите за разработка на приложения. Езиковите стандарти SQL поддържат Pascal, Fortran, COBOL, C и други езици за програмиране.

Съществува 2 метода за използване на вграден SQL:

  • статиченизползване на езика ( статичен SQL) - текстът на програмата съдържа извиквания на SQL функции, които се включват в изпълнимия модул след компилация.
  • динамиченизползване на езика ( динамичен SQL) – динамично изграждане на извиквания на SQL функции и тяхната интерпретация. Например, можете да получите достъп до данните от отдалечената база данни по време на изпълнение на програмата.

Езикът SQL (подобно на други езици за бази данни) е предназначен да подготвя и изпълнява заявки. В резултат на изпълнение на заявка за данни от една или повече таблици се получава набор от записи, който се нарича производителност.

Определение 1

производителносте таблица, която се формира в резултат на изпълнение на заявка.

Основни оператори на SQL Query Language

SQL операторите условно се разделят на 2 подезика:

  1. Език за дефиниране на данни DDL;
  2. Език за манипулиране на данни DML.

В таблицата е отбелязан символът * конкретни операториезик.

Нека да разгледаме най-важните SQL изрази.

    Изявление за създаване на таблица:

    Името на създаваната таблица и името на поне една колона (поле) са задължителни операнди. За името на колоната трябва да посочите типа данни, които ще се съхраняват в нея.

    За отделни полета можете да зададете допълнителни правила за контролиране на стойностите, които се въвеждат в тях. Например, НЕ НУЛЕВпоказва, че полето не може да бъде празно и в него трябва да се въведе стойност.

    Пример 1

    За създаване на таблица книгидиректория с книги, която съдържа полетата:

    Тип- вид книга

    име- име на книгата,

    цена– цена на книгата

    оператор може да изглежда така:

    Оператор за промяна на структурата на таблицата:

    Когато променяте структурата на таблицата, можете да добавите ( ДОБАВЯНЕ), промяна ( МОДИФИЦИРАНЕ) или изтриване ( ИЗПУСКАЙТЕ) една или повече колони на таблицата. Правилата за писане на този оператор са същите като за оператора СЪЗДАВАНЕ НА ТАБЛИЦА. Не е необходимо да указвате, за да изтриете колона.

    Пример 2

    За добавяне към таблицата книгиполета номер, който ще съхранява броя на книгите, можете да напишете оператора:

    Изявление за падане на таблица:

    Пример 3

    Например, за да премахнете съществуваща таблица с име книгипросто използвайте оператора:

    Изявление за създаване на индекс:

    Изявлението създава индекс на една или повече колони на дадена таблица, което ускорява операциите за заявка и търсене. В една и съща таблица могат да бъдат създадени множество индекси.

    Опция по избор ЕДИНСТВЕН ПО РОДА СИе отговорен за осигуряване на уникалността на стойностите във всички колони, които са посочени в извлечението.

    ASCзадава автоматично сортиране на стойности в колони във възходящ ред (по подразбиране) и ОПИСАНИЕ- в низходящ ред.

    Оператор за намаляване на индекса:

    Оператор за създаване на преглед:

    Когато създавате изглед, можете да пропуснете имената на колоните. Тогава ще се използват имената на колоните от заявката, която е описана от съответния оператор ИЗБЕРЕТЕ.

    Преглед на оператора за изтриване:

    Оператор за избор на запис:

    Оператор ИЗБЕРЕТЕизбира и извършва изчисления върху данни от една или повече таблици. Резултатът от изпълнението на оператора е таблица с отговори, която съдържа ( ВСИЧКО) или не съдържа ( РАЗЛИЧЕН) редове, които се повтарят.

    Операнд ОТсъдържа списък с таблици, от които се вземат записи за избор на данни.

    Оператор за промяна на запис:

    Новите стойности на полето в записите може да не съдържат стойности ( НУЛА) или изчислено според аритметичен израз.

    Оператор за въвеждане на нови записи:

    В първия запис на оператора ВМЪКНЕТЕнови записи се въвеждат с дадени стойности в колоните.

    Във втория запис на оператора ВМЪКНЕТЕвъвеждат се нови редове, избрани от друга таблица чрез изречение ИЗБЕРЕТЕ.

    Оператор за изтриване на запис:

    В резултат на изпълнението на оператора, редовете, които отговарят на условието, зададено от опционалния операнд, се изтриват от указаната таблица КЪДЕТО. Ако операндът КЪДЕТОне е посочен, всички записи в таблицата се изтриват.

Дисциплина: Бази данни

Езикови операториSQL

Езикът SQL включва оператори от различни категории. Всеки SQL оператор се състои от запазени думи и думи, дефинирани от потребителя в съответствие с установени синтактични правила. Както при много езици за програмиране, повечето от компонентите на израза на езика са нечувствителни към малки и главни букви. Изключение от това правило са, както обикновено, знаковите данни, които трябва да се съобразяват с главни и малки букви и да използват този, който е необходим за представяне на данните.

За да напишете изрази на езика, се приема свободен формат, който прави възможно SQL програмата да бъде по-четима чрез отстъп и подравняване.

    всяка фраза в изявлението трябва да започва на нов ред;

    началото на всяка фраза трябва да бъде подравнено с началото на останалите фрази на изявлението;

    всяка част от фразата трябва да започва на нов ред с известно отстъпление спрямо началото на цялата фраза, което ще ви позволи да подчертаете подчинените части;

    При писане на оператори се прилагат някои конвенции:

    главни букви се използват за писане на запазени думи;

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

    вертикалната лента "|"" показва необходимостта от избор на една от няколко стойности;

    къдрави скоби дефинират задължителен елемент;

    квадратните скоби определят незадължителен елемент;

    многоточието "..." се използва за обозначаване на незадължителната възможност за повторение на конструкцията, от нула до няколко пъти.

Операторите за дефиниране на данни (Таблица 1) се използват за описание на използваните структури от данни. Тази категория включва следните оператори: създаване на таблица, премахване на таблица, промяна на таблица, създаване на изглед, ПРОМЯНА НА ИЗГЛЕД, ИЗХВЪРЛЯНЕ НА ИЗГЛЕД.

маса 1 . Оператори за дефиниране на данни

Оператор Обяснение

създайте таблица

DROP маса

промяна на масата

СЪЗДАВАЙТЕ ИЗГЛЕД Създайте изглед

промяна на изгледа

падащ изглед

Операторите за манипулиране на данни, които формират следващата категория оператори, са предназначени да попълват таблици с данни и да актуализират информацията, заредена в тях. Тази категория включва следните оператори: delete, insert, update (Таблица 2).

таблица 2 . Оператори за манипулиране на данни

ОператорОбяснение

Изтриване Изтрива един или повече редове, които отговарят на условията

филтриране от базовата таблица

INSERT Вмъква един ред в основната таблица

update Актуализира стойностите на една или повече колони в една или повече

няколко реда, съответстващи на условията на филтъра

За избор на информация от базата данни е предназначен езикът за заявки, който в езика SQL е представен от един оператор за избор (Таблица 3).

Таблица 3 Език за заявки

Оператор Обяснение

изберете Избира редове; оператор, който ви позволява да формирате резултата

таблица, съответстваща на заявката

В допълнение към посочените категории оператори, чието предназначение не е трудно да си представите след прочитане на обясненията в таблиците, е необходимо да се отделят още две: оператори за управление на транзакции (Таблица 4) и инструменти за администриране на данни (Таблица 5) .

Таблица 4. Управление на транзакции

Обяснение на оператора

ангажиране Завършване на транзакцията - завършване на обработката на информация,

комбинирани в сделка

rollback Rollback транзакция - отмяна на промените, направени по време на изпълнение

състояние на базата данни, маркирайте го, за да можете да се върнете към него по-късно

Таблица 5 . Администриране на данни

Обяснение на оператора

ALTER DATABASE Промяна на набора от основни обекти в базата данни, ограничения по отношение

цялата база данни

ALTER DBAREA Промяна на предварително създадена област за съхранение

ALTER PASSWORD Промяна на паролата за цялата база данни

CREATE DATABASE Създайте нова база данни

CREATE DBAREA Създайте нова област за съхранение и я направете достъпна за хостинг

DROP DATABASE Премахнете съществуваща база данни

DROP DBAREA Изтрийте съществуваща област за съхранение (ако в момента не съдържа

намират се активни данни)

GRANT Предоставяне на права за достъп до редица действия върху обект на база данни

REVOKE Отнеме правата за достъп до даден обект или някои действия върху

обект

В комерсиалните СУБД наборът от основни оператори е разширен. Повечето СУБД включват изрази за дефиниране и изтриване на индекса на изпълнение на съхранени процедури и изрази за дефиниране на тригери.

Обичайно е да започнете запознаване с този език, като разгледате възможностите на езика за заявки, който в езика SQL е представен от един оператор за избор, тъй като този мощен израз, разбира се, е и най-сложният. Освен това е интересно да се види как може да се използва заедно с оператори за манипулиране на данни в бъдеще.

    Изберете изявлениеИЗБЕРЕТЕ . Формиране на заявки към базата данни

Целта на командата select е да избира и показва данни от една или повече таблици на база данни. Този изключително мощен, най-често използван оператор прилага всички операции на релационната алгебра. Една и съща заявка може да бъде изпълнена по няколко начина, които могат да се различават значително във времето за изпълнение.

Изберете формат на извлечението:

ИЗБЕРЕТЕ *|<список полей>ОТ<список таблиц>

Посоченият ред на фразите в оператора select не може да бъде променен, но не всички части от него са задължителни. Задължителните клаузи включват само клаузите select и from. Всички други части на оператора могат да се използват по преценка на програмиста. Обяснение:

□ Фраза изберете:

Наличие на ключова дума всичко(по подразбиране) означава, че получената таблица включва всички редове, които отговарят на условията на заявката, което може да доведе до появяване на дублиращи се редове в получената таблица;

Ключова дума различенпредназначени да приведат таблицата в съответствие с принципите на релационната теория, която предполага липсата на дублиращи се редове;

символ " * " дефинира много често срещана ситуация, при която наборът от резултати включва всички колони от оригиналната таблица на заявката.

□ Във фраза оте посочен списък от изходни таблици на заявката.

□ Във фраза къдетодефинират се условия за избор на редове с резултати или условия за свързване на редове от изходни таблици, подобно на операцията за условно свързване в релационната алгебра. Следните предикати могат да се използват като условия за избор:

Сравнения "= ,<>, >, <, >=, <=" - для сравнения результатов вы­числения двух выражений; более сложные выражения строятся с по­мощью логических операторов AND, OR, NOT; значения выражений вычисляются в порядке, который определяется приоритетом исполь­зуемых операторов и наличием скобок в выражении;

междуНОиAT- предикатът е верен, когато изчислената стойност на израза попада в посочения диапазон (предикатът немеждуаиATвярно, когато стойността, която се сравнява, не попада в определения интервал);

в- предикатът е верен, когато сравняваната стойност е включена в множеството от дадени стойности; в този случай наборът от стойности може да бъде определен чрез просто изброяване или вградена подзаявка (предикатът not in е верен, когато сравнената стойност не е включена в посочения набор);

катои некато- предикатите, чийто смисъл е противоположен, изискват уточняване на шаблон, с който се сравнява дадената стойност; подобният предикат е верен, когато стойността, която се сравнява, съвпада с модела, и false в противен случай;

Енула- предикат, използван за откриване на равенството на стойността на някакъв атрибут с недефинирана стойност:

    <имя атрибута> Енула- приема стойността true, ако посоченият атрибут в този низ има недефинирана стойност и false, в противен случай;

    <имя атрибута> ЕНЕнула- всичко се случва обратното.

съществувати несъществуватИзползва се във вградени подзаявки.

□ Във фраза групаотсписъкът с полета за групиране е зададен.

□ Във фраза имайкисе задават предикатите-условия, наложени на всяка група.

□ Във фраза поръчкаотопределен е списък от полета за подреждане на резултатите, т.е. списък от полета, който определя реда на сортиране в получената таблица.

Стандартът SQL дефинира концепцията за NULL стойност, което наложи използването на тризначна логика, където всички логически операции се изпълняват в съответствие с таблицата на истината по-долу (Таблица 6).

Таблица 6 . таблица на истината

А И Б

TRUE

1.1. Прости заявки

Заявка 1

Показване на информация за катедрите на университета.

Тази задача се свежда до избор и показване на информация от една таблица, като всички нейни редове и всички колони подлежат на извеждане:

ИЗБЕРЕТЕ * ОТ отдел

Резултатът от такава заявка ще бъде таблица, съдържаща информация за всички отдели на университета:

код каф

Име каф

Nom_telef

Nom_Auditoria

Col_sotr

Иванов Т.М.

Обща математика

Махов К Л.

Рос Л.Т.

Фирсов С.С.

Приложна математика

Ляхова И.Т.

Заявка 2

Показване на телефонни номера на университетски факултети.

Резултатът от такава заявка трябва да съдържа само две колони: Име_ кафи Ном_ телеф, така че самата заявка трябва да изглежда така:

ИЗБЕРЕТЕ Name_kaf, Nom_telef FROM kafedra

Таблица с резултати:

Имекаф Номжелеф

Физика 23-34-24

Обща математика 23-65-43

Разкази 23-78-72

Графики 23-99-77

Приложна математика 23-66-62

В заявките, формирани по-горе, беше необходимо да се покажат всички редове на таблицата, посочени в клаузата from. Ако изборът трябва да ограничи броя на изходните редове според някакво условие, тогава това може да се постигне чрез използване на клаузата where в заявката. Можете да включите едно или повече условия за избор на ред в клаузата where.

Заявка 3

Показване на информация за отдела по графика.

SELECT * FROM kafedra WHERE Name_kaf = "Графики"

Отговорът на такава заявка ще съдържа само един ред:

Код.каф Name_kaf NomjelefNom_Auditoria Col_sotr Zav_kaf

004 Графики 23-99-77 385 18 Фирсов C.C.

Заявка 4

Изведете информация за университетските катедри, разположени на приземния етаж, като вземете предвид факта, че стаите на приземния етаж са в диапазона от 1 до 99.

Заявката ще изглежда така:

ИЗБЕРЕТЕ * ОТ kafedra WHERE Nom_Auditoria МЕЖДУ 1 И 99

Резултат от заявката:

КоджафИме_kafNorn lelef Norn Audit oria Coi_sotr Zavkaf

002 Обща математика 23-65-43 003 22 Махов К.Л.

математика

Като цяло, редовете в получената таблица се показват в неподредено състояние по някакъв начин. Преглеждането и анализирането на такъв материал не винаги е удобно. Клаузата ред по се използва за сортиране на редове по произволна колона. Той включва разделен със запетаи списък с имена на колони, по които искате да сортирате показаната информация. Тази фраза винаги трябва да бъде поставена последна в оператора за избор и, ако е налице, става възможно сортирането на редове във възходяща (възходяща) или низходяща (нисходяща) стойности на определената колона или комбинация от посочените колони, независимо дали те колоните присъстват в получената таблица или не.

Заявка 5

Показване на информация за отделите на университета във формата, сортирана по колонаИме_ кафвъв възходящ ред.

Заявката ще изглежда така:

ИЗБЕРЕТЕ * ОТ kafedra ПОРЪЧАЙТЕ ПО Name_caf ASC

Резултатът от това искане:

Kod_kaf Name_kaf Nomjelef Nom_Auditoria Col_sotr Zav kaf

004 Диаграми 23-E9-77 385 18 ФирсовС.С.

003 Истории 23-78-72 465 16 Ross L.T.

002 Общ ма- 23-65-43 003 22 Махов К.Л.

теми

005 Приложна 23-66-62 028 24 Ляхова И.Т.

математика

001 Физици 23-34-24 132 25 Иванов Т.М.

Често е полезно да сортирате показаната информация в няколко колони, за да подобрите видимостта. За да направите това, имената на колоните за сортиране трябва да бъдат изброени разделени със запетаи в клаузата за ред. В този случай изходната таблица ще съдържа редове, подредени по първата колона, посочена в клаузата за ред, а редовете, които имат еднакви стойности в тази колона, ще бъдат подредени по стойностите на втората колона и така нататък от Отляво надясно.

Както вече споменахме, през 70-те години Едгар Код предложи използването на релационния модел. В допълнение към самия модел, той предложи и език за работа с данни в рамките на този модел, наречен DSL / Alpha. Впоследствие на базата на DSL / Alpha се появи езикът SQUARE и на негова основа, от своя страна, езикът SEQUEL, който (поради известно объркване в търговските марки) по-късно беше преименуван на SQL.

Тук constraint_* може да има следните стойности (или комбинации от тях):

  • NOT NULL - не може да бъде "празно"
  • UNIQUE - стойността е уникална
  • ПЪРВИЧЕН КЛЮЧ - комбинация от първите два
  • FOREIGN KEY - посочване на външен ключ
  • ПРОВЕРКА - стойността трябва да отговаря на условието
  • DEFAULT - стойност по подразбиране

Има някои несъответствия в различните реализации.

Ако първичният ключ се състои от няколко колони, е необходимо да го извадите след деклариране на колоните във формата

ОГРАНИЧЕНИЕ pk_table ПЪРВИЧЕН КЛЮЧ (col1, col2, .. .)

където pk_table е уникалното име на ограничението.

В много реализации частта CONSTRAINT на pk_table може да бъде пропусната. В този случай името ще се генерира автоматично.

Външният ключ във всички случаи се декларира след декларирането на колоните.

Синтаксис:

ОГРАНИЧЕНИЕ fk_table FOREIGN KEY (col1, .. .) REFERENCES tbl_name (ref_col1, .. .) ON UPDATE upd_action ON DELETE del_action;

където fk_table е уникалното име на ограничението, col1, ... са имената на колоните на тази таблица, включени във външния ключ, tbl_name е таблицата, за която посоченият външен ключ е първичен, ref_col1, ... са имена на съответните колони в tbl_name. upd_action и del_action определят как базата данни реагира на промени и изтривания на записи от tbl_name и могат да приемат една от следните стойности:

  • SET NULL - препращащите колони col1, ... е зададено на NULL
  • RESTRICT - ако има записи, отнасящи се до стойността, която се актуализира/изтрива, актуализацията/изтриването е неуспешно
  • CASCADE - актуализиране/премахване на всички препращащи записи
  • БЕЗ ДЕЙСТВИЕ - не правете нищо

В много реализации частта CONSTRAINT на fk_table може да бъде пропусната. В този случай името ще се генерира автоматично.

Синтаксисът на оператора SELECT е както следва:

ИЗБЕРЕТЕ<список атрибутов>/* ОТ<список таблиц>

Елементите, които може да липсват в заявката, са посочени в квадратни скоби.

Избройте всички ученици.

ИЗБЕРЕТЕ * ОТ студент

ИЗБЕРЕТЕ id_st, фамилия ОТ студент

Имайте предвид, че ако добавим клаузата ORDER BY презиме към тази заявка, списъкът ще бъде подреден по фамилия. По подразбиране сортирането е във възходящ ред. Ако се изисква низходящ ред, думата DESC се добавя след името на атрибута.

Връща списък с оценките, които е получил студент с код "1"..

Издава списък с кодове на студенти, получили поне една двойка или тройка на изпитите.

В клаузата WHERE можете да напишете израз, като използвате аритметични операторисравнения (<, >и т.н.) и логически оператори (И, ИЛИ, НЕ) както в конвенционалните езици за програмиране.

Наред с операторите за сравнение и логическите оператори за съставяне на условия в SQL (поради спецификата на областта на приложение) съществуват редица специални оператори, които по правило нямат аналози в други езици. Това са операторите:

  • IN - влизане в определен набор от стойности;
  • МЕЖДУ - влизане в определен диапазон от стойности;
  • LIKE - проверка за съвпадение с пробата;
  • IS NULL - проверка за недефинирана стойност.

Операторът IN се използва за тестване на набор от стойности. Да, искане

дава същия резултат като горната заявка (ще покаже идентификаторите на всички кандидати, получили поне една двойка или тройка на изпитите).

Същият резултат може да се постигне с помощта на оператора BETWEEN:

Избройте всички ученици, чиито фамилни имена започват с буквата А.

В този случай е удобно да използвате оператора LIKE.

Операторът LIKE се прилага изключително към символни полета и ви позволява да определите дали стойността на дадено поле съответства на шаблон. Моделът може да съдържа специални знаци:

_ (долна черта) - замества всеки отделен знак;

% (знак за процент) - Заменя поредица от произволен брой знаци.

Много често има нужда да се изчислят минималните, максималните или средните стойности в колони. Така например може да искате да изчислите средния резултат. За извършване на такива изчисления SQL предоставя специални агрегатни функции:

  • MIN е минималната стойност в колоната;
  • MAX - максималната стойност в колоната;
  • SUM е сумата от стойностите в колоната;
  • AVG е средната стойност в колоната;
  • COUNT - броят не-NULL стойности в колоната.

Следната заявка изчислява средната стойност на всички резултати, получени от студентите на изпитите.

SELECT AVG(mark) FROM mark_st

Естествено, можете да използвате агрегатни функциизаедно с клаузата WHERE:

Тази заявка ще изчисли GPA на студента с код 100 от всички изпити, които е издържал.

Тази заявка ще изчисли средния резултат на студентите въз основа на резултатите от полагане на изпита с код 10. В допълнение към разгледаните механизми