زبان SQL
1- انواع زبانهای رابطه ای
2- امکانات مهم زبان SQL
3- دستورات تعریف داده ها، دستور ایجاد و حذف جدول و دید
4- دستور مجازشماری
5- دستورات پردازش داده ها
6- توابع جمعی (گروهی)
آنچه در این جلسه می خوانید:
7- امکان LIKE و NOTLIKE
8- آزمون تست وجود هیچمقدار در یک ستون
9- امکان UNION و UNION ALL
10- امکان GROUP BY: (گروه بندی)
11- امکان HAVING
12- امکان BETWEEN
آنچه در این جلسه می خوانید:
هدفهای کلی: آشنایی با زبان SQL
هدفهای رفتاری: دانشجو در پایان این جلسه می تواند:
امکانات زبان SQL را بیان کند.
انواع دستورات تعریف داده ها و پردازش داده ها یاد گرفته و می تواند استفاده کند.
آشنایی با یک زبان رابطه ای : SQL
انواع زبانهای رابطه ای
SQUARE
SEQUEL
SQL
QUEL
QBE
DATALOG
امکانات مهم زبان SQL
دستورات تعریف داده ها
دستورات مجازشماری
دستورات پردازش داده ها
دستورات پردازش داده ها به طور ادغام شدنی
دستورات نوشتن ماژول و رویه
دستورات کنترل جامعیت
دستورات کنترل تراکنشها
دستورات تعریف داده ها
1- 1- تعریف شما :
CREATE SCHEMA
AUTHORIZATION USER
{base – table definition , view definition , grant-operation }
دستورات تعریف داده ها
1- 2- انواع داده ای:
CHARACTER[(length)]
INTEGER
DECIMAL [(precision[,scale])]
SMALLINT
DOUBLE PRECISION
REAL
FLOAT [(precision)]
NUMERIC [(precision[,scale])]
1- 3- دستور ایجاد جدول :
CREATE SCHEMA
AUTHORIZATION …
CREATE TABLE …
دستورات تعریف داده ها
1- 4- دستور حذف جدول:
DROP TABLE table-name
دستورات تعریف داده ها
1- 5- دستور ایجاد و حذف دید:
CREATE VIEW …
DROP VIEW …
دستورات تعریف داده ها
1- 6- دستور مجاز شماری:
GRANT , REVOKE
با این دستور حق انجام یک یا بیش از یک عمل به کاربر (کاربرانی) داده می شود.
دستورات تعریف داده ها
2- دستورات پردازش داده ها
2- 1- دستور بازیابی ( SELECT ):
SELECT [ALL | DISTINCT] item(s)-list
FROM table(s)-name
[WHERE condition(s)]
[GROUP BY column(s)]
[HAVING conditions(s)]
توابع جمعی (گروهی)
COUNT: تعداد مقادیر اسکالر را به دست می دهد.
SUM: حاصل جمع مقادیر اسکالر در یک ستون را به دست می دهد.
AVG: میانگین مقادیر اسکالر در یک ستون را به دست می دهد.
MAX: بیشترین مقدار اسکالر در یک ستون را به دست می دهد.
MIN: کمترین مقدار اسکالر در یک ستون را به دست می دهد.
یک مثال در مورد استفاده از توابع جمعی
SELECT MIN(GRADE) , MAX(GRADE)
FROM STCOT
WHERE TR=‘2’
AND
YRYR=’78-79’
AND
COID=‘COM222’;
بالاترین و پایین ترین نمره در درس COM222 در ترم دوم 80-79 را بازیابی می کند.
امکان LIKE و NOTLIKE
با این دو امکان می توان داده های مورد نظر را با دادن یک رشته کاراکتری به عنوان نشانوند جستجو و بیان شرایط مورد نظر، بازیابی کرد.
SELECT *
FROM PROF
WHERE PRNAME LIKE ‘AR%’;
مثال: مشخصات استادانی را بدهید که نام آنها با AR شروع شده باشد.
آزمون تست وجود هیچمقدار در یک ستون
می توان با امکان IS NULL وجود هیچ مقدار در یک ستون را تست کرد.
مثال: شماره دانشجویانی را بدهید که نمره آنها در درس SOC333 در ترم دوم 79-78 هنوز اعلام نشده است؟
SELECT STID
FROM STCOT
WHERE COID=‘SOC333’
AND
TR=‘2’
AND
YRYR=’78-79’
AND
GRADE IS NULL
امکان UNION و UNION ALL
با این امکان، می توان عملکرد عملگر UNION جبری را برنامه سازی کرد. حاصل این عملکرد، جدولی است که سطرهای تکراری ندارد. اگر از گزیدار ALL استفاده شود، سیستم دیگر سطرهای تکراری را در صورت وجود، حذف نمی کند.
امکان GROUP BY: (گروه بندی)
با این امکان می توان سطرهای جدول را حسب مقادیر یک ستون ساده گروه بندی کرد به نحوی که در هر گروه، مقدار آن ستون یکسان باشد.
مثال: جدول STCOT را برحسب مقادیر ستون COID منطقا گروه بندی کنید.
SELECT COID, AVG(GRADE) AS AVGGR
FROM STCOT
GROUP BY COID;
امکان HAVING
با این امکان می توان شرط (شرایطی) ناظر به گروه سطرها اعلان کرد. نقش این امکان در واقع همان نقش WHERE در سطر است. توجه داشته باشید که HAVING همیشه با GROUP BY می آید.
مثال: شماره درسهایی را بدهید که در ترم دوم 79-78 کمتر از 10 دانشجو در آنها ثبت نام کرده باشند.
SELECT STCOT.COID
FROM STCOT
WHERE TR=‘2’
AND
YRYR=’78-79’
GROUP BY COID
HAVING COUNT(*)<10
امکان BETWEEN
شکل کلی این امکان چنین است:
Scalar-expression [NOT] BETWEEN Scalar-expression AND Scalar-expression
مثال: شماره دانشجویانی را بدهید که نمره آنها در درس HIS444 در ترم اول 78-77 بین 15 و 19 باشد.
SELECT STCOT.STID
FROM STCOT
WHERE TR=‘1’
AND
YRYR=’78’79’
AND
GRADE BETWEEN ’15’ AND ’19’
1- دستورات عملیات ذخیره سازی (درج، حذف و بهنگام سازی)
2- جمع بندی در مورد امکانات نسخه SQL1
3- دستوراتی که در نسخه SQL2 تغییر کردند یا به آن اضافه شدند
4- امکانات جامعیتی
5- امکانات ایمنی
6- امتیازها
آنچه در این جلسه می خوانید:
7- دستوراتی که در نسخه SQL3 تغییر کردند یا به آن اضافه شدند
8- نوع داده مجرد
9- تعریف رهانا و مزایا و موارد کاربرد آن
10- تراکنش
11- طرحهای اجرای تراکنشها
12- تکنیکهای کنترل همروندی
آنچه در این جلسه می خوانید:
هدفهای کلی: آشنایی با زبان SQL
هدفهای رفتاری: دانشجو در پایان این جلسه می تواند:
از دستورات ذخیره سازی استفاده کند.
امکانات اضافه شده در نسخه SQL2 را بیان کند.
امکانات اضافه شده در نسخه SQL3 را بیان کند.
2- دستورات پردازش داده ها
2- 2- دستورات عملیات ذخیره سازی :
برای انجام عملیات سه گانه ذخیره سازی سه دستور DELETE، INSERT و UPDATE وجود دارد.
دستور UPDATE
شکل کلی این دستور چنین است:
UPDATE table-name
SET assignment-commalist
[WHERE Condition(s)]
مثال: تعداد واحد درسهای عملی را یک واحد کاهش دهید.
UPDATE COT
SET CREDIT=CREDIT-1
WHERE COTYPE=‘p’;
دستور DELETE
شکل کلی این دستور چنین است:
DELETE
FROM table-name
[WHERE Cond(s)]
مثال: درسهای دانشجوی با شماره 78110555 را در ترم دوم سال 79-78 حذف کنید
DELETE
FROM STCOT
WHERE STID=‘78110555’
AND
TR=‘2’
AND
YRYR=’78-79’;
دستور INSERT
این دستور دو شکل کلی دارد:
INSERT INTO table-name
Values(one row);
INSERT INTO table-name
Subquery;
در شکل دوم، تعدادی سطر در جدول درج می شوند.
مثال: اطلاعات درسی زیر را در جدول درج نمائید.
<78110888,COM888,2,78-79,12>
INSERT INTO STCOT
VALUES <‘78110888’, ‘COM888’, 2, 78-79, 12>;
جمع بندی در مورد امکانات نسخه SQL1
1- نارویه ای است.
2- دارای کمال ساختاری است.
3- زبان استانده سیستم های رابطه ای موجود است.
4- تمام انواع داده ای ساده را دارد.
5- عملگرهای بسیار قوی دارد.
6- یادگیری آن ساده است.
7- استقلال داده ای را تامین می کند.
8- هم به صورت مستقل و هم به صورت ادغام شده قابل استفاده است.
دستوراتی که در نسخه SQL2 تغییر کردند یا به آن اضافه شدند:
دستور تعریف داده ها
دستور تعریف میدان
انواع داده ای
دستور تغییر میدان
دستور حذف میدان
دستور ایجاد جدول
دستور تغییر جدول
8. دستور حذف جدول
9. تعریف جدول موقت
10. دستور بازیابی
امکانات جامعیتی
امکانات ایمنی
SQL پویا
امکانات جامعیتی
کاربر می تواند زمان وارسی جامعیت پایگاه را (براساس محدودیتها و قواعد داده شده) خود مشخص کند. می تواند درخواست کند که این وارسی بلافاصله باشد یا با تاخیر. برای این منظور از امکان زیر استفاده می شود:
SET CONSTRAINTS (constraint-name)
{DEFERRED | IMMEDIATE}
امکانات ایمنی
کاربر می تواند امتیاز دستیابی به اشیاء تعریف شده در شما را به منظور انجام عمل مشخص، به کاربر دیگری بدهد.
برای اعطای امتیاز از دستور GRANT و برای لغو آن از دستور REVOKE استفاده می شود.
امتیازهایی که یک کاربر می تواند به یک کاربر دیگر بدهد:
USAGE: اجازه استفاده از یک میدان
SELECT: اجازه دستیابی به تمام ستونهای یک جدول
INSERT(X): اجازه درج یک مقدار در ستون X از یک جدول
INSERT: اجازه درج تمام ستونهای یک جدول
UPDATE(X): اجازه بهنگام سازی ستون X از یک جدول
UPDATE: اجازه بهنگام سازی تمام ستونهای یک جدول
DELETE: اجازه حذف سطر(ها) از یک جدول
REFRENCES(X): اجازه ارجاع به ستون X از یک جدول در تعریف محدودیتهای جامعیتی
امتیازها
دستوراتی که در نسخه SQL3 تغییر کردند یا به آن اضافه شدند:
تعریف نوع داده مجرد
تعریف زیرنوع
امکان تعریف زیرجدول و زبرجدول
امکان ارث بری ستونهای جدول جدید از ستونهای جدول نامدار موجود
رویه ای شدن زبان
رهانا
نوشتن رویه
SQL ادغام شده
واسط درخواست فراخوان
دستورات کنترل تراکنشها
شاید مهمترین قابلیتی که در زمینه انواع داده ای در SQL3 افزوده شد، امکان تعریف نوع داده مجرد (ADT) باشد. با این نوع داده می توان مجموعه ای از صفات و روالها را تعریف کرد. نوع داده مجرد نمونه هایی دارد و هر نمونه هم به نوبه خود، همه صفات و روالهای تعریف شده را دارد.
نوع داده مجرد
ساختهای زبانی افزوده شده به SQL3، که در تعریف توابع و رویه ها استفاده می شود:
احکام مرکب (تودرتو)
احکام حلقه گردانی)
احکام شرطی
احکام انتساب
احکام اعلان اشتباهات در برنامه
رهانا
تعریف- قاعده (محدودیت) یا قواعدی است که قبل یا بعد از بروز یک رویداد در پایگاه داده ها (معمولا یک عمل تغییردهنده داده ها) باید اعمال شود. این قاعده در سطح برنامه سازی، به صورت یک رویه از پیش تعریف شده است که به طور شرطی یا غیرشرطی، قبل یا بعد از انجام یک عمل در پایگاه داده ها، به طور اتوماتیک اجرا می شود.
رهانا
مزایا
اجرای آن تحت کنترل متمرکز سیستم و نظارت مدیر پایگاه داده ها است.
با وجود آن دیگر نیازی نیست که محدودیتهای مورد نظر در هر برنامه کاربردی اعمال شوند و کنترلهای لازم انجام شود.
برای معماری C/S DB بسیار مناسب است.
کاربرد رهانا
اعمال قواعد جامعیت.
اعمال قواعد ایمنی مبتنی بر مقادیر
درج رکوردهای ثبت عملیات در فایل ثبت تراکنشها
تولید نسخه ای از داده های ذخیره شده در یک سایت دیگر.
در انتشار اتوماتیک عملیات در پایگاه داده های توزیع شده.
در بهنگام سازی دیدها در سیستم های رابطه ای
تراکنش
تعریف: به بیان ساده عملی است که تغییری در پایگاه داده ها ایجاد کند. این عمل که طبعا به صورت یک برنامه یا بخشی از یک برنامه است، یا باید به تمامی اجرا شود و یا اصلا اجرا نشود و می گوییم که تراکنش خاصیت تجزیه ناپذیری دارد.
خواص
تجزیه ناپذیری
سازگاری
جدایی (انفراد)
مانایی (دوام)
طرحهای اجرای تراکنشها
طرح اجرای متوالی
طرح اجرای همروند
تکنیک قفل گذاری
تکنیک زمانمهر
تکنیک چند نسخه سازی
تکنیک تایید (تصدیق)
تکنیکهای کنترل همروندی