آشنایی با دستورات SQL Server
دستورات SQL Server
پایگاه داده درست مثل قفسه کتاب یا کمد غیرفیزیکی عمل میکند و کار آن سروسامان دادن به دادهها است. پایگاه دادهها سیستمهای مدیریت مختلفی دارند که هر کدام برای کاربرد خاصی بهکارمیآید. پرکاربردترین سیستم مدیریت پایگاه داده، RDBMS یا سیستم مدیریت رابطهای پایگاه داده است. بسیاری از سایتها و اپلیکیشنهایی که در حال حاضر از آنها استفاده میکنیم، پشت لایههای ظاهری خود از چندین پایگاه داده برای ثبت اطلاعات کاربران، کالاها و… استفاده میکنند. SQL سرور یک سیستم مدیریت پایگاه داده رابطهای است که توسط مایکروسافت ارائه میشود. هدف این مطلب آشنایی با دستورات SQL Server و یادگیری مبانی آن است.
SQL Server چیست و چه امتیازاتی دارد؟
SQL Server یک سیستم مدیریت رابطهای پایگاه داده (RDBMS) است که توسط مایکروسافت به بازار عرضه میشود. مدیریت رابطهای پایگاه داده اساس طراحی بسیاری از سایتها و اپلیکیشنها را تشکیل داده است و شامل نگهداری دادهها در قالب تعدادی جدول است. مایکروسافت در کنار SQL Server یک پیادهسازی دیگر با نام T-SQL را ارائه داده است تا سازگاری آن با ساختار کدنویسی بیشتر کند. SQL سرور تا سال 2016 به مدت بیش از 20 سال فقط روی محیط ویندوز اجرا میشد. در سال 2016 مایکروسافت تصمیم گرفت آن را برای سیستمعامل لینوکس هم ارائه کند. این سیستم مدیریت پایگاه داده از اکتبر 2016 روی هر دو سیستمعامل محبوب قابل استفاده است.
مهمترین امتیازات دستورات SQL Server عبارتند از:
- دادهها با مدیریت رابطهای نظم و ترتیب بسیار خوبی خواهند داشت و فراخوانی آنها سریعتر و بهتر خواهد بود.
- با استفاده از یک RDBMS برنامهنویس میتواند دادهها را توصیف کند.
- تعریف داده و دستکاری آن در جهت اهداف بسیار ساده است.
- کدهای SQL Server بهصورت ترکیبی با زبانهای دیگر قابل استفاده است.
- در ساخت و حذف جدولها محدودیتی وجود ندارد.
- کار با دادهها از طریق رویهها و توابع SQL Server بسیار سادهتر میشود.
- کار با این زبان نیاز به دانش برنامهنویسی چندانی ندارد.
- کنترل سطح دسترسی تیم در SQL Server بسیار ساده است.
مراحل کاری SQL Server چگونه است؟
شما در کد خود درخواست دریافت، ایجاد، حذف یا ویرایش دادهها را میدهید. هر دستور شما یک Query نام دارد. این Query در ابتدا وارد Query Language Processor شده و از لحاظ نوشتاری تجزیه میشود. در ادامه کد تجزیه شده وارد یک Optimizer میشود تا سرعت بالاتری در اجرا داشته باشد. مرحله بعدی رسیدن به موتور DBMS است. در موتور DBMS مدیر فایل و مدیر تراکنش درخواست را بررسی کرده و تغییر مورد نظر کدنویس را به یک دستور نهایی تبدیل میکنند. در نهایت این دستور به پایگاهداده فیزیکی ارسال شده و اجرا میشود.
مفاهیم اساسی در SQL Server
همانطور که گفتیم SQL Server یک نوع سیستم مدیریت اطلاعات است که از روش رابطهای استفاده میکند. روش رابطهای یعنی نگهداری دادهها در جداولی که سطرهای آن را Record ها و ستونهای آن را ویژگیها تشکیل میدهند. در ادامه به تعریف این مفاهیم میپردازیم.
جدول: جدول در SQL مجموعهای از دادههای مرتبط است که در کنار یکدیگر قرار گرفتهاند. برای مثال نام، سن و حقوق معلمان یک مدرسه یا نام، نام پدر و معدل دانشآموزان یک مدرسه هر کدام تشکیل یک جدول را میدهند. در جدول هر سطر شامل یک Record است. اطلاعات جمع شده از هر دانشآموز، مشتری، معلم یا… تحت عنوان Record شناخته میشود. ستونها هم ویژگیهای اندازهگیریشده هستند. به جدول زیر توجه کنید:
همانطور که میبینید در این جدول هر مشتری با یک شماره، یک نام، سن، آدرس و حقوق مشخص شده است. هر سطر یک Record بوده و هر ستون یک Field است. اینها مفاهیم پایهای SQL Server را تشکیل میدهند.
آشنایی اولیه با دستورات SQL Server
دستورات استاندارد SQL به سه دسته تقسیم میشوند:
- دسته اول DDL یا دستورات مربوط به تعریف داده (Data Definition Language)
شماره | دستور و عملکرد |
---|---|
1 | CREATE
ساخت یک جدول جدید، یک View جدید از یک جدول یا یک شی جدید در پایگاه داده |
2 | ALTER
ویرایش یکی از اشیاء موجود در پایگاه داده |
3 | DROP
پاک کردن تمام یک جدول، یک View از یک جدول یا دیگر اشیاء پایگاه داده |
و دسته دوم DML یا دستورات کار با داده (Data Manipulation Language):
شماره | دستور و عملکرد |
---|---|
1 | SELECT
یکی از record ها را (مثلا اطلاعات یک مشتری) از یک یا چند جدول بازیابی میکند |
2 | INSERT
یک record جدید میسازد |
3 | UPDATE
یک record را بهروزرسانی میکند |
4 | DELETE
یک record را پاک میکند |
دسته آخر DCL یا دستورات کنترلی (Data Control Language)
شماره | دستور و عملکرد |
---|---|
1 | GRANT
دادن دسترسی به کاربر برای یک داده |
2 | REVOKE
گرفتن دسترسی به داده از یک کاربر |
دستور Where در SQL Server
دستور Where یکی از مهمترین و کاربردیترین دستورات SQL سرور است که یک دستور شرطی بهحسابمیآید. با استفاده از این دستور میتوان برای مثال «نام معلمان بالای 30 سال» یا «دانشجویان مشروط شده» را از جداول مربوطه استخراج کرد. اما چگونه؟ به مثال زیر توجه کنید:
SELECT * FROM Students
WHERE avg<12;
در اینجا از جدول اطلاعات دانشجویان، آنهایی را انتخاب میکنیم که معدل زیر 12 داشته باشند. بعد از Where همیشه یک عملگر میآید. عملگرهای دستور Where عبارتند از:
عملگر | عملکرد |
---|---|
= | برابری |
> | بزرگتر از |
< | کوچکتر از |
>= | بزگتر مساوی |
<= | کوچکتر مساوی |
<> | نامساوی (ممکن است به صورت != در بعضی ورژنهای SQL Server استفاده شود) |
BETWEEN | وجود یک عدد بین دو عدد دیگر |
LIKE | جستجو برای یک الگو |
IN | برای مشخص کردن مقادیر ممکن مختلف برای یک ستون |
عملگرهای OR، AND و NOT
Where علاوه بر عملگرهای بالا میتواند با این سه هم ترکیب شود. کاربرد این سه عملگر برای ترکیب چند عملگر یا نقیض کردن یکی از آنها است. برای مثال فرض کنید میخواهیم اسامی دانشآموزان با معدل بالا و انضباط پایین را از جدول استخراج کنیم. در این شرایط عملگر AND دو عملگر کمتر و بیشتر را ترکیب میکند. به مثالهای زیر برای فهم بهتر دقت کنید
SELECT * FROM Customers
WHERE Country='Iran' AND City='Tehran';
در اینجا اسامی مشتریانی که ساکن ایران و شهر تهران هستند درخواست میشود.
SELECT * FROM Customers
WHERE City='Berlin' OR City='München';
در اینجا اسامی مشتریانی که ساکن برلین یا مونیخ هستند از پایگاه داده درخواست میشود.
SELECT * FROM Customers
WHERE NOT Country='Germany';
در اینجا هم اسامی همه افراد بهحز ساکنان آلمان از پایگاه داده مشتریان درخواست داده میشود.
ترتیب بخشیدن به یک جدول با توجه به یک ستون
فرض کنید میخواهید لیست اسامی مشتریان را به ترتیب میزان خرید آنها مرتب کنید. به این شکل که مهمترین خریداران در صدر لیست و مشتریان با کمترین خرید در پایین لیست باشند. برای این کار لازم است کل جدول را بر اساس ستون میزان خرید مرتب نمایید.
SELECT * FROM Customers
ORDER BY Cash DESC;
کلیدواژه DESC که در آخر کد میبینید مخفف DESCENDING یا سیر نزولی است. اگر این قسمت را خالی بگذارید، SQL بهطورخودکار دادهها را بهصورت صعودی (ASCENDING) مرتب میکند. برای صعودی مرتب کردن دادهها همچنین میتوان از کلیدواژه ASC استفاده کرد.
برای مرتب کردن جدول میتوان از ترکیب دادههای دو یا چند ستون استفاده کرد. مثلا اگر میزان خرید دو مشتری برابر بود، برای ترتیب دادن به آنها به سراع ستون نام و ترتیب الفبایی برویم یا به تاریخ خرید مراجعه کنیم (کسی که اخیرا خرید کرده بالاتر قرار بگیرد).
SELECT * FROM Customers
ORDER BY Cash, CustomerName;
علاوهبراین میتوانیم ترکیب دو ستون را مورد استفاده قرار دهیم در حالی که یکی صعودی و دیگری نزولی مرتب شده است.
SELECT * FROM Customers
ORDER BY Country ASC, CustomerName DESC;
دستور INSERT INTO
زمانی که بخواهیم یک Record جدید را به جدول اضافه کنیم از INSERT INTO استفاده میکنیم. در مثال زیر اطلاعات یک مشتری جدید به جدول Customers افزوده میشود.
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');
همچنین میتوانیم فقط به چند ستون مشخص داده اضافه کنیم:
INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');
دستور UPDATE
با استفاده از این دستور اطلاعات یک جدول را بهروز میکنیم.
UPDATE Customers
SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
WHERE CustomerID = 1;
در این مثال در جدول اطلاعات مشتریان، مشتری با کد شماره یک پیدا شده و ستونهای نام و شهر او بهروز میشوند.
کلام آخر در مورد دستورات SQL Server
SQL Server یکی از محصولات قدیمی مایکروسافت است که با وجود گذشت 20 سال از عرضه همچنان محبوبیت و کاربرد ویژه خود را دارد. این محصول یک سیستم مدیریت پایگاه داده بهصورت رابطهای بوده و از سال 2016 روی هر دو سیستمعامل ویندوز و لینوکس قابل استفاده است. SQL زبانی ساده و سریع است که خیلی ساده با زبانهای دیگر ترکیب میشود. در حال حاضر بسیاری از سایتها و برنامههای کامپیوتری یا موبایلی از SQL برای نگهداری و کار با دادهها استفاده میکنند. با استفاده از دستورات SQL میتوان اطلاعات را در قالب record ها و field ها ذخیره کرده و در ادامه آنها را ویرایش یا حذف کرد. کوشش مقاله دستورات SQL Server بر آشنا کردن شما با مفاهیم اساسی و دستورات SQL Server بود. برای یادگیری عمیقتر و بیشتر میتوانید به دوره آموزش SQL Server مکتبخونه مراجعه کنید.