.:: آی تی سما ::.

فناوری اطلاعات،نرم افزار،آموزش،مقالات،اخبار،معرفی تازه ها و دانلود...

.:: آی تی سما ::.

فناوری اطلاعات،نرم افزار،آموزش،مقالات،اخبار،معرفی تازه ها و دانلود...

SQL چیست ؟

اس‌کیوال (SQL - Structured Query Language) مخفف نام یک زبان کامپیوتری ا‌ست که برای ایجاد، تغییر، و بازیابی داده‌ها و نیز عملیات بر روی آنها در مدل رابطه‌ای می‌باشد. این زبان به سمت مدل شی گرا- رابطه‌ای نیز پیشرفت کرده‌است. SQL استانداردهای ANSI/ISO را نیز دریافت کرده‌است.

تاریخچه SQL

منشا اصلی SQL به مقاله Edgar F. Codd تحت عنوان « مدل رابطه‌ای داده‌ها برای بانک‌های داده‌ای اشتراکی » که در سال ۱۹۷۰ منتشر شد،باز می‌گردد. در دهه ۷۰ گروهی از شرکت IBM در شهر San Jose بر روی سیستم پایگاه داده ای (System R) بدون توجه به این مقاله کار می‌کردند و زبان SEQUEL(Structured English Query Language) را به منظور عملیات و بازیابی اطلاعات ذخیره شده در System R ایجاد کردند. اگر چه SQL ناشی از تلاشهای کاد بود اما Donald D. Chamberlin و Raymond F. Boyce را به عنوان طراحان زبان SEQUEL می‌دانند.

سمینارهایی در زمینه فناوری بانک اطلاعاتی و مباحثاتی در مورد مزایای مدل رابطه‌ای جدید برگزار گردید. تا ۱۹۷۶ مشخص بود که IBM طرفدار جدی فناوری بانک اطلاعاتی رابطه‌ای بوده، توجه زیادی نسبت به زبان SQL دارد. تبلیغات در زمینه System/R باعث جذب گروهی از مهندسین در Menlo Park در کالیفرنیا گردید، و این گروه به این نتیجه رسیدند که تحقیقات IBM منجر به یک بازار تجاری برای بانک‌های اطلاعاتی رابطه‌ای خواهد گردید.

در ۱۹۷۷ این گروه شرکتی بنام Inc و Relational Software تأسیس نمودند تا یک DBMS رابطه‌ای بر اساس SQL بسازند. محصولی بنام Oracle در ۱۹۷۹ عرضه گردید، و اولین DBMS رابطه‌ای بوجود آمد. به این ترتیب محصول Oracle باعث گردید اولین محصول IBM برای مدت ۲ سال در بازار دچار رکود باشد. این محصول بر روی مینی کامپیوترهای VAx Digital’s اجرا می‌شد که خیلی از کامپیوترهای بزرگ IBM ارزان تر بودند.

واژه‌های کلیدی SQL

واژه‌های کلیدی SQL به گروه‌های مختلفی تقسیم می‌گردد، در زیر به برخی از آنها اشاره می‌کنیم آنهایی که آشنا تر هستند را تنها با یک مثال شرح می‌دهیم:

· دستورات بازیابی داده (SELECT)

· دستورات عملیات داده (INSERT، UPDATE، MERGE،TRUNCAT و DELETE)

· دستورات تراکنش داده(COMMIT و ROLLBACK)

· دستورات تعریف داده(CREATE وDROP)

· دستورات کنترل داده(GRANT و REVOKE)

دستورات بازیابی داده

دستور SELECT جهت بازیابی برشی سطری از یک یا چند جدول به کار میرود. این دستور پرکاربردترین دستور DML می‌باشد و برای گزارش گیری‌های موثر مورد استفاده قرار می‌گیرد. ساختمان این دستور می‌تواند از اجزای زیر تشکیل شده باشد:

· FROM : مشخص کردن جداول و نحوه اتصال آنها به هم.

· WHERE : انتخاب سطر‌هایی با شرایط خاص.

· GROUP BY : ترکیب سطر‌ها با مقادیر مربوط به مجموعه‌ای از سطرهای کوچکتر.

· HAVING : مشخص کردن سطرهای ترکیبی.

· ORDER BY : مشخص کردن اینکه کدام ستونها برای مرتب کردن داده‌ها به کار می رود.

مثال ۱) نشان دادن رکوردهای تمام کتاب‌های بیش ۱۰۰٫۰۰ واحد قیمت. نتایج بر اساس نام کتاب مرتب می‌گردد. نماد ستاره(*) به معنای نشان دادن تمام ستون های(صفات) جداول(ها) می‌باشد:

SELECT * FROM books WHERE price > ۱۰۰٫۰۰
ORDER BY title

مثال ۲) این مسئله نحوه استفاده از جداول چندگانه را نشان می‌دهد. bk و ba نام مستعار جداول می‌باشد. در این مثال تعداد مولفان مختلف هر کتاب را نشان داده می‌شود:

SELECT bk.title, count(*) AS Authors
FROM books AS bk, book_authors AS ba
WHERE bk.book_number = ba.book_number
GROUP BY bk.title

 

دستورات عملیات داده

این دستورات به اختصار (DML( Data Manipulation Language گفته می‌شود و شامل دستوراتی همچون زیر است:

INSERT : اضافه کردن سطر‌هایی (تاپل‌هایی) به جدول موجود.

UPDATE : جهت تغییر مقادیر سطرهای موجود جدول.

MERGE : ترکیب کردن داده‌ها در جداول چندگانه این دستور جدید در SQL ۲۰۰۳ اضافه شده‌است، پیش از این پایگاه داده‌ها از دستور UPSERT استفاده می‌کردند.

TRUNCAT : تمام داده‌های جدول را حذف می‌کند(از دستورات غیر استاندارد اما پر کاربرد SQL می‌باشد)

DELETE : حذف سطر‌هایی از جدول موجود.

 

مثال ۳)

Example:
INSERT INTO my_table (field۱, field۲, field۳) VALUES ('test', 'N', NULL);
UPDATE my_table SET field۱ = 'updated value' WHERE field۲ = 'N';
DELETE FROM my_table WHERE field۲ = 'N';

 

دستورات تراکنش داده

(START TRANSACTION (BEGIN WORK : جهت آغاز یک تراکنش پایگاه داده به کار می‌رود تا کنترل کند که تراکنش یا به پایان برسد یا اصلاً بی تأثیر باشد.

COMMIT : باعث می‌شود که تغییرات درون ترانش به طور دائمی ثبت گردد.

ROLLBACK : باعث می‌شود که تغییرات ار آخرین COMMIT یا ROLLBACK دور انداخته شود، در نتیجه وضعیت داده‌ها به قبل از درخواست دخییرات آنها بر می‌گردد.

این دو دستور در کنار هم برای کنترل و قفل گذاری به کار می‌رود و هنگام خروج از تراکنش این کنترل و قفل گذاری از بین می‌رود.

مثال ۴)

START TRANSACTION;
UPDATE inventory SET quantity = quantity - ۳ WHERE item = 'pants';
COMMIT;

 

دستورات تعریف داده

دومین دسته دستورات SQL دستورات تعرف داده یا (DDL (Data Definition Language می‌باشد. این دستورات به کاربر اجازه تعریف جداول جدید و اجزای آنها را می‌دهد. بیشتر SQL‌های تجاری دستوراتی با این خصوصیات را دارند. مهم‌ترین گزینه‌های پایه‌ای DDL دستورات زیر است:

CREATE : ایجاد یک شی (مثلاً یک جدول).

DROP : حذف شی تعریف شده‌ای در پایگاه داده.

بیشتر پایگاه‌های داده دستور ALTER را نیز دارند که اجازه تغییر یک شی موجود را به شیوه‌های مختلف می‌دهد ( مثلاً اضافه کردن یک ستون به جدول).

مثال ۵)

CREATE TABLE my_table (
my_field۱ INT UNSIGNED,
my_field۲ VARCHAR (۵۰),
my_field۳ DATE NOT NULL,
PRIMARY KEY (my_field۱, my_field۲)
)

 

دستورات کنترل داده

سومین دسته از دستورات SQL دستورات کنترل داده یا (DCL (Data Control Languageمی باشد. این دستورات جنبه‌های اجازه دسترسی به داده‌ها را مشخص می‌کند و تعیین می‌کند کدام کاربر می‌تواند روی پایگاه داده عملیات انجام دهد یا کدام کاربر تنها می‌تواند قابلیت خواندن آنها را داشته باشد. دو دستور اصلی به قرار زیر است:

GRANT : اجازه دادن به یک یا چند کاربر برای اجرا کردن یک یا مجموعه‌ای ازدستورات بر روی یک شی.
REVOKE : حذف یا محدود کردن قدرت اجرای کاربران.

مثال ۶)

Example: SELECT * FROM inventory -- Retrieve everything from inventory table

معایب SQL

در کاربرد عملی از SQL معایب زیر بر آن وارد است:

· دستورات نحوی (syntax) آن تا حدی مشکل است به نحوی که گاهی آنرا با COBOL مقایسه می‌کنند.

· شیوه استانداردی را برای دستورات چند تکه بزرگ ندارد.

· نمونه‌های مختلف آن‌ها که توسط فروشندگان مختلف ارائه می‌شود گاهی با هم سازگاری ندارد.

· وجود برخی دستورات بلند

· اشتباه گرفتن وظیفه‌های دستوراتی مثل UPDATE و INSERT .

 

محاسن SQL

ولی SQL دارای محاسنی هم هست:

· سازگاری با اکثر زبانهای دستوری

· سازگاری با اکثر پایگاه‌های داده مثل SQL Server,Oracle و حتی MS ACCESS

· پس از اینکه برنامه نویس این زبان را درک کرد استفاده از آن بسیار ساده‌است

· کاربرد در زبانهای جدید و پیشرفته

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد