0

آموزش SQL

 
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-نام مستعار-AS

در SQL می توان یک نام مستعار (Alias) به جدول یا ستون داد.


نام مستعار (Alias) در SQL

 

Wiki

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

یک نام مستعار می تواند هر چیزی باشد اما معمولا کوتاه می باشد.

تخصیص یک نام مستعار برای جداول:

SELECT column_name(s)
FROM table_name AS alias_name

تخصیص یک نام مستعار برای ستون ها:

SELECT column_name AS alias_name
FROM table_name

مثال Alias:

 

Wiki

فرض کنید یک جدول با نام Persons و جدولی دیگر با نام Product_Orders داریم. می خواهیم نام های مستعار P و po را به آنها بدهیم.

می خواهیم تمام سفارشاتی را که Ola Hansen مسئول آنها می باشد را لیست کنیم.

از دستور زیر استفاده می کنیم:

SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p,
Product_Orders AS po
WHERE p.LastName='Hansen' AND p.FirstName='Ola'

نکته: جدا کننده بین اشیا در SQL علامت "," می باشد.

دستور مشابه بدون استفاده از Alias:

SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName
FROM Persons,
Product_Orders
WHERE Persons.LastName='Hansen' AND Persons.FirstName='Ola'

همانطور که در دستور های بالا می بینید نام مستعار، یک query را هم برای نوشتن و هم به لحاظ خواندن آسان تر می کند.

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  9:15 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-پیوندها یا Joinها

پیوندها برای فراخوانی داده ها از دو یا چند جدول با توجه به ارتباط بین ستون های خاصی از این جدول ها استفاده می شوند.


پیوند (JOIN) بین جداول در SQL

 

Wiki

کلید واژه JOIN در دستورات SQL برای ایجاد Query از دو یا چند جدول براساس ارتباط بین ستون های خاصی از جداول استفاده می شود.

جداول در پایگاه داده اغلب به وسیله کلیدها به یکدیگر مرتبط می شوند.

primary key یا کلید اصلی، ستونی(یا ترکیبی از ستون ها) با داده منحصر به فرد و یکتا برای هر سطراست. مقدار کلید اصلی باید یکتا باشد. هدف مرتبط کردن داده ها بین جداول است بدون اینکه داده ها در جداول تکرار شوند.

در جدول Persons:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

توجه کنید که ستون P_Id در جدول فوق کلید اصلی است. این بدان معنی است که هیچ دو سطری نمی تواند مقدار یکسانی داشته باشد. ستون P_Id دو فرد را حتی اگر نام های یکسانی هم داشته باشند، متمایز می کند.

در جدول Orders:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

دقت کنید که ستون O_Id در جدول Orders کلید اصلی می باشد و ستون P_Id در اینجا به نفرات در جدول Persons بدون استفاده از نامشان اشاره دارد.

توجه کنید که ارتباط بین دو جدول به وسیله ستون P_Id می باشد.


تفاوت پیوندها

 

Wiki

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

  • JOIN: سطرهایی را که در هر دو جدول تناظر دارند را بر می گرداند.
  • LEFT JOIN: تمامی سطرها از جدول سمت چپ را برمی گرداند حتی اگر هیچ تناظری در جدول سمت راست نداشته باشد.
  • RIGHT JOIN: تمامی سطرها از جدول سمت راست را برمی گرداند حتی اگر هیچ تناظری در جدول سمت چپ نداشته باشد.
  • FULL JOIN: تمام ردیف های موجود در جداول را با وجود حتی یک همخوانی میان جداول بر می گرداند. 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  9:16 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-عبارت Inner Join

عبارت INNER JOIN

 

Wiki

عبارت کلیدی INNER JOIN سطرهایی را برمی گرداند که در هر دو جدول حداقل یک داده متناظر در ستون های مرتبط شده داشته باشد.

فرم عبارت INNER JOIN:

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

مثال:

 

Wiki

جدول Persons:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

جدول Orders:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

می خواهیم تمامی افراد را به همراه سقارشاتشان لیست کنیم.

از دستور زیر استفاده می کنیم:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

نتیجه به شکل زیر خواهد بود:

LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678

عبارت کلیدی INNER JOIN سطرهایی که حداقل یک تناظر در دو جدول داشته باشد را برمی گرداند. اگر فردی در جدول Persons وجود دارد که تناظری در جدول Orders ندارد،آن فرد لیست نمی شود.

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  9:17 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-عبارت Left Join

عبارت LEFT JOIN

 

Wiki

کلید واژه LEFT JOIN تمام سطرهای جدول سمت چپ (table_name1) را برمی گرداند حتی اگر هیچ داده متناظری برای آن در جدول سمت راست (table_name2) وجود نداشته باشد. 

فرم عبارت LEFT JOIN:

SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

در بعضی از پایگاه داده ها LEFT JOIN به شکل LEFT OUTER JOIN می باشد.


مثال:

 

Wiki

جدول Persons:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

جدول Orders:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

می خواهیم تمام افراد را  لیست کنیم حتی اگر سفارشی در مقابل نام آن وجود نداشته باشد. 

از دستور زیر استفاده می کنیم:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

نتیجه به شکل زیر خواهد شد:

LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678
Svendson Tove  

کلید واژه LEFT JOIN تمام سطرهای جدول سمت چپ (Persons) را برمی گرداند حتی اگر هیچ داده متناظری برای آن در جدول سمت راست (Orders) وجود نداشته باشد.

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  9:18 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-عبارت Right Join

عبارت RIGHT JOIN

 

Wiki

 کلید واژه RIGHT JOIN تمام سطرهای جدول سمت راست (table_name2) را برمی گرداند حتی اگر هیچ داده متناظری برای آن در جدول سمت چپ (table_name1) وجود نداشته باشد. 

فرم عبارت RIGHT JOIN:

SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name

در بعضی از پایگاه داده ها RIGHT JOIN به شکل RIGHT OUTER JOIN می باشد.


مثال:

 

Wiki

جدول Persons:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

جدول Orders

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

می خواهیم تمام سفارشات (orderها) را  لیست کنیم حتی اگر نام فردی در مقابل آن سفارش وجود نداشته باشد. 

از دستور زیر استفاده می کنیم:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
RIGHT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

جدول نتایج به شکل زیر خواهد بود:

LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678
    34764

کلید واژه RIGHT JOIN تمام سطرهای جدول سمت راست (Orders) را برمی گرداند حتی اگر هیچ داده متناظری برای آن در جدول سمت چپ (Persons) وجود نداشته باشد.

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  9:18 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-عبارت Full Join

کلید واژه FULL JOIN

 

Wiki

کلید واژه FULL JOIN تمام ردیف های موجود در جداول را با وجود حتی یک همخوانی میان جداول بر می گرداند.

فرم دستور FULL JOIN:

SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2
ON table_name1.column_name=table_name2.column_name

مثال:

 

Wiki

 جدول Persons:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

جدول Orders:

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

می خواهیم تمام افراد و سفارش هایشان، و نیز تمام سفارش ها به همراه افراد مربوطه را لیست کنیم:

از دستور زیر استفاده می کنیم:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
FULL JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

نتیجه به شکل زیر خواهد شد:

LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678
Svendson Tove  
    34764

کلید واژه FULL JOIN  تمام سطرهایی که در جدول چپ (Persons) و تمام سطرهای جدول راست (Orders) وجود دارد را بر می گرداند. اگر سطری در جدول Persons وجود دارد که تناظری در جدول Orders ندارد یا اگر سطری در جدول Orders وجود دارد که تناظری در جدول Persons ندارد این سطرها نیز در جدول نتیجه نمایش داده خواهند شد. 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  9:19 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-عبارت Union

عملگر UNION دو یا چند دستور SELECT را با یکدیگر ترکیب می کند.


عملگر UNION

 

Wiki

عملگر UNION برای ترکیب نتایج دو یا چند دستور SELECT استفاده می شود.

توجه داشته باشید که هر دستور SELECT در عملگر UNION باید تعداد ستونهای یکسانی را برگردانند. همچنین ستونها باید Data Type یکسانی داشته باشند. علاوه بر این ستونها در هر دستور SELECT باید به یک صورت مرتب شده باشند. (Order By)

فرم عملگر UNION:

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

نکته: عملگر UNION تنها داده هایی را به صورت پیش فرض انتخاب می کند که از یکدیگر متمایز باشند. برای اینکه داده های تکراری را هم بیاوریم از UNION ALL استفاده کنید.

فرم عملگر UNION ALL:

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

نام ستون ها در جدول نتایج همیشه برابر نام ستونها در دستور SELECT اول در عملگر UNION می باشد.


مثال:

 

Wiki

به جداول زیر نگاه کنید: 

1- جدول کارمندان نروژی:

E_ID E_Name
01 Hansen, Ola
02 Svendson, Tove
03 Svendson, Stephen
04 Pettersen, Kari

2- جدول کارمندان آمریکایی:

E_ID E_Name
01 Turner, Sally
02 Kent, Clark
03 Svendson, Stephen
04 Scott, Stephen

می خواهیم لیست اسامی کارمندان امریکایی و نروژی را به صورت متمایز ( بدون تکرار) داشته باشیم.

از دستور زیر استفاده می کنیم:

SELECT E_Name FROM Employees_Norway
UNION
SELECT E_Name FROM Employees_USA

جدول نتایج به شکل زیر خواهد بود:

E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Scott, Stephen

توجه:این دستور نمی تواند برای نمایش دادن اسامی تمام کارکنان امریکایی و نروژی استفاده شود. در مثال فوق دو کارمند با نام یکسان داریم و تنها بکی از آنها در جدول نتایج آمده است. دستور UNION تنها داده ها را به صورت متمایز (بدون تکرار) بر می گرداند.


مثال:

 

Wiki

حال می خواهیم تمامی کارمندان آمریکایی و نروژی را لیست کنیم از دستور زیر استفاده می کنیم:

SELECT E_Name FROM Employees_Norway
UNION ALL
SELECT E_Name FROM Employees_USA

نتیجه:

E_Name
Hansen, Ola
Svendson, Tove
Svendson, Stephen
Pettersen, Kari
Turner, Sally
Kent, Clark
Svendson, Stephen
Scott, Stephen
 

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  9:20 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-دستور Select Into

دستور SELECT INTO می تواند برای backup گیری از جداول استفاده شود.


دستور SELECT INTO

 

Wiki

دستور SELECT INTO داده ها را از یک جدول بر می دارد و در جدولی دیگر وارد می کند.

دستور SELECT INTO اغلب برای backup گیری از جداول مورد استفاده قرار می گیرد. 

فرم دستور SELECT INTO:

می توانیم تمام ستون ها را به یک جدول جدید وارد کنیم:

SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename

یا می توانیم تنها ستون های خاصی را به جدول جدیدی وارد کنیم:

SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename

مثال:

 

Wiki

Backup گیری: می خواهیم یک کپی از داده های جدول Persons بگیریم (گرفتن نسخه پشتیبان از یک جدول در پایگاه داده موجود)

از دستور زیر استفاده می کنیم:

SELECT *
INTO Persons_Backup
FROM Persons

همچنین می توانیم از عبارت IN برای کپی کردن جدول به پایگاه داده دیگر استفاده کنیم (گرفتن نسخه پشتیبان از یک جدول در پایگاه داده دیگر):

SELECT *
INTO Persons_Backup IN 'Backup.mdb'
FROM Persons

همچنین می توانیم از فیلدهای خاصی از یک جدول به جدول جدید دیگر کپی بگیریم (گرفتن نسخه پشتیبان ازفیلدهای خاصی از یک جدول در پایگاه موجود.)

SELECT LastName,FirstName
INTO Persons_Backup
FROM Persons

SELECT INTO به همراه عبارت WHERE

 

Wiki

همچنین می توانیم عبارت WHERE را در دستور اضافه کنیم:

دستور زیر جدول Persons_Backup را حاوی افرادی برمی گرداند که در شهر Sandnes زندگی می کنند.

SELECT LastName,Firstname
INTO Persons_Backup
FROM Persons
WHERE City='Sandnes'

SELECT INTO در ترکیب با دستورات Join

 

Wiki

انتخاب داده ها از بیش از یک جدول نیز امکان پذیر است.

مثال:

 مثال زیر جدول Persons_Order_Backup را که حاوی داده های از دو جدول Persons و Orders می باشد را بر می گرداند.

SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
 

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  9:21 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-دستور Create DB

دستور CREATE DATABASE

 

Wiki

دستور CREATE DATABASE برای ایجاد یک پایگاه داده استفاده می شود.

فرم دستور:

CREATE DATABASE database_name

مثال:

 

Wiki

می خواهیم پایگاه داده ای با نام my_db ایجاد کنیم.

از دستور زیر استفاده می کنیم:

CREATE DATABASE my_db

جداول پایگاه داده می توانند با دستور CREATE TABLE اضافه شوند.

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  9:22 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-دستور Create Table

دستور CREATE TABLE

 

Wiki

دستور CREATE TABLE برای ایجاد جدول در یک پایگاه داده استفاده می شود.

فرم دستور CREATE TABLE:

CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
....
)

data type مشخص می کند چه نوع داده ای می تواند در ستون وارد شود. برای اینکه مرجع کاملی از data typeهای موجود در MS Access, MySQL و SQL Server را مشاهده کنید به قسمت SQL Data Typesمراجعه کنید.


مثال:

 

Wiki

می خواهیم جدولی با نام Persons با پنج ستون (P_Id, LastName, FirstName, Address, City) ایجاد کنیم:

از دستور زیر استفاده می کنیم:

CREATE TABLE Persons
(
P_Id int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

ستون P_Id از نوع int می باشد و اعداد را نگه می دارد. ستون های LastName, FirstName, Address, City از نوع varchar  با طول حداکثر 255 کاراکتر می باشند.

جدول خالی Persons شبیه جدول زیر خواهد بود:

P_Id LastName FirstName Address City
         

جدول خالی می تواند با دستور INSERT INTO پر شود.

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  9:23 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-محدودیت-Constraint

محدودیت ها (Constraints)

 

Wiki

محدودیت ها برای محدود کردن داده های ورودی استفاده می شود.

محدودیت ها می توانند هنگام ایجاد یک جدول مشخص شوند (در دستور CREATE TABLE) یا بعد از اینکه جدول ایجاد شد (با دستور ALTER TABLE) 

ما روی محدودیت های زیر تمرکز می کنیم:

  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY
  • CHECK
  • DEFAULT

فصل های بعد هر یک از این محدودیت ها را با جزئیات توضیح می دهد.

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  9:23 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-محدودیت Not Null

به طور پیش فرض یک ستون می تواند حاوی مقدار خالی (NULL) باشد.


محدودیت NOT NULL

 

Wiki

محدودیت NOT NULL یک ستون را مجبور می کند که مقدار خالی را قبول نکند.

محدودیت NOT NULL یک ستون را وادار می کند که همیشه حاوی مقداری باشد، این بدان معناست که شما نمی توانید رکورد جدیدی را وارد کنید یا تغییر دهید  بدون اینکه مقداری را در آن اضافه کنید.

دستور زیر ستون P_Id و LastName را مجبور می کند که مقدار خالی را قبول نکند:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

  

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  9:24 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-محدودیت Unique

محدودیت UNIQUE

 

Wiki

محدودیت UNIQUE تعیین می کند هر رکوردی در جدول یکتاست.

محدودیت های UNIQUE و PRIMARY KEY باهم یکتایی یک ستون یا مجموعه ای از ستون ها را تضمین می کنند.

محدودیت PRIMARY KEY به طور خودکار محدودیت UNIQUE را در خود دارد.

توجه داشته باشید که می توانید چندین محدودیت UNIQUE را در یک جدول داشته باشید اما تنها یک PRIMARY KEY در جدول می توانید داشته باشید.


محدودیت UNIQUE در دستور CREATE TABLE

 

Wiki

عبارت زیر یک محدودیت UNIQUE را روی ستون P_Id هنگام ایجاد جدول Persons به وجود می آورد.

در MySQL:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)

درSQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

برای تعریف محدودیت UNIQUE روی ستون های چندگانه (ترکیب دو یا چند ستون) از دستور زیر استفاده کنید (منظور داده های چند ستون روی هم رفته منحصر به فرد باشند):

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)

محدودیت UNIQUE در دستور ALTER TABLE

 

Wiki

برای ایجاد محدودیت UNIQUE روی ستون P_Id هنگامی که جدول قبلا ایجاد شده از دستور زیر استفاده می کنیم.

در MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD UNIQUE (P_Id)

 برای تعریف محدودیت UNIQUE روی ستون های ترکیبی (ترکیب دو یا چند ستون) از دستور زیر استفاده کنید (منظوراین است که  داده های چند ستون روی هم رفته منحصر به فرد باشند):

در MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

حذف محدودیت UNIQUE

 

Wiki

برای حذف محدودیت UNIQUE از دستور زیر استفاده می کنیم.

در MySQL:

ALTER TABLE Persons
DROP INDEX uc_PersonID

در SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  9:25 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-کلید اصلی

محدودیت PRIMARY KEY (کلید اصلی):

 

Wiki

PRIMARY KEY هر رکورد در پایگاه داده را به طور منحصر به فردی مشخص می کند.

PRIMARY KEY باید دارای مقادیر منحصر به فردی باشند.

ستون PRIMARY KEY نمی تواند حاوی مقدار خالی باشد.

هر جدول باید حاوی یک PRIMARY KEY باشد و هر جدول تنها می تواند یک PRIMARY KEY داشته باشد.


محدودیت PRIMARY KEY در دستور CREATE TABLE

 

Wiki

دستور زیر در ستون P_Id هنگامی که جدول Persons ایجاد می شود کلید اصلی را تعیین می کند:

در MySQL:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)

در SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

برای تعریف محدودیت PRIMARY KEY روی ستون های ترکیبی (ترکیب دو یا چند ستون) از دستور زیر استفاده کنید (منظور این است که چند ستون با هم به عنوان کلید اصلی باشند)

در MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)

نکته: در مثال بالا تنها یک کلید اصلی وجود دارد (pk_PersonID) اما مقدار آن از دو ستون (P_Id و LastName) تشکیل شده که با هم کلید اصلی را می سازند.


محدودیت PRIMARY KEY در دستور ALTER TABLE

 

Wiki

 برای ایجاد محدودیت PRIMARY KEY روی ستون P_Id هنگامی که جدول قبلا ایجاد شده از دستور زیر استفاده می کنیم.

در MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)

برای اضافه کردن محدودیت PRIMARY KEY روی ستون های ترکیبی( ترکیب دو یا چند ستون) از دستور زیر استفاده کنید

در MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

 توجه:اگر از دستور ALTER TABLE برای ایجاد primary key استفاده می کنید، ستون(های) primary key باید قبلا خالی نبوده باشند (وقتی که جدول قبلا ایجاد شده است)


حذف محدودیت PRIMARY KEY

 

Wiki

برای حذف محدودیت PRIMARY KEY از دستور زیر استفاده می کنیم.

در MySQL:

ALTER TABLE Persons
DROP PRIMARY KEY

 در SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  9:25 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-کلید خارجی

محدودیت FOREIGN KEY (کلید خارجی)

 

Wiki

یک FOREIGN KEY (کلید خارجی) در یک جدول اشاره به PRIMARY KEY (کلید اصلی) در جدول دیگر دارد.

اجازه دهید تا FOREIGN KEY را با یک مثال توضیح دهیم، به دو جدول زیر نگاه کنید:

جدول Persons:

P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

جدول Orders :

O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 2
4 24562 1

توجه کنید که ستون P_Id در جدول order اشاره به ستون P_Id در جدول person دارد.

ستون P_Id در جدول person کلید اصلی می باشد

ستون P_Id در جدول Orders کلید خارجی می باشد.

محدودیت کلید خارجی برای جلوگیری از اقداماتی که ارتباط بین دو جدول را خراب می کند استفاده می شود.

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


محدودیت FOREIGN KEY در دستور CREATE TABLE

 

Wiki

دستور زیر در ستون P_Id هنگامی که جدول Persons ایجاد می شود کلید خارجی را تعیین می کند:

در MySQL:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)

در SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

برای تعریف محدودیت FOREIGN KEY روی ستون های ترکیبی (ترکیب دو یا چند ستون) از دستور زیر استفاده کنید.

 در MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)

محدودیت FOREIGN KEY در دستور ALTER TABLE

 

Wiki

برای ایجاد محدودیت FOREIGN KEY روی ستون P_Id هنگامی که جدول قبلا ایجاد شده از دستور زیر استفاده می کنیم.

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

برای تعریف محدودیت FOREIGN KEY روی ستون های ترکیبی (ترکیب دو یا چند ستون) از دستور زیر استفاده کنید.

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

حذف محدودیت FOREIGN KEY

 

Wiki

برای حذف محدودیت FOREIGN KEY از دستور زیر استفاده می کنیم.

در MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

در SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:01 PM
تشکرات از این پست
دسترسی سریع به انجمن ها