close
تبلیغات در اینترنت

sql چیست

محل تبلیغات شما

امروز چهارشنبه 21 آذر 1397 شما در سه سوت آموزش هستید.

برای در خواست آموزش اینجا کلیک کنید.

رایتم مرجع وبمستر ایرانی کانال تلگرام سه سوت آموزش محل تبلیغات شما محل تبلیغات شما

شاید بار ها و بار ها نام اس کیو ال را شنیدید اما نمی دانید چه چیزی است. در این پست از سه سوت آموزش به آموزش 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 ارزان تر بودند.

امروزه این شرکت با نام Oracle Corporation اولین فروشنده سیستم‌های مدیریت بانک اطلاعاتی رابطه‌ای است. استادان آزمایشگاههای کامپیوتر در دانشگاه برکلی کالیفرنیا نیز در نیمه دهه ۱۹۷۰ مشغول تحقیق در زمینه بانک‌های اطلاعاتی رابطه‌ای بودن (مانند تیم تحقیق IBM)، گروه فوق نیز یک نمونه از DBMS رابطه‌ای ایجاد نمودند و سیستم خود را Ingres نام نهادند.
پروژه Ingres شامل یک زبان پرسش یا Query language بود بنام QUEL، اگر چه از SQL خیلی ساخت یافته تر بود، اما شباهت آن به زبان انگلیسی کمتر بود.

 

در حالیکه Oracle و Ingres برای ارائه محصولات تجاری در رقابت بودند، پروژه System/R شرکت IBM در تلاش بوده‌است که یک محصول تجاری با نام SQL/Data system (یاSQL/DS ) عرضه نماید. IBM موجودیت SQL/DS را در ۱۹۸۱ اعلام، و در ۱۹۸۲ شروع به عرضه محصول خود نمود. در سال ۱۹۸۳ IBM یک نسخه SQL/DS را برای VM/CMS (سیستم عاملی که در کامپیوتر بزرگ IBM غالبا استفاده شده بود)، اعلام نمود.

 

همچنین در سال ۱۹۸۳ شرکت IBM، محصول Database۲ یا DB۲ را معرفی نمود که یک DBMS رابطه‌ای بود برای سیستم‌های بزرگ آن شرکت. DB۲ تحت سیستم عامل IBM’s VMS(سیستم عامل مراکز کامپیوتری بزرگ) اجرا می‌شد. اولین نسخه DB۲ در ۱۹۸۵ عرضه گردید، و مسئولین IBM اعلام نمودند که این محصول یک برنامه استراتژیک برای تکنولوژی نرم افزاری IBM می‌باشد. DB۲ از آن تاریخ تاکنون DBMS رابطه‌ای شاخص بوده و IBM از آن حمایت نموده و زبان DB۲ SQL استاندارد عملی زبان بانک اطلاعاتی بوده‌است.

 

SQL استاندارد ANSI ((American National Standards Institute را در سال ۱۹۸۶ و ISO (International Organization for Standardization) را در سال ۱۹۸۷ اتخاذ نمود. استانداردهای مختلفی از SQL تاکنون عرضه شده که در زیر بیان می‌کنیم :

 

SQL۸۷
SQL۸۹
SQL۹۲
SQL۱۹۹۹
SQL۲۰۰۳

 

حوزه و وسعت

 

بسیاری از اصطلاحات توسعه یافته SQL تحت استاندارد بین المللی بوده و در نتیجه از آنها شبیه بقیه زبانهای استاندارد مثل محصولات شرکت اوراکل PL/SQL یا Sybase و SQL PL (مدل رویه‌ای) از شرکت IBM می‌باشد.

 

SQL برای کارهای ویژه و محدودی (گزارش گیری از داده‌ها در پایگاه داده رابطه‌ای) طراحی شده‌است. بر خلاف زبانهای دستوری مثل بیسیک یا سی که برای حل مسائل طراحی شده، SQL زبانی بر پایه اعلان است. زبانهای توسعه یافته‌ای مثل PL/SQL به دنبال کامل کردن زبان به هدف ایجاد زبان برنامه نویسی با حفظ مزیت‌های SQL می‌باشد. شیوه دیگر کار این است که به کدهای زبان برنامه نویسی اجازه دسترسی به پایگاه داده به کمک دستورات SQL داده شود مثلاً PostgreSQL به توابعش اجازه می‌دهد که درون کدهای Perl، Tcl و C نوشته شوند. گاهی به شوخی گفته می‌شود که SQL نه ساخت یافته‌است،نه محدود به گزارش گیری‌ها و اصلاً یک زبان نیست!

 

 

 

واژه‌های کلیدی 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
  • پس از اینکه برنامه نویس این زبان را درک کرد استفاده از آن بسیار ساده‌است
  • کاربرد در زبانهای جدید و پیشرفته

 

اختصاصی از سه سوت آموزش



با عضویت در خبرنامه سه سوت آموزش نیازی به مراجعه به سایت ما نخواهید داشت!

ایمیل خود را بدون www وارد کنید!

اشترک در گوگل اشترک در گوگل پلاس اشترک در استامبل آپن ديگ اشترک در کلوب اشترک در فيس نما اشترک در تويتر اشترک در فيسبوک

ديدگاه های ارسال شده
  1. s m m می‌گه:

    سلام
    مفید بود
    یه کد میخوام مثل کد خودت که وقتی موس رو مطلب میره شکلکهای اشتراگذاری ظاهر بشه
    تو وبت داری؟
    اگه داری لطفا ادرس شو برام بفرست. مرسی
    موفق باشی
    راستی یه سر هم به ما بزن یه راهنمایی بکن هرچی باشه شما پیش کسوتین

    پاسخ : سلام
    اون کد توی قالب ماست
    کد جداگانه نیس

نام
ایمیل (منتشر نمی‌شود) (لازم)
وبسایت
:) :( ;) :D ;)) :X :? :P :* =(( :O @};- :B /:) :S
نظر خصوصی
مشخصات شما ذخیره شود ؟ [حذف مشخصات] [شکلک ها]
کد امنیتیرفرش کد امنیتی