Sql:1999

SQL:1999 (که SQL 3 نیز نام دارد) چهارمین ویرایش زبان پرس و جو(:زبان پرسمان) پایگاه داده SQL است. خیلی از ویژگی‌های جدید را معرفی کرد که بسیاری از آنها نیاز به توضیح در SQL:2003 داشتند. در این لحظه، SQL:1999 منسوخ شده است

## خلاصه
اسناد استاندارد ISO بین سالهای ۱۹۹۹ و ۲۰۰۲ در چندین قسمت منتشر شد که اولین قسمت خود شامل چندین بخش بود. بر خلاف نسخه‌های قبلی، برای سازگاری با نام سایر استانداردهای :سازمان بین‌المللی استانداردسازی، نام استاندارد ان به جای خط فاصله (-)از دو نقطه استفاده می‌کند. اولین قسمت SQL:1999 دارای پنج بخش بود:
* SQL/Framework ISO/IEC 9075-1:1999
* SQL/Foundation ISO/IEC 9075-2:1999
* SQL/CLI:یک تعریف به روز شده از رابط سطح تماس افزونه(extension Call Level Interface)، که اول سال ۱۹۹۵ منتشر شد، همچنین به عنوان CLI-95 شناخته می‌شود.ISO/IEC 9075-3:1999
* :Sql/psm :تعریف به روز شده افزونه Persistent Stored Modules، که در ابتدا سال ۱۹۹۶ منتشر شد، همچنین به عنوان PSM-96 شناخته می‌شود.ISO/IEC 9075-4:1999
* SQL/Bindings ISO/IEC 9075-5:1999

سه بخش دیگر که همچنین بخشی از SQL:1999 در نظر گرفته می‌شوند بعد از ان منتشر شدند:
* :SQL/MED مدیریت داده‌های خارجی (SQL:1999 قسمت 9)ISO/IEC 9075-9:2001
* SQL/OLBاتصالات زبان شی (SQL:1999 قسمت 10)ISO/IEC 9075-10:2000
* :SQL/JRTروتین‌ها و انواع SQL با استفاده از زبان برنامه‌نویسی جاوا (SQL:1999 قسمت 13)ISO/IEC 9075-13:2002

## ویژگی‌های جدید
### انواع داده‌ها
#### داده‌های Boolean
استاندارد SQL:1999 نوع داده Boolean را استفاده می‌کند، اما بسیاری از سرورهای تجاری اس کیو ال (:پایگاه داده اورکل, :دی‌بی۲) آن را به‌عنوان نوع داده برای یک ستون یا نوع متغیر پشتیبانی نمی‌کنند یا آن را در مجموعه نتایج مجاز نمی‌دانند. :مایکروسافت اس‌کیوال سرور یکی از معدود سیستم‌های پایگاه داده است که با استفاده از داده "BIT" خود از مقادیر BOOLEAN به درستی پشتیبانی می‌کند. هر فیلد ۱ تا ۸ بیت، یک بایت کامل از فضای دیسک را اشغال می‌کند. MySQL بولین(Boolean) را مترادف TINYINT (اعداد علامت دار ۸ بیتی) در نظر می‌گیرد. :پستگرس‌کیوال نوع Boolean را مطابق با استاندارد ارائه می‌دهد.

#### انواع متمایز قدرت تعریف شده توسط کاربر
گاهی اوقات آنها را فقط انواع متمایز(*distinct types*) می‌نامند، اینها به عنوان یک ویژگی اختیاری (S011) معرفی شدند تا به انواع اتمی موجود اجازه گسترش با معنای متمایز بدهند تا یک نوع داده جدید ایجاد شود و در نتیجه مکانیزم بررسی نوع داده قادر می‌سازد تا برخی از خطاهای منطقی را شناسایی کند، به عنوان مثال. اضافه کردن تصادفی سن به حقوق مثلا:
 ;create type age as integer FINAL
 ;create type salary as integer FINAL

دو نوع داده متفاوت و ناسازگار ایجاد می‌کند. انواع متمایز SQL از معادل اسمی استفاده می‌کنند نه معادل ساختاری مانند typedefs در زبان C. هنوز هم می‌توان عملیات سازگار بر روی (ستون‌ها یا داده‌ها) انواع متمایز (distinct types)با استفاده از یک نوع صریح CAST انجام داد.

تعداد کمی از سیستم‌های SQL از این موارد پشتیبانی می‌کنند. :دی‌بی۲یکی از سیستم‌هایی است که از آن پشتیبانی می‌کند. پایگاه داده :پایگاه داده اورکل از سال ۲۰۱۲ از آن دیگر پشتیبانی نمی‌کند و در عوض توصیه می‌کند که آنها را با یک داده ساختاری تقلید کنید.

#### انواع ساختاری تعریف شده توسط کاربر
اینها ستون اصلی افزونه :پایگاه داده شیء–رابطه در SQL:1999 هستند. اینها مشابه :کلاس (برنامه‌نویسی) در :برنامه‌نویسی شیءگرا هستند. در SQL:1999 تنها اجازه ارث بردن تکی(:وراثت چندگانه.)را داریم.

### عبارات رایج جدول و پرس و جوهای (queries) بازگشتی
SQL:1999 یک ساختار WITH [RECURSIVE] اضافه کرد که به پرس و جوهای بازگشتی، مانند :بستار تعدی، اجازه می‌دهد در خود query مشخص شوند. عبارات رایج جدول. را ببینید.

### برخی از قابلیت‌های [[:پردازش تحلیلی برخط]]
GROUP BY با ROLLUP, CUBE و GROUPING SETS گسترش یافت.

### کلید واژه‌ها
SQL:1999 کلمه کلیدی UNNEST را معرفی کرد.

## منابع

# ISO/IEC 9075-2:1999  section 4.6 Boolean types
# 
# 
# 
# 
# 

## برای مطالعهٔ بیشتر
* 
* 

رده:اس‌کیوال
رده:زبان‌های برنامه‌نویسی اعلانی