Какво е възможно с помощта на sql езика. SQL: универсален език за работа с бази данни

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

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

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

Какво е база данни

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

Релационна база данни– това е подредена информация, свързана с определени взаимоотношения. Тя е представена под формата на таблици, в които се намира цялата тази информация. И това е много важно, тъй като сега трябва да си представите модерна база данни просто под формата на таблици ( говорейки в контекста на SQL), т.е. В общ смисъл базата данни е колекция от таблици. Разбира се, това е много опростено определение, но дава известно практическо разбиране на базата данни.

Какво е SQL

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

И тук възниква основният въпрос: Как можем да се свържем с нея и да получим необходимата информация?

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

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

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

Полезни материали по темата:

  • Създаване на база данни в Microsoft SQL Server – инструкции за начинаещи;
  • Добавяне на данни към таблици в Microsoft SQL Server - оператор INSERT INTO.

Какво е СУБД

Може да имате въпрос, ако базата данни е някакъв вид информация, която се съхранява в таблици, тогава как изглежда физически? Как да го погледнем като цяло?

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

Нека да продължим, ако базата данни е файл в специален формат, тогава как да го създадете или отворите? И тук възниква трудността, защото просто така, без никакви инструменти, създайте такъв файл, т.е. релационна база данни не е възможна; за това ви е необходим специален инструмент, който може да създава и управлява базата данни, с други думи, да работи с тези файлове.

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

Какви СУБД има?

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

Сред всички, по отношение на техните възможности и популярност, могат да се разграничат следните системи:

  • Microsoft SQL сървъре система за управление на бази данни от Microsoft. Много е популярен в корпоративния сектор, особено в големите компании. И това не е просто СУБД - това е цял набор от приложения, които ви позволяват да съхранявате и променяте данни, да ги анализирате, да защитите тези данни и много повече;
  • База данни на Oracleе система за управление на база данни от Oracle. Освен това е много популярна СУБД, също и сред големите компании. По отношение на техните възможности и функционалност, Oracle Database и Microsoft SQL Server са сравними, следователно те са сериозни конкуренти помежду си, а цената на техните пълнофункционални версии е много висока;
  • MySQLе система за управление на бази данни също от Oracle, но само тя се разпространява безплатно. MySQL придоби много широка популярност в интернет сегмента, т.е. Почти всички сайтове в Интернет работят на MySQL, с други думи, повечето сайтове в Интернет използват тази СУБД като средство за съхранение на данни;
  • PostgreSQL– Тази система за управление на бази данни също е безплатна и е много популярна и функционална.

Полезни материали по темата:

  • Инсталиране на Microsoft SQL Server 2016 Express - пример за инсталиране на безплатното издание на Microsoft SQL Server на Windows;
  • Инсталиране на Microsoft SQL Server 2017 Express на Ubuntu Server - пример за инсталиране на безплатното издание на Microsoft SQL Server на Linux;
  • Инсталиране на PostgreSQL 11 на Windows - пример за инсталиране на PostgreSQL на Windows;
  • Инсталиране на MySQL на Windows - пример за инсталиране на MySQL на Windows;
  • Инсталиране и конфигуриране на MySQL на Linux Mint - пример за инсталиране на MySQL на Linux;
  • Инсталиране на Oracle Database Express Edition 11g - пример за инсталиране на безплатното издание на Oracle на Windows ( Статията е написана отдавна, но все пак ще бъде полезна).

SQL диалекти (SQL разширения)

SQL езикът е стандарт, той се прилага във всички релационни бази данни, но всяка СУБД има разширение на този стандарт, има свой собствен език за работа с данни, обикновено се нарича SQL диалект, който, разбира се, се основава на SQL, но предоставя повече възможности за пълноценно програмиране; в допълнение, такъв вътрешен език дава възможност за получаване на системна информация и опростяване на SQL заявки.

Ето някои SQL диалекти:

  • Transact-SQL(съкратено T-SQL) – използва се в Microsoft SQL Server;
  • PL/SQL(Procedural Language / Structured Query Language) – използва се в Oracle Database;
  • PL/pgSQL(Procedural Language/PostGres Structured Query Language) – използва се в PostgreSQL.

Следователно зависи от СУБД кое разширение ще използвате за писане на SQL изрази. Ако говорим за прости SQL заявки, например,

ИЗБЕРЕТЕ ProductId, ProductName ОТ Стоки

тогава, разбира се, такива заявки ще работят във всички СУБД, защото SQL е стандарт.

Забележка! Това е проста SQL заявка за извличане на данни от една таблица, показваща две колони.

Все пак, ако ще програмирате, използвайте всички вътрешни възможности на СУБД ( разработване на процедури, използване на вградени функции, получаване на системна информация и др.), тогава трябва да научите конкретен диалект на SQL и да практикувате съответно в СУБД, която използва този диалект. Това е важно, защото синтаксисът на много конструкции се различава, както и възможностите и много повече. И ако например изпълните SQL оператор, който използва възможностите на определено SQL разширение, на друга СУБД, тогава такава инструкция, разбира се, няма да бъде изпълнена.

Например, аз лично съм специализиран в езика T-SQL и съответно работя с Microsoft SQL Server повече от 8 години!

Въпреки че, разбира се, работих и с други СУБД; по едно време поддържах две приложения, едното от които работеше с PostgreSQL, а второто, вероятно вече ясно, с Microsoft SQL Server.

Работих с MySQL, както вероятно много други, като част от поддръжката на уебсайтове и услуги. Е, трябваше да работя с Oracle Database като част от други проекти.

Групирах целия си натрупан опит в езика T-SQL на едно място и го поставих под формата на книги, така че ако имате желание да научите езика Transact-SQL (T-SQL), препоръчвам да прочетете моите книги:

  • The T-SQL Programmer's Path - урок по езика Transact-SQL за начинаещи. В него говоря подробно за всички конструкции на езика и последователно преминавам от просто към сложно. Подходящ за цялостно изучаване на езика T-SQL;
  • Стил на програмиране T-SQL - основите на правилното кодиране. Книга, насочена към подобряване на качеството на T-SQL кода ( за тези, които вече са запознати с езика T-SQL, т.е. знае поне основите).

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

Основни SQL команди, които всеки програмист трябва да знае

SQL или Structured Query Language е език, използван за управление на данни в система от релационни бази данни (RDBMS). Тази статия ще обхване често използвани SQL команди, с които всеки програмист трябва да е запознат. Този материал е идеален за тези, които искат да освежат знанията си по SQL преди интервю за работа. За да направите това, разгледайте примерите, дадени в статията, и не забравяйте, че сте изучавали бази данни по двойки.

Обърнете внимание, че някои системи за бази данни изискват точка и запетая в края на всеки израз. Точката и запетая е стандартният указател към края на всеки израз в SQL. Примерите използват MySQL, така че се изисква точка и запетая.

Създаване на база данни за примери

Създайте база данни, за да демонстрирате как работят екипите. За да работите, ще трябва да изтеглите два файла: DLL.sql и InsertStatements.sql. След това отворете терминал и влезте в MySQL конзолата, като използвате следната команда (статията предполага, че MySQL вече е инсталиран в системата):

Mysql -u root -p

След това въведете вашата парола.

Изпълнете следната команда. Нека наречем базата данни „университет“:

СЪЗДАВАНЕ НА БАЗА ДАННИ университет; USE университет; ИЗТОЧНИК ; ИЗТОЧНИК

Команди за работа с бази данни

1. Вижте наличните бази данни

ПОКАЖИ БАЗИ ДАННИ;

2. Създайте нова база данни

СЪЗДАВАНЕ НА БАЗА ДАННИ;

3. Избор на база данни за използване

ИЗПОЛЗВАНЕ ;

4. Импортирайте SQL команди от .sql файл

ИЗТОЧНИК ;

5. Изтрийте базата данни

ПРЕКРАТЯВАНЕ НА БАЗА ДАННИ ;

Работа с таблици

6. Вижте наличните таблици в базата данни

ПОКАЗВАНЕ НА МАСИ;

7. Създайте нова таблица

СЪЗДАВАНЕ НА ТАБЛИЦА ( , , ПЪРВИЧЕН КЛЮЧ ( ), ВЪНШЕН КЛЮЧ ( ) ЛИТЕРАТУРА ());

Ограничения на целостта при използване на CREATE TABLE

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

  • клетка от таблица не може да има NULL стойност;
  • първичен ключ - PRIMARY KEY (col_name1, col_name2, ...) ;
  • външен ключ - ВЪНШЕН КЛЮЧ (col_namex1, …, col_namexn) РЕФЕРЕНЦИИ table_name(col_namex1, …, col_namexn) .

Можете да посочите повече от един първичен ключ. В този случай ще получите съставен първичен ключ.

Пример

Създайте таблица "инструктор":

CREATE TABLE инструктор (ID CHAR(5), име VARCHAR(20) NOT NULL, име_на_отдел VARCHAR(20), заплата NUMERIC(8,2), ПЪРВИЧЕН КЛЮЧ (ID), ВЪНШЕН КЛЮЧ (име_на_отдел) РЕФЕРЕНЦИИ отдел (име_на_отдел));

8. Информация за таблица

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

ОПИСАЙТЕ ;

9. Добавяне на данни към таблицата

INSERT INTO (, , , ...) СТОЙНОСТИ ( , , , …);

Когато добавяте данни към всяка колона в таблица, не е необходимо да указвате имена на колони.

INSERT INTO ЦЕННОСТИ ( , , , …);

10. Актуализиране на таблични данни

АКТУАЛИЗИРАНЕ НАБОР = , = , ... КЪДЕ ;

11. Премахване на всички данни от таблицата

ИЗТРИВАНЕ ОТ ;

12. Изтриване на таблица

ПАДВАЩА МАСА ;

Команди за създаване на заявки

13. ИЗБЕРЕТЕ

SELECT се използва за извличане на данни от конкретна таблица:

ИЗБЕРЕТЕ , , … ОТ ;

Следната команда може да покаже всички данни от таблицата:

ИЗБЕРЕТЕ * ОТ ;

14. ИЗБЕРЕТЕ РАЗЛИЧЕН

Колоните на таблицата може да съдържат дублирани данни. Използвайте SELECT DISTINCT, за да извлечете само недублирани данни.

ИЗБЕРЕТЕ РАЗЛИЧЕН , , … ОТ ;

15. КЪДЕ

Можете да използвате ключовата дума WHERE в SELECT, за да посочите условия в заявка:

ИЗБЕРЕТЕ , , … ОТ КЪДЕ ;

В заявката могат да бъдат посочени следните условия:

  • сравнение на текст;
  • сравнение на числови стойности;
  • логически оператори И (и), ИЛИ (или) и НЕ (отрицание).

Пример

Опитайте следните команди. Обърнете внимание на условията, посочени в WHERE:

SELECT * FROM курс WHERE dept_name=’Комп. Sci.“; ИЗБЕРЕТЕ * ОТ курс WHERE кредити>3; ИЗБЕРЕТЕ * ОТ курс WHERE dept_name="Comp. Sci." И кредити>3;

16. ГРУПИРАНЕ ПО

Операторът GROUP BY често се използва с агрегатни функции като COUNT, MAX, MIN, SUM и AVG за групиране на изходни стойности.

ИЗБЕРЕТЕ , , … ОТ ГРУПИРАНЕ ПО ;

Пример

Нека покажем броя на курсовете за всеки факултет:

SELECT COUNT(course_id), dept_name FROM course GROUP BY dept_name;

17. ПРИТЕЖАВАНЕ

Ключовата дума HAVING беше добавена към SQL, защото WHERE не може да се използва с агрегатни функции.

ИЗБЕРЕТЕ , , ... ОТ ГРУПИРАНЕ ПО ИМАЩ

Пример

Нека покажем списък с факултети, които имат повече от един курс:

SELECT COUNT(course_id), dept_name FROM course GROUP BY dept_name HAVING COUNT(course_id)>1;

18. ПОРЪЧАЙ ОТ

ORDER BY се използва за сортиране на резултатите от заявката в низходящ или възходящ ред. ORDER BY ще сортира във възходящ ред, освен ако не е указан ASC или DESC.

ИЗБЕРЕТЕ , , … ОТ ПОРЪЧАЙТЕ ПО , , …ASC|DESC;

Пример

Нека покажем списък с курсове във възходящ и низходящ ред на кредитите:

ИЗБЕРЕТЕ * ОТ курс ПОРЪЧАЙТЕ ПО кредити; ИЗБЕРЕТЕ * ОТ курса ПОРЪЧАЙТЕ ПО кредити DESC;

19. МЕЖДУ

BETWEEN се използва за избор на стойности на данни от определен диапазон. Могат да се използват цифрови и текстови стойности, както и дати.

ИЗБЕРЕТЕ , , … ОТ КЪДЕ МЕЖДУ И ;

Пример

Нека покажем списък с инструктори, чиято заплата е повече от 50 000, но по-малко от 100 000:

ИЗБЕРЕТЕ * ОТ инструктор WHERE заплата МЕЖДУ 50000 И 100000;

20. ХАРЕСАЙТЕ

Операторът LIKE се използва в WHERE за указване на модел за търсене за подобна стойност.

Има два безплатни оператора, които се използват в LIKE:

  • % (няма, един или повече знака);
  • _ (един знак).
ИЗБЕРЕТЕ , , … ОТ КЪДЕ ХАРЕСАЙТЕ ;

Пример

Нека покажем списък с курсове, чиито имена съдържат "до" и списък с курсове, чиито имена започват с "CS-":

ИЗБЕРЕТЕ * ОТ курс WHERE заглавие LIKE ‘%to%’; SELECT * FROM course WHERE course_id LIKE "CS-___";

21. IN

С помощта на IN можете да посочите множество стойности за клаузата WHERE:

ИЗБЕРЕТЕ , , … ОТ КЪДЕ В ( , , …);

Пример

Нека покажем списък със студенти от специалности Comp. наука, физика и ел. инж.:

SELECT * FROM student WHERE dept_name IN ('Comp. Sci.', 'Physics', 'Elec. Eng.');

22. ПРИСЪЕДИНЕТЕ СЕ

JOIN се използва за свързване на две или повече таблици с помощта на общи атрибути в тях. Изображението по-долу показва различните начини за присъединяване в SQL. Обърнете внимание на разликата между ляво външно съединение и дясно външно съединение:

ИЗБЕРЕТЕ , , … ОТ ПРИСЪЕДИНЕТЕ СЕ ВКЛ = ;

Пример 1

Ще покажем списък с всички курсове и подходяща информация за факултетите:

ИЗБЕРЕТЕ * ОТ курс JOIN Department ON course.dept_name=department.dept_name;

Пример 2

Ще покажем списък с всички необходими курсове и подробности за тях:

SELECT prereq.course_id, title, dept_name, Credits, prereq_id FROM prereq LEFT OUTER JOIN курс ON prereq.course_id=course.course_id;

Пример 3

Ще покажем списък с всички курсове, независимо дали са задължителни или не:

ИЗБЕРЕТЕ course.course_id, title, dept_name, Credits, prereq_id FROM prereq RIGHT OUTER JOIN course ON prereq.course_id=course.course_id;

23. Изглед

Изгледът е виртуална SQL таблица, създадена в резултат на изпълнение на израз. Съдържа редове и колони и е много подобен на обикновена SQL таблица. View винаги показва най-новата информация от базата данни.

Създаване

СЪЗДАВАНЕ НА ИЗГЛЕД КАТО ИЗБРАНО , , … ОТ КЪДЕ ;

Премахване

ИЗГЛЕД НА КАПКА ;

Пример

Нека създадем изглед, състоящ се от курсове с 3 кредита:

24. Агрегатни функции

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

  • COUNT (col_name) - връща броя на редовете;
  • SUM (col_name) - връща сумата от стойностите в тази колона;
  • AVG (col_name) - връща средната стойност на дадена колона;
  • MIN (col_name) - връща най-малката стойност на дадена колона;
  • MAX (col_name) – Връща най-голямата стойност на дадена колона.

25. Вложени подзаявки

Вложените подзаявки са SQL заявки, които включват клаузи SELECT, FROM и WHERE, вложени в друга заявка.

Пример

Нека намерим курсове, които са преподавани през есента на 2009 г. и пролетта на 2010 г.:

ИЗБЕРЕТЕ DISTINCT course_id FROM раздел WHERE семестър = 'Есен' И година= 2009 И course_id IN (ИЗБЕРЕТЕ course_id FROM раздел WHERE семестър = 'Пролет' И година= 2010);

Да започна да уча SQLпърво трябва да разберем какво е база данни.

1. Какво е база данни

База данни (БД)- подреден набор от логически свързани данни, използвани заедно и съхранявани на едно място. Накратко, най-простият DBтова е обикновена таблица с редове и колони, в които се съхраняват различни видове информация (пример би била таблица в Excel). Така че, често, с DBсвързват неразривно Системи за управление на бази данни (СУБД), които предоставят функционалност за работа с DB. език SQLе само част СУБД, който управлява информация в DB. Ще броим DBнабор от редовни таблици, които се съхраняват в отделни файлове.

2. Какво е SQL

Така че нека да преминем към SQL.

SQLе прост език за програмиране, който има малко команди и може да се научи от всеки. Стойки за Език за структурирани заявкие структуриран език за заявки, който е проектиран да работи с DB, а именно да получавате/добавяте/променяте данни, да можете да обработвате големи количества информация и бързо да получавате структурирана и групирана информация. Има много езикови опции SQL, но всички те имат едни и същи основни команди. Има и много СУБД, но основните са: Microsoft Access, Microsoft SQL Server, MySQL, Oracle SQL, IBM DB2 SQL, PostgreSQL и Sybase Adaptive Server SQL. За работа с SQLкод, ще ни трябва един от горните СУБД. За обучение ще използваме Microsoft Access СУБД.

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

Добре дошли в разработката на база данни с помощта на стандартния език за заявки SQL. Системите за управление на бази данни (СУБД) имат много инструменти, които работят на голямо разнообразие от хардуерни платформи.

  • Основи на релационни бази данни

    В тази глава... | Организиране на информация | Какво е база данни | Какво е СУБД | Сравнение на модели на база данни | Какво е релационна база данни

  • Основи на SQL

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

  • SQL компоненти

    В тази глава... | Създаване на бази данни | Обработка на данни | Защита на бази данни | SQL е език, специално създаден за създаване и поддържане на данни в релационни бази данни. И въпреки че компаниите, които доставят системи за управление на такива бази данни, предлагат свои собствени реализации на SQL, развитието на самия език се определя и контролира от стандарта ISO/ANSI.

  • Създаване и поддържане на проста база данни

    В тази глава... | Създавайте, модифицирайте и изтривайте таблица от база данни с помощта на инструмента RAD. | Създаване, модифициране и изтриване на таблица от база данни с помощта на SQL. | Прехвърляне на база данни към друга СУБД.

  • Създаване на многотаблична релационна база данни

    В тази глава... | Какво трябва да има в базата данни | Определяне на връзки между елементите на базата данни | Свързване на таблици с помощта на ключове | Проектиране на целостта на данните | Нормализиране на база данни | Тази глава ще представи пример за създаване на многотаблична база данни.

  • Манипулиране на данни от базата данни

    В тази глава... | Работа с данни | Получаване на необходимите данни от таблицата | Показване на информация, избрана от една или няколко таблици | Актуализиране на информация в таблици и изгледи | Добавяне на нов ред към таблица

  • Дефиниране на ценности

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

  • Сложни изрази със значение

    В тази глава... | Използване на условни оператори | Преобразуване на елемент от данни от един тип данни в друг | Спестете време за въвеждане на данни с изрази със стойност на запис | В глава 2 SQL беше наречен подезик за данни.

  • „Насочване“ към необходимите данни

    В тази глава... | Посочване на необходимите таблици | Разделяне на необходимите редове от всички останали | Създаване на ефективни клаузи Where | Как да работите с нулеви стойности| Създаване на съставни изрази с логически връзки | Групиране на резултата от заявката по колона

  • Релационни оператори

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

  • Използване на вложени заявки

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

  • Рекурсивни заявки

  • Защита на базата данни

    В тази глава... | Контролиране на достъпа до таблиците на базата данни | Вземане на решение дали да се предостави достъп | Предоставяне на разрешения за достъп | Отмяна на пълномощия за достъп | Предотвратяване на опити за неоторизиран достъп

  • Защита на данните

    В тази глава... | Как да избегнем повреда на базата данни | Проблеми, причинени от едновременни операции | Разрешаване на тези проблеми с помощта на SQL машини | Задаване на необходимото ниво на сигурност с помощта на командата set transaction

  • Използване на SQL в приложения

    В тази глава... | SQL в приложението | Споделяне на SQL с процедурни езици | Как да избегнем несъвместимости | SQL код, вграден в процедурен код | Извикване на SQL модули от процедурен код | Извикване на SQL от RAD инструмент | В предишните глави разгледахме главно SQL командите поотделно, т.е. Формулирана е задачата за обработка на данни и за нея е създадена SQL заявка.

  • ODBC и JDBC

    В тази глава... | ODBC дефиниция | Описание на ODBC части | Използване на ODBC в среда клиент/сървър | Използване на ODBC в Интернет | Използване на ODBC в локални мрежи | Използване на JDBC | Всяка година компютрите на една организация или няколко различни организации се свързват все повече помежду си. Следователно е необходимо да се установи споделен достъп до базите данни през мрежата.

  • SQL:2003 и XML

    В тази глава... | Използване на SQL с XML | XML, бази данни и Интернет | Една от най-значимите нови характеристики на SQL:2003 е неговата поддръжка за XML (extensible Markup Language) файлове, които все повече се превръщат в универсален стандарт за обмен на данни между различни платформи.

  • Курсори

    В тази глава... | Дефиниране на обхвата на курсора в оператора declare | Курсор за отваряне | Извадка от данни ред по ред | Затваряне на курсора | SQL се различава от повечето от най-популярните езици за програмиране по това, че извършва операции върху данните от всички редове на таблица едновременно, докато процедурните езици обработват данни ред по ред.

  • В предишните две статии от тази серия, публикувани в броеве 6 и 7 на нашето списание, разгледахме различни механизми за достъп до данни, включително ADO, BDE и техните алтернативи. Сега знаем как да изберем технология за достъп до данни за конкретна двойка „СУБД - инструмент за разработка“.

    С въведената технология за достъп до данни най-накрая можем да помислим как трябва да се манипулират самите данни и метаданни. Методите за манипулиране могат да бъдат специфични за дадена СУБД (например използването на обекти в клиентската част на тази СУБД за достъп до обекти на база данни) или за даден механизъм за достъп до данни. Независимо от това, има повече или по-малко универсален начин за манипулиране на данни, поддържан от почти всички сървърни релационни СУБД и повечето универсални механизми за достъп до данни (включително когато се използват заедно с настолни СУБД). Този метод е да се използва езикът SQL (Structured Query Language). По-долу ще разгледаме предназначението и характеристиките на този език, а също така ще научим как да го използваме за извличане и обобщаване на данни, добавяне, изтриване и модифициране на записи, защита на данните от неоторизиран достъп и създаване на бази данни. За по-подробно изучаване на SQL можем да препоръчаме книгите на Мартин Грабер „Въведение в SQL“ (M., Laurie, 1996) и „SQL. Справочник" (М., Лори, 1997).

    Въведение

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

    Езикът SQL е създаден в началото на 70-те години в резултат на изследователски проект на IBM, чиято цел е да създаде език за манипулиране на релационни данни. Първоначално се нарича SEQUEL (Structured English Query Language), след това SEQUEL/2 и след това просто SQL. Официалният SQL стандарт е публикуван от ANSI (Американски национален институт по стандартизация, САЩ) през 1986 г. (това е най-често използваната реализация на SQL днес). Този стандарт беше разширен през 1989 и 1992 г., така че последният SQL стандарт се нарича SQL92. В момента се работи по стандарта SQL3, който съдържа някои обектно-ориентирани разширения.

    Има три нива на съответствие с ANSI - Beginner, Intermediate и Complete. Много доставчици на сървърни СУБД, като IBM, Informix, Microsoft, Oracle и Sybase, използват свои собствени SQL реализации, базирани на стандарта ANSI (отговарящи поне на първоначалното ниво на съответствие със стандарта) и съдържащи някои разширения, специфични за СУБД.

    По-подробна информация относно съответствието на версията на SQL, използвана в конкретна СУБД, може да бъде намерена в документацията, предоставена с тази СУБД.

    Как работи SQL

    Нека да разгледаме как работи SQL. Да приемем, че има база данни, управлявана с помощта на някакъв вид СУБД. За извличане на данни от него се използва заявка, формулирана на SQL. СУБД обработва тази заявка, извлича исканите данни и ги връща. Този процес е изобразен схематично на фиг. 1.

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

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

    Език за дефиниране на данни (DDL)

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

    Тези оператори са изброени в табл. 1.

    Таблица 1

    Оператор

    Описание

    Използва се за добавяне на нова таблица към базата данни

    Използва се за премахване на таблица от база данни

    Използва се за промяна на структурата на съществуваща таблица

    Използва се за добавяне на нов изглед към базата данни

    Използва се за създаване на индекс за дадено поле

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

    Използва се за създаване на нова схема в базата данни

    Използва се за премахване на схема от базата данни

    Използва се за създаване на нов домейн

    Използва се за предефиниране на домейн

    Използва се за премахване на домейн от базата данни

    Език за манипулиране на данни (DML)

    Езикът за манипулиране на данни съдържа оператори, които ви позволяват да избирате, добавяте, изтривате и променяте данни. Имайте предвид, че тези отчети не са необходими за завършване на транзакцията, в рамките на която са извикани. Изявленията на DML са представени в табл. 2.

    Таблица 2

    Операторът SELECT понякога се класифицира в отделна категория, наречена Data Query Language (DQL).

    Език за управление на курсора (CCL)

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

    Таблица 5

    Таблица 1

    Оператор

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

    Използва се за описание на план за заявка. Този оператор е SQL разширение за Microsoft SQL Server 7.0. Не е необходимо да работи в други СУБД. Например, в случая на Oracle трябва да се използва операторът EXPLAIN PLAN

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

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

    Използва се за затваряне на курсора

    Използва се за подготовка на SQL оператор за изпълнение

    Използва се за изпълнение на SQL израз

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

    Всички SQL изрази имат формата, показана на фиг. 2.

    Всеки SQL оператор започва с глагол, който е ключова дума, която указва какво прави изразът (SELECT, INSERT, DELETE...). Изявлението също така съдържа изречения, съдържащи информация за това върху какви данни се извършват операциите. Всяка клауза започва с ключова дума като FROM, WHERE и т.н. Структурата на клаузата зависи от нейния тип - някои клаузи съдържат имена на таблици или полета, някои могат да съдържат допълнителни ключови думи, константи или изрази.

    Как можете да изпълнявате SQL изрази?

    Всички съвременни сървърни СУБД (както и много популярни настолни СУБД) съдържат помощни програми, които ви позволяват да изпълните SQL оператор и да видите неговия резултат. По-специално клиентската част на Oracle съдържа помощната програма SQL Plus, а Microsoft SQL Server съдържа помощната програма SQL Query Analyzer.

  • Заглавие: