Какво е SQL? Пълно ръководство за форми и основи

⚡ Умно обобщение

Какво е SQL? Структурираният език за заявки (Structured Query Language) е стандартният език за работа с релационни бази данни. Той ви позволява да създавате схеми, да заявявате записи, да актуализирате редове, да управлявате разрешения и да свързвате съвременни приложения с енджини като... PostgreSQL, MySQLи SQL Server.

  • 📘 Определение: SQL е съкращение от Structured Query Language (Структуриран език за заявки), стандарт на ANSI и ISO, използван за дефиниране, заявки и контрол на данни в релационна база данни.
  • 🧩 Видове изявления: Групови команди DDL, DML, DCL, TCL и DQL, като например CREATE, INSERT, UPDATE, DELETE, SELECT и DROP.
  • 🏛️ Стандарт: ANSI SQL:2023 добави вградена поддръжка на JSON и PostgreSQL-стил на стандартни заявки за графи на свойства (SQL/PGQ).
  • Двигатели: PostgreSQL 17, MySQL 8, Oracle 23ai и SQL Server 2022 внедряват големи части от съвременния SQL стандарт.
  • 🆚 SQL срещу NoSQL: SQL налага схеми, съединения и ACID транзакции, докато NoSQL заменя строгата структура с хоризонтален мащаб и гъвкави документи.
  • 🤖 Ъгъл на изкуствен интелект: Асистенти за преобразуване на текст в SQL, като GitHub Copilot и Vanna AI, вече превеждат въпроси на обикновен английски език в изпълними SQL заявки.

Какво е SQL?

Какво е SQL?

SQL е стандартният език за работа с релационни бази данни. Използва се за вмъкване, търсене, актуализиране и изтриване на записи, а също така може да оптимизира и поддържа бази данни. SQL е стандарт ANSI и ISO, така че един и същ основен синтаксис работи в различни двигатели като... PostgreSQL, MySQL, Oracleи SQL Server.

SQL пълен формуляр

SQL означава език за структурирани заявки, произнася се като „SQL“ или „See-Quel“. IBM разработи го през 1970-те години на миналия век, както и релационни бази данни като MySQL, Oracle Database, Microsoft SQL Server, PostgreSQL, и SAP Sybase използва ANSI SQL като основа.

Как да използвате SQL

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

SELECT * FROM Members WHERE Age > 30;

Синтаксисът в различните бази данни е до голяма степен сходен, тъй като всеки основен двигател имплементира стандарта ANSI. Няколко продукта за RDBMS добавят собствени диалекти, например T-SQL в SQL Server и PL/SQL в Oracle.

Кликнете тук ако видеото не е достъпно

За какво се използва SQL?

Ето важните причини за използването на SQL:

  • Това помага на потребителите да имат достъп до данни в RDBMS система.
  • Това ви помага да опишете данните.
  • Тя ви позволява да дефинирате данните в база данни и да манипулирате тези конкретни данни.
  • С помощта на SQL можете да създавате и премахвате бази данни и таблици.
  • SQL ви позволява да използвате функции в база данни, да създавате изгледи и да пишете съхранени процедури.
  • Можете да задавате разрешения за таблици, процедури и изгледи.
  • SQL поддържа аналитични задачи като отчитане, бизнес разузнаване и подаване на данни към конвейери за машинно обучение.

Кратка история на SQL

Ето важни ориентири от историята на SQL:

  • 1970 – Д-р Едгар Ф. „Тед“ Код описва релационен модел за бази данни.
  • 1974 г. – Структуриран език за заявки се появява в IBM Research.
  • 1978 - IBM пусна System/R.
  • 1986 г. – ANSI стандартизира SQL като SQL-86.
  • 1989 г. – Публикувана е първата търговска версия на стандарта SQL.
  • 1999 г. – SQL:1999 добавя тригери и обектно-ориентирани функции.
  • SQL:2003 – Функции на прозореца и XML характеристики.
  • SQL:2006 – Поддръжка за XML език за заявки.
  • SQL:2011 – Поддръжка на темпорални бази данни.
  • SQL:2016 – JSON, разпознаване на редови шаблони, полиморфни таблични функции.
  • SQL:2023 – Заявки към графи на свойства (SQL/PGQ) и по-строга обработка на JSON.

Видове SQL оператори

Ето пет вида широко използвани SQL изрази:

  • Език за дефиниране на данни (DDL)
  • Език за манипулиране на данни (DML)
  • Език за управление на данни (DCL)
  • Език за контрол на транзакциите (TCL)
  • Език за заявка на данни (DQL)

Списък на SQL команди

Ето списък с някои от най-често използваните SQL команди:

  • CREATE – определя структурата или схемата на базата данни.
  • INSERT – вмъква данни в редовете на таблица.
  • АКТУАЛИЗАЦИЯ – актуализира съществуващите данни в базата данни.
  • ИЗТРИЙ – премахва един или повече редове от таблица.
  • МАРКИРАЙ – избира атрибутите, които отговарят на условието, описано от клаузата WHERE.
  • Капка – премахва таблици и бази данни.
  • МЪЖЕ – извършва INSERT или UPDATE в един оператор, базиран на условие за съвпадение.

SQL процес

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

Важни компоненти в този процес са:

  • SQL Query Engine
  • Оптимизационен двигател
  • Диспечер на заявки
  • Класическа машина за заявки

Класическият двигател за заявки обработва заявки, които не са SQL, докато SQL двигателят за заявки обработва структурираното натоварване.

SQL процес
SQL процес

SQL стандарти

SQL обхваща създаване на база данни, изтриване, извличане и модифициране на редове и контрол на достъпа. Това е стандарт на ANSI (Американски национален институт по стандартизация) и ISO, а текущото издание е ISO / IEC 9075: 2023, обикновено наричан SQL:2023. Стандартът е разделен на няколко части:

Част Descriptйон
Част 1 – SQL/Framework Предлага логическите концепции, които са в основата на всяка друга част.
Част 2 – SQL/Foundation Дефинира централния синтаксис и семантика на SQL.
Част 3 – SQL/CLI Указва интерфейса на ниво повикване, използван от ODBC и подобни драйвери.
Част 4 – Постоянно съхранени модули Съхранени рутинни процедури, външни рутинни процедури и процедурни езикови разширения към SQL.
Част 9 – Управление на външни данни Добавя синтаксис и дефиниции, които позволяват на SQL достъп до източници на данни, различни от SQL, като например файлове.
Част 10 – Свързване на обектен език Указва синтаксиса и семантиката на вграждането на SQL в Java.
Част 11 – SQL/схема Информационни и дефиниращи схеми.
Част 13 – SQL/JRT SQL рутини и типове, използващи Java програмен език.
Част 14 – SQL/XML SQL и XML, включително интеграцията с XMLTYPE и XQuery.
Част 15 – SQL/MDA Осигурява SQL поддръжка за многомерни масиви.
Част 16 – SQL/PGQ Добавено в SQL:2023 за дефиниране на заявки за графи на свойства върху релационни таблици.

Съвременни SQL двигатели

Всеки двигател имплементира по-голямата част от ANSI ядрото и добавя свои собствени разширения:

  • PostgreSQL 17: Отворен код със строго спазване на стандартите и богата JSON поддръжка.
  • MySQL 8: Популярен с уеб приложенията; поддържа функции на прозореца, CTE и режим на съхранение на документи.
  • Microsoft SQL Server 2022: Корпоративен енджин с разузнаване на заявки и Azure Синапсно огледало.
  • Oracle Database 23ai: Комбинира SQL с векторно търсене и JSON-релационни дуални изгледи.
  • SQLite: Лек файлов енджин, вграден в мобилни приложения и браузъри.

Облачни складове, като например Amazon червено отместване, Google BigQuery и Snowflake също така предоставят достъп до ANSI SQL диалекти, което прави езика преносим от лаптоп до анализи в петабайтов мащаб.

Елементи на езика SQL

Ето важните елементи на езика SQL:

  • Ключови думи: Резервирани думи като SELECT, FROM или WHERE, които изграждат всяко изявление.
  • Идентификатори: Имена на обекти в базата данни, като например потребителски идентификатори, таблици и колони.
  • Струни: Литерални низове или изрази с типове данни VARCHAR или CHAR.
  • Изрази: Формира се от константи, SQL оператори, имена на колони и подзаявки.
  • Условия за търсене: Филтриране на редове или управление на потока от оператори като IF.
  • Специални стойности: Стойности като CURRENT_TIMESTAMP, използвани в изрази и стойности по подразбиране на колоните.
  • Променливи: Повечето двигатели поддържат локални, глобални и променливи на ниво връзка в съхранените процедури.
  • Коментари: Едноредовите (–) и блоковите (/* */) коментари документират SQL, но не се изпълняват.
  • NULL Стойност: NULL маркира стойност, която е неизвестна, липсва или е неприложима.

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

A база данни е колекция от таблици, които съхраняват структурирани данни. Таблицата съдържа редове (записи или кортежи) и колони (атрибути).

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

Какво е NoSQL?

NoSQL е категория от Системи за управление на бази данни чиято основна черта е неспазването на релационни концепции. NoSQL означава „Не само SQL“. Категорията се разраства с интернет гиганти като Google, Facebook и Amazon, които боравят с гигантски обеми от данни.

Когато релационните бази данни обработват огромни обеми, времето за реакция може да се забави. Можете да „мащабирате“ чрез надграждане на хардуера или да „разширите“ мащаба си чрез разпределяне на натоварването между множество хостове.

NoSQL базите данни са нерелационен магазини, предназначени за уеб приложения. Те не винаги използват SQL или налагат строги схеми, а ACID (Atomсвойствата (като например електрическа изолация, консистентност, изолация, издръжливост) не винаги са гарантирани, въпреки че съвременни системи, като например MongoDB намлява Cassandra сега предлагат настройваеми транзакционни режими.



Защо има смисъл да се учи SQL след NoSQL

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

Релационните бази данни запазват следните предимства пред NoSQL:

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

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

SQL и AI: Инструменти за преобразуване на текст в SQL

SQL вече е целеви език за асистенти с изкуствен интелект. Текст към SQL Инструментите превеждат въпроси на обикновен английски език, като например „покажи 10-те най-големи клиенти по приходи от последното тримесечие“, в изпълним SQL код. Популярните опции включват Копилот на GitHub, Ванна AI, Microsoft Вторият пилот влиза Azure SQL и Oracle Изберете AI. Винаги проверявайте генерирания SQL код за коректност, сигурност и индексиране, преди да го изпълните върху производствени данни.

Най-добрите книги за изучаване на SQL

Ето някои от най-добрите книги за SQL:

  • SQL урок за начинаещи:

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

  • SQL за 10 минути: Примери за код с пълноцветен код показват как са структурирани SQL изразите, плюс преки пътища и готови решения. Поръчай СЕГА
  • Готварска книга за SQL: Техники като например „разхождане“ на низ със SQL за разбор на символи или разделени елементи. Поръчай СЕГА
  • SQL: The Complete Reference: Обхваща функциите на прозореца, завъртането на редове в колони и обратното завъртане. Поръчай СЕГА
  • Джобно ръководство за SQL: Преподава SQL функции, синтаксис на регулярни изрази и преобразуване на типове. Поръчай СЕГА

За още книги по SQL – Натисни тук

Въпроси и Отговори

SQL е съкращение от Structured Query Language (Структуриран език за заявки). Произнася се или като трите букви „SQL“, или като „See-Quel“ – прякор, наследен от оригинала. IBM Прототипът SEQUEL е разработен през 1970-те години на миналия век.

SQL е стандартизираният език за заявки към релационни бази данни. MySQL е една от многото системи за управление на бази данни, които имплементират SQL. Други двигатели, които също използват SQL, включват PostgreSQL, Microsoft SQL Server, Oracle Database, и SQLite.

Настоящият стандарт е ISO/IEC 9075:2023, обикновено наричан SQL:2023. Той добавя Част 16 SQL/PGQ за заявки към графове на свойства и изяснява обработката на JSON, надграждайки върху функциите за JSON и редови шаблони, въведени в SQL:2016.

Да. Инструменти за преобразуване на текст в SQL, като например Копилот на GitHub, Ванна ИИ и Microsoft Вторият пилот влиза Azure SQL превръща обикновените английски подкани в заявки. Винаги проверявайте генерирания SQL код за коректност, сигурност и индексиране, преди да го изпълните.

SQL подготвя данните за обучение: инженерингът на функции, съединенията, филтрите и агрегациите се случват в хранилището. Двигатели като Oracle 23ai, BigQuery машинно обучение и PostgreSQL С pgvector вече можете да изпълнявате търсения за сходство на вектори директно в SQL за генериране, допълнено с извличане.

Повечето начинаещи могат да пишат основни оператори SELECT, INSERT, UPDATE и DELETE след две до три седмици целенасочена практика. Достигането на средно ниво на умения за свързване, подзаявки, прозоречни функции и настройване на заявки обикновено отнема няколко месеца редовна практическа работа.

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