دستورات SQL آموزش کامل
در این مقاله قرار است رایج ترین دستورات SQL را که همه باید بدانند نظیر: SELECT، INSERT، WHERE و... بررسی کنیم. همچنین مثالهایی از نحوه استفاده از هر دستور را ارائه خواهیم داد.
SQL یا زبان پرسوجو ساختاریافته یکزبان برنامهنویسی است که به طور خاص برای تعامل با پایگاههای داده طراحی شده است و این موضوع به شما این امکان را میدهد تا دادهها را در پایگاههای داده به روشهای مختلف دستکاری کنید بهعنوانمثال: بتوانید داده را تغییر دهید، حذف کنید، اضافه کنید، یا بهسادگی آن را استخراج کنید و در یک گزارش قرار دهید.
SQL توسط طراحان، توسعهدهندگان و مدیران پایگاهداده استفاده میشود، اما همچنین توسط تحلیلگران داده و دانشمندان برای استخراج و تجزیهوتحلیل دادهها از پایگاهدادههای بزرگ رابطهای استفاده میشود.
تعریف SQL
برای افرادی که با زبان برنامهنویسی SQL آشنا نیستند باید گفت: در درجه اول برای مدیریت و دستکاری دادهها در پایگاههای داده رابطهای استفاده میشود. پایگاهدادههای رابطهای نوعی از پایگاهداده هستند که دادهها را مانند یک صفحه گسترده در جداول دارای ردیف و ستون سازماندهی میکند.
SQL برای ایجاد، اصلاح و پرسوجو این جداول و دادههای ذخیره شده در آنها استفاده میشود. با دستورات SQL توسعهدهندگان میتوانند جداول و سایر اشیا پایگاهداده ایجاد کنند و همچنان دادهها را وارد و بهروز کنند، دادهها را حذف کنند و با استفاده از دستورات SELECT دادهها را از پایگاهداده بازیابی نمایند.
توسعهدهندگان همچنین میتوانند از SQL برای ایجاد، تغییر و مدیریت ایندکسها استفاده کنند که برای بهبود عملکرد کوئریهای پایگاهداده استفاده میشود. این زبان توسط بسیاری از سیستمهای مدیریت پایگاهداده رابطهای محبوب مانند MySQL، PostgreSQL و MicrosoftSQLServer استفاده میشود.
دستهبندی دستورات sql
در حوزه پایگاههای داده رابطهای SQL (زبان پرسوجوی ساختاریافته) بهعنوان ابزار اساسی برای تعامل و مدیریت دادهها عمل میکند. دستورات SQL بهطورکلی به زبان تعریف داده (DDL)، زبان دستکاری دادهها (DML)، زبان کنترل داده (DCL)، زبان کنترل تراکنش (TCL) و زبان پرسوجو داده (DQL) دستهبندی میشوند که هر کدام اهداف متفاوتی را انجام میدهند که به شرح ذیل است:
Data Definition Language (زبان تعریف داده):
- CREATE: برای ایجاد اشیا پایگاهداده مانند جداول، نماها یا نمایهها استفاده میشود.
- ALTER: ساختار اشیای پایگاهداده موجود را تغییر میدهد.
- DROP: اشیا پایگاهداده مانند جداول یا نماها را حذف میکند.
- TRUNCATE: تمام رکوردها را از جدول حذف میکند؛ اما ساختار جدول را حفظ میکند.
Data Manipulation Language (زبان دستکاری دادهها):
- SELECT: دادهها را از یک یا چند جدول بازیابی میکند.
- INSERT: رکوردهای جدید را به جدول اضافه میکند.
- DELETE: رکوردها را از جدول حذف میکند.
- UPDATE: رکوردهای موجود در جدول را اصلاح میکند.
Data Control Language (زبان کنترل داده):
- GRANT: امتیازات خاصی را برای کاربران پایگاهداده فراهم میکند.
- REVOKE: امتیازات قبلاً اعطا شده را پس میگیرد.
Transaction Control Language (زبان کنترل تراکنش):
- COMMIT: یک تراکنش را نهایی میکند و همه تغییرات را دائمی میکند.
- ROLLBACK: پایگاهداده را به حالت قبل از شروع تراکنش برمیگرداند.
- SAVEPOINT: نقاطی را در تراکنشها تعیین میکند که بعداً میتوانید به آنها برگردید.
Data Query Language (زبان کوئری داده):
- SELECT: در درجه اول برای پرسوجو از پایگاهداده برای بازیابی اطلاعات خاص استفاده میشود.
درک و تسلط بر این دستههای دستورات SQL برای مدیریت و دستکاری مؤثر پایگاهداده ضروری است. دستورات DDL ساختار پایگاهداده را شکل میدهد، دستورات DML اصلاح دادهها را مدیریت میکند، دستورات DCL دسترسی و مجوزها را مدیریت میکند، دستورات TCL یکپارچگی تراکنش را تضمین میکند و دستورات DQL بازیابی دادهها را تسهیل میکند.
ترتیب اجرای دستورات sql
ترتیب اجرای SQL ترتیب ارزیابی بندهای یک پرسوجو را مشخص میکند. برخی از رایجترین چالشهای پرسوجو که افراد با آن مواجه میشوند را میتوان با درک واضحتر از ترتیب اجرای SQL که گاهی اوقات ترتیب عملیات SQL نامیده میشود، بهراحتی اجتناب کرد. درک ترتیب پرسوجوی SQL میتواند به شما در تشخیص اینکه چرا یک پرسوجو اجرا نمیشود کمک کند، و حتی بیشتر به شما کمک میکند پرسوجوهای خود را برای اجرای سریعتر بهینه کنید.
FROM/JOIN
بند FROM و JOINها شامل تعیین کل مجموعه کاری دادههایی که در حال پرسوجو هستند اجرا میشوند. این شامل پرسشهای فرعی در این بند میشود و میتواند باعث ایجاد جداول شود که شامل تمام ستونها و ردیفهای جداول در حال پیوست میشود.
WHERE
هنگامی که کل مجموعه کاری دادهها را به دست آوریم، محدودیتهای WHERE برای اولینبار به ردیفهای جداگانه اعمال میشود و ردیفهایی که محدودیت را برآورده نمیکنند کنار گذاشته میشوند. هر یک از محدودیتها فقط میتوانند مستقیماً از جداول درخواست شده در عبارت FROM به ستونها دسترسی داشته باشند. نام مستعار در بخش SELECT پرسوجو در اکثر پایگاههای داده قابلدسترسی نیستند؛ زیرا ممکن است شامل عباراتی وابسته به بخشهایی از کوئری باشند که هنوز اجرا نشدهاند.
GROUP BY
سطرهای باقیمانده پس از اعمال محدودیتهای WHERE بر اساس مقادیر مشترک در ستون مشخص شده در عبارت GROUP BY گروهبندی میشوند. در نتیجه گروهبندی، تنها به تعداد سطرهایی که مقادیر منحصربهفرد در آن ستون وجود دارد، وجود خواهد داشت. به طور خلاصه باید گفت این بدان معناست که شما فقط زمانی باید از آن استفاده کنید که توابع انبوهی در درخواست خود داشته باشید.
HAVING
اگر پرسوجو دارای یکبند GROUPBY باشد، سپس محدودیتهای عبارت HAVING بر روی ردیفهای گروهبندیشده اعمال میشود، ردیفهای گروهبندیشده را که محدودیت را برآورده نمیکنند، کنار بگذارید. مانند عبارت WHERE، نام مستعار نیز از این مرحله در اکثر پایگاههای داده قابلدسترسی نیستند.
SELECT
هر عبارتی در قسمت SELECT کوئری در نهایت محاسبه میشود.
DISTINCT
از ردیفهای باقیمانده، ردیفهایی با مقادیر تکراری در ستون مشخص شده بهعنوان DISTINCT کنار گذاشته میشوند.
ORDER BY
اگر ترتیبی توسط عبارت ORDERBY مشخص شده باشد، ردیفها بر اساس دادههای مشخص شده به ترتیب صعودی یا نزولی مرتب میشوند. ازآنجاییکه تمام عبارات در قسمت SELECT کوئری محاسبه شده است، میتوانید به نام مستعار در این بند اشاره کنید.
LIMIT/OFFSET
در نهایت، سطرهایی که خارج از محدوده مشخص شده توسط LIMIT و OFFSET قرار میگیرند، کنار گذاشته میشوند و مجموعه نهایی سطرها باقی میماند تا از پرسوجو برگردانده شود.
مهمترین دستورات sql
بازیابی جداول (SQL Query for Retrieving Tables)
این پرسوجو میتواند برای بازیابی لیست جداول موجود در پایگاهدادهای استفاده و همچنان اجرا شود. با دستور SELECT، کاربران میتوانند بهراحتی ستونهایی را که میخواهند در خروجی query دریافت کنند، تعریف کنند. این دستور همچنین برای دریافت ستونهایی که کاربران میخواهند بهعنوان جدول خروجی ببینند مفید است.دستور SELECT برای انتخاب دادهها از جدول اعمال میشود و دادههای بازیابی شده در یک جدول نتیجه به نام مجموعه نتیجه قرار میگیرد. دادههای خروجی در یک جدول نتیجه ذخیره میشود. این جدول خروجی نیز مجموعه نتیجه نامیده میشود.
انتخاب ستونها از یک جدول (Query for Selecting Columns from a Table):
اینها شاید مفیدترین نمونههای پرسوجوی SQL باشند و باید اعلام کرد دستور select برای انتخاب دادهها از پایگاهداده استفاده میشود.
خروجی دادههای مرتب شده با استفاده از "Order By":
این پرسوجو نتایج را باتوجهبه مشخصهای که با استفاده از "OrderBy" به آن ارجاع داده میشود مرتب میکند؛ بنابراین برای مثال، اگر آن ویژگی یک نوع داده عدد صحیح باشد، نتیجه به ترتیب صعودی یا نزولی مرتب میشود. به همین ترتیب، اگر نوع داده یکرشته باشد، نتیجه به ترتیب حروف الفبا مرتب میشود. ترتیب به بند برای مرتبسازی دادهها از جدول استفاده میشود. ترتیب با بند همیشه باید در آخرین پرسوجوی SQL استفاده شود.
دستکاری دادهها با استفاده از COUNT (Data Manipulation Using COUNT):
این پرسوجو تعداد کل مشتریان را با شمارش شناسه هر مشتری نمایش میدهد. علاوه بر این، نتایج را بر اساس کشور هر مشتری گروهبندی میکند. در شمارش، اگر کاربران DISTINCT را تعریف کنند، query_partition_clause را نیز تعریف میکنند. این بند بخشی از بند تحلیلی است و بندهای دیگری مانند order_by_clause و windowing_clause مجاز نیستند.
جمع دادهها با کمک SUM (Data Manipulation Using SUM):
SUM مجموع صفتی را که بهعنوان آرگومان به آن داده میشود محاسبه میکند. SUM یک تابع مجموع است و مجموع تمام مقادیر متمایز را محاسبه میکند و همچنان محاسبه مجموع تمام مقادیر تکراری.
میانگین دادهها با AVG (Data Manipulation Using AVG):
به طور ساده میانگین یک ویژگی داده شده. میانگین نیز یک تابع تجمیع در SQL است. تابع AVG() میانگین مقادیر غیر NULL را در یک ستون محاسبه میکند و مقادیر null را نادیده میگیرد.
پرسوجو برای ایجاد یک نمایش (Query for Creating a View):
view یک جدول سفارشی است که در نتیجه یک پرسوجو تشکیل میشود. این جدول مانند هر جدول دیگری دارای جدول و ردیف است. معمولاً ایده خوبی است که پرسوجوها را در SQL بهعنوان نماهای مستقل اجرا کنید؛ زیرا این امکان را به آنها میدهد که بعداً برای مشاهده نتایج پرسوجو بازیابی شوند، نه اینکه هر بار یک فرمان را برای مجموعه خاصی از نتایج محاسبه کنید.
بهروزرسانی یک نمایش (Query for Updating a View):
این پرسوجو نمای با نام "فهرست محصولات" را بهروز میکند و اگر این نما وجود نداشته باشد، نمای فهرست محصول همانطور که در این پرسوجو مشخص شده ایجاد میشود. به نمای آن میز مجازی نیز میگویند. بهعبارتدیگر، یک view فقط یک کپی آینه شده از یک جدول است که دادههای آن نتیجه یک کوئری ذخیره شده است.
نمایش جداول کاربر (Query to Display User Tables):
جدول تعریف شده توسط کاربر نمایشی از اطلاعات تعریف شده در یک جدول است و میتواند بهعنوان آرگومان برای رویهها یا توابع تعریف شده توسط کاربر استفاده شود. ازآنجاییکه آنها بسیار مفید هستند، پیگیری آنها با استفاده از پرسوجو زیر مفید است. جداول کاربر جداول رابطهای کاربر فعلی را توضیح میدهد.
نمایش کلیدهای اصلی (Query to Display Primary Keys):
یک کلید اولیه به طور منحصربهفرد تمام مقادیر موجود در یک جدول را شناسایی میکند. یک کلید اولیه یک محدودیت NOTNULL و یک محدودیت منحصربهفرد را در یک اعلان اعمال میکند. بهعبارتدیگر، از داشتن مقادیر مشابه یا دنبالهای از ستونهای سطرهای مختلف جلوگیری میکند. به مقادیر تهی اجازه نمیدهد که کلید اصلی را بهصورت یک ستون یا ترکیبی از دو ستون در یک جدول تعریف کرد. مسئول تمام روابط بین جداول است.
نمایش کلیدهای منحصربهفرد (Query for Displaying Unique Keys):
یک کلید منحصربهفرد به یک ستون اجازه میدهد تا اطمینان حاصل کند که همه مقادیر آن متفاوت است. یک کلید منحصربهفرد همچنین یک تاپل متفاوت را به طور منحصربهفرد دررابطهبا یا جدول تشخیص میدهد. یک جدول میتواند بیش از یک کلید منحصربهفرد داشته باشد. محدودیتهای کلیدی منحصربهفرد میتوانند تنها یک مقدار NULL برای ستون بگیرند.
- در همین رابطه: تکنولوژی های طراحی سایت
- در همین رابطه: طراحی سایت فروشگاهی در شیراز
منابع پیشنهادی برای یادگیری دستورات SQL
SQL (Structured Query Language) یکی از مهمترین زبانهای برنامهنویسی برای کار با پایگاههای داده است. خوشبختانه منابع آنلاین رایگان بسیاری برای یادگیری SQL وجود دارد.
- W3Schools: یکی از محبوبترین وبسایتها برای یادگیری زبانهای برنامهنویسی از جمله SQL است. W3Schools آموزشهای تعاملی، مثالهای عملی و تمرینهای زیادی برای یادگیری SQL ارائه میدهد.
- Khan Academy: این پلتفرم آموزشی آنلاین دورههای رایگان و باکیفیتی در زمینههای مختلف از جمله برنامهنویسی و پایگاه داده ارائه میدهد. بخش SQL خان آکادمی به شما کمک میکند تا مفاهیم پایه و پیشرفته SQL را به خوبی درک کنید.
- Codecademy: این پلتفرم آموزشی تعاملی، دورههای عملی و پروژه محور برای یادگیری SQL ارائه میدهد. با Codecademy میتوانید به صورت عملی با پایگاه داده کار کرده و مهارتهای خود را تقویت کنید.
- Coursera: در Coursera دورههای SQL بسیاری از دانشگاهها و موسسات معتبر ارائه میشود. این دورهها اغلب شامل ویدئوهای آموزشی، تمرینها و پروژههای عملی هستند.
- edX: مانند Coursera، edX نیز دورههای آنلاین رایگان و باکیفیتی در زمینه SQL ارائه میدهد.
- Udemy: در Udemy میتوانید دورههای SQL بسیاری با قیمتهای مختلف پیدا کنید. برخی از این دورهها رایگان هستند و برخی دیگر نیاز به پرداخت هزینه دارند.
- Corey Schafer: یکی از محبوبترین کانالهای یوتیوب برای یادگیری SQL است. Corey Schafer ویدیوهای آموزشی بسیار واضح و مفیدی برای مبتدیان و افراد با تجربه ارائه میدهد.
- freeCodeCamp.org: این کانال یوتیوب علاوه بر آموزشهای رایگان SQL، دورههای کاملی در زمینه توسعه وب ارائه میدهد.
- SQLZoo: این وبسایت مجموعهای از تمرینهای عملی SQL را برای تقویت مهارتهای شما ارائه میدهد.
- Mode Analytics: این پلتفرم به شما امکان میدهد تا SQL را به صورت تعاملی تمرین کنید و دادههای واقعی را تجزیه و تحلیل کنید.
سخن پایانی
در هر حوزهای از IT که فعالیت داشته باشید چه بهعنوان یک دانشجو، کارآموز، کارشناس یا کارشناس ارشد حتما با پایگاه داده و به خصوص دستورات sql سر و کار خواهید داشت. به همین جهت این مطلب را به یکی از مهمترین دیتابیسهای موجد اختصاص دادیم تا شما را با مفاهیم پایه این زبان بیشتر آشنا کنیم. امیدواریم که این مقاله برای شما مفید واقع شده باشد.
رنگین کمان (RKWeb)؛ ارائه دهنده خدمات طراحی سایت در شیراز مجری دهها پروژۀ موفق در زمینۀ توسعه وب یکی از برترین شرکتهای جنوب کشور در حوزۀ فناوری اطلاعات است که در تمامی مراحل راهاندازی و گسترش یک کسب و کار اینترنتی همراه شما خواهد بود.
جهت کسب اطلاعات بیشتر و دریافت مشاوره از طریق شماره تماس: 09357871280 با ما در تماس باشید!