Хотя MySQL имеет аналогичные компоненты, нет, вы не можете использовать PL \ SQL в MySQL. То же самое касается T-SQL, используемого MS SQL Server.
Вы увидите, что и PL \ SQL, и T-SQL являются завершающими по Тьюрингу и, вероятно, предоставляют немного больше функциональности. Но у MySQL есть много способов выполнить подобные задачи.
MySQL - многопоточная, многопользовательская система управления базами данных SQL.
(СУБД) 1 , которая, согласно MySQL AB, насчитывает более 10 миллионов
установок.
Библиотеки для доступа к базам данных MySQL доступны во всех основных
языки программирования с языковыми API. Кроме того,
Интерфейс ODBC под названием MyODBC позволяет использовать дополнительные языки программирования
которые поддерживают интерфейс ODBC для связи с базой данных MySQL,
такие как ASP или Coldfusion. Сервер MySQL и официальные библиотеки
в основном реализовано в ANSI C.
MySQL популярен для веб-приложений и выступает в качестве базы данных.
компонент платформ LAMP, MAMP и WAMP
(Linux / Mac / Windows-Apache-MySQL-PHP / Perl ... и для ошибки с открытым исходным кодом
инструменты отслеживания, такие как Bugzilla. Его популярность как веб-приложения
тесно связан с популярностью PHP, который часто сочетается с
MySQL. PHP и MySQL являются важными компонентами для запуска популярных
Платформа блогов WordPress.
Следующие функции реализованы MySQL, но не некоторыми другими
СУРБД:
- Несколько механизмов хранения, позволяющих выбрать тот, который наиболее эффективен для каждой таблицы в приложении (в MySQL 5.0,
механизмы хранения должны быть скомпилированы в; в MySQL 5.1 механизмы хранения могут
быть динамически загруженным во время выполнения): o Собственные механизмы хранения (MyISAM,
Сокол, Слияние, Память (куча), Федеративный, Архив, CSV, Черная дыра,
Кластер)
Разработанные для партнеров движки хранения (InnoDB, solidDB, NitroEDB, BrightHouse)
-Собственные двигатели хранения
- Кастомизированные двигатели хранения
- Группировка коммитов, собирающая несколько транзакций из нескольких соединений вместе, чтобы увеличить количество коммитов в секунду.
Примечание: MySQL написан на C и C ++. Анализатор SQL использует yacc и
доморощенный лексер. Документ, описывающий некоторые из внутренних
структуры кода и руководящие принципы кодирования можно получить из
Веб-сайт MySQL.
SQL
SQL, обычно расширяемый как язык структурированных запросов, - это компьютер
язык, предназначенный для поиска и управления данными в
системы управления реляционными базами данных, создание схем баз данных и
модификация и управление доступом к объектам базы данных.
Язык SQL подразделяется на несколько языковых элементов,
в том числе:
- Операторы, которые могут оказывать постоянное влияние на схемы и данные или которые могут управлять транзакциями, потоком программ, соединениями,
сеансы или диагностика.
- Запросы, которые извлекают данные на основе определенных критериев.
- Выражения, которые могут создавать скалярные значения или таблицы, состоящие из столбцов и строк данных.
- Предикаты, которые определяют условия, которые могут быть оценены как значения булевой истинности SQL трехзначной логики (3VL) и обычно используются для
ограничить влияние операторов и запросов или изменить программу
течь.
- Пункты, являющиеся (в некоторых случаях необязательными) составными компонентами операторов и запросов
работает в соответствии с ... концепцией определения данных манипулирования данными запроса
управление транзакциями
Стандарт SQL: 2003 вносит незначительные изменения во все частиSQL: 1999, и официально вводит несколько новых функций, таких как: 1
- Функции, связанные с XML
- оконные функции
- генератор последовательностей, который допускает стандартизированные последовательности
- два новых типа столбцов: автоматически сгенерированные значения и identity-столбцы
- новый оператор MERGE
- расширения оператора CREATE TABLE, чтобы разрешить "CREATE TABLE AS" и "CREATE TABLE LIKE"
- удаление плохо реализованных типов данных "BIT" и "BIT VARYING"
PL / SQL
PL / SQL - это собственное серверное процедурное расширение для корпорации Oracle до
язык базы данных SQL. (Некоторые другие системы управления базами данных SQL
предлагают языки, похожие на PL / SQL.) Синтаксис сильно напоминает
Ада.
PL / SQL поддерживает переменные, условия, массивы и исключения.
Реализации, начиная с версии 8 СУБД Oracle, имеют
включены функции, связанные с объектной ориентацией.
Базовый SQL функционирует как декларативный язык. стандарт
SQL - в отличие от некоторых функциональных языков программирования - не требует
реализации для преобразования хвостовых вызовов в прыжки. SQL не готов
предоставить методы доступа "первая строка" и "оставшаяся часть таблицы", и он не может
легко выполнять некоторые конструкции, такие как петли. PL / SQL, однако, как
Тьюринг-полный процедурный язык, который заполняет эти пробелы, позволяет
Разработчики базы данных Oracle для взаимодействия с базовым реляционным
базы данных в обязательном порядке. Операторы SQL могут сделать явными
встроенные вызовы функций PL / SQL или могут вызвать триггеры PL / SQL
запуск по заранее заданным событиям языка манипулирования данными (DML).
PL / SQL хранимые процедуры (функции, процедуры, пакеты и
триггеры), которые выполняют DML, компилируются в базу данных Oracle:
В этом случае их SQL-код может подвергаться синтаксической проверке. Программисты
работая в среде базы данных Oracle, можно создавать блоки PL / SQL
такой функциональности, чтобы служить процедурами, функциями; или они могут
написать линейные сегменты PL / SQL в сценариях SQL * Plus.
Хотя программисты могут легко включать операторы SQL DML в
PL / SQL (как определения курсора, например, или с помощью SELECT ...
Синтаксис INTO), операторы языка определения данных (DDL), такие как CREATE
TABLE / DROP INDEX и т. Д. Требуют использования «Динамического SQL». Ранее
версии Oracle требовали использования сложной встроенной DBMS_SQL
пакет для динамического SQL, где система должна была явно разобрать
и выполнить инструкцию SQL. Более поздние версии включили EXECUTE
НЕМЕДЛЕННЫЙ синтаксис под названием «Native Dynamic SQL», который значительно
упрощает дела. Любое использование DDL в Oracle приведет к
неявный коммит. Программисты также могут использовать динамический SQL для выполнения DML
где они не знают точное содержание заявления заранее.
PL / SQL предлагает несколько предопределенных пакетов для определенных целей. такие
Пакеты PL / SQL включают в себя:
- DBMS_OUTPUT - для операций вывода в адресаты, не относящиеся к базе данных
- DBMS_JOB - для запуска определенных процедур / функций в определенное время (т. Е. Планирование)
- DBMS_XPLAN - для форматирования вывода «Объяснить план»
- DBMS_SESSION - обеспечивает доступ к операторам SQL ALTER SESSION и SET ROLE и другой информации о сеансе.
- DBMS_METADATA - для извлечения метаданных из словаря данных (например, операторов DDL)
- UTL_FILE - для чтения и записи файлов на диск
- UTL_HTTP - для отправки запросов к веб-серверам из базы данных
- UTL_SMTP - для отправки почты из базы данных (через SMTP-сервер)
Oracle Corporation обычно добавляет дополнительные пакеты и / или расширяет
функциональность пакета с каждым последующим выпуском СУБД Oracle.