SQL CREATE TABLE

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

دستور CREATE TABLE:

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

در جدول ما انواع داده ها میتواند ذخیره شود.

مثال برای CREATE TABLE:
حالا ما میخواهیم جدولی به نام “Persons” بسازیم که دارای 5 ستون با نامهای P_Id, LastName, FirstName, Address, and City میباشد.
از دستور زیر استفاده میکنیم :

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

ستونP_Id حاوی دادده با نوع INT میباشد و ستون های دیگر حاوی داده ها با نوع varchar میباشند که ماکزیمم طول آنها 255 کاراکتر میباشد.

P_Id LastName FirstName Address City

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

مترجم : علیرضا مسگری

SQL CREATE DATABASE

   ساختن پایگاه داده  CREATE DATABASE

برای ساختن یک پایگاه داده از این عبارت استفاده میکنیم
دستور آن به صورت زیر است:

CREATE DATABASE database_name

مثال از CREATE DATABASE:

حالا م میخواهیم که پایگاه داده ای با نام “my_db” بسازیم.
از دستور بالا به این صورت استفاده میکنیم

CREATE DATABASE my_db

مترجم : علیرضا مسگری

SQL SELECT INTO

عبارت SELECT INTO در SQL برای انتخاب اطلاعات یک جدول و وارد کردن این اطلاعات در جدول دیگر میباشد.
این عبارت برای داشتن یک کپی از اطلاعات به عنوان پشتیبان میباشد
دستور 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

مثال از SELECT INTO :
حالا ما میخواهیم یک کپی کامل از جدول PERSON را داشته باشیم .
از دستور زیر استفاده میکنیم :

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:

با دستور زیر ما یک کپی از جدول PERSON آن هم فقط از افرادی که در شهر “Sandnes” زندگی میکنند را بدست می آوریم

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

 SELECT INTO همراه با JOINED:

ما میتوانیم از دو جدول یا بیشتر هم کپی برداری کنیم
عبارت زیر یک جدول پشتیبان با نام “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

مترجم :علیرضا مسگری

SQL UNION

عملگر UNION در SQL دو یا چند عبارت SLELECT را با هم ترکیب میکند.
نکته اینکه هر عبارت SELECT داخل عملگر UNION باید حتما دارای تعداد یکسان ستون وستون ها نیز دارای اطلاعات یکسان و تعداد داده ها در هر ستون باید یکسان باشد
دستور UNION :

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

مثال از UNION :
جدول “Employees_Norway”:

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

جدول “Employees_USA”:

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

حالا ما میخواهیم اسامی تمام کارمندان در نوروژ و آمریکا را به صورت لیست در آوریم.
از عبارت SELECT به صورت زیر استفاده میکنیم.

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 به صورت(DISTINCT) عمل میکند .(برای درک بهتر به قسمت DISTINCTدر بخش SQL مراجعه کنید)

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

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

مترجم :علیرضا مسگری

SQL FULL JOIN

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

دستور FULL JOIN در SQL

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

مثال از FULL JOIN:

جدول “PERSON”:

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

جدول “ORDER”:

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
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

FUULL JOIN تمام ردیف ها از جدول PERSON و همچنین تمام ردیف ها از جدول ORDER را برمیگرداند حتی اگر هیچ همخوانی بین آنها موجود نباشد در هر صورت اطلاعات بین دو جدول به صورت فهرست در خواهد آمد

مترجم :علیرضا مسگری

SQL RIGHT JOIN

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

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

این دستور در برخی از پایگاه داده ها به صورت RIGHT OUTER JOIN استفاده میشود.
مثال : جدول” PERSON”

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

جدول”ORDER”

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
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

مترجم :علیرضا مسگری

SQL LEFT JOIN

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

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

این دستور در برخی از پایگاه داده ها به صورت LEFT OUTER JOIN استفاده میشود.
مثال : “PERSON”

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

جدول “ORDER”

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

مترجم :علیرضا مسگری

SQL INNER JOIN

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

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

INNER JOIN همانند JOIN عمل میکند.
مثال :
جدول”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

جدول “ORDER” :

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

حالا ما میخواهیم لیستی درست کنیم که این دو جدول را با هم مرتبط کند با توجه بهP_Id آنها
به صورت زیر عمل میکنیم.

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

مترجم :علیرضا مسگری

SQL JOIN

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

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 ” یک کلید اولیه برای جدول بالا محسوب میشود . به این معنا که هیج یک از دو ستون جدول “PERSON ” نمیتوانند “P_Id” یکسان داشته باشند .
کلید اولیه این جدول “P_Id” حتی افراد با نام های یکسان را هم از هم جدا میکند.
حالا جدول بعدی “ORDER ” نام دارد

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

 

توجه داشته باشید که” O_Id ” یک کلید اولیه برای جدول بالا محسوب میشود. “P_Id” در این جدول اشاره به افراد در جدول “PERSON ” بدون ذکر نام آنها .
نکته اینکه ارتباط بین این دو جدول بالا ستون “P_Id” میباشد.
Different SQL JOINs
قبل ازینکه کارمون را با مثال ادامه بدیم انواع JOIN را که شما میتوانید استفاده کنید ذکر کرده و تفاوت آنها را بیان میکنیم
JOIN : ردیف هایی را نشان میدهد که حداقل یک همخوانی در دو جدول داشته باشند
LEFT JOIN : تمام ردیف های جدول سمت چپ را نمایش میدهد حتی اگر هیچ همخوانی با جدول سمت راست نداشته باشد.
RIGHT JOIN : تمام ردیف های جدول سمت راست را نمایش میدهد حتی اگر هیچ همخوانی با جدول سمت چپ نداشته باشد.
FULL JOIN : ردیف هایی را که یک همخوانی در دو جدول را دشته باشد نمایش میدهد .

مترجم :علیرضا مسگری

SQL Alias

با استفاده از این قابلیت در SQL میتوانیم به جداول و یا برخی ستون ها در جداول نام دیگری اختصاص دهیم و این زمانی مفید می باشد که نام این جداول یا ستون ها طولانی و یا پیچیده باشد ،که موجب میشود ما راحتتر از این نامها استفاده کنیم.(ALIAS: در لغت به معنی نام مستعار یا هم اثر است)
از هر نامی به عنوان ALIAS میتوان استفاده کرد اما معمولا این نام ها کوتاه می باشد.
دستور ALIAS برای جداول

SELECT column_name(s)
FROM table_name
AS alias_name

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

SELECT column_name AS alias_name
FROM table_name

مثال:

فرض کنید ما جدولی داریم به نام “PERSON” و جدول دیگری با نام “Product_Orders” داریم ما با استفاده از دستور ALIAS در جداول به ترتیب نام “p” و “po” را به این جداول میدهیم .
حالا ما میخواهیم لیستی از تمام سفا رشاتی که “Ola Hansen” مسئول آنهاست را مشخص کنیم
ما از دستور زیر استفاده می کنیم.

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

استفاده از SELECT بدون ALIAS :

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

همانطور که مشاهده می کنید استفاده از ALIAS موجب کوتاهتر شدن دستورSELECT شده است و این خواندن و نوشتن دستور را ساده تر نموده است.

مترجم : علیرضا مسگری