خلاصه نحو SQL، نقد، منابع پیشنهادی و نمایه
خلاصه نحو
دستورهای SQL بر اساس گروه
| گروه | دستور | کاربرد |
|---|
| پرسوجو | SELECT | نمایش سطرهای یک یا چند جدول |
| نگهداری | INSERT | افزودن سطر |
UPDATE | تغییر سطر |
DELETE | حذف سطر |
| تعریف | CREATE | ایجاد جدول، ایندکس و View |
DROP | حذف جدول، ایندکس و View |
مقادیر بر اساس گروه
- عددی: مقادیر مثبت، منفی و اعشاری.
- غیرعددی: Stringها داخل کوتیشن منفرد.
- تاریخ: در قالب
'yyyy-mm-dd'.
صفحه PDF 112 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
خلاصه نحو - ادامه
عملگرهای مقایسه
| عملگر | معنی |
|---|
= | برابر |
<> | نابرابر |
< | کمتر از |
<= | کمتر یا مساوی |
> | بزرگتر از |
>= | بزرگتر یا مساوی |
عملگرهای حسابی
+ جمع، - تفریق، * ضرب، / تقسیم و ( ) برای تقدم.
توابع آماری
COUNT() برای شمارش، SUM() برای مجموع، MIN() برای کمینه، MAX() برای بیشینه و AVG() برای میانگین.
صفحه PDF 113 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
خلاصه نحو - ادامه: دستور SELECT
SELECT [ DISTINCT ]
col [ AS alias ] list,
expr [ AS alias ] list,
func [ AS alias ] list
FROM table [ AS alias ] list
WHERE [ NOT ] comparison
[ AND / OR ... ]
[ column operator (subquery) ]
[ column IN (subquery) ]
GROUP BY collist
HAVING comparisons_with_funcs
UNION SELECT ...
ORDER BY col | pos | expr | func [ DESC ] list;
این خلاصه، اجزایی را که در طول دوره مرحلهبهمرحله به دستور SELECT افزوده شدند یکجا نشان میدهد.
صفحه PDF 114 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
خلاصه نحو - ادامه: INSERT، UPDATE، DELETE و تراکنش
-- INSERT
INSERT
INTO table (col list)
VALUES (value list);
-- or
INSERT
INTO table (col list)
(SELECT ...);
-- UPDATE
UPDATE table
SET column = value [, ...]
[ WHERE comparisons ];
-- DELETE
DELETE
FROM table
[ WHERE comparisons ];
-- TRANSACTION
ROLLBACK;
COMMIT;
صفحه PDF 115 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
خلاصه نحو - ادامه: CREATE و DROP
CREATE TABLE table
(
col type(size) [NOT NULL] [DEFAULT value],
...,
UNIQUE (col list),
CHECK (comparison),
PRIMARY KEY (col list),
FOREIGN KEY (col list)
REFERENCES table (col list)
);
CREATE INDEX index
ON table (col list);
CREATE VIEW view (col list)
AS
SELECT ...;
DROP TABLE table;
DROP INDEX index;
DROP VIEW view;
صفحه PDF 116 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
نقدی کوتاه
متن منبع میگوید با وجود محبوبیت SQL و پذیرش آن بهعنوان استاندارد رسمی، زبان SQL نسبتاً ضعیف تعریف شده و چند ناسازگاری داخلی دارد. موارد مطرحشده در منبع عبارتاند از:
- Clause
SELECT پیش از FROM میآید، در حالی که از نظر منطقی ابتدا جدولهای مناسب انتخاب میشوند و سپس ستونهای قابل نمایش تعیین میشوند. - کلیدواژه
DISTINCT روی سطرها عمل میکند، اما باید در Clause SELECT نوشته شود؛ جایی که ستونها فهرست میشوند نه سطرها. - ستاره (
*) برای چند کاربرد متفاوت استفاده میشود و بهگفته منبع نحو SQL را بیدلیل پیچیده میکند؛ نمونهها: SELECT *، POP * 1.1 و COUNT(*). - تابعها را نمیتوان آزادانه در یکدیگر تو در تو کرد؛ برای مثال
AVG(POP/AREA) مجاز است، اما AVG(COUNT(RELIGION)) نیست. - SQL هنگام استفاده از توابع آماری مانند AVG مقادیر Null را نادیده میگیرد، بهجای اینکه امکان انتخاب میان نادیدهگرفتن یا درنظرگرفتن آنها در شمارش سطر فراهم باشد.
- بهنظر نویسنده Clause
GROUP BY باید اختیاری باشد، زیرا اطلاعات موردنیاز معمولاً از Clause SELECT قابل استنتاج است. - منبع Clause
HAVING را گیجکننده میداند و پیشنهاد میکند توابع آماری در WHERE مجاز و HAVING حذف شود. - نحو انواع مختلف دستور SQL یکدست نیست؛ منبع شکل متفاوت
SELECT، INSERT، UPDATE و DELETE را در کنار هم مقایسه میکند. - تعریف View نمیتواند Clause
ORDER BY داشته باشد.
جمعبندی نویسنده این است که اگرچه بعضی گویشهای SQL برخی از این محدودیتها را رفع میکنند، وجود خود «گویشها» را مشکل میداند و خواستار یک استاندارد واحد و مناسب است.
صفحه PDF 117 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
مطالعه پیشنهادی
An Introduction to Database Systems - C. J. Date
منبع این کتاب را احتمالاً بهترین کتاب همهجانبه درباره پایگاه داده رابطهای میداند؛ هم برای مرور مقدماتی و هم بهعنوان مرجع مناسب است و به همه علاقهمندان فناوری پایگاه داده رابطهای توصیه میشود.
A Guide to the SQL Standard - C. J. Date
اثر ممتاز دیگری از C. J. Date که مختصر، جامع و در عین حال نسبتاً خوانا توصیف شده است. Date کتابهای دیگری درباره نسخههای خاص SQL نیز نوشته یا در نگارش آنها مشارکت داشته، مانند A Guide to DB2. اگر محصول مشخصی را استفاده میکنید، این آثار ممکن است برایتان کاربردیتر باشند.
ERA and LOGIC Workshop Manuals - Relational Systems Corporation
منبع این دو را دو روششناسی طراحی پایگاه داده معرفی میکند که برای طراحی سریع و دقیق یک پایگاه داده رابطهای و پیادهسازی فوری آن روی هر سیستم SQL کاربرد دارند. ERA برای سامانههای عملیاتی و LOGIC برای کاربردهای انبار داده ترجیح داده شده است.
The Holy Bible - God
منبع، با بیان مذهبی خود، کتاب مقدس را «راهنمای کاربر برای همه فرزندان آدم» توصیف و خواندن روزانه آن را توصیه میکند؛ سپس میگوید این کتاب چراغ راه است و حتی توضیح میدهد چرا زبانهای انسانی - حتی زبانهای مصنوعی مانند SQL - آشفتهاند و به فصل 11 سفر پیدایش ارجاع میدهد.
صفحه PDF 118 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده
نمایه
مدخلهای نمایه با شماره صفحه منبع، بهصورت ترجمهشده/دوزبانه:
alias (نام مستعار): 43، 51، 59
AND: 25
ANSI: 5
arithmetic operator (عملگر حسابی): 38
AS: 43، 51، 59، 90
asterisk (*): 9، 46
AVG: 46
BETWEEN: 27
calculated column (ستون محاسبهشده): 38
Chamberlin, D.D.: 5
CHECK: 85
clause: 7
column (ستون): 4
column alias: 43، 51
column list: 11، 71
column position: 17، 61
COMMIT: 77
comparison: 14، 85
comparison operator: 14
compound comparison: 25، 29
constraint: 84
correlated subquery: 68
COUNT: 46
course objective: 3
CREATE: 6، 80، 88، 90
critique: 116
Date, C.J.: 117
date value: 13
defining: 3
definition: 6
DEFAULT: 84
default value: 71
DELETE: 75
DESC: 17
DISTINCT: 20، 46
DROP: 6، 80، 88، 90
duplicate row: 20، 61
ERA: 117
expression: 38، 39
FOREIGN KEY: 86
FROM: 9، 57، 59
full column name: 55
function, statistical: 46
God, omnipresent query: 6
grand total: 46
GROUP BY: 49
HAVING: 52
IN: 31، 66
index: 88
inner query: 68
INSERT: 6، 71، 82
integrity constraint: 84
INTO: 71
IS NULL: 33
ISO: 5
join: 55
keyword: 7
LIKE: 23
loading tables: 82
LOGIC: 117
maintaining: 3
maintenance: 6
MAX: 46
MIN: 46
multi-valued subquery: 66
negation: 35
non-numeric value: 13
NOT: 35
NOT NULL: 84
null: 33
numeric value: 13
operand: 38
operator: 14، 38
OR: 29
ORDER BY: 17، 41، 51، 61
outer query: 68
parentheses: 31، 35، 38
pattern: 23
percent (%): 23
precedence: 35
PRIMARY KEY: 86، 87
querying: 3
quote ('): 13
range: 27
REFERENCES: 86
regeneration: 110
relational database: 4
ROLLBACK: 77
row: 4
save: 77
SELECT: 6، 9-69
SET: 73
single-quote: 13
single-valued subquery: 64
sorting: 17
SQL: 5
statistical function: 46
Structured Query Language: 5
subquery, correlated: 68
subquery, multi-valued: 66
subquery, single-valued: 64
subtotal: 49
SUM: 46
syntax summary: 111
table: 4، 80
table alias: 59، 68
total depravity: 110
transaction: 77
underscore (_): 23
undo: 77
UNION: 61
UNIQUE: 85
UPDATE: 6، 73
value list: 31، 71
value range: 27
VALUES: 71
value, date: 13
value, non-numeric: 13
value, numeric: 13
view: 90
WHERE: 15، 41، 57
صفحه PDF 119 - تصویر منبع اصلی برای کنترل بصری و حفظ عناصر اسکنشده