ایس کیو ایل
پیراڈائم | ملٹی پیراڈائم |
---|---|
اشاعت | 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 کوڈ نوں پڑھ کر سمجھنا آسان ہوجاندا اے۔
آپریٹرز
سودھوآپریٹر | وضاحت | مثال |
---|---|---|
|
برابر |
|
|
Not equal to (most DBMS also accept instead of )
|
|
|
توں وڈا |
|
|
توں چھوٹا |
|
|
توں وڈا یا برابر |
|
|
توں چھوٹا یا برابر |
|
|
مشمولہ حد دے درمیان |
|
|
دتے گئے محارف دے مماثل |
|
|
متعدد امکانی قدراں وچوں اک دے برابر |
|
or
|
نل ویلیو توں موازنہ (گمشدہ ڈیٹا) |
|
|
قدر دے برابر یا دونے نل ویلیو اُتے مشتمل (گمشدہ ڈیٹا) |
|
|
نتائج دیکھنے دے دوران خانہ دا ناں تبدیل کرنے دے لئی |
|
کیوریز (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 کلاز اک ٹرو ویلیو ریٹرن کرے۔ یعنی، ایہ فالس قدر والے نتائج علاحدہ کردیندا اے، لیکن ایہ انہاں نوں وی خارج کر دتا کردا اے جنہاں دی قدر معلوم نئيں، نامعلوم ہوئے۔
|
|
|
|
ایس کیو ایل یونیورسل کوانٹیفیکیشن نوں سپورٹ نئيں کردا، اس اُتے بطور '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 جداں مختلف قسم دے زباناں وچ لکھنے دی اجازت دیندے نيں۔
حوالے
سودھو- ↑ Paul، Ryan. «A guided tour of the Microsoft Command Shell». Ars Technica. بایگانیشده از اصلی در ۲۰۱۸-۱۲-۲۵. دریافتشده در ۱۰ اپریل ۲۰۱۱. نامعلوم پیرامیٹر دا
|url-status=
نظر انداز کردا (کمک) - ↑ Encyclopedia Britannica. «SQL». بایگانیشده از اصلی در ۲۰۱۸-۱۲-۲۵. دریافتشده در ۲۰۱۳-۰۴-۰۲. نامعلوم پیرامیٹر دا
|url-status=
نظر انداز کردا (کمک) - ↑ From Oxford Dictionaries: "Definition of SQL – abbreviation, Structured Query Language, an international standard for database manipulation." Oxford Dictionaries. «SQL». بایگانیشده از اصلی در ۲۰۱۶-۰۸-۰۳. دریافتشده در ۲۰۲۰-۱۰-۱۸.
- ↑ IBM. «SQL Guide».
- ↑ From Microsoft: "Structured Query Language, invented at IBM in the 1970s. It is more commonly known by its acronym, SQL .." Microsoft. «Structured Query Language (SQL)».
- ↑ 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:. http://www.acm.org/classics/nov95/toc.html. Retrieved on
- ↑ «Structured Query Language (SQL)». International Business Machines. اکتوبر ۲۷, ۲۰۰۶. دریافتشده در ۲۰۰۷-۰۶-۱۰.
- ↑ Chapple، Mike. «SQL Fundamentals». About.com: Databases. About.com. بایگانیشده از اصلی در ۲۰۱۸-۱۲-۲۵. دریافتشده در ۲۰۰۷-۰۶-۱۰. نامعلوم پیرامیٹر دا
|url-status=
نظر انداز کردا (کمک) - ↑ Shaw؛ و دیگران (۱۹۸۵-۰۳-۱۹). «US Patent 4,506,326». دریافتشده در ۲۰۰۸-۱۱-۰۴.
- ↑ 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
- ↑ ۱۱.۰ ۱۱.۱ Oppel, Andy (March 1, 2004). Databases Demystified. سان فرانسسکو: McGraw-Hill Osborne Media, 90–91. ISBN 0-07-225364-9.
- ↑ «History of IBM, 1978». IBM Archives. IBM. بایگانیشده از اصلی در ۲۰۱۸-۱۲-۲۵. دریافتشده در ۲۰۰۷-۰۶-۰۹. نامعلوم پیرامیٹر دا
|url-status=
نظر انداز کردا (کمک) - ↑ ANSI / ISO / IEC بین الاقوامی معیاریت (IS) ڈیٹا ویہہ بولی SQL - حصہ 2: فاؤنڈیشن (SQL / فاؤنڈیشن). 1999.
- ↑ «INTO Clause (Transact-SQL)». SQL Server 2005 Books Online. Microsoft. 2007. بایگانیشده از اصلی در 2018-12-25. دریافتشده در 2007-06-17;. نامعلوم پیرامیٹر دا
|url-status=
نظر انداز کردا (کمک); تاریخ وارد شده در|accessdate=
را بررسی کنید (کمک) - ↑ ISO/IEC (2003). ISO/IEC 9075-1:2003, "SQL/Framework". ISO/IEC, Section 4.4.2: The null value.
- ↑ Coles, Michael (2005-06-27). "Four Rules for Nulls". SQL Server Central (Red Gate Software). http://www.sqlservercentral.com/columnists/mcoles/fourrulesfornulls.asp.
- ↑ ISO/IEC. ISO/IEC 9075-2:2003, "SQL/Foundation". ISO/IEC.
- ↑ M. Negri, G. Pelagatti, L. Sbattella (1989) Semantics and problems of universal quantification in SQL.
- ↑ Fratarcangeli, Claudio (1991). Technique for universal quantification in SQL. Retrieved from ACM.org.
- ↑ 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.
- ↑ انفارمیشن ٹیکنالوجی - ڈیٹا ویہہ لینگویج ایس کیو ایل (DIS 9075 دا مجوزہ ترمیم شدہ متن)
- ↑ Arie Jones, Ryan K. Stephens, Ronald R. Plew, Alex Kriegel, Robert F. Garrett (2005), SQL Functions Programmer's Reference. Wiley, 127 pages.