آموزشگاه تحلیل داده فعالیت رسمی خود را از سال 1380 در قالب آموزشگاه تخصصی نرم افزار آغاز نموده. این موسسه از همان ابتدای تأسیس با بهره مندی از استاید حرفه ای رشته های نرم افزار و بانک های اطلاعاتی ، فعالیت تخصصی خود را در زمینه آموزش برنامه نویسی و بانک های اطلاعاتی آغاز نمود و پس از گذشت اندک زمانی توانست در زمینه نرم افزار و شبکه بعنوان یکی از حرفه ای ترین موسسات ایران ظاهر شود. با توجه به اینکه مدیریت آموزشگاه شخصاً در رشته نرم افزار تحصیل کرده و سابقه طولانی در تحلیل و طراحی و پیاده سازی نرم افزار و بانک های اطلاعاتی دارند ، خط مشی کلی موسسه بر مبنای آموزش پایه ای ، کاربردی ، عملی و تخصصی نرم افزار بنا شده است.
آدرس : خیابان شریعتی بالاتر از ملک جنب بانک صادرات طبقه دوم واحد 7 همراه: 09123840871 تلفن: 88146323 - 88146330
در این مقاله از سری مقاله های آموزش SQL Server به آموزش انواع join می پردازیم :
عملگر UNION نتیجه دو یا چند دستور SELECT را با یکدیگر ترکیب می کند.
عملگر UNION برای ترکیب نتایج دو یا چند دستور SELECT استفاده می شود.
توجه داشته باشید که هر دستور SELECT در عملگر UNION باید تعداد ستونهای یکسانی را برگردانند. همچنین ستونها باید Data Type یکسانی داشته باشند. علاوه بر این ستونها در هر دستور SELECT باید به یک صورت مرتب شده باشند.
فرم عملگر UNION
SELECT column_name(s) FROM table1
نکته:
عملگر UNION تنها داده هایی را به صورت پیش فرض انتخاب می کند که از یکدیگر متمایز باشند. برای اینکه داده های تکراری را هم بیاوریم از کلید واژه ALL به همراه UNION استفاده کنید.
فرم عملگر UNION ALL
SELECT column_name(s) FROM table1
نکته: نام ستون ها در جدول نتایج معمولا برابر نام ستونها در دستور SELECT اول در عملگر UNION می باشد.
نحوه استفاده از کلید واژه UNION در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد.
جدول زیر از میان جدول "Customers" انتخاب شده است:
آنچه در زیر می بینید گزیده ای است از جدول "Suppliers":
مثال استفاده از کلید واژه UNION
عبارت SQL زیر نام تمام شهر های مختلف را (تنها از بین مقادیر مشخص) از ستون "City" و از میان جداول Customers و Suppliers انتخاب می کند:
SELECT City FROM Customers
SELECT City FROM Suppliers
ORDER BY City;
نکته:
عملگر UNION نمی تواند برای لیست کردن تمام شهر های دو جدول مورد استفاده قرار گیرد. اگر تعدادی از مشتریان و عرضه کنندگانAnchor دارای نام شهر یکسانی باشند، نام آن شهر تنها یکبار در لیست قرار
می گیرد. UNION تنها مقادیر غیر تکراری را انتخاب می کند. برای انتخاب مقادیر تکراری از UNION ALL استفاده کنید.
مثال استفاده از عملگر UNION ALL
آموزش SQL Server : عبارت SQL زیر از عملگر UNION ALL برای انتخاب تمام (حتی مقادیر تکراری) شهر ها از جداول Customers و Suppliers استفاده می کند:
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
مثال استفاده از عملگر UNION ALL همراه با دستور WHERE
عبارت SQL زیر از عملگر UNION ALL برای انتخاب تمام (حتی مقادیر تکراری) شهر های آلمانAnchor از جداول Customers و Suppliers استفاده می کند:
عملگر BETWEEN برای انتخاب مقادیر بین یک محدوده استفاده می شود. عملگر BETWEEN برای انتخاب مقادیر بین یک محدوده استفاده می شود. مقدارها می توانند اعداد، متن و یا تاریخ باشند.
فرم عملگر BETWEEN
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
نحوه استفاده از عملگر BETWEEN در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "ProductsAnchor" انتخاب شده است:
مقدار SQL زیر تمام سفارشاتی را که در بین تاریخ های "04-July-1996" و "09-July-1996" انجام شده است انتخاب می کند:
SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;
توجه داشته باشید که عملگر BETWEEN در پایگاه های داده مختلف نتایج گوناگونی خواهد داشت. در بعضی از پایگاه داده ها عملگر BETWEEN فیلدهای بین دو مقدار را بجز مقادیر ابتدا و انتهای محدوده را انتخاب می کند. در بعضی دیگر از پایگاه داده ها عملگر BETWEEN فیلدهای بین دو مقدار رابه همراه مقادیر ابتدا و انتهای محدوده را انتخاب می کند. در بعضی دیگر از پایگاه داده ها عملگر BETWEEN فیلدهای بین دو مقدار رابه همراه مقدار ابتدایی و بدون مقدار انتهایی محدوده را انتخاب می کند.
بنابراین: پایگاه داده خود را کنترل کنید که چگونه با عملگر BETWEEN رفتار می کند!
دستور INSERT INTO برای وارد کردن record جدید به جدول استفاده می شود .
فرم دستور INSERT INTO :
می توان دستور INSERT INTO را به دو صورت نوشت:
در فرم اول نام ستونهایی که اطلاعات در آن درج خواهد شد مشخص نمی گردد و تنها مقادیر مشخص می شوند.
INSERT INTO table_name
VALUES (value1,value2,value3,...);
در فرم دوم هم نام ستون و هم مقادیری که در آن درج خواهد شد مشخص می گردد.
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
نحوه استفاده از INSERT INTO در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد.
جدول زیر از میان جدول "Customers" انتخاب شده است:
نحوه استفاده از INSERT INTO در پایگاه داده
مثال استفاده از دستور INSERT INTO
فرض کنید می خواهیم تا سطر جدیدی را به جدول "Customers" اضافه کنیم.
از عبارت SQL زیر استفاده می کنیم:
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway');
جدول"Customers" به شکل زیر خواهد شد:
آیا متوجه شدید که شماره ای در ستون Customer ID وارد نکردیم؟
هر ستون Customer ID با وارد کردن یک record جدید بصورت خودکار با یک شماره منحصر به فرد و غیر تکراری به روزرسانی خواهد شد.
داده ها را تنها در ستون های مشخص وارد کنید
می توان تنها داده ها را به ستون های مشخصی اضافه کرد.
عبارت SQL زیر سطر جدیدی را اضافه می کند اما تنها داده ها را به ستون های "Customer Name"، "City" و "Country" وارد می کند (ستون Customer ID نیز به صورت خودکار به روز رسانی خواهد شد):
INSERT INTO Customers (CustomerName, City, Country)
کلید واژه ORDER BY برای مرتب کردن نتیجه result-set استفاده می شود .
کلید واژه ORDER BY برای مرتب کردن نتیجه result-set در یک یا چند ستون استفاده می شود .
کلید واژه ORDER BY به صورت پیش فرض record ها را به صورت صعودی مرتب می کند. برای مرتب کردن recordها به صورت نزولی می توانید از کلید واژه DESC استفاده کنید.
فرم استفاده از کلید واژه ORDER BY :
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC
نحوه استفاده از کلید واژه ORDER BY در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:
مثال استفاده از کلید واژه ORDER BY
دستور SQL زیر تمام customer ها را از جدول "Customers" انتخاب می نماید در حالیکه آنها را بر اساس حرف اول ستون Country مرتب کرده است:
SELECT * FROM Customers
ORDER BY Country;
مثال استفاده از کلید واژه ORDER BY DESC
دستور SQL زیر تمام customer ها را از جدول "Customers" انتخاب می نماید در حالیکه آنها را بر اساس حرف اول ستون Country و به صورت نزولی مرتب کرده است:
SELECT * FROM Customers
ORDER BY Country DESC;
مثال استفاده از کلید واژه ORDER BY و انتخاب چندین ستون
دستور SQL زیر تمام customer ها را از جدول "Customers" انتخاب می نماید در حالیکه از اطلاعات ستون های (Country و Customer Name) استفاده کرده و جدول را بر اساس حرف اول این دو ستون و به صورت صعودی مرتب کرده است:
در یک جدول یک ستون ممکن است حاوی داده های تکراری باشد و بعضی مواقع شما می خواهید تنها لیستی را تهیه کنید که مشخصاً داده های مختلف (distinct) در آن باشد.
از کلید واژه DISTINCT میتوان برای بازگرداندن مقادیر مشخصاً متفاوت استفاده کرد.
فرم دستور SELECT DISTINCT:
SELECT DISTINCT column_name , column_name
FROM table_name;
نحوه استفاده از SELECT DISTINCT در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد.
جدول زیر از میان جدول "Customers" انتخاب شده است:
مثال استفاده از SELECT DISTINCT
دستور SQL زیر تنها مقادیر مختلف را از ستون "City" واقع در جدول "Customers" انتخاب می کند:
عبارت WHERE برای استخراج رکوردهایی استفاده می شود که در طبقه بندی بخصوصی جای می گیرند.
فرم عبارت WHERE
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
نحوه استفاده از WHERE در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد.
جدول زیر از میان جدول "Customers " انتخاب شده است:
مثال استفاده از عبارت WHERE
دستور SQL زیر تمام customer هایی را که اهل کشور(Country") Mexico") ) هستند از جدول "Customers" انتخاب می کند:
SELECT * FROM Customers
WHERE Country='Mexico';
تفاوت استفاده از کوتیشن (") در داده های متنی و داده های عددی در SQL مسلزم استفاده ازکوتیشن در اطراف مقادیر متنی هستید. (اکثر سیستم های پایگاه داده اجازه استفاده از دابل کوتیشن (" ") را به کاربران می دهند)
درحالیکه داده های عددی نباید در داخل کوتیشن قرار گیرند:
SELECT * FROM Customers
WHERE CustomerID=1;
عملگرهای عبارت WHERE
از عملگر های زیر می توان در عبارت WHERE استفاده کرد:
این فصل نشان می دهد که چگونه یک View را ایجاد، حذف و یا تغییر دهید.
دستور CREATE VIEW در SQL
آدرس صفحه وبی که میخواهید نمایش دهید را Paste کنید
در SQL یک View یک جدول مجازی است که نتیجه حاصل از عبارات و دستورات SQL می باشد.
یک view شامل سطر و ستونهایی دقیقا شبیه یک جدول واقعی است. فیلدها در یک View فیلدهایی هستند که از یک یا چند جدول واقعی در پایگاه داده گرفته شده اند.
شما می توانید توابع SQLو همچنین عبارات WHERE و JOIN را به یک View اضافه کنید و داده های نتیجه را به گونه ای نشان دهید که گویی همگی از یک جدول آورده شده اند.
فرم دستور CREATE VIEW
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
نکته:
یک View همیشه داده های به روز شده (up-to-date) را نشان می دهد! موتور یک پایگاه داده هر زمانی که کاربر در خواست view کند داده ها را بازسازی می نماید.
اگر پایگاه داده Northwind را دارید شما می توانید چندین view را که به طور پیش فرض روی آن نصب شده است را ببینید.
ویو View با نام Current Product List، لیست محصولات جاری (محصولاتی که تولید آنها متوقف نشده است) را از جدول “Products” نشان می دهد. این view توسط دستور زیر ایجاد می گردد:
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No
می توانیم View فوق را به صورت زیر فراخوانی کنیم:
SELECT * FROM [Current Product List]
مثال دیگری از View در پایگاه داده Northwind، تمام محصولاتی را که در جدول “Products” قیمت واحدشان بزرگتر از میانگین قیمت هاست انتخاب می کند:
CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)
می توانیم view فوق را به صورت زیر فراخوانی کنیم:
SELECT * FROM [Products Above Average Price]
مثال دیگری از View در پایگاه داده Northwind، فروش کل را برای هر دسته از محصولات در سال 1997 محاسبه می کند. توجه کنید که این view داده هایش را از view ی دیگری که “Product Sales for 1997” نامیده می شود می گیرد:
CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName
می توانیم view فوق را به صورت زیر فراخوانی کنیم:
SELECT * FROM [Category Sales For 1997]
همچنین می توانیم یک شرط روی Query تعریف کنیم. اکنون می خواهیم فروش کل محصولاتی که در گروه “Beverages” هستند را ببینیم:
SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'
به روز رسانی یک View
می توانیم یک View را به وسیله دستور زیر به روز رسانی کنیم:
فرم دستور CREATE OR REPLACE VIEW در SQL
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
می خواهیم ستون “Category” را به view ی “Current Product List” اضافه کنیم. به وسیله دستور زیر view را به روز رسانی می کنیم:
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No
حذف یک View در SQL
می توانید یک view را به وسیله دستور DROP VIEW حذف کنید.
فرم دستور DROP VIEW در SQL
DROP VIEW view_name
آموزش دستور SELECT
دستور SELECT برای انتخاب داده از یک پایگاه داده استفاده می شود .
نتیجه در جدول نتایج که result-set نامیده می شود ذخیره میگردد .
فرم دستور SELECT
select column_name,column_name
from table_name;
select * from table_name;
نحوه استفاده از SELECT در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد.
جدول زیر از میان جدول "Customers" انتخاب شده است:
مثال انتخاب ستون با استفاده از دستور SELECT
دستور SQL زیر ستون های "Customer Name" و "City" را از جدول "Customers" انتخاب می کند:
SELECT CustomerName , City FROM Customeers;
مثال *SELECT
دستور SQL زیر تمام ستون های جدول "Customers" را انتخاب می کند:
SELECT * FROM customers;
در بخش بعدی از سری مقالات آموزشی sql server با نحوه استفاده از دستور select distinct در sql server آشنا می شویم.
پیمایش درResult-set
اکثر سیستم های نرم افزاری پایگاه داده اجازه پیمایش در Result-set ها را به وسیله توابع برنامه نویسی همچون Move-To-First-Record, Get-Record-Content, Move-To-Next-Record و غیره را می دهند.
می خواهیم تا ستونی را با نام “DateOfBirth” به جدول “Persons” اضافه کنیم.
از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
ADD DateOfBirth date
توجه کنید که ستون جدید “DateOfBirth” از نوع date می باشد و تاریخ را در خود نگه می دارد. نوع داده تعیین می کند که چه نوع داده ای را در یک ستون می توان وارد کرد.
مثال چگونگی تغییر داده
می خواهیم نوع داده های ستون “DateOfBirth” در جدول “Persons” را تغییر دهیم.
از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
ALTER COLUMN DateOfBirth year
توجه کنید که ستون “DateOfBirth” از نوع سال می باشد و از دو یا چهار رقم برای نگهداری سال استفاده خواهد کرد.
مثال استفاده از DROP COLUMN
در مرحله بعد می خواهیم تا ستون “DateOfBirth” را از جدول “Persons” حذف کنیم.
برای اینکار از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
DROP COLUMN DateOfBirth
جدول “Persons” به شکل زیر خواهد شد:
آموزش افزایش فیلدها در sql
افزایش خودکار فیلدها Auto-Increment یا افزایش خودکار، اجازه می دهد که یک شماره منحصر به فرد، برای سطر جدیدی که درجدول وارد می شود، تولید شود.
خیلی اوقات می خواهیم زمانی که رکورد جدیدی وارد می شود، مقدار فیلد primary key به طور خودکار ایجاد شود.
در این صورت از فیلد auto-increment در جدول استفاده می کنیم.
فرم دستور در MySQL
دستور زیر تعیین می کند که ستون “ID”در جدول “Persons” برای فیلدprimary key از افزایش خودکار استفاده کند.
CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)
مای MySQL از کلید واژه AUTO_INCREMENT برای اعمال حالت افزایش خودکار استفاده می کند.
به طور پیش فرض، مقدار شروع برای AUTO_INCREMENT عدد یک می باشد و مقدار آن برای رکورد جدید، یک عدد افزایش می یابد.
برای اینکه مقدار شروع AUTO_INCREMENT را مقداری غیر از یک تعیین کنیم از دستور زیر استفاده می کنیم.
ALTER TABLE Persons AUTO_INCREMENT=100
برای وارد کردن یک رکورد جدید در جدول “Persons” دیگر نباید مقداری برای ستون “ID” تعیین کنیم (مقداری منحصر به فردی، به صورت خودکار در این فیلد وارد می شود):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
دستور بالا سطر جدیدی را در جدول Persons وارد می کند. برای ستون“ID” یک مقدار منحصر به فرد تعیین می شود. ستون “FirstName” به “Lars” و ستون “LastName” به “Monsen” اختصاص می یابد.
دستور زیر تعیین می کند که ستون “ID”در جدول “Persons” برای فیلدprimary key از افزایش خودکار استفاده کند.
CREATE TABLE Persons
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
در MS SQL Server از کلید واژه IDENTITY برای اعمال خصوصیت افزایش خودکار استفاده می کند.
در مثال بالا مقدار شروع برای IDENTITY عدد یک می باشد و برای هر رکورد جدید، یک عدد به آن افزایش می یابد.
نکته: برای اینکه تعیین کنید که ستون “ID” با مقدار 10 شروع شود و 5 تا 5 تا افزایش یابد IDENTITY را به (10،5) تغییر دهید.
برای اینکه سطر جدیدی را در جدول “Persons” وارد کنیم، دیگر نیازی نیست مقداری برای ستون “ID”وارد کنیم. (مقداری منحصر به فرد، به طور خودکار در این ستون وارد می شود):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
دستور بالا سطر جدیدی را در جدول “Persons” وارد می کند. به ستون “ID” یک مقدار منحصر به فرد داده می شود. ستون “FirstName” به “Lars” و ستون “LastName” به “Monsen” اختصاص می یابد.
فرم دستور درAccess
دستور زیر تعیین می کند که ستون “ID”در جدول “Persons” برای فیلدprimary key از افزایش خودکار استفاده کند.
CREATE TABLE Persons
(
ID Integer PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
مای MS Access از کلید واژه AUTOINCREMENT برای اعمال خصوصیت افزایش خودکار استفاده می کند.
به طور پیش فرض، مقدار شروع برای AUTOINCREMENT عدد یک می باشد و مقدار آن برای هر رکورد جدید، یک عدد افزایش می یابد.
نکته:
برای اینکه تعیین کنید که ستون “ID”با مقدار 10 شروع شود و 5 تا 5 تا افزایش یابد autoincrement را به AUTOINCREMENT (10,5) تغییر دهید.
برای اینکه سطر جدیدی را در جدول “Persons” وارد کنیم، دیگر نیازی نیست مقداری برای ستون”ID” وارد کنیم. (مقدار منحصر به فردی به طور خودکار در این ستون وارد می شود)
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
دستور بالا سطر جدیدی را در جدول “Persons” وارد می کند. به ستون “P_Id” یک مقدار منحصر به فرد داده می شود. ستون “FirstName” به “Lars” و ستون “LastName” به “Monsen” اختصاص می یابد.
فرم دستور در Oracle
در Oracle کار کمی پیچیده تر است.
شما باید فیلد auto-increment را با یک sequence object ایجاد کنید. (این object، یک توالی از اعداد را تولید می کند)
برای تولید اعداد متوالی، از دستور CREATE SEQUENCE که در زیر آمده استفاده کنید:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
دستور بالا یک sequence object با نام seq_person ایجاد می کند، که با عدد یک شروع و یک عدد یک عدد افزایش می یابد. همچنین برای کارآیی و سرعت دسترسی بیشتر تا 10 مقدار را در حافظه خود (cache) نگه می دارد.
برای درج یک رکورد جدید در جدول "Persons"، باید از تابع nextval استفاده کنیم (این تابع، مقدار بعدی را از seq_person sequence دریافت می کند):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
دستور بالا سطر جدیدی را در جدول “Persons” وارد می کند. به ستون “ID” عدد بعدی از توالی seq_person داده می شود. ستون “FirstName” به “Lars” و ستون “LastName” به “Monsen” اختصاص می یابد.