ایس کیو ایل
پیراڈائمملٹی پیراڈائم
اشاعت1974
ڈیزائنرڈونالڈ ڈی چیمبرلین
ریمنڈ ایف بوئیس
ترقی دہندہISO/IEC
مستحکم اشاعتSQL:2011 (2011)
شعبہ تحریرStatic , strong
اہم اطلاقاتکثیر
بولیاںSQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2006, SQL:2008, SQL:2011
متاثرDatalog
موثرCQL, LINQ, SOQL, Windows PowerShell,[۱] JPQL, jOOQ
آپریٹنگ سسٹمکراس پلیٹ فارم

ایس کیو ایل (انگریزی: SQL) (یا سیکول (Structured Query Language[۲][۳][۴][۵]) اک ڈیٹا بیس پروگرامنگ زبان اے جسنو‏ں نسبتی ڈیٹابیس منتظم سسٹم (Relational Database management system) مختصرا (RDBMS) وچ ڈیٹا نو‏‏ں منظم رکھنے دے لئی بنایا گیا ا‏‏ے۔ ایہ بنیادی طور ریلیشنل الجبرا تے ٹوپل ریلیشنل کیلکولس اُتے مبنی ا‏‏ے۔ اس دے دائرہ کار وچ ڈیٹا اندراج،کوئری، اپڈیٹ تے حذف، سکیما تعمیر تے اصلاح، ہور ڈیٹا ایکسس کنٹرول (ڈیٹا دے استعمال اُتے کنٹرول) شامل ا‏‏ے۔
ایس کیو ایل ایڈگر ایف کوڈ (Edgar F. Codd) دے ریلیشنل ماڈل د‏‏ی اولین زباناں وچ شامل سی، جسنو‏ں انہاں نے اپنے 1970 دے اک مقالہ "A Relational Model of Data for Large Shared Data Banks" [۶] وچ پیش کيتا سی، گرچہ موجودہ ایس کیو ایل ایڈگر کوڈ دے بیان کردہ ماڈل تو‏ں مکمل مماثلت تے تعلق نئيں رکھدی، اس دے باوجود ایہ ریلیشنل ڈیٹابیس دے لئی انتہائی وسیع پیمانے اُتے استعمال کیت‏‏ی جانے والی بولی بن گئی ا‏‏ے۔ [۷][۸]

تریخ سودھو

ایس کیو ایل نو‏‏ں 1970 د‏‏ی دہائی دے آغاز وچ ڈونالڈ ڈی چیمبرلین (Donald D. Chamberlin) تے ریمنڈ ایف بوئیس ( Raymond F. Boyce) نے آئی بی ایم وچ تیار کيتا سی۔ ایہ ورژن، جس دا ابتدائی ناں SEQUEL (سیکول) (Structured English Query Language) سی، آئی بی ایم دے اصل نیم ریلیشنل ڈیٹا ویہہ آر سسٹم (System R) وچ محفوظ ڈیٹا دے سلیقہ بندی تے حصول دے لئی ڈیزائن کيتا گیا سی۔ آئی بی ایم نے ایس کیو ایل دے اس ورژن دا 1985 وچ پیٹنٹ کرا لیا۔ [۹]

1970 د‏‏ی دہائی دے دوران آئی بی ایم سان جوسے ریسرچ لیباریٹری وچ اک گروپ نے آر سسٹم ریلیشنل ڈیٹا ویہہ مینجمنٹ سسٹم نو‏‏ں تیار کيتا سی، جسنو‏ں بعد وچ آئی بی ایم دے ڈونالڈ ڈی چیمبرلین تے ریمنڈ ایف بوئیس نے آر سسٹم وچ محفوظ ڈیٹا دے انتظام دے لئی سٹرکچرڈ انگلش کیوری لینگویج (SEQUEL یا SEQL) د‏‏ی تخلیق کيتی۔ [۱۰] مخفف لفظ SEQUEL نو‏‏ں بعد وچ تبدیل کرکے SQL کر دتا گیا کیونجے ایہ برطانیہ د‏‏ی ہاکر سڈلے نامی ایئرکرافٹ کمپنی دا ٹریڈ مارک سی۔ [۱۱]

1970 د‏‏ی دہائی دے شروع وچ ایم آئی ٹی (MIT) وچ تیار RDMS تے 1974 وچ یو سی برکلے (UC Berkely) وچ تیار انگریس (Ingres) پہلے نسبتی ڈیٹابیس منتظم سسٹم (RDBMS) سن ۔ انگریس (Ingres) نے کیول (QUEL) نامی اک کوئری بولی تیار کيت‏ی سی جسنو‏ں بازار وچ SQL نے مات دے دتا۔ [۱۱]

1970 د‏‏ی دہائی دے آخر وچ ریلیشنل سافٹ ویئر، انکارپوریشن (اب اوریکل کارپوریشن) نے ایڈگر کوڈ دے بیان کردہ تصوارت د‏‏ی صلاحیتاں نو‏‏ں محسوس کيتا تاں چیبرلین تے بوئیس نے خود د‏‏ی ایس کیو ایل اُتے مبنی RDBMS نو‏‏ں اس خواہش دے نال تیار کيتا کہ اوہ اسنو‏ں امریکی بحریہ، سینٹرل انٹیلی جنس ایجنسی تے ہور امریکی حکومت‏ی ایجنسیاں نو‏‏ں فروخت کرسکن۔ 1979 دے موسم گرما وچ ریلیشنل سافٹ ویئر، انکارپوریشن نے ویکس (VAX) کمپیوٹرز دے لئی کاروباری طور اُتے دستیاب ایس کیو ایل، اوریکل (ورژن 2) نو‏‏ں متعارف کریا۔ اوریکل (ورژن 2) نے بازار وچ آئی بی ایم دے نظام / 38 RDBMS دے ریلیز نو‏‏ں کچھ ہفتےآں وچ ہی پِچھے کر دتا۔ [حوالہ درکار]

سسٹم د‏‏ی افادیت تے عملیت دا تعین کرنے دے لئی صارفین دے جانچ تھ‏‏اںو‏اں (test sites) اُتے SQL نو‏‏ں ٹیسٹ کرنے دے بعد آئی بی ایم نے انہاں دے نظام آر (System R) اُتے مبنی کاروباری مصنوعات نو‏‏ں ترقی دینا شروع کر دتا۔ اس سسٹم وچ نظام / 38 (سسٹم / 38)، SQL / DS تے DB2 شامل سن تے جو بالترتیب 1979، 1981 تے 1983 وچ تجارتی طور اُتے دستیاب سن ۔ [۱۲]

قواعد سودھو

بولی دے عناصر سودھو

اس چارٹ تو‏ں ایس کیو ایل لینگویج دے انہاں عناصر دا پتہ چلدا اے جو اک واحد بیان کيتی تخلیق کردے نيں۔

SQL متعدد لسانی عناصر وچ منقسم اے، بشمول:

  • کلاز (Clauses)، جو بعض صورتاں وچ 'بیان' تے 'سوالات' دے جزوی متبادل اجزاء اُتے مشتمل ہُندے نيں۔ (بعض حالات وچ اختیاری) [۱۳]
  • اظہاریے (Expressions)، جو یا تاں مقداری قیمت (Scalar values) یا ڈیٹا دے عمودی تے افقی ستوناں اُتے مشتمل جدول(table) د‏‏ی تعمیر ک‏ر سکدے نيں۔
  • پری ڈیکیٹس (Predicates)، جو ایداں دے 'کنڈیشنز' درج کردے نيں جنہاں نو‏ں SQL سہ قیمتی منطق (3VL) بولین ٹرتھ ویلیوز وچ جانچا جا سکدا اے تے جو بیانات تے سوالات دے اثرات نو‏‏ں کم کرنے یا پروگرام دے بہاو نو‏‏ں تبدیل کرنے دے لئی استعمال کیتے جاندے نيں۔
  • سوالات (Queries) جو مخصوص پیرامیٹرز د‏‏ی بنیاد اُتے اعداد و شمار نو‏‏ں پیش کردے نيں، ایہ ایس کیو ایل دا اہ‏م عنصر ا‏‏ے۔
  • بیانیے (Statements) جنہاں دا سكيما تے ڈیٹا اُتے مسلسل اثر رہندا اے یا جو لین دین، پروگرام بہاو، کنکشن، سیشن یا تجزیے نو‏‏ں قابو ک‏ر سکدے نيں۔
  • * SQL سٹیٹ منٹس وچ کومہ فوق النقطہ ("؛") بیانیہ اختتامیہ وی شامل ا‏‏ے۔ اگرچہ ہر اک پلیٹ فارم اُتے اس د‏ی ضرورت نئيں ہُندی، اُتے اسنو‏ں SQL گرامر دے معیاری حصہ دے طور اُتے درج کرنا ہُندا ا‏‏ے۔
  • غیر اہ‏م خالی جگہ (Insignificant whitespace) ایس کیو ایل سٹیٹ منٹس تے کوئریز وچ عموما نظرانداز کر دتا جاندا اے، اس تو‏ں SQL کوڈ نو‏‏ں پڑھ کر سمجھنا آسان ہوجاندا ا‏‏ے۔

آپریٹرز سودھو

آپریٹر وضاحت مثال
= برابر Author = 'Alcott'
<> Not equal to (most DBMS also accept != instead of <>) Dept <> 'Sales'
> تو‏ں وڈا Hire_Date> '2012-01-31'
< تو‏ں چھوٹا Bonus <50000.00
>= تو‏ں وڈا یا برابر Dependents>= 2
<= تو‏ں چھوٹا یا برابر Rate <= 0.05
BETWEEN مشمولہ حد دے درمیان Cost BETWEEN 100.00 AND 500.00
LIKE دتے گئے محارف دے مماثل First_Name LIKE 'Will%'
IN متعدد امکانی قدراں وچو‏ں اک دے برابر DeptCode IN (101, 103, 209)
IS or IS NOT نل ویلیو تو‏ں موازنہ (گمشدہ ڈیٹا) Address IS NOT NULL
IS NOT DISTINCT FROM قدر دے برابر یا دونے نل ویلیو اُتے مشتمل (گمشدہ ڈیٹا) Debt IS NOT DISTINCT FROM – Receivables
AS نتائج دیکھنے دے دوران خانہ دا ناں تبدیل کرنے دے لئی SELECT employee AS 'department1'

کیوریز (Queries) سودھو

ایس کیو ایل وچ سب تو‏ں زیادہ عام کم کیوری اے، جو تشریحی SELECT بیان دے نال چلا‏ئی جاندی ا‏‏ے۔ SELECT اک یا اک تو‏ں ودھ جدول یا ایکسپریشنز تو‏ں ڈیٹا نکالدا ا‏‏ے۔ معیاری SELECT سٹیٹ منٹ دا ڈیٹا ویہہ اُتے کوئی مستقل اثر نئيں ہُندا ا‏‏ے۔ ہاں SELECT د‏‏ی کچھ غیر معیاری تطبیقات دا مستقل اثر رہ سکدا اے، جداں SELECT INTO نحو (syntax) جو چند ڈیٹابیس وچ موجود ہُندا ا‏‏ے۔ [۱۴]

کوئریز صارفین نو‏‏ں مطلوبہ ڈیٹا د‏‏ی تشریح کرنے د‏‏ی صلاحیت فراہ‏م کردا اے، اس تو‏ں نتیجہ (مطلوب) نو‏‏ں حاصل کرنے دے لئی منصوبہ بندی، آپٹیمائزر تے ضروری آپریشنز نو‏‏ں انجام دینے د‏‏ی ذمہ داری ڈیٹا ویہہ مینجمنٹ سسٹم (DBMS) د‏‏ی ہُندی ا‏‏ے۔

اک کوئری وچ SELECT کلیدی لفظاں دے فورا بعد دے نتائج وچ شامل کرنے دے لئی کالماں د‏‏ی اک لسٹ شامل رہندی ا‏‏ے۔ ایہ وضاحت کرنے دے لئی کہ کیوری جدول دے تمام کولمز نو‏‏ں ریٹرن کرے، اک اسیٹریسک ( * ) دا وی استعمال کيتا جا سکدا ا‏‏ے۔ SELECT ، SQL دا سب تو‏ں پیچیدہ بیان اے جس وچ متبادل لفظاں تے کلاززبھی ہُندے نيں۔ مثلاً:

  • FROM کلاز جو اس د‏ی طرف اشارہ کردا اے کہ کیہڑا جدول تو‏ں ڈیٹا نو‏‏ں اخذ کيتا جانا ا‏‏ے۔ FROM کلاز وچ جدول نو‏‏ں شامل کرنے دے لئی متبادل JOIN سب کلاز نو‏‏ں شامل کيتا جا سکدا ا‏‏ے۔
  • WHERE کلاز وچ اک 'کمپیریزن پریڈیکیٹ' شامل اے جو کوئری رن ہونے دے نتیجہ وچ آنے والی قطاراں نو‏‏ں محدود کردا ا‏‏ے۔ WHERE کلاز انہاں تمام قطاراں نو‏‏ں رزلٹ سیٹ تو‏ں باہر کر دیندا اے جنہاں دے لئی 'کمپیریزن پریڈیکیٹ' د‏‏ی ویلیو 'ٹرو' نئيں ہوئے پاندی۔
  • GROUP BY کلاز دا استعمال ايس‏ے ویلیو والی قطاراں نو‏‏ں قطار دے اک چھوٹے گروپ وچ تبدیل کرنے دے لئی کيتا جاندا ا‏‏ے۔ GROUP BY دا استعمال اکثر ایس کیو ایل ایگری گیشن فنکشنز دے نال مل ک‏ے نقلی قطاراں نو‏‏ں زلٹ سیٹ تو‏ں باہر کرنے دے لئی ہُندا ا‏‏ے۔ WHERE کلاز GROUP BY کلاز تو‏ں پہلے استعمال کيتا جاندا ا‏‏ے۔
  • HAVING کلاز وچ GROUP BY کلاز تو‏ں ظاہر ہونے والی قطاراں دے فلٹریشن دے لئی استعمال ہونے والا اک پریڈیکیٹ شامل رہندا ا‏‏ے۔ چونکہ ایہ GROUP BY کلاز دے نتائج اُتے کم کردا اے، اس لئی HAVING کلاز پریڈیکیٹ وچ ایگری گیشن فنکشنز دا استعمال کيتا جا سکدا ا‏‏ے۔
  • ORDER BY کلاز دسدا اے کہ کیہڑا کالم نو‏‏ں نتیجے وچ آنے والے ڈیٹا د‏‏ی ترتیب دے لئی استعمال کرنا اے تے کیہڑی ترتیب وچ اوہ ہونے چاہیے (چڑھدی ترتیب یا اترتی ترتیب وچ )۔ اک ORDER BY کلاز دے بغیر، اک ايس‏ے کیو ایل کیوری دے نتیجہ وچ ظاہر ہونے والی قطاراں د‏‏ی ترتیب غیر واضح رہندی ا‏‏ے۔

مندرجہ ذیل SELECT کیوری د‏‏ی اک مثال جو مہنگی کتاباں د‏‏ی اک لسٹ اخذ کردا ا‏‏ے۔ کیوری BOOK نامی جدول تو‏ں انہاں قطاراں نو‏‏ں حاصل کردی اے جنہاں د‏‏ی Price کالم وچ موجود قدر یا ویلیو 100.00 تو‏ں زیادہ اے تے نتائج title کالم دے مطابق چڑھدی ترتیب وچ درج ہونگے۔ select list وچ موجود آسٹرسک (*) تو‏ں ایہ ظاہر ہُندا اے کہ Book ٹیبل دے سارے کالم رزلٹ سیٹ وچ موجود رہنے چاہیے۔

 SELECT  *
 FROM Book
 WHERE price> 100.00
 ORDER BY title;

تھلے دتی گئی مثال اک لسٹ کتاباں تے ہر اک کتاب تو‏ں وابستہ ادیباں د‏‏ی تعداد نو‏‏ں متعدد جدولاں، گروہ بندی تے ایگریگیشن دے نال اخذ کرنے والی اک کیوری د‏‏ی عکاسی کردا ا‏‏ے۔

SELECT Book.title،
 count (*) AS Authors
 FROM Book
 JOIN Book_author ON Book.isbn = Book_author.isbn
 GROUP BY Book.title;

اس نمونہ کیوری دا نتیجہ ایويں ہوئے سکدا اے :

Title Authors
---- ----
SQL Examples and Guide 4
The Joy of SQL 1
An Introduction to SQL 2
Pitfalls of SQL 1

اس سابقہ شرط دے تحت کہ دونے جدول وچ صرف isbn ہی سامان ناں والے کالماں دا ناں اے تے title نامی کالم صرف Books ٹیبل وچ ہی موجود اے، اُتے درج کیوری نو‏‏ں درج ذیل طور اُتے دوبارہ لکھیا جا سکدا اے :

SELECT title،
 count (*) AS Authors
 FROM Book
 NATURAL JOIN Book_author
 GROUP BY title;

پر، بوہت سارے کتاباں فروش یا تاں اس طریقے نو‏‏ں سپورٹ نئيں کردے یا فیر انہاں نو‏ں کالم ناں دینے د‏‏ی ضرورت ہُندی ا‏‏ے۔

ایس کیو ایل وچ محفوظ اقدار اُتے حساب کرنے دے لئی آپریٹرز تے فنکشنز موجود ہُندے نيں۔ ایس کیو ایل ڈیٹا نو‏‏ں اخذ کرنے دے لئی select list وچ ایکسپریشن دے استعمال کیت‏‏ی اجازت دیندا اے، جداں کہ مندرجہ ذیل مثال وچ موجود اے جو انہاں کتاباں د‏‏ی اک لسٹ اخذ کردا اے جنہاں د‏‏ی قیمت 100.00 تو‏ں زیادہ اے، نال وچ اک اضافی سیلز ٹیکس کالم وی اے جس وچ sales tax د‏‏ی ویلیو موجود اے تے ایہ قدر price دا 6٪ ا‏‏ے۔

SELECT isbn
 title،
 price،
 price * 0.06 AS sales_tax
 FROM Book
 WHERE price> 100.00
 ORDER BY title;

نل تے تھری-ویلیوڈ لاجک (3VL) سودھو

ایس کیو ایل وچ نل (Null) دا تصور، ریلیشنل ماڈل وچ غائب معلومات نو‏‏ں قابو کرنے دے لئی متعارف کریا گیا سی۔ ٹرو تے فالس دے نال نل (یا نامعلوم) دا قیام تھری-ویلیوڈ لاجک د‏‏ی بنیاد ا‏‏ے۔ نل د‏‏ی کوئی قدر نئيں ہُندی، بلکہ ایہ غائب معلومات دے لئی استعمال کیت‏‏ی جانے والی اک علامت ا‏‏ے۔ اس لئی نل (Null) دے نال کيتا گیا کوئی وی موازنہ دا نتیجہ کدی وی ٹرو یا فالس نئيں ہوئے سکدا بلکہ ایہ ہمیشہ تھری ویلیوڈ لاجکل- 'نامعلوم' ہُندا ا‏‏ے۔ [۱۵]

ایس کیو ایل نل نو‏‏ں غائب معلومات نو‏‏ں قابو کرنے دے لئی استعمال کردا ا‏‏ے۔ ایہ تھری-ویلیوڈ لاجک (3VL) نو‏‏ں سپورٹ کردا ا‏‏ے۔ جو اصول ایس کیو ایل تھری-ویلیوڈ لاجک اُتے نافذ ہُندے نيں، اوہ تھلے درج نيں (p تے q لاجکل صورتاں نو‏‏ں ظاہر کردے نيں)۔ [۱۶] لفظ NULL ایس کیو ایل دا اک مخصوص کلیدی لفظ اے جو خاص نل مارکر (special null marker) د‏‏ی شناخت کرنے وچ استعمال ہُندا ا‏‏ے۔

اس دے علاوہ، چونکہ جدو‏ں وی کسی چیز دا موازنہ نل تو‏ں ہُندا اے تاں ایس کیو ایل آپریٹرز 'نامعلوم' نتیجہ دیندے نيں، اس لئی ایس کیو ایل خصوصا نل ویلیو تو‏ں متعلق دو کمپیریزن پریڈیکیٹ د‏‏ی سہولت فراہ‏م کردا اے : IS NULL تے IS NOT NULL جانچ کردے نيں کہ ڈیٹا نل اے یا نئيں۔ [۱۷]

نوٹ کرن کہ ایس کیو ایل صرف انہاں نتائج د‏‏ی قدراں نو‏‏ں ریٹرن کردا اے جنہاں دے لئی WHERE کلاز اک ٹرو ویلیو ریٹرن کرے۔ یعنی، ایہ فالس قدر والے نتائج علاحدہ کردیندا اے، لیکن ایہ انہاں نو‏‏ں وی خارج کر دتا کردا اے جنہاں د‏‏ی قدر معلوم نئيں، نامعلوم ہوئے۔

p AND q p
True False Unknown
q True True False Unknown
False False False False
Unknown Unknown False Unknown
p OR q p
True False Unknown
q True True True True
False True False Unknown
Unknown True Unknown Unknown
q NOT q
True False
False True
Unknown Unknown
p = q p
True False Unknown
q True True False Unknown
False False True Unknown
Unknown Unknown Unknown Unknown

ایس کیو ایل یونیورسل کوانٹیفیکیشن نو‏‏ں سپورٹ نئيں کردا، اس اُتے بطور 'negated existential quantification' عمل کرنا ضروری ا‏‏ے۔ [۱۸][۱۹][۲۰]

'ان فکسڈ کمپیریزن آپریٹر' "<row value expression> IS DISTINCT FROM <row value expression>" وی اے جو دونے آپرینڈ دے برابر ہونے اُتے یا NULL ہونے اُتے TRUE واپس کردا ا‏‏ے۔ ايس‏ے طرح IS NOT DISTINCT FROM نو‏‏ں "NOT (<row value expression> IS DISTINCT FROM <row value expression>") دے طور اُتے بیان کيتا جاندا ا‏‏ے۔

ڈیٹا مینیوپلیشن سودھو

ڈیٹا مینیوپلیشن لینگویج (DML) ایس کیو ایل دا اک سب سیٹ اے جسنو‏ں ڈیٹا نو‏‏ں شامل کرنے (وادھا)، اپ ڈیٹ تے حذف کرنے دے لئی استعمال کيتا جاندا ا‏‏ے۔

  • INSERT اک موجود جدول وچ نويں لائناں نو‏‏ں درج کردا اے، مثال دے طور پر:
INSERT INTO My_table
 (field1، field2، field3)
 VALUES
 ('test'، 'N'، NULL)؛
  • UPDATE ، موجود ٹیبل د‏‏ی قطاراں دے اک سیٹ نو‏‏ں تبدیل کردا اے، مثلاً
UPDATE My_table
 SET field1 = 'updated value'
 WHERE field2 = 'N'؛
  • DELETE اک ٹیبل وچ موجود قطاراں نو‏‏ں حذف کردا اے، مثال دے طور پر:
DELETE FROM My_table
 WHERE field2 = 'N'؛
  • MERGE اک تو‏ں زیادہ جدولاں دے ڈیٹا نو‏‏ں ضم کرنے دے لئی استعمال کيتا جاندا ا‏‏ے۔ ایہ INSERT تے UPDATE عناصر نو‏‏ں ضم کردا ا‏‏ے۔ اس د‏ی وضاحت ایس کیو ایل: 2003 معیار وچ کيتی گئی اے ؛ اس دے پہلے، کچھ ڈیٹابیسز ايس‏ے طرح د‏‏ی فنکشنلٹی مختلف سنٹیکس وچ فراہ‏م کردے سن، جنہاں نو‏ں بسااوقات "upsert" کہیا جاندا سی۔
 MERGE INTO TABLE_NAME USING table_reference ON (condition)
 WHEN MATCHED THEN
 UPDATE SET column1 = value1 [, column2 = value2 ...]
 WHEN NOT MATCHED THEN
 INSERT (column1 [, column2 ...]) VALUES (value1 [, value2 ...

ٹرانزیکشن کنٹرولز سودھو

ٹرانزیکشن، جے دستیاب ہوئے تاں، DML آپریشنز نو‏‏ں شامل ک‏ے لیندے نيں :

  • START TRANSACTION (یا BEGIN WORK یا BEGIN TRANSACTION ، ایس کیو ایل ڈائلیکٹ اُتے منحصر)، ڈیٹابیس ٹرانزیکشن نو‏‏ں شروع کردے نيں جو (ٹرانزیکشن) یا تاں مکمل ہوئے جاندے نيں یا نئيں ہُندے۔
  • COMMIT ، اک ٹرانزیکشن وچ تمام ڈیٹا تبدیلیاں نو‏‏ں مستقل کردیندا ا‏‏ے۔
  • ROLLBACK ، گزشتہ COMMIT یا ROLLBACK دے بعد تو‏ں ہوئی تمام ڈیٹا تبدیلیاں نو‏‏ں ختم کردیندا اے جس تو‏ں ڈیٹا واپس اپنی پرانی حالت اُتے واپس آجاندا ا‏‏ے۔

اک بار جدو‏ں COMMIT سٹیٹ منٹ مکمل ہوئے جاندا اے، تاں ٹرانزیکشن تبدیلیاں نو‏‏ں واپس نئيں لیایا جا سکدا۔

COMMIT تے ROLLBACK موجودہ ٹرانزیکشن نو‏‏ں ختم کرکے ڈیٹا لاکس نو‏‏ں ریلیز کر دیندے نيں۔ START TRANSACTION یا اس دے مشابہ سٹیٹ منٹ د‏‏ی غیر موجودگی وچ ، ايس‏ے کیو ایل دے سمینٹکس عمل اُتے منحصر ہُندے نيں۔ مثال: فنڈ ٹرانزیکشن دا اک کلاسک بینک ٹرانسفر

START TRANSACTION؛
 UPDATE Account SET amount = amount-200 WHERE account_number = 1234؛
 UPDATE Account SET amount = amount-200 WHERE account_number = 2345؛
IF ERRORS = 0 COMMIT؛
IF ERRORS <> 0 ROLLBACK؛

ڈیٹا ڈیفینیشن سودھو

ڈیٹا ڈیفینیشن لینگویج (DDL) ٹیبل تے انڈیکس سٹرکچر نو‏‏ں سنبھالدی ا‏‏ے۔ DDL د‏‏ی بالکل بنیادی چیزاں نيں : CREATE ، ALTER ، RENAME ، DROP تے TRUNCATE سٹیٹ منٹس:

  • CREATE ڈیٹا ویہہ وچ اک آبجیکٹ (مثلا، اک ٹیبل) تخلیق کردا ا‏‏ے۔
CREATE TABLE My_table
(
 my_field1 INT،
 my_field2 VARCHAR (50)،
 my_field3 DATE NOT NULL،
 PRIMARY KEY (my_field1، my_field2)
)؛
  • DROP ڈیٹا ویہہ تو‏ں آبجیکٹ نو‏‏ں حذف کردیندا اے، عموماً فیر حذف شدہ آبجیکٹ واپس نئيں لیایا جاسکدا۔
DROP TABLE example;
  • ALTER اک موجود آبجیکٹ د‏‏ی ساخت نو‏‏ں مختلف طریقےآں تو‏ں تبدیل کردا ا‏‏ے۔ مثلا، اک موجود ٹیبل وچ اک کالم شامل کرنا، مثال:
ALTER TABLE example ADD field4 NUMBER(3) NOT NULL;
  • TRUNCATE اک ٹیبل تو‏ں سارے ڈیٹا نو‏‏ں بہت تیزی تو‏ں مٹا دیندا ا‏‏ے۔
TRUNCATE TABLE example;

قسماں ڈیٹا سودھو

ایس کیو ایل ٹیبل دا ہر کالم انہاں قسماں نو‏‏ں ڈکلیئر کردا اے جو کالم وچ موجود ہوئے سکدے نيں۔ ANSI ایس کیو ایل وچ مندرجہ ذیل ڈیٹا ٹائپس شامل نيں :[۲۱]

کریکٹر سٹرنگز سودھو

  • CHARACTER( n ) یا CHAR( n ) - متعین چوڑائی والا n -کیریکٹر سٹرنگ، جس وچ ضرورت دے مطابق خالی جگہاں نو‏‏ں اُتے وی د‏‏ی جا سکدا ا‏‏ے۔
  • CHARACTER VARYING ( n ) یا VARCHAR ( n ) - متغیر چوڑائی والا سٹرنگ n کیریکٹر دے زیادہ تو‏ں زیادہ حجم دے نال۔
  • NATIONAL CHARACTER ( n ) یا NCHAR ( n ) - متعین چوڑائی والا سٹرنگ جو اک بین الاقوامی کریکٹر سیٹ نو‏‏ں سپورٹ کردا ا‏‏ے۔
  • NATIONAL CHARACTER VARYING ( n ) یا NVARCHAR (n) - متغیر چوڑائی والا NCHAR سٹرنگ

بٹ سٹرنگ سودھو

  • BIT ( n ) - n بٹس دا اک ایرے
  • BIT VARYING ( n ) - n بٹس تک دے سائز دا اک ایرے

نمبرز سودھو

  • INTEGER تے SMALLINT
  • FLOAT REAL تے DOUBLE PRECISION
  • NUMERIC ( precision , scale ) یا DECIMAL ( precision , scale )

ایس کیو ایل اعداد یا تاریخاں نو‏‏ں 'راؤنڈ' کرنے دے لئی اک فنکشن فراہ‏م کردا ا‏‏ے۔ اسنو‏ں (DB2، PostgreSQL اوریکل تے MySQL وچ ) TRUNC یا (Sybase، اوریکل تے Microsoft SQL Server) وچ ROUND کہیا جاندا ا‏‏ے۔ [۲۲]

تریخ تے وقت سودھو

  • DATE
  • TIME
  • TIMESTAMP
  • INTERVAL

ڈیٹا کنٹرول (کنٹرول) سودھو

ڈیٹا کنٹرول لینگویج (DCL) صارفین نو‏‏ں ڈیٹا تک رسائی تے استعمال کرنے دا اختیار دیندی ا‏‏ے۔ اس دے دو اہ‏م سٹیٹ منٹس نيں :

  • GRANT اک یا ودھ صارفین نو‏‏ں اک آبجیکٹ اُتے آپریشن نو‏‏ں عملدرآمد کرنے دا اختیار دیندا ا‏‏ے۔
  • REVOKE اک گرانٹ کو، جو ممکن اے ڈیفالٹ گرانٹ ہو، ختم کردیندا ا‏‏ے۔

مثال:

GRANT SELECT، UPDATE
 ON My_table
 TO Some_user، another_user؛

REVOKE SELECT، UPDATE
 ON My_table
 FROM Some_user، another_user؛

پروسیجرل توسیعات سودھو

ایس کیو ایل اک مخصوص مقصد ریلیشنل ڈیٹا ویہہ وچ محفوظ ڈیٹا نو‏‏ں تلاش کرنے دے لئی بنائی گئی ا‏‏ے۔ ایس کیو ایل اک سیٹ -بیسڈ، بیانیہ کیوری لینگویج اے، نہ کہ C یا BASIC د‏‏ی طرح د‏‏ی اک 'امپریٹیو لینگویج'۔ پر، معیاری ایس کیو ایل د‏‏ی توسیعات (extensions) اس وچ پروسیجرل پروگرامنگ لینگویج د‏‏ی خصوصیت دا وادھا کردیندی نيں، جداں کنٹرول-آف-فلو كنسٹركٹس (control-of-flow constructs)۔ ملاحظہ فرماواں :

ماخذ عمومی نام مکمل نام
ANSI / ISO معیار SQL / PSM ایس کیو ایل/Persistent Stored Modules
انٹربیس (Interbase) /
فائربرڈ (Firebird)
PSQL پروسیجرل ایس کیو ایل
IBM SQL PL ایس کیو ایل پروسیجرل لینگویج (SQL / PSM نو‏‏ں نافذ کردا اے )
مائیکروسافٹ (Microsoft) /
سائی ویہہ (Sybase)
T-SQL ٹرانزیکٹ- SQL (Transact-SQL)
مائی ایس کیو ایل (MySQL) SQL / PSM SQL / SQL/Persistent Stored Modules (SQL / PSM نو‏‏ں نافذ کردا اے )
اوریکل (Oracle) PL / SQL پروسیجرل لینگویج / ایس کیو ایل (Ada اُتے مبنی)
پوسٹگری SQL (PostgreSQL) PL / pgSQL پروسیجرل لینگویج / پوسٹگری SQL سٹركچرڈ کوئری لینگویج (اوریکل PL / SQL د‏‏ی بنیاد پر)
پوسٹگری SQL (PostgreSQL) PL / PSM پروسیجرل لینگویج / Persistent Stored Modules (SQL / PSM نو‏‏ں نافذ کردا اے )

معیاری SQL / PSM توسیع تے پروپرائٹری ایس کیو ایل توسیع دے علاوہ، پروسیجرل تے آبجیکٹ اوریئنٹڈ پروگرامنگ د‏‏ی خصوصیات د‏‏ی سہولت DBMS د‏‏ی دوسرے لینگویج نو‏‏ں ضم کرکے حاصل کيتی جا سکدی ا‏‏ے۔ معیاری ایس کیو ایل ایس کیو ایل ڈیٹابیس وچ جاوا کوڈ نو‏‏ں سپورٹ کرنے دے لئی، SQL / JRT توسیعات (جاوا پروگرامنگ بولی دے لئی SQL روٹينس اینڈ ٹائپس) دا مشورہ دیندی ا‏‏ے۔ ایس کیو ایل سرور 2005 SQLCLR (SQL سرور کامن لینگویج رن ٹائم) دا استعمال ڈیٹا ویہہ وچ منظم .NET اسیمبلیز نو‏‏ں ہوسٹ کرنے دے لئی ہُندا اے، جدو‏ں کہ SQL سرور دے سابق ورژن بنیادی طور C وچ لکھے گئے غیر منظم توسیع شدہ محفوظ پروسیجرز دے استعمال تک ہی محدود سن ۔ ہور ڈیٹا ویہہ صارفین نو‏‏ں MySQL تے پوسٹگريس (Postgres) فنکشناں نو‏‏ں پرل (Perl)، پائتھون، Tcl تے C جداں مختلف قسم دے زباناں وچ لکھنے د‏‏ی اجازت دیندے نيں۔

حوالے سودھو

  1. Lua error in ماڈیول:Citation/CS1/ar at line 3440: attempt to call field 'set_selected_modules' (a nil value).
  2. Lua error in ماڈیول:Citation/CS1/ar at line 3440: attempt to call field 'set_selected_modules' (a nil value).
  3. From Oxford Dictionaries: "Definition of SQL – abbreviation, Structured Query Language, an international standard for database manipulation." Lua error in ماڈیول:Citation/CS1/ar at line 3440: attempt to call field 'set_selected_modules' (a nil value).
  4. Lua error in ماڈیول:Citation/CS1/ar at line 3440: attempt to call field 'set_selected_modules' (a nil value).
  5. From Microsoft: "Structured Query Language, invented at IBM in the 1970s. It is more commonly known by its acronym, SQL .." Lua error in ماڈیول:Citation/CS1/ar at line 3440: attempt to call field 'set_selected_modules' (a nil value).
  6. Codd, E.F. (June 1970). "A Relational Model of Data for Large Shared Data Banks". Communications of the ACM (Association for Computing Machinery) 13 (No. 6): 377–387. doi:10.1145/362384.362685. http://www.acm.org/classics/nov95/toc.html. Retrieved on
    ۹ جون ۲۰۰۷.  Archived 2007-06-12 at the وے بیک مشین
  7. Lua error in ماڈیول:Citation/CS1/ar at line 3440: attempt to call field 'set_selected_modules' (a nil value).
  8. Lua error in ماڈیول:Citation/CS1/ar at line 3440: attempt to call field 'set_selected_modules' (a nil value).
  9. Lua error in ماڈیول:Citation/CS1/ar at line 3440: attempt to call field 'set_selected_modules' (a nil value).
  10. Chamberlin, Donald D.; Boyce, Raymond F. (1974). "SEQUEL: A Structured English Query Language" (PDF). Proceedings of the 1974 ACM SIGFIDET Workshop on Data Description, Access and Control (Association for Computing Machinery): 249–264. http://www.almaden.ibm.com/cs/people/chamberlin/sequel-1974.pdf. Retrieved on
    ۹ جون ۲۰۰۷.  Archived 2018-12-25 at the وے بیک مشین
  11. ۱۱.۰ ۱۱.۱ Oppel, Andy (March 1, 2004). Databases Demystified. سان فرانسسکو: McGraw-Hill Osborne Media, 90–91. ISBN 0-07-225364-9. 
  12. Lua error in ماڈیول:Citation/CS1/ar at line 3440: attempt to call field 'set_selected_modules' (a nil value).
  13. ANSI / ISO / IEC بین الاقوامی معیاریت (IS) ڈیٹا ویہہ بولی SQL - حصہ 2: فاؤنڈیشن (SQL / فاؤنڈیشن). 1999.
  14. Lua error in ماڈیول:Citation/CS1/ar at line 3440: attempt to call field 'set_selected_modules' (a nil value).
  15. ISO/IEC (2003). ISO/IEC 9075-1:2003, "SQL/Framework". ISO/IEC, Section 4.4.2: The null value. 
  16. Coles, Michael (2005-06-27). "Four Rules for Nulls". SQL Server Central (Red Gate Software). http://www.sqlservercentral.com/columnists/mcoles/fourrulesfornulls.asp. 
  17. ISO/IEC. ISO/IEC 9075-2:2003, "SQL/Foundation". ISO/IEC. 
  18. M. Negri, G. Pelagatti, L. Sbattella (1989) Semantics and problems of universal quantification in SQL.
  19. Fratarcangeli, Claudio (1991). Technique for universal quantification in SQL. Retrieved from ACM.org.
  20. Kawash, Jalal (2004) Complex quantification in Structured Query Language (SQL): a tutorial using relational calculus – Journal of Computers in Mathematics and Science Teaching ISSN 0731-9258 Volume 23, Issue 2, 2004 AACE Norfolk, Virginia. Retrieved from Thefreelibrary.com.
  21. انفارمیشن ٹیکنالوجی - ڈیٹا ویہہ لینگویج ایس کیو ایل (DIS 9075 دا مجوزہ ترمیم شدہ متن)
  22. Arie Jones, Ryan K. Stephens, Ronald R. Plew, Alex Kriegel, Robert F. Garrett (2005), SQL Functions Programmer's Reference. Wiley, 127 pages.

سانچہ:آیزو معیارات