آذرسیس

20 دستور پرکاربرد SQL - آذرسیس
5/5 - (1 امتیاز)

هر برنامه نویس یا مدیر بانک اطلاعاتی باید با دستورات کوئری آشنا باشد. در زبان انگلیسی Query به معنی درخواست اطلاعات است. که این دستور ها به طور خلاصه SQL هم نامیده می شوند.

اگرچه دستورات SQL ممکن است در موارد خاص کاربرد داشته باشند، ولی برخی از دستورات وجود دارد که کاربرد بیشتری نسبت به بقیه دارند. ما 20 دستور پرکاربرد SQL برای شما در این آموزش همراه با توضیحات آورده ایم.

SQL چیست؟

SQL مخفف کلمه Structured Query Language است، که در سال 1987 استاندارد سازمان بین المللی استاندارد (ISO) شد. همچنین یکی از ساده ترین زبان های برنامه نویسی برای درک کاربر است، زیرا محدود به زبان برنامه نویسی خاصی نیست. اما در عین سادگی زبان پیچیده ای نیز می باشد.

داده ها اطلاعات خامی هستند، که از منابع موجود در قالب های متفاوتی مانند عدد، متن، صوت و عکس جمع آوری می شوند. دستورات SQL به شما این امکان را می دهد که به پایگاه داده ها دسترسی داشته باشید و آنها را دستکاری کنید.

20 دستور پرکاربرد SQL

20 دستور پرکاربرد زبان SQL

دستورات زبان SQL بسیار زیاد است ولی در این قسمت 20 دستور پرکاربرد را به ترتیب برای راحتی کار شما عزیزان آورده ایم:

1- Alias

از دستور Alias می توان برای تغییر نام موقت یک جدول استفاده کرد. با این حال “نام مستعار” جدیدی که یک جدول به آن اختصاص داده می شود، فقط در تراکنشی که اکنون اجرا می شود وجود خواهد داشت.

select A.age from people as A;

برای نام مستعار می توان هر کلمه ای را استفاده کرد، ولی بهتر است از حروف الفبا استفاده شود. این دستور به شما در کوتاه کردن نام جداول کمک خواهد کرد. این نام مستعار بلافاصله پس از اعلام به جدول اختصاص داده می شود. مثل انجام این کار است:

SELECT people.age FROM people;

طراحی های حرفه ای اغلب نام های طولانی دارند، که حتمأ باعث سردرگمی خواهد بود. در اینجا یک مثال با دو جدول آورده شده است:

SELECT staff.age, staff.name, customers.age, customers.name FROM staff, customers;

در اینجا همان پرس و جو با نام مستعار وجود دارد:

SELECT A.age, A.name, B.age, B.name FROM staff A, customers B;

همچنین می توانید با استفاده از دستور AS نام ستونی را با نام مستعار تغییر دهید:

SELECT age AS person_age FROM people;

وقتی این کوئری اجرا می شود، اکنون به جای سن، ستون person_age نامیده می شود.

2- Alter Table

شما به عنوان یک کاربر برای تغییر ساختار جدول به دستور Alter Table نیاز دارید. ولی باید توجه داشت که اگر داده های جدول با یکدیگر تداخل داشته باشند، دستور اجازه تغییر ساختار جدول را نخواهد داد. درحالیکه این دستور از نظر کاربران بسیار مفید به شمار می آید، مورد ذکر شده یکی از محدودیت های Alter Table است.

این مثال ستونی به نام height of type integer را به جدول افراد اضافه می کند:

ALTER TABLE people ADD height integer;

3- And

And دستوری است که کاربر می تواند با آن دو شرط را ترکیب کند، در واقع یعنی به همان صورتی که در زبان معمولی خود استفاده می کنیم. درک این نکته ضروری است که هر دو شرط استفاده شده، باید برای ردیف هایی که ترکیب شده اند صادق باشند.

4- Average

همان طور که از معنی کلمه Average پیداست، این دستور میانگین یک ستون را به آسانی حساب خواهد کرد. دستور Average  نقش مهمی برای کاربرانی دارد که می خواهند به سرعت داده ها را تجزیه و تحلیل کنند و در عین حال خطای مربوط به انجام محاسبات دستی را کاهش دهند.

SELECT AVG(Price) FROM Products;

5- Between

Between به شما این امکان را می دهد که ردیف ها را در محدوده مشخصی از زیرمجموعه قرار دهید، که باعث می شود جملات WHERE ساده تر و خواناتر باشند. همچنین کمک می کند تا اطلاعات را بین یک محدوده مشخص از داده ها فیلتر کنند. این دستور به ویژه در یافتن سریع انواع خاصی از داده ها مفید است.

برای مثال در دستور زیر تمامی فیلم‌هایی که بین سال‌های 2020 تا 2022 منتشر شده‌اند را انتخاب می‌کنیم:

SELECT *
FROM films
WHERE date BETWEEN 2020 AND 2022;

6- Create Table

یک دستور ساده اما سودمند به نام “ایجاد جدول” به کاربران اجازه می دهد، تا جداول را در پایگاه داده ایجاد کنند. بسیار دستورات دیگر در SQL بر اساس این دستور وجود دارد. دستور زیر یک جدول با یک کلید اصلی به نام ID ایجاد می کند.

CREATE TABLE table_name (
PRIMARY KEY(column_name)
);

7- Delete

احتمالأ پرکاربردترین دستور و در عین حال آشناترین Delete باشد. این دستور اغلب مفید است، اما اگر کاربران مراقب نباشند می تواند منجر به عواقب منفی شود. استفاده از آن بسیار آسان است:

DELETE FROM people;

باید از جایی برای محدود کردن آن به تعداد ردیف‌های کمی معقول‌تر استفاده کنید. در حالت ایده‌آل یک ردیف:

DELETE FROM people WHERE name = 'Joe';

8- Select

این دستور تقریبأ در همه دستورهای دیگر کاربرد دارد، بنابراین یادگیری آن بسیار ضروری است. در مثال زیر ستون یا ویژگی “Student_ID” را از جدول “STUDENT” استخراج می کنیم.

SELECT Student_ID FROM STUDENT;

اگر می خواهید تمام ویژگی ها از یک جدول خاص را نمایش دهید، این SQL مناسب برای استفاده است:

SELECT * FROM STUDENT;

9- Update

این دستور به اصطلاح فهرست محصولات را به روز رسانی می کند. جداول پایه جداول واقعی هستند و همه رویه‌های پیاده‌سازی شده روی view جدول پایه را تغییر می‌دهند.

کاربران می توانند از نماها درست همانند جداول واقعی یا پایه استفاده کنند. از این نظر کاربران می توانند دستورات مختلف DDL، DML مانند به روز رسانی، درج و حذف را اعمال کنند.

Create or replace view [Product List] AS
SELECT ProductID, ProductName, Category
FROM Products
WHERE Discontinued = No;

10- Droping Table

Drop table شبیه دستور “حذف” است، اما تک تک رکوردهای یک پایگاه داده و همچنین جدول را حذف می کند. کاربر باید مطمئن شود که از این دستور کم استفاده می کند زیرا منجر به از دست رفتن حجم قابل توجهی از داده ها می شود. SQL زیر نمایه ای به نام “V1” را حذف می کند.

DROP VIEW V1;

11- Insert

دستور Insert کاربردهای قدرتمندی دارد و می توان از آن برای درج بخش هایی از پایگاه داده در مناطق دیگر استفاده کرد. با این حال محدودیتی برای «درج» دارد. به عنوان مثال کاربر باید مطمئن شود که از محدودیت های جدول لازم پیروی می کند، در غیر این صورت دستور به درستی کار نمی کند.

12- Join

دستور Join چند نوع مختلف دارد که برای پیوستن به داده های مرتبط، که در چندین جدول ذخیره می شوند استفاده می شود. در واقع با این دستور چندین جدول به یکدیگر وصل می شوند.

انواع SQL در دستور Join:

  • inner join: این دستور ردیف هایی را انتخاب می کند که دارای مقادیر منطبق در هر دو جدول هستند. برای مثال در زیر جداول فیلم‌ها و موسیقی‌های متن منتشر شده در یک ستون تاریخ مشترک در همان سال‌ را برمی‌گرداند.
SELECT *
FROM films
INNER JOIN soundtracks
ON films.date = soundtracks.date
LIMIT 10;
  • left/outer join: تمام رکوردهای اصلی را در جدول سمت چپ نگه می دارد، و مقادیر از دست رفته هر ستونی از جدول سمت راست را که با فیلد پیوسته مطابقت پیدا نکرده است، برمی گرداند.
SELECT *
FROM films
LEFT JOIN soundtracks
ON films.date = soundtracks.date
LIMIT 10;
  • right/outer join: این دستور دقیقأ برعکس left/outer join عمل خواهد کرد.
SELECT *
FROM films
LEFT JOIN soundtracks
ON films.date = soundtracks.date
LIMIT 10;

13- Output Data Using a Constraint

این دستور به معنی خروجی داده با استفاده از یک محدودیت است. این SQL ویژگی های مشخص شده را از جدول با محدودیت Employee ID =0000 بازیابی می کند.

SELECT EMP_ID, NAME FROM EMPLOYEE_TBL WHERE EMP_ID = '0000';

14- Count

دستور Count تعداد کل مشتریان با شمارش شناسه هر مشتری را نمایش می دهد. علاوه بر این، نتایج را بر اساس کشور هر مشتری گروه بندی می کند. در شمارش اگر کاربران DISTINCT را تعریف کنند، query_partition_clause را نیز تعریف می کنند.

این بند بخشی از بند تحلیلی است و بندهای دیگر مانند order_by_clause و windowing_clause مجاز نیستند.

SELECT COUNT(colname) FROM table name.
SELECT COUNT(CustomerID), country FROM GROUP CUSTOMERS BY country.

15- Listing All Views

این دستور برای فهرست کردن همه نماها استفاده می شود، در واقع همه نماهای موجود در طرح را برای کاربر فهرست می کند.

SELECT * FROM My_Schema.views;

16- Internal Tables

جداول داخلی به عنوان محصول جانبی یک اقدام کاربر تشکیل می شوند و معمولاً قابل دسترسی و دستکاری نیستند. با این حال، ابرداده جداول داخلی را می توان با استفاده از پرس و جو زیر مشاهده کرد.

SELECT * FROM Sys.Objects WHERE Type=’it’

17- Union

دو برابر کردن قدرت نتایج، یا به عبارتی ترکیب دو SQL به طور طبیعی با کلمه کلیدی UNION در یکی دقیقأ کاری است که این دستور انجام خواهد داد.

فرض کنید می‌خواهیم با ترکیب Customer_name و تلفن مشتریان با فهرستی از سفارش‌های اخیر آن مشتری جدول جدیدی ایجاد کنیم، تا بتوانیم به دنبال الگوها باشیم و شاید خریدهای آینده را پیشنهاد کنیم. در اینجا یک راه سریع برای انجام این کار وجود دارد:

SELECT phone FROM Customers
UNION SELECT item FROM Orders

18- Null

این جمله که تهی به معنای صفر نیست شاید کمی برای ما عجیب به نظر بیاید. Null اصطلاحی برای توصیف مقداری است که وجود ندارد. باید بدانیم که مقدار NULL از صفر متمایز است.

در مواردی که مقادیر Null در یک فیلد مجاز است، محاسبات بر روی آن مقادیر نتایج Null را نیز ایجاد می کند. با استفاده از عملگر IFNull می توان از این امر جلوگیری کرد.

در مثال بعدی، زمانی که محاسبه با فیلد با مقدار Null مواجه می‌شود، در مقدار صفر، مقدار Null بازگردانی می‌شود:

SELECT Item, Price *
(QtyInStock + IFNULL(QtyOnOrder, 0))
FROM Orders

19- Where

از عبارت Where برای فیلتر کردن رکوردها استفاده می شود. ولی فقط برای استخراج رکوردهایی استفاده می شود که یک شرط مشخص را برآورده می کنند.

SELECT column1, column2, ...
FROM table_name
WHERE condition;

20- Having

مشکل بند Where این بود که نمی توانست روی توابع انبوه کاری کند، که این مشکل با استفاده از عبارت Having حل شد. به عنوان مثال، دستور بعدی لیستی از مشتریان را بر اساس منطقه ای که حداقل یک مشتری در هر منطقه وجود دارد را نشان می دهد:

SELECT COUNT(ID), Region
FROM Customers
GROUP BY Region
HAVINGCOUNT(ID) > 0;

آذرسیس مفتخر است با ارائه سرور مجازی و سرور اختصاصی با کیفیت بالا، بستری امن برای کسب و کارهای شما ایجاد کند.

نتیجه گیری

همان طور که ذکر شد دستورات SQL یک زبان استاندارد هستند، ولی باید دانست که هر زبانی لهجه ها و گوییش های بسیاری هم دارد. اما دلیل بر تفاوت منظور آن زبان نخواهد بود.

در این آموزش سعی بر این بود تا 20 دستور پرکاربرد، بر اساس جدیدترین دسته بندی های دستورات SQL در سال 2022 برای شما کاربران گرامی آورده شود. امیدواریم شما را در مقاله های بعدی آذرسیس ببینیم. لطفاً نظرات خود را با ما در قسمت زیر با ما در میان بگذارید.

 

چقدر زمان برای یادگیری SQL لازم است؟

اینکه چقدر سریع به تسلط می رسید به روش یادگیری شما بستگی دارد. اما چون SQL یک زبان نسبتا ساده ای است، می توانید انتظار داشته باشند که در عرض دو تا سه هفته با اصول اولیه آشنا شوید.
ولی اگر قصد دارید از مهارت های SQL در محل کار استفاده کنید، احتمالاً به سطح بالاتری از تسلط نیاز دارید.

دستورات SQL در کدام دیتابیس ها اجرا می شود؟

MYSQL/ORACLE/SQL SERVERR

Share this Post

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *