۱۳ دستور SQL مهم که هر برنامهنویسی باید بداند (+ دانلود فیلم آموزش گام به گام)
پایگاههای داده یا همان بانک اطلاعاتی یکی از ارکان مهم وب مدرن هستند. هر وبسایت بزرگ و دینامیکی به طریقی از یک پایگاه داده استفاده میکند و زمانی که این استفاده با زبان کوئری ساختیافته (SQL) ترکیب شود، امکان دستکاری دادهها به صورت واقعاً نامحدودی ممکن میشود. در این نوشته برخی از دستورهای اصلی SQL و در واقع ۱۳ دستور SQL مهم را مرور خواهیم کرد که به عنوان یک برنامهنویس باید با آنها آشنا باشیم.
برای دادههای که از یک جدول پایگاه داده بازگردانده میشود، نامهای زیادی وجود دارند. این دادهها معمولاً به نام ردیف (Row)، رکورد (Record) یا چندتایی (Tuple) نامیده میشوند. در این نوشته از این واژهها در بخشهای مختلف بهجای هم استفاده کردهایم. همچنین علاوه بر مطالعه این مقاله، لازم به ذکر است که توابع مهم SQL را میتوان با استفاده از دوره آموزشی زیر نیز فرا گرفت.
مقدمه
همه مثالهایی که در این نوشته مطرح کردیم بر اساس چهار جدول فرضی است.
جدول مشتری که شامل نام و سن مشتریان است:
جدول قد که شامل نام و قد هر فرد است:
جدول کارکنان دقیقاً مانند جدول مشتریان شامل نام و سن کارکنان است:
و در نهایت جدول افراد همانند جداول مشتری و کارکنان شامل نام و سن افراد است:
1. دستور Select
دستور SELECT برای انتخاب استفاده میشود و یکی از سادهترین دستورهای SQL است. یادگیری آن بسیار ضروری است، چرا که تقریباً در همه دستورهای دیگر استفاده میشود.
بهتر است کلمات کلیدی SQL را به صورت حروف بزرگ بنویسید تا خواندن و درک دستورها آسانتر شود. همانطور که از نام این دستور مشخص است، از آن برای انتخاب دادهها از یک پایگاه داده استفاده میشود. مثال سادهی استفاده این دستور مانند زیر است:
SELECT * FROM table;
این دستور دو بخش دارد. بخش نخست (* SELECT) مشخص میکند که چه ستونهایی را میخواهیم انتخاب کنیم. علامت ستاره به این معنی است که میخواهیم همه ستونهای جدول را انتخاب کنیم.
بخش دوم (FROM table) به موتور پایگاه داده اعلام میکند که میخواهیم دادهها را از کجا دریافت کنیم. در استفادههای عملی باید بهجای کلمه «table»، نام جدولی را بنویسیم که قصد داریم دادهها را از آن دریافت کنیم.
دستور انتخاب ستاره
این دستور به نام دستور «انتخاب ستاره» مشهور است. استفاده از علامت ستاره روش خوبی برای درک محتویات کلی یک جدول است؛ اما استفاده از آن در برنامههای واقعی چندان توصیه نمیشود.
زمانی که از دستور انتخاب ستاره استفاده میکنیم، ارائه دادههایی که درخواست شده است بر عهده موتور پایگاه داده قرار میدهیم. در این شرایط هیچ کنترلی بر روی ترتیب دادههای بازگشتی وجود ندارد، بنابراین اگر ستون جدیدی به جدول اضافه شود، احتمالاً متوجه میشویم که متغیرهایی که در زبان برنامهنویسی تعریف کردهایم، دیگر دادههای صحیحی را نمایش نمیدهند. خوشبختانه برای این وضعیت راه حلی وجود دارد.
میتوان به طور صریح مشخص کرد که چه ستونهایی از جدول باید بازگردانده شوند، مانند دستور زیر:
SELECT age, name FROM people;
این کوئری ستونهای «age» و «name» را از جدول «people» بازمیگرداند. دستورهای انتخاب به این شکل، در صورتی که دادههای زیادی وجود داشته باشند، ممکن است پیچیده باشند؛ اما از مشکلاتی که ممکن است در آینده رخ بدهند، جلوگیری میکنند. همچنین باعث میشوند، درک دستورهای SQL برای افرادی که در آینده بر روی برنامه کار میکنند، آسانتر باشد.
اگر بخواهیم داده دیگری را انتخاب کنیم که در هیچ کدام از جدولهای دیگر ذخیره نشده است، میتوانیم به صورت زیر عمل کنیم:
SELECT age, '1234' FROM people;
هر رشته که درون (' ') نوشته میشود، بهجای نام ستون از جداول مربوط پایگاه داده بازگردانده میشود.
2. دستور Where
دستور SELECT برای بازیابی دادهها بسیار عالی است؛ اما اگر بخواهیم نتایج را کمی بیشتر فیلتر کنیم، چکار باید بکنیم؟ اگر بخواهیم افرادی را که تنها چشمان آبی دارند بازیابی کنیم، باید چهکار کنیم؟
دستور انتخاب افرادی که در ماه فروردین متولد شدهاند و به عنوان مکانیک کار میکنند چطور است؟ این جایی است که میتوان از دستور WHERE استفاده کرد. این دستور امکان اعمال شروطی برای دستور SELECT را فراهم میکند و میتوان آن را به سادگی به انتهای آن دستور اضافه کرد.
SELECT age, name FROM people WHERE age > 10;
عملگر AND
کوئری بالا محدود به افرادی شده است که بیشتر از ده سال سن دارند.
میتوان با استفاده از عملگر AND چند شرط را با هم ترکیب کرد.
SELECT age, name FROM people WHERE age > AND age < 20;
دستور AND دقیقاً به همان ترتیبی که در زبان معمولی استفاده میکنیم، عمل میکند. این دستور یک شرط دیگر را به عبارت ما اضافه میکند. در مثال فوق، دادههای بازیابی شده میتوانند هر رکوردی باشند، به شرط اینکه سن فرد بین ۱۰ تا ۲۰ باشد. از آنجایی که هیچ نتیجهای مطابق شرطهای دستور وجود نداشته است، هیچ دادهای نیز بازیابی نشده است.
عملگر OR
دستور دیگری که میتوان همراه با دستور where استفاده کرد، عملگر OR است. مانند مثال زیر:
SELECT age, name FROM people WHERE age > 10 OR name = 'Joe';
این کوئری رکوردهایی را برمیگرداند که در آنها سن فرد بالاتر از ۱۰ باشد یا نام برابر با «Joe» باشد. در مثال فوق ما تنها از یک علامت مساوی استفاده کردیم.
در بسیاری از زبانهای برنامهنویسی برای بررسی هم ارزی، از دو علامت مساوی (==) استفاده میشود. این شرایط برای اغلب موتورهای پایگاه داده لازم نیست (البته در محیطهای مختلف این وضعیت فرق میکند و بهتر است ابتدا این نکته بررسی شود).
3. دستور order by (ترتیب)
دستور order by در sql برای مرتبسازی نتایج بازیابی شده استفاده میشود.
استفاده از این دستور نیز آسان است، کافی است آن را به انتهای دستور خود اضافه کنید:
SELECT name, age FROM people ORDER BY age DESC;
در این دستور باید نام ستون و نوع ترتیب را که ASC برای ترتیب صعودی و DESC برای ترتیب نزولی است مشخص کرد. همچنین میتوان بر اساس چند ستون، مرتبسازی را انجام داد. مانند مثال زیر:
SELECT name, age FROM people ORDER BY name ASC, age DESC
عبارت ORDER BY احتمالاً وقتی با دستورهای دیگر ترکیب میشود، مفید خواهد بود. در همه کوئریها، دادهها با یک ترتیب منطقی یا عددی بازیابی نمیشوند. این دستور، آن وضعیت را تغییر میدهد.
معرفی فیلم های آموزش پایگاه داده فرادرس
بانکهای اطلاعاتی برای ذخیره دادهها و دسترسی به اطلاعات در بسترهای مختلف بسیار اهمیت دارند. راهاندازی و داشتن یک پایگاه داده مناسب برای هر شرکت یا سازمان یک امر ضروری به حساب میآید. در خصوص آموزش انواع دستور SQL ، کسب دانش کافی پیرامون مفاهیم پایگاه داده بسیار اهمیت دارد. بنابراین، مجموعه آموزشهای پایگاه داده فرادرس میتواند منبعی مناسب برای علاقهمندان و دانشجویان رشته کامپیوتر به شمار رود. در زمان انتشار این نوشته، مجموعه دورههای آموزشی پایگاه داده فرادرس دارای ۱۷ دوره آموزشی مختلف است. در مجموع نزدیک به ۶۵۰۰ دقیقه ویدئو آموزشی در این مجموعه وجود دارد. برخی از دورههای موجود در این مجموعه در ادامه به طور مختصر معرفی شده است:
- فیلم آموزش پایگاه داده MySQL: طول مدت این دوره آموزشی ۱۰ ساعت و ۱۶ دقیقه و مدرس آن مهندس سید رضا هاشمیان است. در این فرادرس به آموزش کار با MySQL پرداخته شده است. MySQL یکی دیگر از سیستمهای مدیریت پایگاه داده رابطهای به شمار میرود. برای دیدن فیلم آموزش پایگاه داده MySQL + کلیک کنید.
- فیلم آموزش SQL Server - مقدماتی: طول مدت این دوره آموزشی ۹ ساعت و مدرس آن مهندس ضحی شبر است. در این فرادرس به آموزش مقدماتی SQL Server پرداخته میشود. برای دیدن فیلم آموزش SQL Server - مقدماتی + کلیک کنید.
- فیلم آموزش مقدماتی زبان برنامه نویسی اوراکل PL/SQL: طول مدت این دوره آموزشی 12 ساعت و 17 دقیقه و مدرس آن سید محمدرضا ایزدی شهرکی است. در این فرادرس، بخشی از مفاهیم اولیه پایگاه داده و دستورات SQL و PL/SQL را به زبان ساده و کاملا کاربردی همراه با مثالهای واقعی، آموزش میدهیم. برای دیدن فیلم آموزش مقدماتی زبان برنامه نویسی اوراکل PL/SQL + کلیک کنید.
- فیلم آموزش پایگاه داده اس کیو لایت (SQLite) در سی شارپ (#C): طول مدت این دوره آموزشی ۲ ساعت و ۲۰ دقیقه و مدرس آن مهندس عبداله اسکندری است. هدف از این دوره، آموزش پایگاه داده SQLite و استفاده از آن در #C است. از SQLite در توسعه برنامههایی استفاده میشود که نیازمند یک پایگاهداده سبک هستند. برای دیدن فیلم آموزش پایگاه SQLite در سیشارپ (#C) + کلیک کنید.
- فیلم آموزش مدیریت بانک اطلاعاتی اوراکل: طول مدت این دوره آموزشی ۸ ساعت و مدرس آن مهندس عبداله اسکندری است. هدف از این دوره آموزشی، یادگیری مفاهیم پیچیده و چالشهای مدیریتی پایگاه داده Oracle است. برای دیدن فیلم آموزش مدیریت بانک اطلاعاتی اوراکل: + کلیک کنید.
- برای دیدن همه فیلمهای آموزش پایگاه داده + کلیک کنید.
4. دستور Join (الحاق)
دستور Join برای الحاق دادههای مرتبط که در چند جدول ذخیره شدهاند، استفاده میشود. با استفاده از این دستور، جدول دوم به جدول اول ملحق میشود و تعیین میشود که دادهها چگونه با هم ارتباط دارند. در ادامه یک مثال ساده ارائه شده است:
SELECT age, name, height FROM people LEFT JOIN heights USING (name);
چند نکته وجود دارد که باید رعایت شوند. هنگام استفاده از این دستور باید از تنظیمات “LEFT JOIN” تبعیت کرد. این الحاق از نوع الحاق از چپ خواهد بود. سپس جدولی که میخواهیم به آن ملحق کنیم (heights) را تعیین میکنیم.
استفاده از عبارت USING (name) در انتهای دستور به این معنی است که ستون «name» در هر دو جدول وجود دارد و میبایست به عنوان یک کلید برای الحاق جداول به هم استفاده شود. اگر دو ستونی که قرار است به عنوان کلید الحاق استفاده شوند، نامهای متفاوتی در دو جدول داشته باشند، میتوان بهجای عبارت “USING” از “ON” استفاده کرد:
SELECT age, name, height FROM people LEFT JOIN heights ON (namea = nameb);
عبارت «on» به طور صریح مشخص میکند که کدام ستونها باید به عنوان کلید استفاده شوند. انواع مختلفی از الحاق وجود دارند که توضیح همه آنها به زمان زیادی نیاز دارد؛ اما در ادامه خلاصه فشردهای از نحوه استفاده از آنها ارائه شده است.
انواع الحاق در SQL
انواع الحاق در SQL در ادامه فهرست شده است.
- (INNER) JOIN ردیفهایی را که در هر دو جدول انطباق داشته باشند، بازمیگرداند.
- LEFT (OUTER) JOIN همه ردیفهای جدول چپ را بازمیگرداند و ردیفهایی از جدول راست را که انطباق داشته باشند نیز بازمیگرداند. اگر هیچ انطباقی وجود نداشته باشد، رکوردهای جدول چپ همچنان بازگردانی میشوند.
- RIGHT (OUTER) JOIN این دستور مخالف دستور الحاق از چپ است، همه ردیفهای جدول راست بازگردان میشوند و ردیفهایی از جدول راست که انطباق داشته باشند نیز بازیابی میشود.
- FULL (OUTER) JOIN هر رکوردی را که در هرکدام از جدولها انطباق داشته باشد، بازیابی میکند.
استفاده از واژههای “INNER” یا “OUTER” اختیاری است. استفاده از این دو واژه باعث میشود که درک دستور آسانتر شود؛ اما در اغلب موارد لازم نیست آنها را ذکر کنید.
5. دستور Alias (نام مستعار)
اینک با دستورات مقدماتی آشنا شدهایم و در ادامه دستور Alias را بررسی میکنیم. این دستور برای تغییر نام یک جدول استفاده میشود.
در واقع این تغییر نام بیشتر شبیه یک نام مستعار است، چون این نام جدید صرفاً درون تراکنشی از پایگاه داده که شما اجرا کردهاید، وجود دارد. در ادامه مثالی برای استفاده آن ذکر کردهایم:
SELECT A.Age FROM people A;
برای نام مستعار میتوان از هر نامی استفاده کرد؛ اما ترجیح داده میشود که از حروف الفبا استفاده شود. پیش از نام ستون، این نام مستعار به صورت پیشوند استفاده میشود. نام مستعار (Alias) بلافاصله پس از آنکه اعلان شود به جدول انتساب مییابد. دستور فوق دقیقاً معادل دستور زیر است:
SELECT people.Age FROM people;
مزیت Alias
بهجای اینکه از نام طولانی جدول استفاده کنیم، میتوانیم یک نام ساده و آسانتر برای آن انتخاب کنیم تا راحتتر به خاطر بسپاریم، اما مزیت این دستور چیست؟
در مواردی که لازم است دستور انتخاب برای بیش از یک جدول استفاده شود، ممکن است به راحتی نام جداول و ردیفها باعث سردرگمی شود و مشخص نشود که کدام ستون متعلق به کدام جدول است. در حالتی که دو جدول نامهای ستون یکسانی داشته باشند، ممکن است که کوئری پایگاهداده بدون ارجاع صریح به نام یا نام مستعار جدول دچار اشکال شود. در ادامه مثالی برای دو جدول ارائه شده است:
SELECT staff.Age, staff.Name, customers.Age, customers.Name FROM staff, customers;
و این همان کوئری با استفاده از نام مستعار (Alias) است:
SELECT A.Age, A.Name, B.Age, B.Name FROM staff A, customers B;
به جدول staff نام مستعار «A» داده شده است و جدول customers دارای نام مستعار «B» است. تعیین نام مستعار برای جدولها، امکان کد نویسی و درک آن را بسیار راحتتر میکند و مقدار تایپی را که لازم است کاهش میدهد.
همچنین با استفاده از دستور “AS” میتوان نام یک ستون را به صورت مستعار درآورد.
SELECT age AS person_age FROM people;
هنگامی که این کوئری اجرا میشود، ستون مربوطه بهجای “age”، اینک “person_age” نامیده میشود.
6. دستور Union (ترکیب)
Union یک دستور بسیار عالی است. این دستور امکان ترکیب ردیفها با یکدیگر را میدهد.
برخلاف دستور joins که ستونهای مطابق را به هم الحاق میکرد، دستور union در SQL میتواند ردیفهای نامرتبط را به این شرط که تعداد و نام ستون یکسانی داشته باشند، به همدیگر ملحق کند. نحوه استفاده از آن در مثال زیر مشخص شده است:
SELECT age, name FROM customers UNION SELECT age, name FROM staff;
دستور union را میتوان نوعی ترکیب نتایج دو کوئری دانست. دستور union نتایجی را بازمیگرداند که یک ردیف منحصربهفرد بین دو کوئری وجود داشته باشد. میتوان از عبارت “UNION ALL” برای بازیابی همه دادهها، صرفنظر از موارد تکراری استفاده کرد:
SELECT age, name FROM customers UNION ALL SELECT age, name FROM staff;
توجه کنید که ترتیب ردیفها تغییر یافته است. دستور Union به کارآمدترین روش عمل میکند، بنابراین دادههای بازیابی شده ممکن است ترتیب متفاوتی داشته باشند. یک استفاده احتمالی برای Union شامل کاهش دادههاست. مثلاً در یک حالت فرضی میتوان یک کوئری مجموع کل را به صورت یک کوئری از مجموعهای منفرد کاهش داد.
7. دستور Insert (درج)
اینک همه روشهای بازیابی داده از یک پایگاه داده را میدانیم. اما روش درج داده در پایگاه داده چگونه است؟
با استفاده از دستور insert میتوان دادهها را در پایگاه داده درج کرد. در ادامه مثالی از آن ارائه شده است:
INSERT INTO people(name, age) VALUES('Joe', 102);
در این دستور باید نام جدول (people) و ستونهایی (name and age) که استفاده میشوند را ذکر کرد. سپس از عبارت “VALUES” برای تعیین مقادیری که باید درج شوند، استفاده میشود. این مقادیر باید به همان ترتیبی باشند که ستون آنها قبلاً در دستور ذکر شده است.
برای درج دادهها در پایگاه داده نمیتوان از عبارت where استفاده کرد و باید مطمئن شد که هرگونه الزامهای ضروری جدول رعایت شدهاند.
8. دستور Update (بهروزرسانی)
پس از وارد کردن دادهها ممکن است لازم باشد که ردیفهای خاصی تغییر یابند.
در ادامه مثالی از دستور Update در SQL ارائه شده است:
UPDATE people SET name = 'Joe', age = 101;
در این دستور باید جدولی که قصد تغییر آن را داریم ذکر کنیم و سپس از عبارت “SET” برای تعیین ستونها و مقادیر آنها استفاده کنیم. این یک مثال خوب است؛ اما همه رکوردها را بهروزرسانی میکند. این وضعیت در همه موارد مطلوب نیست.
به عبارت دیگر میتوان از کلیدواژه “WHERE” دقیقاً همانند دستور select استفاده کرد:
UPDATE people SET name = 'Joe', age = 101 WHERE name = 'James';
حتی میتوان با استفاده از عملگرهای “AND” و “OR” چند شرط را تعیین کرد:
UPDATE people SET name = 'Joe', age = 101 WHERE (name = 'James' AND age = 100) OR name = 'Ryan';
به نحوه استفاده از پارامترها برای مقید کردن شروط توجه کنید.
9. دستور Upsert (ترکیب بهروزرسانی و درج)
با اینکه ظاهر دستور Upsert عجیب است (Update+Insert)؛ اما دستور بسیار مفیدی است. فرض کنیم یک محدودیت بر روی جدول داریم و تعیین کردهایم که تنها رکوردهایی را میخواهیم که نامهای منحصربهفردی دارند.
به عبارت دیگر نمیخواهیم هیچ دو ردیفی نام یکسان داشته باشند. اگر سعی کنیم چند مقدار با نام ‘Joe’ وارد کنیم، موتور پایگاه داده خطایی ایجاد کرده و از این کار ممانعت میکند. دستور UPSERT امکان بهروزرسانی یک رکورد را در صورتی که از قبل وجود داشته باشد، ایجاد میکند. این دستور بسیار مفید است. اگر چنین دستوری وجود نداشت، نخست باید کلی کد نویسی انجام میگرفت تا بررسی شود که آیا یک رکورد وجود دارد یا نه و در صورتی که وجود دارد از دستور insert استفاده شود و در غیر این صورت کلید اصلی صحیح آن بازیابی شده و سپس بهروزرسانی شود.
متأسفانه دستور Upsert در موتورهای مختلف پایگاه داده به صورت متفاوتی پیادهسازی شده است. PostgreSQL اخیراً این امکان را یافته است؛ در حالی که MySQL مدت مدیدی است که از آن استفاده میکند. در مثال زیر روش استفاده از این دستور در MySQL ارائه شده است:
INSERT INTO people(name, age) VALUES('Joe', 101) ON DUPLICATE KEY UPDATE age = 101;
توجه داشته باشید که این دستور در واقع ترکیبی از دستور update و insert است که میتوان آن را چنین خلاصه کرد: «در صورتی که نتوانی insert کنی آن را update کن.»
10. دستور Delete (حذف)
دستور Delete برای حذف کامل رکوردها استفاده میشود. در صورتی که از این دستور به درستی استفاده نشود، میتواند بسیار مخرب باشد.
در مثال زیر سادهترین روش استفاده از آن ارائه شده است:
DELETE FROM people;
مانند بسیاری از دستورهای دیگر این دستور همه چیز را حذف میکند! برای محدود کردن این دستور به ردیفهای مورد نظر میتوان از عبارت where استفاده کرد. برای مثال:
DELETE FROM people WHERE name = 'Joe';
اگر در حال توسعه یک سیستم هستید، بهتر است “soft delete” را پیادهسازی کنید. در این روش شما واقع هرگز به صورت واقعی یک رکورد را حذف نمیکنید، بلکه یک ستون موارد حذف شده (deleted) ایجاد میکنید و سپس هنگام انتخاب کردن رکوردها این ستون را بررسی میکنید. در این روش از خطرات بالقوه زیادی اجتناب میشود و میتوان رکوردهای حذف شده زیادی را با سرعت و به راحتی انتخاب کرد. با این حال این روش، جایگزین مناسبی برای پشتیبان گیری نیست.
11. دستور Create Table (ایجاد جدول)
از این دستور برای ایجاد جدول استفاده میشود.
استفاده از این دستور نیز آسان است:
CREATE TABLE people ( name TEXT, age, INTEGER, PRIMARY KEY(name));
توجه کنید که نام ستونها و قیود مربوطه درون پرانتز قرار میگیرند و نوع داده مربوط به ستونها تعیین میشود. سپس یک کلید ابتدایی تعیین میشود چون در هر نوع طراحی مناسب پایگاه داده، این کلید موردنیاز است.
12. دستور Alter Table (تغییر جدول)
از این دستور برای اصلاح ساختار یک جدول استفاده میشود. این دستور محدودیتهایی دارد، چون پایگاه داده در صورتی که دادههای موجود سبب ایجاد یک تداخل شوند، امکان تغییر جداول را نمیدهد.
برای مثال نمیتوان یک رشته را به صورت یک عدد صحیح درآورد. در چنین مواردی نخست باید دادهها تصحیح (fix) شوند و سپس جدول اصلاح شود. در ادامه مثالی از این وضعیت ارائه شده است:
ALTER TABLE people ADD height integer;
در این مثال یک ستون به نام «height» و از نوع integer به جدول people اضافه میشود. در عمل محدودیتی برای آنچه میتوان تغییر داد، وجود ندارد.
13. دستور Drop Table (حذف جدول)
آخرین دستوری که در این نوشته بررسی میکنیم drop table نام دارد. این دستور در واقع یک دستور حذف است، اما بهجای اینکه یک رکورد منفرد را حذف کند، همه رکوردهای داخل یک جدول را پاک میکند.
روش استفاده از آن به صورت زیر است:
DROP TABLE people;
موارد استفاده از این دستور بسیار نادر است و دلیلی برای برنامهنویسی آن در داخل یک سیستم وجود ندارد. این دستور در اغلب موارد بهتر است به صورت دستی اجرا شود و بسیار مخرب است.
دستور دیگری به نام دستور CASE در SQL نیز وجود دارد که میستوانید در مطلب دستور CASE در SQL – از کاربرد تا نحوه استفاده به زبان ساده از مجله فرادرس مطالعه کنید.
معرفی فیلم های آموزش SQL فرادرس
۱۳ دستور SQL مهم که هر برنامهنویسی باید بداند در این نوشتار ارائه شد. حال توصیه میشود جهت تکمیل فرایند آموزش، یادگیری و درک بهتر مفاهیم SQL ، از دورههای آموزش ویدئویی و آنلاین استفاده شود. بدین سبب، این بخش پایانی از مطلب ۱۳ دستور SQL مهم به معرفی دورههای آموزشی SQL Server اختصاص داده شده است. در ادامه برخی از دورههای آموزشی شاخص در ارتباط دستورات SQL معرفی شدهاند.
فیلم آموزش SQL Server – مقدماتی
دوره آموزش SQL Server – مقدماتی در نرمافزار SQL Server Management Studio ارائه شده است. طول مدت این دوره آموزشی ۹ ساعت و مدرس آن مهندس ضحی شبر است. این دوره آموزشی برای آن دسته از افرادی مناسب است که پس از مطالعه این مطلب، قصد ادامه یادگیری و آموزش SQL Server را دارند. برخی از سرفصلها و رئوس مطالب مطرح شده در دوره آموزش SQL Server شامل آشنایی با روش های اعتبار سنجی SQL Server، آشنایی با مفهوم Query یا پرس و جو، طراحی و مدیریت یک پایگاه داده، آشنایی با مدل رابطه ای و تحلیل اولیه یک سیستم پایگاه داده و بسیاری از موارد است.
در صورت تمایل برای کسب اطلاعات درباره ساخت پایگاه داده در SQL میتوانید به این مطلب در مجله فرادرس مراجعه کنید.
- برای دیدن فیلم فیلم آموزش SQL Server – مقدماتی + اینجا کلیک کنید.
فیلم آموزش SQL Server – تکمیلی
طول مدت دوره آموزشی SQL Server نزدیک به شش ساعت و مدرس آن دکتر یوسف مسعودی سبحان زاده است. در دوره «آموزش SQL Server – تکمیلی» هدف بر آن است که قابلیتهای SQL به صورت کاربردی و براساس مثالهای دنیای واقعی شرح داده شوند. این دوره آموزشی میتواند برای دانشجویان رشته کامپیوتر و فناوری اطلاعات در همه گرایشها، برنامهنویسان و کارکنان بخش فناوری اطلاعات سازمانها و موسسات مختلف مفید باشد. از جمله سرفصلهای این دوره میتوان به بیان مفاهیم پایه و کاربرد رویههای ذخیره شده، تعریف متغیر در SQL و ارسال پارامتر به رویه ذخیره شده، بیان مفاهیم پایه و کاربرد تریگرها، بیان مفاهیم پایه و کاربرد تراکنشها، بیان مفاهیم پایه در رابطه با مدیریت استثناها، امنیت و رمزگذاری در SQL، پشتیبانگیری اتوماتیک، و بسیاری از موارد دیگر اشاره کرد.
- برای دیدن فیلم آموزش SQL Server – مقدماتی + اینجا کلیک کنید.
فیلم آموزش کار با دستورهای پایگاه داده در SQL Server
طول مدت دوره آموزشی کار با دستورهای پایگاه داده در SQL Server سه ساعت و مدرس آن مهندس سیدرضا هاشمیان است. در این دوره نیز از SQL Server Management Studio برای آموزش کار با دستورات SQL استفاده شده است و استفاده از این دوره پس از مطالعه این مقاله پیشنهاد میشود. برخی از سرفصلها و موضوعاتی که در این دوره آموزشی مطرح شدهاند، شامل آشنایی با کوئری، آشنایی با مفاهیم پایه پایگاه داده، آشنایی با دستورهای مدیریت پایگاه داده، آشنایی با انواع داده در SQL، آشنایی با دستورهای اولیه CRUD، آشنایی دقیق تر با دستورهای فراخوانی اطلاعات، انواع JOIN در SQL و بسیاری از مباحث دیگر است.
- برای دیدن فیلم آموزش کار با دستورهای پایگاه داده در SQL Server + اینجا کلیک کنید.
فیلم آموزش پایگاه داده MySQL
MySQL یکی دیگر از سیستمهای مدیریت پایگاه داده رابطهای به شمار میرود که متنباز و رایگان نیز هست. MySQL متعلق به اوراکل است. این RDBMS در مقایسه با SQL Server نیاز به فضای ذخیرهسازی عملیاتی کمتری دارد. استفاده از MySQL رایگان است. در MySQL میتوان در حین اجرا فایل داده را دستکاری کرد. البته نمیتوان میان SQL Server شرکت مایکروسافت و MySQL شرکت اوراکل یکی را نسبت به دیگری برتر دانست، چرا که در موارد استفاده مختلف هر یک برتریها و کاستیهای مربوط به خود را دارند.
اما در صورت نیاز به استفاده از MySQL در یک پروژه، باید مهارت کافی برای به کارگیری آن وجود داشته باشد. در این راستا، استفاده از دوره آموزش پایگاه داده MySQL پیشنهاد میشود. طول مدت این دوره ده ساعت و ۱۶ دقیقه و مدرس آن مهندس رضا هاشمیان است. از جمله برخی سرفصلهای این دوره آموزشی میتوان به مفاهیم اساسی پایگاه داده، شروع به کار با MySQL، کار با Database و Table، ذخیره و مدیریت دادهها، عملگرها و متغیرها در MySQL، مدیریت داده های جداول و بسیاری از سایر موارد اشاره کرد.
- برای دیدن فیلم آموزش پایگاه داده MySQL + اینجا کلیک کنید.
سلام و سپاس. عالی بود
خیلی عالی بود ممنون تون!
سلام خسته نباشید ، ببخشید بنده یک پروژه کوتاه دارم میشه از طریق ایمیل به بنده کمک کنین ممنون میشم. ضروریه
1- نام اشخاصی را بیابید که هم در نقش اول و هم در نقش دوم فیلم بازی کردن؟
2- نام افرادی را بیابید که بیش از سه باز جایزه بهترین بازیگر نقش اول مرد را به خود اختصاص دادن؟
مثال هم باشه مشکلی نیست ، خودم اسم فیلد و جدول را تغییر میدم ، خیلی ممنون
سلام برای عکس باید چی بنویسم؟
مثلا برای اسم، فامیل و… varchar میگذاشتم.
حالا نمیدونم برایpic چی بذارم
بسیار عالی بود
خدا خیرتون بده. ممنون. بسیار عالی
سلام کسی می دونه چطوره میشه یه کوئری بنویسی بعد از همون دوباره یه کوئری دیگه از همون کوئری بگیری؟
در واقع من می خوام 4 تا سطرِ 4 تا مونده به آخر از جدولمو سلکت کنم نمی دونم چه کار کنم
سلام جهت نمایش دانشجویان درس خاص که جدول دانشجو از جدول دروس مجزاست در فیلد کلریتا چجوری دستور برابر بودن مقادیرشو بدم که دانشجویان یک درس مشابه رو نمایش بده
سلام و وقت بخیر؛
به این منظور باید از امکان Join بهره بگیرید. پیشنهاد میکنیم مطلب «دستور Join و انواع آن در SQL — راهنمای جامع» را مطالعه بفرمایید.
از توجه شما متشکریم.
با دستور Row_Number یا offset-fetch، با هر کدومش می تونید. تو گوگل سرچ کنید برای نحوه استفاده مثال زیاد هست.
این هم یک لینک کمکی :
https://stackoverflow.com/questions/16381803/what-are-the-differences-between-the-older-row-number-and-the-newer-offset-f
خب میشه با order by از آخر به اول مرتب سازی کنی بعد 4تا اولو انتخاب کنی
عالی
خیلی ممنون. توضیحات کوتاه و کامل همراه با کوئری های کوتاه و کامل. خیلی عالی
مهركه بود خسته نباشيد ميگم
ممنون از زحمتتون
آرزوی موفقیت و سلامتی دارم برای شما لطفا مطالب پیچیده تر و کاربردی تر را منتشر فرمائید . با تشکر و سپاس فرآوان
با سلام؛
پیشنهاد میکنم از این مطلب هم بازدید کنید:
آموزش دستورهای SQL – مجموعه مقالات جامع وبلاگ فرادرس
سلام، نمونه کدی را در sql احتیاج دارم که رکوردهای جدول را به صورت بلاکهایی با فاصله زمانی ۴ روز به ۴روز شماره گذاری نماید. یعنی رکوردهایی که از تاریخ مشخص و فاصله ۴ روز هستند شماره یک ۴ روز بعد شماره ۲ و به همین ترتیب بر اساس روز و بلاک های ۴ روزه شماره شوند
اگر بخواهیم جدول را در یک دایرکتوری خاص ذخیره کنیم و سپس اطلاعات را در همین جدول پر کنیم و یا از آن بخوانیم پیام خطا می دهد یعنی جدول را در همان دایرکتوری که میخداهیم ذخیره می کند ولی هنگام پر کردن و یا خواندن از آن در جایی که بصورت دیفالت هست دنبال جدول میگردد. چگونه می توان به کویری گفت در دیرکتوری خاصی بدنبال جدول باشد.
عالی بود ولی کم مثلا @گفته نشد as _ begin _end و از همه مهمتر Exec گفته نشد
با سلام و تشکر از ارسال نظر شما
برای کسب اطلاعات بیشتر پیشنهاد میکنم از این مطلب هم بازدید کنید:
آموزش دستورهای SQL – مجموعه مقالات جامع وبلاگ فرادرس
خیلی ممنون توضیحات کوتاه و مفید بود
خدا خیرتون بده یک مورد از دستورات بالا را بلد نبودم که یاد گرفتم اجرتون با خدا موفق باشید
تشکر عالی بود