یکی از اصلیترین موضوعاتی که در SQL باید بررسی شود بحث پرسوجو و یا همان Query است، هر پرسوجو میتواند شامل چندین دستور باشد که در زیر آنها را بررسی میکنیم.
۳-۱-۵-۱ بررسی دستور SELECT
برای اینکه در SQL اطلاعات را از جدولهای بازیابی به قولی فِچ کنیم از دستور SELECT استفاده میکنیم، در زیر نمونهای از این دستور را مشاهده میکنید:
SELECT column1, column2, ...
FROM table_name;
در دستور بالا، دستور SELECT را با حروف بزرگ مینویسیم و بعد از آن باید ستون (column1, column2) مربوط به جدولی را که میخواهید دادهها را از آن استخراج کنید مینویسید، در سطر دوم با دستور FROM، اسم جدول را بهجای table_name مینویسید.
برای اینکه این دستورات را در سرور SQL تست بگیریم باید بهمانند شکل ۱۶-۳ وارد Management شوید و بر روی دیتابیس مورد نظر خود کلیک راست کنید و گزینهی New Query را انتخاب کنید.
برای شروع کار به جدول ۵-۳ توجه کنید، میخواهیم با استفاده از این جدول عملیات مختلف خود را انجام دهیم و دادهها را فراخوانی کنیم.
جدول ۵-۳ Customers
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
۱ | Maria | Maria Anders | Obere Str. 57 | Berlin | ۱۲۲۰۹ | Germany |
۲ | Ana | Ana Trujillo | Avda. de la Constitución 2222 | México | ۰۵۰۲۱ | Mexico |
۳ | Antonio | Antonio Moreno | Mataderos 2312 | México | ۰۵۰۲۳ | Mexico |
۴ | Thomas | Thomas Hardy | ۱۲۰ Hanover Sq. | London | WA1 1DP | UK |
۵ | Christina | Christina | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
برای ایجاد این جدول از طریق SSMS یک جدول ایجاد کنید و آن را با اسم Customers ذخیره کنید و بعد از ایجاد، اطلاعات جدول ۵-۳ را درون آن وارد کنید تا در ادامه بتوانید از آنها استفاده کنید، این موضوع را در شکل ۱۷-۳ و ۱۸-۳ مشاهده میکنید.
شکل ۱۷-۳ ویرایش جدول Customers
شکل ۱۸-۳ ورود اطلاعات در جدول Customers
مثال اول – انتخاب ستون
SELECT [Customer Name] , City FROM Customers
در دستور بالا، ستون Customer Name و City از جدول Customers انتخاب شده است، توجه داشته باشید علامت [] را بهتر است زمانی قرار دهید که یک جملهی دو حرفی یا بیشتر دارید، مثلاً در مثال بالا اگر city بود، نیاز به علامت [] نبود، اما چون Customer Name از دو قسمت با فاصله تعریف شده است باید حتماً علامت [] را قرار دهید.
بهمانند شکل ۱۹-۳ دستور مورد نظر را بنویسید و برای دریافت خروجی باید کلید F5 را فشار دهید، این دستور دو ستون Customer Name و City را در خروجی نمایش میدهد.
شکل ۱۹-۳ خروجی دستور SELECT
مثال دوم – نمایش تمام اطلاعات جدول
برای اینکه بتوانید همهی اطلاعات جدول مورد نظر خود را مشاهده کنید باید از دستور زیر استفاده کنید:
SELECT * FROM Customers
همانطور که در شکل ۲۰-۳ مشاهده میکنید، تمام اطلاعات جدول در خروجی نمایشداده شده است.
شکل ۲۰-۳ نمایش جدول Customers
اگر بخواهیم در یک جدول، تنها اطلاعات متمایز شده و نه تکراری را نمایش دهیم باید از دستور زیر استفاده کنیم:
SELECT DISTINCT column1, column2, ...
FROM table_name;
در دستور بالا بهمانند قبل باید نام ستونها را جلوی دستور SELECT بنویسید، اما تنها باید بعد از دستور SELECT از DISTINCT استفاده کنید تا اطلاعات شبیه به هم را تنها یکبار در خروجی نمایش دهد.
مثال سوم – نمایش اطلاعات شهرهای مشابه
دستورات زیر را اجرا کنید:
SELECT Country FROM Customers;
SELECT DISTINCT Country FROM Customers;
خروجی دستورات بالا را در شکل ۲۱-۳ مشاهده میکنید، دستور اول تمام شهرها را به شما نمایش داده است، اما در دستور دوم تنها یکی از شهرهای Mexico را نمایش داده است و این مورد میتواند در نمایش بهتر اطلاعات کمک کند.
شکل ۲۱-۳ نمایش جدول
۳-۱-۵-۲ بررسی دستور Insert
این دستور برای واردکردن اطلاعات در جدول کاربرد دارد و میتوانید با استفاده از این دستور، اطلاعات خود را وارد جدول کنید.
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...) ;
در دستور بالا، ابتدا باید INSERT INTO را بنویسیم و بعد از آن، نام جدول را بهجای table_name بنویسیم، سپس باید در پرانتز مورد نظر نام ستونهایی که قرار است اطلاعات در آن وارد بشود را بنویسیم.
روش دیگری هم برای ورود اطلاعات بهصورت زیر وجود دارد:
INSERT INTO table_name
VALUES (value1, value2, value3, ...) ;
در دستور بالا، ورود اطلاعات به ترتیب ستونهای موجود انجام میشود.
مثال اول – ورود اطلاعات با استفاده از نام ستون
INSERT INTO Customers (CustomerID,"Customer Name", "Contact Name", Address, City, PostalCode, Country)
VALUES ('۶','Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway') ;
SELECT * FROM Customers;
در دستور بالا، ابتدا نام ستونها ذکر شده است و بعد از آن، اطلاعاتی که قرار است وارد جدول شود را در قسمت VALUES وارد میکنیم.
به این نکته توجه کنید که ستونهایی که دوقسمتی هستند، حتماً باید بین دو تا علامت ” ” قرار بگیرند تا در خروجی با خطا مواجه نشوید.
در آخر، دستور SELECT * FROM Customers; را برای نمایش اطلاعات جدول وارد کردیم که در شکل ۳-۲۲ خروجی نهایی را مشاهده میکنید که یک سطر جدید به جدول اضافه شده است.
شکل ۲۲-۳ ورود اطلاعات در جدول
مثال دوم – ورود اطلاعات به ترتیب ستون
دستور زیر را اجرا کنید:
INSERT INTO Customers
VALUES ('۷','Farshid', 'Babajani', 'Seied Khandan', 'Tehran', '8843', 'Iran') ;
SELECT * FROM Customers;
در دستور بالا، اطلاعات ورودی به ترتیب ستونهای جدول قرار میگیرند و باید در ورود اطلاعات دقت کنید، اگر به شکل ۲۳-۳ توجه کنید خروجی مشخص شده است.
شکل ۲۳-۳ ورود اطلاعات
۳-۱-۵-۳ بررسی دستور Update
با استفاده از این دستور میتوانید اطلاعات موجود در هر ستون را تغییر دهید؛ برای این کار باید از دستور زیر استفاده کنید:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
در دستور بالا، ابتدا باید نام جدول را بعد از دستور UPDATE وارد کنید. در قسمت SET باید مشخص کنید که چه گزینههایی باید تغییر کند و در آخر نیز باید از دستور شرطی WHERE استفاده کنید تا مشخص شود که به کدام سطر اشاره میکنید.
مثال اول – آپدیت کردن اطلاعات جدول
UPDATE Customers
SET "Contact Name" = 'Alfred Schmidt', City= 'Frankfurt'
WHERE CustomerID = 1;
SELECT * FROM Customers
WHERE CustomerID=1;
در دستور بالا، جدول Customers انتخاب میشود و در قسمت SET ستونها به همراه مقدار آن مشخص میشود و در قسمت شرطی WHERE باید شرط مورد نظر را وارد کنید که در اینجا از شمارهی CustomerID استفاده کرده است؛ توجه داشته باشید دو خط آخر برای نمایش سطر اول جدول به کار برده شده است.
اگر به شکل ۲۴-۳ توجه کنید، سطر مورد نظر آپدیت شده است و در خروجی به نمایش گذاشته شده است.
شکل ۲۴-۳ آپدیت اطلاعات
اگر دو خط آخر دستور بالا را وارد نکنید، خروجی مانند شکل ۲۵-۳ خواهد شد.
شکل ۲۵-۳ آپدیت اطلاعات
کارهای زیادی میتوان با دستور UPDATE انجام داد، مثلاً میتوانید با دستور زیر نام ContactName مربوط به شهرهای Mexico را با استفاده از شرط تغییر دهید:
UPDATE Customers
SET "Contact Name"='Juan'
WHERE Country='Mexico';
نکتهی مهم: اگر چنانچه شرط WHERE را در دستور UPDATE قرار ندهید، تمام ستونهای انتخابشده آپدیت خواهد شد؛ در دستور زیر تمام ContactName ها به Juan تغییر خواهند کرد.
UPDATE Customers
SET ContactName='Juan';
۳-۱-۵-۴ بررسی دستور DELETE
این دستور همانطور که از نامش پیداست، برای حذف اطلاعات جدولها کاربرد دارد که شکل کلی آن بهصورت زیر است:
DELETE FROM table_name WHERE condition;
در دستور بالا بهجای table_name باید نام جدول و بهجای condition، شرط مورد نظر خود را وارد کنید.
مثال اول – حذف اطلاعات جدول
DELETE FROM Customers WHERE "Customer Name"='Farshid';
SELECT * FROM Customers
در دستور بالا، جدول Customers انتخاب شده است و در شرط آن اعلام شده است که CustomersName مشخصشده باید حذف شود که در شکل ۲۶-۳ قبل از اینکه دستور مورد نظر را اجرا کنید، نام Farshid را در قسمت ۷ مشاهده میکنید، اما بعد از اجرای دستور در شکل ۲۷-۳ سطر مورد نظر حذف شد.
شکل ۲۶-۳ حذف اطلاعات
شکل ۲۷-۳ حذف اطلاعات
برای حذف اطلاعات کامل جدول باید از دستور زیر استفاده کنید:
DELETE FROM table_name;
در دستور بالا باید بهجای table_name، نام جدول خود را وارد کنید.