PL/MySQL이 존재합니까?
오라클에는 강력한 명령어인 PL/SQL이 있습니다.MySQL과 비슷한 것이 있습니까?
MySQL에는 유사한 구성 요소가 있지만 아니요, MySQL에는 PL\SQL을 사용할 수 없습니다.MS SQL Server에서 사용하는 T-SQL도 마찬가지입니다.
PL\SQL과 T-SQL 모두 튜링이 완벽하며, 아마도 약간 더 많은 기능을 제공할 것입니다.그러나 MySQL은 유사한 작업을 수행할 수 있는 많은 방법을 가지고 있습니다.
Yahoo Answers 게시물의 내용은 다음과 같습니다.
MySQL은 다중 스레드, 다중 사용자 SQL 데이터베이스 관리 시스템(DBMS)1로 MySQL AB에 따르면 1,000만 개 이상의 설치를 수행하고 있습니다.
MySQL 데이터베이스에 액세스하기 위한 라이브러리는 언어별 API가 있는 모든 주요 프로그래밍 언어로 제공됩니다.또한 MyODBC라는 ODBC 인터페이스를 사용하면 ODBC 인터페이스를 지원하는 추가 프로그래밍 언어(예: ASP 또는 Coldfusion)가 MySQL 데이터베이스와 통신할 수 있습니다.MySQL 서버와 공식 라이브러리는 대부분 ANSIC에서 구현됩니다.
MySQL은 웹 애플리케이션용으로 널리 사용되며 LAMP, MAMP 및 WAMP 플랫폼(Linux/Mac/Windows-Apache-MySQL-PHP/Perl...버그질라와 같은 오픈 소스 버그 추적 도구에 사용할 수 있습니다.웹 어플리케이션으로서의 PHP의 인기는 MySQL과 종종 결합되는 PHP의 인기와 밀접한 관련이 있습니다. PHP와 MySQL은 인기 있는 워드프레스 블로그 플랫폼을 운영하기 위한 필수적인 구성요소입니다.
다음 기능은 MySQL에서 구현되지만 일부 다른 RDB에서는 구현되지 않습니다.MSes:
- 여러 개의 스토리지 엔진: 애플리케이션의 각 테이블에 가장 효과적인 것을 선택할 수 있습니다(MySQL 5.0에서는 스토리지 엔진을 컴파일해야 하며, MySQL 5.1에서는 런타임에 스토리지 엔진을 동적으로 로드할 수 있습니다). o 기본 스토리지 엔진(MyISAM, Falcon, Merge, Memory(heap), Federated, Archive, CSV, Blackhole, Cluster) - Partner 개발 스토리지 엔진(InnoDB, solidDB, NitroEDB, BrightHouse) - 커뮤니티 개발 스토리지 엔진
- 맞춤형 스토리지 엔진
- 커밋 그룹화, 여러 연결에서 여러 트랜잭션을 함께 수집하여 초당 커밋 수를 늘립니다.
참고: MySQL은 C와 C++로 표기됩니다.SQL 파서는 yacc와 가정에서 양조한 렉서를 사용합니다.코드의 일부 내부 구조와 코딩 지침을 설명하는 문서는 MySQL 웹 사이트에서 구할 수 있습니다.
SQL
일반적으로 Structured Query Language로 확장된 SQL은 관계형 데이터베이스 관리 시스템의 데이터 검색 및 관리, 데이터베이스 스키마 생성 및 수정, 데이터베이스 객체 접근 제어 관리를 위해 설계된 컴퓨터 언어입니다.
SQL 언어는 다음과 같은 여러 언어 요소로 세분화됩니다.
- 스키마 및 데이터에 지속적인 영향을 미치거나 트랜잭션, 프로그램 흐름, 연결, 세션 또는 진단을 제어할 수 있는 문장.
- 특정 기준에 따라 데이터를 검색하는 쿼리입니다.
- 데이터의 열과 행으로 구성된 스칼라 값 또는 표를 생성할 수 있는 식입니다.
- SQL 3-값 논리(3VL) 부울 진리값으로 평가할 수 있는 조건을 지정하고 문 및 쿼리의 효과를 제한하거나 프로그램 흐름을 변경하는 데 일반적으로 사용되는 술어입니다.
- 문장 및 쿼리의 구성 요소(일부 경우 선택 사항)인 절
아래에서 작동합니다.쿼리 데이터 조작의 개념 데이터 정의 트랜잭션 제어
SQL:2003 표준은 SQL:1999의 모든 부분을 약간 수정하고 다음과 같은 몇 가지 새로운 기능을 공식적으로 도입했습니다.
- XML 관련 기능
- 창문의 기능
- 표준화된 시퀀스를 허용하는 시퀀스 발생기
- 두 가지 새로운 컬럼 유형: 자동 생성 값 및 ID-
- 새로운 MERGY 성명서
- "CREATE TABLE AS" 및 "CREATE TABLE LIKE"를 허용하는 CREATE TABLE 문에 대한 확장자
- 제대로 구현되지 않은 "BIT"와 "B"의 제거다양한 IT 데이터 유형
PL/SQL
PL/SQL은 SQL 데이터베이스 언어에 대한 Oracle Corporation의 독점 서버 기반 절차 확장입니다.(일부 다른 SQL 데이터베이스 관리 시스템은 PL/SQL과 유사한 언어를 제공합니다.)그것의 구문은 에이다의 구문과 매우 유사합니다.
PL/SQL은 변수, 조건, 배열 및 예외를 지원합니다.Oracle RDBMS 버전 8 이후의 구현에는 객체 지향과 관련된 기능이 포함되었습니다.
기본 SQL은 선언 언어로 기능합니다.표준 SQL은 일부 기능적 프로그래밍 언어와는 달리 테일콜을 점프로 변환하는 구현이 필요하지 않습니다.SQL은 "첫 번째 행" 및 "테이블의 나머지" 액세스자를 쉽게 제공하지 않으며 루프와 같은 일부 구성을 쉽게 수행할 수 없습니다.그러나 PL/SQL은 이러한 공백을 메우는 튜링-완전한 절차 언어로서 Oracle 데이터베이스 개발자들이 기본 관계형 데이터베이스와 명령적인 방식으로 인터페이스할 수 있도록 합니다.SQL 문은 PL/SQL 함수에 명시적인 인라인 호출을 하거나 미리 정의된 DML(Data Manipulation Language) 이벤트 시 PL/SQL 트리거가 발생할 수 있습니다.
DML을 수행하는 PL/SQL 저장 프로시저(함수, 프로시저, 패키지 및 트리거)는 오라클 데이터베이스로 컴파일됩니다. 이 정도까지 SQL 코드는 구문 검사를 거칠 수 있습니다.Oracle 데이터베이스 환경에서 작업하는 프로그래머는 이러한 기능의 PL/SQL 블록을 절차, 기능으로 구성하거나 SQL*Plus 스크립트 내에서 PL/SQL의 인라인 세그먼트를 작성할 수 있습니다.
프로그래머들이 SQL DML 문을 PL/SQL에 쉽게 통합할 수 있지만(예를 들어 커서 정의로 또는 SELECT ... INTO 구문을 사용하여) CREATE TABLE/DROP INDEX 등과 같은 DDL(Data Definition Language) 문은 "Dynamic SQL"을 사용해야 합니다.이전 버전의 Oracle은 시스템에서 SQL 문을 명시적으로 구문 분석하고 실행해야 했던 Dynamic SQL을 위해 복잡한 기본 제공 DBMS_SQL 패키지를 사용해야 했습니다.이후 버전에는 문제를 상당히 단순화하는 EXECUTE INDEMENT 구문인 "Native Dynamic SQL"이 포함되어 있습니다.Oracle에서 DDL을 사용하면 암시적 커밋이 발생합니다.프로그래머들은 또한 DML을 실행하기 위해 동적 SQL을 사용할 수 있는데, 그들이 문장의 정확한 내용을 미리 알지 못하는 경우입니다.
PL/SQL은 특정 목적을 위해 미리 정의된 여러 패키지를 제공합니다.이러한 PL/SQL 패키지는 다음과 같습니다.
- DBMS_OUTPUT - 데이터베이스가 아닌 대상에 대한 출력 작업용
- DBMS_JOB - 특정 시간에 특정 프로시저/기능을 실행하기 위한 (즉, 스케줄링)
- DBMS_XPLAN - "설명 계획" 출력 형식 지정
- DBMS_SESSION - SQL ALTER SEESSION 및 SET ROLE 문 및 기타 세션 정보에 액세스할 수 있습니다.
- DBMS_METadata - 데이터 사전에서 메타데이터 추출(예: DDL 문)
- UTL_FILE - 디스크의 파일을 읽고 쓰는 데 사용합니다.
- UTL_HTTP - 데이터베이스에서 웹 서버로 요청하는 경우
- UTL_SMTP - (SMTP 서버를 통해) 데이터베이스에서 메일을 발송하기 위한
Oracle Corporation은 Oracle DBMS의 연속적인 릴리스마다 더 많은 패키지를 추가하거나 패키지 기능을 확장합니다.
용어 문제
일부 관계형 데이터베이스 공급업체는 SQL을 선언 언어로 정의하는 전통적인 정의를 따릅니다.이러한 벤더의 예로는 Postgre를 들 수 있습니다.SQL, IBM, Oracle.이러한 데이터베이스 공급업체의 경우 SQL을 사용할 수 있거나 사용하지 않을 수 있는 자체 절차 언어로 절차 코드를 작성합니다.
일부 공급업체는 절차 언어를 SQL의 확장으로 간주합니다.이러한 공급업체들은 그러한 차별화를 가지고 있지 않습니다.예를 들어 MySQL에서는 "Stored Program"이 다음과 같이 선언됩니다.LANGUAGE SQL
다른 언어-features(예를 들어, 다른 곳에서는 제공되지 않음)를 제공함에도 불구하고.따라서 기본적으로 "SQL Routine"에는 다른 "SQL 언어"가 있고 쿼리 식에는 다른 "SQL 언어"가 있습니다.마이크로소프트와 같은 다른 공급업체들은 "T-SQL"이라는 단 하나의 용어로 모든 작업을 부릅니다.용어를 삭제하면 다른 데이터베이스에서 동등한 기능을 찾을 수 없거나, 어떤 기능이 다를지 알 수 없습니다.
완전히 표준화되는 절차적 특징은 다를 가능성이 높습니다.선언적 쿼리 구문은 스펙이 있기 때문에 비슷할 가능성이 높습니다.
그들이 얼마나 강력한지는 모르겠지만, 이 사이트는 MySQL 저장 프로시저를 SQL로 작성하는 것에 대한 정보를 제공합니다.
http://www.mysqltutorial.org/mysql-stored-procedure-tutorial.aspx
예.
http://www.mysqltutorial.org/sql-cursor-in-stored-procedures.aspx
No. pl/sql은 Oracle에 고유한 저장 프로시저 언어입니다.서로 다른 데이터베이스는 저장 프로시저에 대해 서로 다른 언어를 사용합니다.저장 프로시저에 대한 자세한 내용은 mySql 설명서의 이 페이지를 참조하십시오.
구글의 "mysql 저장 프로시저 시작하기"는 구문이 PLSQL에서 그리 멀지 않습니다.
DELIMITER //
CREATE PROCEDURE GetAllProducts()
BEGIN
SELECT * FROM products;
END //
DELIMITER ;
언급URL : https://stackoverflow.com/questions/9808876/pl-mysql-does-it-exist
'programing' 카테고리의 다른 글
JVM 프로세스는 메모리를 어떻게 할당합니까? (0) | 2023.10.22 |
---|---|
jQuery .close()와 비슷하지만 후손을 횡단합니까? (0) | 2023.10.22 |
C에서 주(공)와 주()의 차이 (0) | 2023.10.22 |
MySQL에서 두 날짜 간의 연도 차이를 정수로 가져옵니다. (0) | 2023.10.22 |
팬더 데이터프레임의 전체 열의 하위 문자열 (0) | 2023.10.22 |