В Oracle есть PL/SQL, мощный императивный язык. Есть ли что-то подобное для MySQL?
PL/MySQL существует?
Ответ 1
В то время как MySQL имеет аналогичные компоненты, нет, вы не можете использовать PL\SQL в MySQL. То же самое касается T-SQL, используемого MS SQL Server.
В MySQL есть много документации по нему на своем веб-сайте.
Насколько мне не хотелось бы ссылаться на Yahoo Answers, есть хорошее объяснение Здесь
Вы увидите, что как PL\SQL, так и T-SQL завершены Turing и, вероятно, обеспечивают немного больше функциональности. Но MySQL имеет множество способов выполнения подобных задач.
Вот содержание сообщения Yahoo Answers:
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, но не некоторыми другими RDBMSes:
- Несколько механизмов хранения, позволяющие выбрать тот, который наиболее эффективен для каждой таблицы в приложении (в MySQL 5.0, механизмы хранения должны быть скомпилированы; в MySQL 5.1 механизмы хранения могут быть динамически загружен во время выполнения): o Нативные механизмы хранения (MyISAM, Falcon, Merge, Memory (куча), федерация, архив, CSV, Blackhole, Кластер) -Партнер-разработанные двигатели хранения (InnoDB, solidDB, NitroEDB, BrightHouse) -коммунистические системы хранения данных
- Пользовательские механизмы хранения
- Фиксировать группировку, собирая несколько транзакций из нескольких соединений вместе, чтобы увеличить количество транзакций в секунду.
Примечание: MySQL написан на языках C и С++. Парсер SQL использует yacc и домашний лексер. Документ, описывающий некоторые внутренние структуры кода и руководящие принципы кодирования доступны из Веб-сайт MySQL.
SQL
SQL, обычно расширяемый как Язык структурированных запросов, является компьютером язык, предназначенный для поиска и управления данными в реляционные системы управления базами данных, создание схемы базы данных и изменения и управления доступом к объектам базы данных.
Язык SQL подразделяется на несколько элементов языка, в том числе:
- Заявления, которые могут иметь постоянное влияние на схемы и данные или которые могут контролировать транзакции, поток программы, соединения, сессий или диагностики.
- Запросы, которые извлекают данные на основе определенных критериев.
- Выражения, которые могут производить скалярные значения или таблицы, состоящие из столбцов и строк данных.
- Предикаты, которые определяют условия, которые могут быть оценены для трехзначных логических (3VL) логических значений (3VL), и обычно используются для ограничить эффекты операторов и запросов или изменить программу течь.
- Клаузы, которые (в некоторых случаях необязательные) составные компоненты операторов и запросов
он работает под.. за исключением того, что обработка данных данных данных управление транзакциями
Стандарт SQL: 2003 допускает незначительные изменения во всех частях SQL: 1999, и официально вводит несколько новых функций, таких как: 1
- Функции, связанные с XML
- функции окна
- генератор последовательности, который позволяет стандартизованные последовательности
- два новых типа столбцов: автоматически сгенерированные значения и столбцы идентификации
- новый оператор MERGE
- в оператор CREATE TABLE, чтобы разрешить "CREATE TABLE AS" и "CREATE TABLE LIKE"
- удаление некачественных типов данных "BIT" и "BIT VARYING"
PL/SQL
PL/SQL - это проприетарное серверное расширение Oracle Corporation на основе язык базы данных 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 Синтаксис IMMEDIATE, называемый "Native Dynamic SQL", который значительно упрощает дело. Любое использование DDL в Oracle приведет к неявная фиксация. Программисты также могут использовать Dynamic 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 обычно добавляет больше пакетов и/или расширяет функциональность пакета с каждым последующим выпуском СУБД Oracle.
Ответ 2
Я не знаю, насколько они эффективны, но этот сайт дает информацию о написании хранимых процедур MySQL с SQL;
http://www.mysqltutorial.org/mysql-stored-procedure-tutorial.aspx
например.
http://www.mysqltutorial.org/sql-cursor-in-stored-procedures.aspx
Ответ 3
Нет. pl/sql - это язык хранимой процедуры, специфичный для Oracle. Различные базы данных используют разные языки для хранимых процедур. См. Эту страницу документации mySql для получения информации о хранимых процедурах.