{{위키데이터 속성 추적}}
{{infobox programming language
| name                   = SQL/PSM
| logo                   =
| paradigm               = [[다중 패러다임 프로그래밍 언어|다중 패러다임]]
| year                   = 1996
| designer               =
| developer              =
| latest_release_version = [[SQL:2016]]
| latest_release_date    = 
| latest_preview_version = 
| latest_preview_date    = 
| turing-complete        = 예
| typing                 = 
| implementations        = [[PL/SQL]]<br/> [[MySQL]]/[[MariaDB]] <br />IBM's [[SQL PL]]<br />[[Mimer SQL]]
| influenced_by          = [[PL/SQL]] <br /> [[에이다 (프로그래밍 언어)|에이다]]<ref>{{인용| url = http://ocelot.ca/blog/blog/2015/01/15/stored-procedures-critiques-and-defences/ | title = Stored Procedures: critiques and defences | year = 2015 | first1 = Peter | last1 = Gulutzan }}</ref>
| influenced             = 
| operating_system       = [[크로스 플랫폼|크로스 플랫폼 (멀티 플랫폼)]]
| license                =
| website                = 
| file_ext               =
| dialects               =
| wikibooks              = 
}}
'''SQL/PSM'''([[SQL]]/Persistent Stored Modules)은 주로 [[저장 프로시저]]에 사용하기 위해 [[절차적 프로그래밍|절차적 언어]]로 SQL 확장을 정의해둔 [[ISO 표준]]이다. 1996년에 [[SQL-92]](ISO/IEC 9075-4:1996, 가끔은 PSM-96이나 SQL-92/PSM라고도 부름<ref>{{저널 인용 | last1 = Eisenberg | first1 = A. | 제목 = New standard for stored procedures in SQL | doi = 10.1145/245882.245907 | journal = ACM SIGMOD Record | volume = 25 | issue = 4 | pages = 81-88| year = 1996 | pmid =  | pmc = }}</ref>))로 처음 출판된 SQL/PSM은 나중에 멀티 파트 [[SQL:1999]] 표준으로 통합되었으며, 그 뒤로 지금까지 이 표준의 파트 4로 유지되고 있다. 가장 최근 판은 [[SQL:2011]]이다. SQL:1999 파트 4는 초기 PSM-96 보다 적용되는 내용이 적었는데 그 까닭은 루틴을 정의하고 관리하고 호출하는 SQL 문들이 실제로는 파트 2 SQL/Foundation에 포함되면서 SQL/PSM라는 절차적 언어 그 자체만 남겨두었기 때문이다.<ref>{{서적 인용| first1 =Jim | last1 = Melton | first2 =Alan R | last2 = Simon | 제목 = SQL: 1999| url =https://archive.org/details/sqlunderstanding00melt_776 |year=2002| publisher = Morgan Kaufmann|isbn= 978-1-55860-456-8 | pages = [https://archive.org/details/sqlunderstanding00melt_776/page/n573 541]–42}}</ref> SQL/PSM 기능들은 SQL 표준이 관여하는 한 여전히 선택 사항이며, 이들 중 대부분은 기능 P001-P008 안에 그룹화되어 있다.

SQL/PSM은 [[제어 흐름]], [[예외 처리]] (SQL/PSM에서는 "조건 관리/condition handling"라 부름), 지역 변수, 식의 변수 및 매개변수로의 할당, [[데이터베이스 커서|커서]]의 절차적 이용을 위한 문법과 시맨틱을 표준화한다. 저장 프로시저를 위한 정보 스키마 ([[메타데이터]])도 정의한다. SQL/PSM은 SQL:1999의 구조화된 자료형을 위한 [[메소드]]를 정의할 수 있는 언어의 하나이다. 이 밖에 [[SQL/JRT]]를 통한 자바가 있다.

실질적으로 [[MySQL]]의 절차적 언어와 IBM의 [[SQL PL]] (DB2에서 사용)은 SQL/PSM 표준에 매우 가깝다.<ref name = "HarrisonFeuerstein2008">{{서적 인용 | first1 = Guy | last1 = Harrison| first2 = Steven | last2 = Feuerstein|제목=MySQL Stored Procedure Programming|url= http://books.google.com/books?id=YpeP0ok0cO4C&pg=PT75 | year=2008|publisher=O'Reilly |isbn = 978-0-596-10089-6 |page= 49}}</ref>

SQL/PSM은 [[PL/SQL]]과 [[PL/pgSQL]]에 영향을 받았으며 이로 인해 서로 비슷한 언어이다.

== 같이 보기 ==
* [[HSQLDB]]
* [[MySQL]]
* [[MariaDB]]
* [[PostgreSQL]]
* [[오라클 데이터베이스]]
* [[마이크로소프트 SQL 서버]]
== 각주 ==
<references />

== 참고 문헌 ==
* Jim Melton, ''Understanding SQL's Stored Procedures: A Complete Guide to SQL/PSM'', Morgan Kaufmann Publishers, 1998, {{ISBN|1-55860-461-8}}

{{SQL}}
{{전거 통제}}
{{기본정렬:SQL PSM}}
{{토막글|소프트웨어}}

[[분류:데이터 관리]]
[[분류:SQL]]
[[분류:1996년 개발된 프로그래밍 언어]]
[[분류:데이터 중심 프로그래밍 언어]]