телевизори. Конзоли. Проектори и аксесоари. Технологии. Цифрова телевизия

Езиков оператор SQL. Структуриран език за заявки - SQL: история, стандарти, основни езикови оператори

Structure Query Language (SQL) е създаден в резултат на развитието на релационен моделданни и в момента е де факто стандартът за езика на релационните СУБД. Езикът SQL днес се поддържа от огромен брой СУБД от различни типове.

Името на езика SQL обикновено се произнася "es-qu-el". Понякога се използва мнемоничното име "See-Quel".

Езикът SQL предоставя на потребителя (с минимални усилия от негова страна) следните възможности:

Създавайте бази данни и таблици с пълно описаниетехните структури

Извършване на основни операции за манипулиране на данни: вмъкване, промяна, изтриване на данни

Изпълнявайте както прости, така и сложни заявки.

Езикът SQL е релационно завършен.

Структурата и синтаксисът на неговите команди са доста прости, а самият език е универсален, т.е. синтаксисът и структурата на неговите команди не се променят при преминаване от една СУБД към друга.

Езикът SQL има два основни компонента:

DDL (Език за дефиниране на данни) за дефиниране на структури на бази данни и контролиране на достъпа до данни

DML (Език за манипулиране на данни) език, предназначен за извличане и актуализиране на данни.

SQL е непроцедурен език, което означава, че когато го използвате, трябва да посочите каква информация трябва да бъде получена, а не как може да бъде получена. SQL командите са просто думи на английски(ИЗБЕРЕТЕ, ВМЪКНЕТЕ и т.н.). Нека първо да разгледаме SQL DML изразите:

SELECT - избор на данни от базата данни

INSERT - вмъкване на данни в таблица

UPDATE - актуализиране на данни в таблица

DELETE - изтриване на данни от таблица

Изявление SELECT

Операторът SELECT изпълнява действия, еквивалентни на следните операции на релационната алгебра: селекция, проекция и свързване.

Най-простата SQL заявка, която го използва, изглежда така:

ИЗБЕРЕТЕ име на_колона ОТ tbl

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

Резултатът от заявка за избор винаги е таблица, наречена таблица с резултати. Освен това, резултатите от заявка, изпълнена с помощта на оператора select, могат да се използват за създаване на нова таблица. Ако резултатите от две заявки на различни таблици имат един и същ формат, можете да ги комбинирате в една таблица. Освен това таблицата, получена в резултат на заявка, може да бъде обект на допълнителни заявки.

За да изберете всички колони и всички редове на таблица, просто издайте SELECT * FROM tbl;

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

Поискайте резултат

ИЗБЕРЕТЕ * ОТ Продукт;

ще бъде цялата таблица с продукти.

Можете да изберете конкретни колони на таблица с помощта на заявка

ИЗБЕРЕТЕ col1, col2, …, coln FROM tbl;

И така, резултатът от заявката

ИЗБЕРЕТЕ Вид, Цена ОТ Продукт;

ще има маса

Списъкът с колони в оператора select също се използва, ако е необходимо да се промени редът на колоните в получената таблица:

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

Например, избиране на онези продукти от таблицата с продукти, чиято цена отговаря на условието за цена<3200, можно осуществить, используя запрос

ИЗБЕРЕТЕ * ОТ Продукт където Цена<3200;

Неговият резултат:

Условието може да бъде съставно и комбинирано с помощта на логическите оператори NOT , AND, OR, XOR, например: където id_ Price>500 AND Price<3500. Допускается также использование выражений в условии: where Price>(1+1) и низови константи: където име= "autoweights".

Използването на конструкцията BETWEEN var1 AND var2 ви позволява да проверите дали стойностите на всеки израз попадат в диапазона от var1 до var2 (включително тези стойности):

ИЗБЕРЕТЕ * ОТ Продукт, където Цена МЕЖДУ 3000 И 3500;

Подобно на оператора NOT BETWEEN, има оператор NOT IN.

Имената на колони, посочени в клаузата SELECT, могат да бъдат преименувани. За целта се използва ключовата дума AS, която обаче може да бъде пропусната, тъй като се подразбира имплицитно. Например, молба

ИЗБЕРЕТЕ Type AS модел, Type_id AS номер ОТ Product where Type_id =3

ще се върне (псевдонимите трябва да бъдат написани без кавички):

Операторът LIKE е предназначен да сравнява низ с шаблон:

ИЗБЕРЕТЕ * ОТ tbl където име_на_колона КАТО "abc"

Тази заявка връща само онези записи, които съдържат стойността на низа abc в колоната col_name.

Пробата може да използва два заместващи знака: "_" и "%". Първият от тях замества един произволен знак в шаблона, а вторият замества поредица от произволни знаци. И така, "abc%" съвпада с всеки низ, започващ с abc, "abc_" съвпада с низ от 4 знака, започващ с abc, "%z" съвпада с всеки низ, завършващ с z, и накрая, "%z%" - последователности от знаци, съдържащи z.

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

ИЗБЕРЕТЕ * ОТ Продукт, където Тип LIKE "a%";

везни за камиони

Ако низът за търсене съдържа заместващ знак, тогава трябва да укажете екраниращия знак в клаузата ESCAPE. Този контролен знак трябва да се използва в шаблона преди заместващия знак, което показва, че заместващият знак трябва да се третира като обикновен знак. Например, ако търсите всички стойности в поле, което съдържа знака "_", тогава моделът "%_%" ще доведе до връщане на всички записи от таблицата. В този случай шаблонът трябва да бъде написан, както следва:

"%|_%" ESCAPE "|"

За да проверите стойността за съответствие с низа "20%" можете да използвате следния оператор:

КАТО "20#%" ИЗБЯГВАНЕ "#"

Операторът IS NULL ви позволява да проверите липсата (наличието) на NULL стойност в полетата на таблицата. Използването на редовни оператори за сравнение в тези случаи може да доведе до неправилни резултати, тъй като сравнението с NULL води до UNKNOWN. Следователно условието за избор трябва да изглежда така:

където col_name Е NULL, вместо where col_name=NULL.

Резултатът от избора по подразбиране връща записите в същия ред, в който са съхранени в базата данни. Ако искате да сортирате записи по една от колоните, трябва да използвате клаузата ORDER BY, последвана от името на тази колона:

SELECT * FROM tbl ORDER BY col_name;

Тази заявка ще върне записи във възходящ ред на стойността на атрибута col_name.

Можете също да сортирате записи по няколко колони. За да направите това, техните имена трябва да бъдат посочени след ORDER BY, разделени със запетаи:

ИЗБЕРЕТЕ * ОТ tbl ПОРЪЧАЙТЕ ПО име_на_колона1, име_на_кола2.

Записите ще бъдат сортирани по полето col_name1; ако има няколко записа със съвпадаща стойност в колоната col_name1, те ще бъдат сортирани по полето col_name2.

Ако искате да сортирате записите в обратен ред (например низходящо по дата), трябва да посочите ORDER BY име на колона DESC.

За директно сортиране има ключова дума ASC, която се приема като стойност по подразбиране.

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

Поради това информацията често се разделя на страници и се представя на потребителя на части. Странирането се използва с помощта на ключовата дума limit, последвана от броя на записите за показване. Следната заявка извлича първите 10 записа, като същевременно сортира назад в полето col_name1:

SELECT * FROM tbl ORDER BY col_name1 DESC LIMIT 10

За да извлечете следващите 10 записа, използвайте ключовата дума limit с две стойности: първата указва позицията, от която трябва да се отпечата резултатът, а втората указва броя на записите за извличане:

SELECT * FROM tbl ORDER BY col_name1 DESC LIMIT 10,10

За да извлечете следващите 10 записа, трябва да използвате конструкцията LIMIT 20, 10.

Езиковият стандарт SQL е приет през 1992 г. и все още се използва днес. Това стана стандарт за мнозина.Разбира се, някои производители използват свои собствени интерпретации на стандарта. Но всяка система все още има основните компоненти - SQL изрази.

Въведение

Използвайки SQL изрази, стойностите и таблиците се управляват и получават за по-нататъшен анализ и показване. Те са набор от ключови думи, чрез които системата разбира какво да прави с данните.

Дефинирани са няколко категории SQL оператори:

  • дефиниране на обекти от база данни;
  • манипулиране на ценности;
  • защита и контрол;
  • параметри на сесията;
  • информация за базата данни;
  • статичен SQL;
  • динамичен SQL.

SQL изрази за манипулиране на данни

ВМЪКНЕТЕ. Вмъква редове в съществуваща таблица. Може да се използва за една или няколко стойности, определени от определено условие. Например:

име на таблица (име на колона 1, име на колона 2)

VALUES(стойност 1, стойност 2).

За да използвате оператора INSERT за множество стойности, използвайте следния синтаксис:

име на таблица 1 (име на колона 1, име на колона 2)

ИЗБЕРЕТЕ име на колона 1, име на колона 2

ОТ име на таблица 2

WHERE име на таблица 2. име на колона 1>2

Тази заявка ще избере всички данни от таблица 2, които са по-големи от 2 в колона 1, и ще ги вмъкне в първата.

АКТУАЛИЗИРАНЕ. Както подсказва името, този оператор SQL заявкаактуализира данни в съществуваща таблица въз основа на конкретен критерий.

АКТУАЛИЗИРАНЕ на име на таблица 1

SET име на колона 2 = "Василий"

WHERE име на таблица 1. име на колона 1 = 1

Тази конструкция ще запълни със стойността Василий всички редове, в които среща числото 1 в първата колона.

Данни от табл. Можете да посочите условие или да премахнете всички редове.

DELETE FROM име на таблица

WHERE име на таблица. име на колона 1 = 1

Горната заявка ще премахне от базата данни всички данни със стойност едно в първата колона. Ето как можете да изчистите цялата таблица:

Изявление SELECT

Основната цел на SELECT е да избира данни според определени условия. Резултатът от работата му винаги е нова таблица с избрани данни. Операторът MS може да се използва в множество различни заявки. Следователно, заедно с него, можете да разгледате други свързани ключови думи.

За да изберете всички данни от конкретна таблица, използвайте знака „*“.

ОТ име на таблица 1

Резултатът от работата на това исканеще точно копиемаса 1.

И тук се прави избор с помощта на условието WHERE, което извлича от таблица 1 всички стойности, по-големи от 2 в колона 1.

ОТ име на таблица 1

WHERE име на таблица 1. име на колона 1 > 2

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

ИЗБЕРЕТЕ име на таблица 1. име на колона 1

ОТ име на таблица 1

Резултатът от тази заявка ще бъдат всички редове със стойности от колона 1. Използвайки MS SQL оператори, можете да създадете своя собствена таблица, заменяйки, изчислявайки и замествайки определени стойности в движение.

име на таблица 1. име на колона 1

име на таблица 1. име на колона 2

име на таблица 1. име на колона 3

име на таблица 1. име на колона 2 * име на таблица 1. име на колона 3 AS SUMMA

ОТ име на таблица 1

Тази привидно сложна заявка извлича всички стойности от таблица 1, след което създава нови колони EQ и SUMMA. Първата се попълва със знака “+”, а втората е произведението на данните от колони 2 и 3. Полученият резултат може да се представи под формата на таблица, за да разберете как работи:

Когато използвате оператора SELECT, можете веднага да сортирате данните според всеки критерий. За това се използва думата ORDER BY.

име на таблица 1. име на колона 1

име на таблица 1. име на колона 2

име на таблица 1. име на колона 3

ОТ име на таблица 1

ПОРЪЧАЙТЕ ПО име на колона 2

Получената таблица ще изглежда така:

Тоест всички редове бяха зададени в такъв ред, че стойностите в колона 2 бяха във възходящ ред.

Данните могат да бъдат получени и от няколко таблици. За по-голяма яснота, първо трябва да си представите, че има две от тях в базата данни, нещо подобно:

Таблица "Служители"

Таблица "Заплата"

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

Служители. Брой

Служители. Име

Заплата.Ставка

Заплата.Начислена

ОТ Служители, Заплата

WHERE Служители.Брой = Заплата.Брой

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

Още малко за SELECT. Използване на агрегатни функции

Един от основните оператори може да извършва някои изчисления при извличане. За целта той използва определени функции и формули.

Например, за да получите броя на записите от таблицата Employees, трябва да използвате заявката:

ИЗБЕРЕТЕ БРОЯ (*) КАТО N

ОТ служители

Резултатът е таблица с една стойност и колона.

Можете да изпълните запитване като това и да видите какво ще се случи:

SUM (Заплата. Начислена) КАТО SUMMA

МАКС (Заплата. Начислена) КАТО МАКС

МИН.(Начислена заплата) КАТО МИН

СР(Натрупана заплата) КАТО SRED

ОТ Заплата

Финалната маса ще бъде така:

По този начин можете да изберете желаните стойности от базата данни, като изчислявате различни функции в движение.

Съединение, пресичане и различия

Комбинирайте множество заявки в SQL

ИЗБЕРЕТЕ Служители.Име

ОТ служители

WHERE Employees.Number = 1

ИЗБЕРЕТЕ Служители.Име

ОТ Служители, Заплата

WHERE Заплата. Число = 1

Трябва да се има предвид, че при такъв съюз таблиците трябва да са съвместими. Тоест да има еднакъв брой колони.

Синтаксис на израза SELECT и ред на обработка

Първото нещо, което SELECT прави, е да определи областта, от която ще вземе данни. За това се използва ключовата дума FROM. Ако не е посочено какво точно да избера.

Тогава клаузата SQL WHERE може да присъства. С негова помощ SELECT преминава през всички редове на таблицата и проверява данните за съответствие с условието.

Ако заявката съдържа GROUP BY, тогава стойностите се групират според посочените параметри.

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

Има няколко вида. В SQL операторите за сравнение могат да проверяват Различни видовестойности.

    "=". Означава, както можете да се досетите, равенството на два израза. Например, вече е използвано в примерите по-горе - WHERE Salary.Number = 1.

    ">". Още знак. Ако стойността на лявата страна на израза е по-голяма, тогава се връща логическото TRUE и условието се счита за изпълнено.

    «<». Знак меньше. Обратный предыдущему оператор.

    знаци "<=» и «>=". Различава се от простите повече и по-малко оператори по това, че ако операндите са равни, условието също ще бъде вярно.

КАТО

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

Например, беше зададена следната задача: от вече известната база данни „Служители“ да вземете всички хора, чиито имена завършват с „I“. Тогава заявката може да бъде написана така:

ОТ служители

WHERE Име като `%i`

Знакът за процент в този случай означава маска, тоест всеки знак и техния брой. И чрез буквата "I" SQL ще определи, че последният знак трябва да бъде точно такъв.

СЛУЧАЙ

Този израз на SQL Server е реализация на множествен избор. Напомня конструкцията switch в много езици за програмиране. Операторът CASE в SQL изпълнява действие въз основа на няколко условия.

Например, трябва да изберете максималните и минималните стойности от таблицата „Заплата“.

Тогава заявката може да бъде написана така:

ОТ Заплата

WHERE CASE WHEN SELECT MAX(Accrued) THEN Maximum

WHEN SELECT MIN (Accrued) THEN Minimum

В този контекст системата търси максималната и минималната стойност в колоната Начислено. След това чрез END се създава поле “total”, в което ще се въвеждат “Maximum” или “Minimum” в зависимост от резултата от условието.

Между другото, SQL има и по-компактна форма на CASE - COALESCE.

Оператори за дефиниране на данни

Този изглед ви позволява да извършвате различни модификации на таблици - създаване, изтриване, модифициране и работа с индекси.

Първият, който си заслужава да бъде разгледан, е CREATE TABLE. Не прави нищо повече от създаване на таблица. Ако просто въведете заявката CREATE TABLE, нищо няма да се случи, тъй като все още трябва да посочите няколко параметъра.

Например, за да създадете вече познатата таблица „Служители“, трябва да използвате командите:

СЪЗДАВАНЕ НА ТАБЛИЦА Служители

(Число (10) НЕ е NULL

Име varchar(50) NOT NULL

Фамилно име varchar(50) NOT NULL)

В тази заявка имената на полетата и техните типове веднага се определят в скоби, както и дали може да бъде равно на NULL.

ПАДВАЩА МАСА

Изпълнява една проста задача - премахване на посочената таблица. Има допълнителен параметър IF EXISTS. Той абсорбира грешка при изпускане, ако таблицата, която търсите, не съществува. Пример за употреба:

ПУСКАНЕ НА ТАБЛИЦА Служители, АКО СЪЩЕСТВУВА.

СЪЗДАВАНЕ НА ИНДЕКС

SQL има индексна система, която ви позволява да ускорите достъпа до данни. Като цяло това е връзка, която сочи към определена колона. Можете да създадете индекс с проста заявка:

CREATE INDEX index_name

ON име_на_таблица(име_на_колона)

Този оператор се използва в T-SQL, Oracle, PL SQL и много други технологии за интерпретация.

АЛТЕР ТАБЛИЦА

Много функционален оператор с множество опции. Като цяло променя структурата, дефиницията и разположението на таблиците. Използван оператор в Oracle SQL, Postgres и много други.

    ДОБАВЯНЕ. Добавя колона към таблицата. Синтаксисът му е както следва: ALTER TABLE име_на_таблица ADD име_на_колона stored_data_type. Може да има опция IF NOT EXISTS за потискане на грешката, ако колоната, която се създава, вече съществува;

    ИЗПУСКАЙТЕ. Премахва колона. Освен това има ключ IF EXISTS, без който ще се генерира грешка, показваща, че необходимата колона липсва;

    ПРОМЯНА. Служи за преименуване на името на полето на посоченото. Пример за употреба: ALTER TABLE table_name CHANGE old_name new_name;

    МОДИФИЦИРАНЕ. Тази команда ще ви помогне да промените типа и допълнителните атрибути на определена колона. И се използва по следния начин: ALTER TABLE table_name MODIFY column_name data_type attributes;

СЪЗДАВАНЕ НА ИЗГЛЕД

В SQL има такова нещо като изглед. Накратко, това е един вид виртуална таблица с данни. Той се формира в резултат на селекция с помощта на оператора SQL SELECT. Изгледите могат да ограничат достъпа до базата данни, да ги скрият и да заменят реалните имена на колони.

Процесът на създаване се осъществява с помощта на проста заявка:

CREATE VIEW име на изглед AS SELECT FROM * име на таблица

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

Малко за функциите

SQL заявките много често използват различни вградени функции, които ви позволяват да взаимодействате с данни и да ги трансформирате в движение. Струва си да ги разгледаме, защото те са неразделна част от структуриран език.

    БРОЯ. Брои записи или редове в конкретна таблица. Можете да посочите името на колоната като параметър, след което данните ще бъдат взети от нея. ИЗБЕРЕТЕ БРОЯ * ОТ Служители;

    СР. Прилага се само за колони с числови данни. Неговият резултат е определянето на средноаритметичното на всички стойности;

    МИН и МАКС. Тези функции вече са използвани в тази статия. Те определят максималните и минималните стойности от определена колона;

    SUM. Това е просто - функцията изчислява сумата от стойностите на колоните. Прилага се изключително за числови данни. Чрез добавяне на параметъра DISTINCT към заявката ще бъдат сумирани само уникални стойности;

    КРЪГЪЛ. Функция за закръгляване на десетични дроби. Синтаксисът използва името на колоната и броя на десетичните знаци;

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

    СЕГА. Тази ключова дума се използва за изчисляване на текущата дата и час.

Допълнителни оператори

Много примери за SQL изрази имат ключови думи, които изпълняват малки задачи, но все пак значително опростяват извличането или манипулирането на базата данни.

    КАТО. Използва се, когато трябва визуално да форматирате резултата, като присвоите определеното име на получената таблица.

    МЕЖДУ. Много удобен инструмент за вземане на проби. Той определя диапазона от стойности, сред които данните трябва да бъдат извлечени. Взема като вход параметър от и до какъв номер се използва диапазонът;.

    НЕ. Операторът дава обратното на израза.

    ТРЪНЦИРАНЕ. Изтрива данни от посочения раздел на базата данни. Той се различава от подобни оператори по това, че е невъзможно да се възстановят данни след използването му. Струва си да се има предвид, че внедряването на тази ключова дума в различни интерпретации на SQL може да се различава. Ето защо, преди да опитате да използвате TRUNCATE, е по-добре да прочетете помощната информация.

    ОГРАНИЧЕНИЕ. Задава броя на редовете за извеждане. Особеността на оператора е, че той винаги се намира в края. Приема един задължителен параметър и един незадължителен. Първият указва колко реда с избрани данни трябва да бъдат показани. И ако се използва вторият, тогава операторът работи като за диапазон от стойности.

    СЪЮЗ. Много удобен оператор за комбиниране на множество заявки. Вече беше намерен сред примерите за това в тази статия. Можете да покажете желаните редове от няколко таблици, като ги комбинирате с UNION за по-удобна употреба. Синтаксисът му е следният: SELECT име_на_колона FROM име_на_таблица UNION SELECT име_на_друга_колона FROM име_на_друга_таблица. Резултатът е обобщена таблица с комбинираните заявки.

    ПЪРВИЧЕН КЛЮЧ. Превежда се като „първичен ключ“. Всъщност това е точно терминологията, използвана в справочните материали. Това означава уникален идентификатор на ред. Като правило се използва при създаване на таблица, за да посочи полето, което ще я съдържа.

    ПО ПОДРАЗБИРАНЕ. Точно както предишния оператор, той се използва по време на изпълнение на заявката за създаване. Той определя стойността по подразбиране, с която полето ще бъде попълнено, когато бъде създадено.

    НУЛА. Начинаещи и не само програмисти, когато пишат заявки, много често забравят за възможността за получаване на NULL стойност. В резултат на това в кода се прокрадва грешка, която е трудно да се проследи по време на отстраняване на грешки. Следователно, когато създавате таблици, избирате или преизчислявате стойности, трябва да спрете и да помислите дали се взема предвид появата на NULL в тази част от заявката.

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

    Ограничения. Ако трябва да получите само два реда от база данни с хиляди редове, тогава трябва да използвате оператори като LIMIT или TOP. Няма нужда да извличате данни с помощта на език за разработка на обвивка.

    Съединение. След като получат данни от няколко таблици, много програмисти започват да ги обединяват, използвайки shell памет. Но защо? В крайна сметка можете да създадете една заявка, в която ще присъства всичко това. Няма нужда да пишете допълнителен код и да резервирате допълнителна памет в системата.

    Сортиране. Ако е възможно да се приложи подреждане в заявка, тоест с помощта на СУБД, тогава трябва да го използвате. Това ще ви позволи значително да спестите ресурси при стартиране на програма или услуга.

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

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

    Видове. За да спестите място и ресурси, трябва да сте чувствителни към типовете данни, които използвате. Ако е възможно да използвате тип, който е по-малко „тежък“ за памет, тогава трябва да го използвате. Например, ако знаете, че числовата стойност в дадено поле няма да надвишава 255, тогава защо да използвате 4-байтов INT, ако има 1-байтов TINYINT.

Заключение

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

Въпреки това, модификациите на оригиналния езиков стандарт понякога се различават една от друга. Например PL SQL изразите може да имат различен синтаксис от този в SQL Server. Ето защо, преди да започнете да разработвате с тази технология, си струва да прочетете уроците по нея.

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

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

Езикът 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Основни SQL оператори. Синтаксис и примери за използване на оператора SELECT.

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

Могат да се разграничат следните групи оператори (не всички SQL оператори са изброени):

DDL (Data Definition Language) оператори – оператори за дефиниране на обекти на база данни

· CREATE SCHEMA - създаване на схема на база данни

· DROP SHEMA - изтриване на схема на база данни

· CREATE TABLE - създаване на таблица

ALTER TABLE - промяна на таблицата

· DROP TABLE - изтриване на таблица

· CREATE DOMAIN - създаване на домейн

ALTER DOMAIN - промяна на домейна

· DROP DOMAIN - изтриване на домейн

· CREATE COLLATION - създаване на последователност

· DROP COLLATION - изтриване на последователност

· CREATE VIEW - създаване на изглед

· DROP VIEW - изтриване на изглед

DML (Data Manipulation Language) оператори - оператори за манипулиране на данни

· SELECT - избор на редове от таблици

· INSERT - добавяне на редове към таблицата

· АКТУАЛИЗАЦИЯ - промяна на редове в таблицата

· DELETE - изтриване на редове в таблицата

· КОМИТ - ангажиране на направените промени

· ROLLBACK - връща назад направените промени

Оператори за защита и управление на данни

· CREATE ASERTION - създаване на ограничение

· DROP ASSERTION - премахване на ограничение

· GRANT - предоставя привилегии на потребител или приложение за манипулиране на обекти

REVOKE - отнема привилегиите на потребител или приложение

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

Най-важните за потребителя са отчетите за манипулиране на данни (DML).

Примери за използване на оператори за манипулиране на данни

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

Пример 1. Вмъкване на един ред в таблица:

VALUES(4, "Иванов");

UPDATE - актуализиране на редове в таблица

Пример 3. Актуализиране на няколко реда в таблица:

SET PNAME = "Пушников"

КЪДЕ P.PNUM = 1;

DELETE - изтриване на редове в таблица

Пример 4. Изтриване на няколко реда в таблица:

КЪДЕ P.PNUM = 1;

Примери за използване на израза SELECT

Инструкцията SELECT всъщност е най-критичната за потребителя и най-сложната SQL инструкция. Той е предназначен за извличане на данни от таблици, ᴛ.ᴇ. той всъщност изпълнява една от основните цели на базата данни - да предоставя информация на потребителя.

Операторът SELECT винаги се изпълнява върху някои от таблиците, които са част от базата данни.

Коментирайте. Всъщност в базите данни има не само постоянно съхранявани таблици, но и временни таблици и така наречените изгледи. Изгледите са просто SELECT изрази, съхранени в базата данни. От гледна точка на потребителя изгледът е таблица, която не се съхранява постоянно в базата данни, но се „появява“ при достъп до нея. От гледна точка на оператора SELECT, както постоянните таблици, така и временните таблици и изгледи изглеждат абсолютно еднакви. Разбира се, когато системата действително изпълнява оператор SELECT, разликите между съхранените таблици и изгледи се вземат предвид, но тези разлики скритот потребителя.

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

SELECT Ред за изпълнение на оператора

За да разберете как се получава резултатът от изпълнението на оператор SELECT, разгледайте концептуалната диаграма на неговото изпълнение. Тази схема е чисто концептуална, т.к гарантира се, че резултатът ще бъде същият, както ако се изпълнява стъпка по стъпка по тази схема. Всъщност действителният резултат се получава от по-сложни алгоритми, които „притежава“ определена СУБД.

Етап 1: Изпълнение на един оператор SELECT

Ако операторът съдържа ключовите думи UNION, EXCEPT и INTERSECT, заявката се разделя на няколко независими заявки, всяка от които се изпълнява отделно:

Стъпка 1 (ОТ). Изчислява се прякото декартово произведение на всички таблици, посочени в задължителния раздел ОТ. В резултат на стъпка 1 получаваме таблица A.

Стъпка 2 (КЪДЕ). Ако операторът SELECT съдържа клауза WHERE, тогава се сканира таблица A, получена в стъпка 1. В този случай за всеки ред от таблица A се изчислява условният израз, даден в клаузата WHERE. В резултата се включват само онези редове, за които условният израз връща TRUE. Ако секцията WHERE е пропусната, веднага преминете към стъпка 3. Ако в условния израз са включени вложени подзаявки, тогава те се изчисляват в съответствие с тази концептуална схема. В резултат на стъпка 2 получаваме таблица B.

Стъпка 3 (ГРУПИРАНЕ ПО). Ако операторът SELECT съдържа раздел GROUP BY, тогава редовете на таблица B, получени във втората стъпка, се групират в съответствие със списъка за групиране, даден в раздела GROUP BY. Ако секцията GROUP BY е пропусната, веднага преминете към стъпка 4. В резултат на стъпка 3 получаваме таблица C.

Стъпка 4 (ИМАНЕ). Ако операторът SELECT съдържа раздел HAVING, тогава групите, които не отговарят на условния израз, даден в раздела HAVING, се изключват. Ако секцията HAVING е пропусната, веднага преминете към стъпка 5. В резултат на стъпка 4 получаваме таблица D.

Стъпка 5 (ИЗБЕРЕТЕ). Всяка група, получена в стъпка 4, генерира един резултатен ред, както следва. Всички скаларни изрази, посочени в секцията SELECT, се оценяват. Съгласно правилата за използване на клаузата GROUP BY, такива скаларни изрази трябва да бъдат еднакви за всички редове във всяка група. За всяка група се изчисляват стойностите на агрегатните функции, дадени в секцията SELECT. Ако няма раздел GROUP BY, но има агрегатни функции в раздела SELECT, тогава се счита, че има само една група. Ако няма нито секция GROUP BY, нито агрегатни функции, тогава се счита, че има толкова групи, колкото са избраните редове в този момент. В резултат на стъпка 5 получаваме таблица E, съдържаща толкова колони, колкото е броят на елементите, посочени в секцията SELECT, и толкова редове, колкото е броят на избраните групи.

Етап 2. Извършване на операции UNION, EXCEPT, INTERSECT

Ако операторът SELECT съдържа ключовите думи UNION, EXCEPT и INTERSECT, тогава таблиците, получени в резултат на първия етап, се обединяват, изваждат или пресичат.

Етап 3. Подреждане на резултата

Ако операторът SELECT съдържа раздел ORDER BY, тогава редовете на таблицата, получени в предишните стъпки, се подреждат в съответствие със списъка за подреждане, даден в раздела ORDER BY.

Основни SQL оператори. Синтаксис и примери за използване на оператора SELECT. - понятие и видове. Класификация и характеристики на категорията "Основни SQL оператори. Синтаксис и примери за използване на оператора SELECT." 2017 г., 2018 г.



Свързани публикации