اس‌کیوال تعبیه شده

**SQL تعبیه شده** یا **Embedded SQL** راهی برای ترکیب توان رایانشی زبان برنامه نویسی و قابلیت های پایگاه داده SQL است. عبارت های SQL تعبیه شده خطوط SQLی هستند که درون کد منبع برنامه به زبان میزبان نوشته شده اند. خطوط کد توسط پیش پردازنده SQL تعبیه شده تجزیه و با کد فراخوانی از کتابخانه زبان میزبان جایگزین می شوند. سپس خروجی پیش پردازنده با  کامپایلر زبان میزبان کامپایل می شود. اینگونه، برنامه نویس ها می توانند دستور های SQL را در هر زبانی مثل C/C++ ، COBOL و Fortran تعبیه کنند. این روش با زبان های برگرفته از SQL مثل PL/SQL و T-SQL که از پیش پردازنده های جدا استفاده نمی کنند، فرق دارد.

کمیته استانداردهای SQL، استاندارد SQL تعبیه شده را در دو مرحله تعریف کرد: یک صورت‌بندی به نام زبان ماژول تعریف شد، سپس استاندارد SQL جاسازی‌شده از زبان ماژول مشتق شد. استاندارد SQL، تعبیه SQL را به عنوان SQL تعبیه شده تعریف می‌کند و زبانی که در آن کوئری های SQL تعبیه می‌شوند به عنوان زبان میزبان شناخته می‌شود. C یک زبان میزبان محبوب است. به عنوان مثال زبان C و SQL تعبیه شده در سیستم‌های مدیریت پایگاه داده Oracle و Sybase به نام Pro*C، در Informix به نام ESQL/C و در سیستم مدیریت پایگاه داده PostgreSQL به نام ECPG نامیده می‌شود. SQL ممکن است در زبان‌هایی مانند PHP نیز تعبیه شود.

استاندارد SQL:2023 با خرید قابل دسترس است و شامل فصل ۲۱ SQL تعبیه شده و نحوه استفاده از آن می‌باشد.

## سیستم‌های پایگاه داده‌ با پشتیبانی از SQL تعبیه شده

### Altibase

; C/C++
: APRE یک پیش کامپایلر SQL تعبیه شده برای سرورهای DBMS شرکت Altibase از همین شرکت است.

### IBM Db2
IBM Db2 برای لینوکس، یونیکس و ویندوز از SQL تعبیه شده برای C، C++، Java، COBOL، FORTRAN و REXX پشتیبانی می کند. اگرچه پشتیبانی از REXX و FORTRAN متوقف شده.

### IBM Informix
IBM Informix ورژن 14.10 برای لینوکس، یونیکس و ویندوز از SQL تعبیه شده برای C پشتیبانی می کند. 

### Microsoft SQL Server

; C/C++
: SQL تعبیه شده برای C از Microsoft SQL Server 2008 کنار گذاشته شده اگر چه نسخه های اولیه اش از آن پشتیبانی می کردند.

### Mimer SQL
Mimer SQL برای لینوکس، مک او اس، اُپن وی‌ام‌اس، و ویندوز از SQL تعبیه شده پشتیبانی می کند.

### [[پایگاه داده اورکل]]

; Ada
: پشتیبانی از Pro*Ada به طور رسمی با نسخه 7.3 توسط اوراکل متوقف شد. با عرضه Oracle8، SQL*Module با Pro*Ada جایگزین شد. اگرچه به نظر می رسد از آن زمان دیگر بروزرسانی نشده. SQL*Module یک زبان ماژولی است که روش برنامه نویسی متفاوت از SQL تعبیه شده ارائه می دهد. SQL*Module از استاندارد زبانی Ada83 برای Ada پشتیبانی می کند.

; C/C++
: Pro*C با Oracle8 تبدیل به Pro*C/C++ شد. این نسخه تاکنون (Oracle Database 11*g*) پشتیبانی می شود.

; COBOL
: Pro*COBOL در حال حاضر (Oracle Database 11*g*) پشتیبانی می شود.

; Fortran
: Pro*FORTRAN از Oracle8 دیگر بروزرسانی نمی شود ولی اوراکل نسخه های پشتیبانی برای گزارش ها و خطاهای ارسالی منتشر می کند.

; Pascal
: Pro*Pascal با Oracle8 عرضه نشد.

; PL/I
: Pro*PL/I به همراه Oracle8 عرضه نشد. اگرچه بخش راهنمای Pro*PL/I در راهنمای اوراکل تا نسخه 11g وجود داشت.

### [[پستگرس‌کیوال|PostgreSQL]]

; C/C++
: ECPG از نسخه 6.3 بخشی از پستگرس‌کیوال است.

### SAP Sybase
SAP Sybase ASE 15.7 از SQL تعبیه شده برای C و COBOL به عنوان بخشی از کیت توسعه نرم افزار Sybase پشتیبانی می کند.

SAP Sybase SQL Anywhere از SQL تعبیه شده برای C و C++ به عنوان بخشی از سیستم مدیریت دیتابیس SQL Anywhere پشتیبانی می کند.

SAP Sybase IQ از SQL تعبیه شده برای C و C++ به عنوان بخشی از سیستم مدیریت دیتابیس Sybase IQ پشتیبانی می کند.

## SQL تعبیه شده از طریق [[زبان خاص دامنه|زبان های خاص دامنه]]

* LINQ-to-SQL یک زبان شبه SQL را درون .NET تعبیه می کند.
* JPA یک زبان شبه SQL را از طریق Criteria API  درون جاوا تعبیه می کند.
* JOOQ یک زبان شبه SQL را درون جاوا تعبیه می کند.

## منابع


## پیوند به بیرون

* Introduction to Pro*C Embedded SQL
* Embedded SQL with Pro*C
* SQL*Module for Ada Programmer's Guide, Release 8.0
* ECPG, PostgreSQL Documentation
* ESQL/C, Informix Documentation'
* Embedded SQL in C, Mimer SQL Developer
رده:زبان‌های مدل‌سازی داده
رده:زبان‌های برنامه‌نویسی اعلانی
رده:زبان‌های پرس و جو
رده:اس‌کیوال
رده:واسط‌های برنامه‌نویسی کاربردی پایگاه داده