در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
1- DDL 1: این مدل از SQL برای معرفی دادهها استفاده میشود. برای مثال عبارت
CREATE DATABASE ،CREATE TABLE و... که یک مدل را برای پایگاهدادههای رابطهای تولید میکند. بهمرور زمان با ساخت محیطهای ویژوال این مدل از زبان کمکم کاربرد خود را از دست داد ولی در کارهای حرفهای و برای تنظیمات خاص و اهداف خاص از DDL استفاده میشود.?- DML 2: این مدل از SQL برای انجام عملیات خاصی بر پایگاهدادههای رابطهای و هر نوع مدل دادهای استفاده میشود. برای مثال عبارت SELECT، INSERT، DELETE و... در این دسته قرار میگیرند. این مدل نیز کاربرد فراوانی دارد و اکثرا SQL را با DML آن میشناسند. مدلی که در این مقاله بیشتر به آن خواهیم پرداخت مدل DML است، یعنی زبانی برای انجام عملیات روی دادهها.
خب، پیش از اینکه این زبان را بررسی کنیم، چندین لغت کلیدی مربوط به SQL را تعریف میکنیم.
SELECT: این کلمه کلیدی زمانی کاربرد دارد که ما قصد داریم داده های خودمان را انتخاب کنیم.
FROM: منبع یا منابعی که قرار است دادهها از آن انتخاب شوند با FROM مشخص میکند.
WHERE: شرطی است که برای انتخاب دادهها میگذاریم.
INSERT: یک عملیات درج داده را مشخص میکند.
DELETE: برای حذف دادهها استفاده میشود.
کلمات کلیدی دیگری نیز هستند که بیشتر در مثال با آنها بیشتر آشنا خواهیم شد.
بسیار خب حال بیایید یکسری مثال از زبان SQL را با هم تحلیل کنیم.
فرض کنید جدولی داریم که شامل چند فیلد
Id ،Title ،Content و Date باشد:ID شماره منحصربهفرد برای هر خبر، Title موضوع خبر، Content محتویات خبر و Date تاریخ خبر را مشخص میکنند.
فرض کنیم ما اطلاعات مربوط به آرشیو کلیک روزنامه جامجم را در اختیار داریم و میخواهیم مطالب همه آنها را در یک جا داشته باشیم، عبارت SQLما بصورت زیر نوشته میشود:
SELECT * FROM ArchiveClick
منظور از * چیست؟ در دنیای کامپیوتر * معنای همه را میدهد در اینجا یعنی تمامی جزئیات مربوط به اخبار را مشخص میکند.
حال قصد داریم خبرهای درج شده در تاریخ امروز را بهدست بیاوریم:
SELECT * FROM ArchiveClick WHERE Date = NowDay
این عبارت با گذاشتن شرط Date = NowDay اخباری را میآورد که امروز درج شده باشند. قصد داریم خبری مربوط فروش مایکروسافت و خرید آن توسط شرکت کانونیکال را در روزنامه درج کنیم:
INSERT INTO ArchiveClick (Id,Title,Content,Date) VALUES
(1282 «
ماکروسافت ورشکست شد», «محتویات خبر»,NowDay)بعدا متوجه شدیم که خبر درست نیست، مثلا شرکت کانونیکال شرکت گوگل را خریده است:
Content ,گوگل خریده شد=
UPDATE ArchiveClick SET (Title=محتویات جدید)
WHERE 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 است.امیربهاالدین سبطالشیخ
پینوشت
1. Data Definition Language
2. Data Manipulation Language
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
گزارش «جامجم» درباره دستاوردهای زبان فارسی در گفتوگو با برخی از چهرههای ادب معاصر
معاون وزیر بهداشت: