Подтвердить что ты не робот

PL/MySQL существует?

В Oracle есть PL/SQL, мощный императивный язык. Есть ли что-то подобное для MySQL?

4b9b3361

Ответ 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.

Ответ 3

Нет. pl/sql - это язык хранимой процедуры, специфичный для Oracle. Различные базы данных используют разные языки для хранимых процедур. См. Эту страницу документации mySql для получения информации о хранимых процедурах.