معرفی زبان استاندارد اتصال به پایگاه داده

زبان سیلندرها
SQL (با تلفظ سیکوئل یا سه‌کوئل) سرواژه عبارت Structure Query Language است. یعنی زبان پرس‌وجوی ساخت یافته. زبان سه‌کوئل موارد کاربرد زیادی دارد در استفاده از WMI (زیرساخت مدیریتی ویندوز) بگیرید تا در حد سرویس‌های تحت‌وب؛ اما کاربرد و نوشتن سه‌کوئل در همه اینها متفاوت است. ولی اغلب از یک ساختار ثابت استفاده می‌کنند و عبارات پرس‌وجو از یک قواعد ثابتی پیروی می‌کنند. در این مقاله قصد داریم در مورد زبان استاندارد SQL که در سال ???? توسط ادگار فرانک تدکاد ارائه شد صحبت کنیم. این زبان در همان زمان برای دسترسی به داده‌های موجود در پایگاه‌داده‌‌های رابطه‌ای به‌کار می‌رفت و برای همین منظور توسعه داده شد. زبان SQL استاندارد بر دو نوع است:

1- DDL 1: این مدل از SQL برای معرفی داده‌ها استفاده می‌شود. برای مثال عبارت

?- DML 2: این مدل از SQL برای انجام عملیات خاصی بر پایگاه‌داده‌‌های رابطه‌ای و هر نوع مدل داده‌ای استفاده می‌شود. برای مثال عبارت SELECT،‌ INSERT، DELETE و... در این دسته قرار می‌گیرند. این مدل نیز کاربرد فراوانی دارد و اکثرا SQL را با DML آن می‌شناسند. مدلی که در این مقاله بیشتر به آن خواهیم پرداخت مدل DML است، یعنی زبانی برای انجام عملیات روی داده‌ها.

خب، پیش از اینکه این زبان را بررسی کنیم، چندین لغت کلیدی مربوط به SQL را تعریف می‌کنیم.

SELECT: این کلمه کلیدی زمانی کاربرد دارد که ما قصد داریم داده های خودمان را انتخاب کنیم.

FROM‌: منبع یا منابعی که قرار است داده‌ها از آن انتخاب شوند با FROM مشخص می‌کند.

WHERE: شرطی است که برای انتخاب داده‌ها می‌گذاریم.

INSERT: یک عملیات درج داده را مشخص می‌کند.

DELETE‌: برای حذف داده‌ها استفاده می‌شود.

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

بسیار خب حال بیایید یکسری مثال از زبان SQL را با هم تحلیل کنیم.

فرض کنید جدولی داریم که شامل چند فیلد

ID شماره منحصربه‌فرد برای هر خبر، Title موضوع خبر، Content محتویات خبر و Date تاریخ خبر را مشخص می‌کنند.

فرض کنیم ما اطلاعات مربوط به آرشیو کلیک روزنامه جام‌جم را در اختیار داریم و می‌خواهیم مطالب همه آنها را در یک جا داشته باشیم، عبارت SQL‌ما بصورت زیر نوشته می‌شود:

CREATE DATABASE ،CREATE TABLE و... که یک مدل را برای پایگاه‌داده‌‌های رابطه‌ای تولید می‌کند. به‌مرور زمان با ساخت محیط‌های ویژوال این مدل از زبان کم‌کم کاربرد خود را از دست داد ولی در کارهای حرفه‌ای و برای تنظیمات خاص و اهداف خاص از DDL استفاده می‌شود.Id ،Title ،Content وDate باشد:

SELECT * FROM ArchiveClick

منظور از * چیست؟ در دنیای کامپیوتر * معنای همه را می‌دهد در اینجا یعنی تمامی جزئیات مربوط به اخبار را مشخص می‌کند.

حال قصد داریم خبرهای درج شده در تاریخ امروز را به‌دست بیاوریم:

SELECT * FROM ArchiveClick WHERE Date = NowDay

این عبارت با گذاشتن شرط Date = NowDay اخباری را می‌آورد که امروز درج شده باشند. قصد داریم خبری مربوط فروش مایکروسافت و خرید آن توسط شرکت کانونیکال را در روزنامه درج کنیم:

INSERT INTO ArchiveClick (Id,Title,Content,Date) VALUES

(1282 «

بعدا متوجه شدیم که خبر درست نیست، مثلا شرکت کانونیکال شرکت گوگل را خریده است:

Content ,گوگل خریده شد=

=محتویات جدید)

ماکروسافت ورشکست شد», «محتویات خبر»,NowDay)UPDATE ArchiveClick SET (TitleWHERE Id = 1282

با دستور بالا محتویات و عنوان خبر ???? را بروزرسانی کردیم.

بسیار خب بعدا مشخص می‌شود که این خبر جعلی و شایعه است و ما قصد داریم خبر را حذف کنیم:

DELETE FROM ArchiveClick WHERE Id = 1282

با گذاشتن شرط

حال می‌خواهیم ببینیم در هر تاریخ چند خبر منتشر شده است

Id=1282 به دستور حذف می‌گوییم که خبری با شماره 1282 را حذف کن.

SELECT COUNT(*),Date FROM ArchiveClick GROUP BY Date

برای این دستور دو کلید واژه جدید را دیدیم یکی GROUP BY است یکی COUNT. کلمه کلیدی GROUP BY زمانی استفاده می‌شود که ما بخواهیم داده‌های خود را دسته بندی کنیم مثلا خبرهای مثال بالا را بر اساس تاریخ دسته بندی کنیم. نکته‌ای که باید در نظر گرفته شود این است که GROUP BY آخرین دستوری است که می‌تواند در یک عبارت SQL قرار بگیرد، بعد از GROUP BY نام فیلدهایی قرار می‌گیرد که قرار است بر مبنای آن داده‌ها را دسته‌بندی کنیم، کلمه کلیدی دیگری که با آن آشنا شدیم COUNT است COUNT یک تابع عملیاتی هست که تعداد داده‌ها را می‌شمارد در دستور بالا (*) COUNTتعداد داده‌هایی هردسته که بر اساس تاریخ دسته‌بندی شدند، را به خروجی می‌دهد، ‌نکته‌ایی که باید گفته شود این است که بعد از عبارت‌های عملیاتی مثل COUNT هرفیلدی ذکر شود باید بعد از دستور GROUP BY قرار ‌گیرد.

می‌خواهیم ببینیم امروز چند خبر در روزنامه درج شده است:

SELECT COUNT(*),Date FROM ArchiveClick GROUP BY Date HAVING Date = NowDay

ابتدا داده‌ها را براساس تاریخ دسته‌بندی کردیم، سپس برای دسته‌های خود یک شرط

Date = NowDay گذاشتیم، نکته این دستور این است که شرط دستور GROUP BY با HAVING‌ مشخص می‌شود و شما نمی‌توانید از WHERE استفاده کنید. بالا گفتیم که دستور GROUP BY‌ آخرین دستور یک عبارت SQL است چون HAVING شرط آن است پس می توان گفت که HAVING آخرین عبارت در یک دستور SQL است.
/ 0 نظر / 12 بازدید