آموزش SQL
آموزش مقدماتی SQL
آموزش SQL-مقدمه
آموزش SQL (اس کیو ال) - مقدمه
SQL (اس کیو ال) یک زبان استاندارد برای دسترسی به پایگاه داده می باشد.
در این آموزش، چگونگی دسترسی به داده ها و دستکاری آنها را با استفاده از SQL فراخواهید گرفت.
هم اکنون یادگیری SQL را آغاز کنید!
SQL چیست؟
wiki
- SQL مخفف Structured Query Language به معنی زبان جستجوی ساخت یافته است.
- SQL به شما اجازه دسترسی و دستکاری پایگاه داده را می دهد.
- SQL یک استاندارد (ANSI (American National Standards Institute می باشد.
در این آموزش چه چیزهایی را فراخواهید گرفت
wiki
- در این آموزش می توانید queryهایی (پرس و جوهایی) را بر روی پایگاه داده اجرا کنید.
- در این آموزش می توانید داده ها را از پایگاه داده بازیابی کنید.
- در این آموزش می توانید رکوردهایی را در پایگاه داده درج (insert) کنید.
- در این آموزش می توانید رکوردهایی را در پایگاه داده تغییر دهید (به روز رسانی کنید).
- در این آموزش می توانید رکوردهایی را از پایگاه داده حذف (delete) کنید.
- در این آموزش می توانید پایگاه داده جدیدی را ایجاد کنید.
- در این آموزش می توانید جدول جدیدی را در پایگاه داده ایجاد کنید.
- در این آموزش می توانید stored procedureها (رویه های ذخیره شده) را در پایگاه داده ایجاد کنید.
- در این آموزش می توانید viewها را در پایگاه داده ایجاد کنید.
- در این آموزش می توانید سطح دسترسی روی جداول، procedureها و viewها را تنظیم کنید.
SQL یک استاندارد است اما...
wiki
گرچه SQL یک استاندارد ANSI می باشد و نسخه های متفاوت زیادی از آن وجود دارد، اما همه نسخه های آن از فرامین اصلی حمایت می کنند. (مثل فرامین SELECT, UPDATE, DELETE, INSERT, WHERE)
آموزش استفاده از SQL در وب سایت
برای ساخت یک وب سایت که داده ها را از یک پایگاه داده نشان دهد به موارد زیر نیاز دارید:
- یک برنامه سیستم مدیریت پایگاه داده رابطه ای مثل MS Access, SQL Server, MySQL
- زبان های سمت سرور مثل PHP یا ASP
- SQL
- HTML / CSS
آموزش RDBMS
wiki
RDBMS مخفف Relational Database Management System به معنای سیستم مدیریت پایگاه داده رابطه ای است.
RDBMS یا سیستم مدیریت پایگاه داده رابطه ای، اساسی است برای SQL و همچنین تمام سیستم های پایگاه داده ای مدرن مثل:
MS SQL Server, IBM DB2, Oracle, MySQL و Microsoft Access
داده ها در RDBMSها روی اشیایی از پایگاه داده به نام جدول ها ذخیره می شوند.
یک جدول مجموعه ای از داده های مرتبط به هم می باشد و شامل سطر و ستون ها می باشد.
آموزش SQL-دستور زبان
جداول پايگاه داده
Wiki
يک پايگاه داده از يک يا چند جدول تشکيل مي شود. هر جدول با يک نام مشخص مي شود. (مثلا "Customers" يا "Orders") جداول حاوي رکوردها يا سطرهاي حاوي داده مي باشند.
در زير جدولي با نام "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, LastName, FirstName, Address, and City) مي باشد.
عبارات SQL:
Wiki
غالب عمليات هايي که نياز داريد روي يک پايگاه داده انجام شود توسط عبارات SQL انجام مي شوند.
عبارت SQL زير، تمام رکوردهاي جدول "Persons" را انتخاب مي کند:
SELECT * FROM Persons
در اين خودآموز همه چيز در مورد عبارات SQL آموزش داده خواهد شد.
به ياد داشته باشيد که ...
-
SQL به کوچکي و بزرگي حروف حساس نمي باشد. (case sensitive نمي باشد)
سميکالن ";" بعد از عبارات SQL نياز است يا نه؟
Wiki
بعضي از سيستم هاي پايگاه داده به سميکالن ";" در انتهاي عبارات SQL نياز دارند.
سميکالن ";" يک روش استاندارد براي جدا کردن عبارات SQL در سيستمهاي پايگاه داده اي مي باشد که اجازه مي دهند بيش از يک عبارت SQL در يک ارتباط به سرور اجرا شوند.
ما از MS Access و SQL Server استفاده مي کنيم و نيازي نيست که بعد از هر عبارت SQL سميکالن بگذاريم اما در بعضي از برنامه هاي پايگاه داده ما بايد از سميکالن استفاده کنيم.
SQL DML و SQL DDL
Wiki
SQL را مي توان به دو بخش تقسيم کرد: زبان دستکاري داده Data Manipulation Language يا DML و زبان تعريف داده Data Definition Language يا DDL.
بخش SQL DML:
- SELECT: داده را از يک پايگاه داده بيرون مي کشد.
- UPDATE : داده اي را در يک پايگاه داده به روز رساني مي کند(تغيير مي دهد).
- DELETE: داده را از يک پايگاه داده حذف مي کند.
- INSERT INTO: داده جديدي را به پايگاه داده اضافه مي کند.
بخش SQL DDL: اين بخش از دستورات SQL اجازه مي دهد تا جداول پايگاه داده ايجاد يا حذف شوند. همچنين شاخصها (indexes) و کليدها را تعريف مي کند، ارتباط بين جداول و محدوديت ها را مشخص مي کند.
- CREATE DATABASE: يک پايگاه داده جديد ايجاد مي کند.
- ALTER DATABASE: يک پايگاه داده را تغيير مي دهد.
- CREATE TABLE: يک جدول جديد ايجاد مي کند.
- ALTER TABLE : يک جدول را تغيير مي دهد.
- DROP TABLE : يک جدول را حذف مي کند.
- CREATE INDEX : يک شاخص يا index (کليد جستجو) ايجاد مي کند.
- DROP INDEX: يک شاخص را حذف مي کند.
آموزش SQL-دستور Select
در این فصل دستور های SELECT و * SELECT را توضیح می دهیم.
دستور SELECT
Wiki
دستور SELECT برای انتخاب و بیرون کشیدن داده از پایگاه داده استفاده می شود.
نتایج در جدول نتایج که result-set نامیده می شود ذخیره می شود.
فرم دستور SELECT:
SELECT column_name(s)
FROM table_name
SELECT * FROM table_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 |
می خواهیم محتوای ستون های "LastName" و"FirstName" را از جدول بالا انتخاب کنیم.
از دستور SELECT زیر استفاده می کنیم:
SELECT LastName,FirstName FROM Persons
result-set به صورت زیر نمایش داده خواهد شد:
| LastName | FirstName |
|---|---|
| Hansen | Ola |
| Svendson | Tove |
| Pettersen | Kari |
مثال *SELECT
Wiki
می خواهیم تمام ستون های جدول Persons را انتخاب کنیم.
از دستور زیر استفاده می کنیم:
SELECT * FROM Persons
نکته: علامت ستاره (*) یک راه سریع برای انتخاب تمام ستون ها می باشد.
result-set به صورت زیر نمایش داده خواهد شد:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
پیمایش در result-set یا جدول نتایج:
Wiki
اکثر سیستم های نرم افزاری پایگاه داده اجازه پیمایش در رکوردهای جداول نتیجه را به وسیله توابع می دهند مثل:
Move-To-First-Record, Get-Record-Content, Move-To-Next-Record
این توابع جز این مجموعه آموزشی نمی باشد. برای یادگیری این توابع می توانید لینک PHP Home را بررسی کنید.
آموزش SQL-عبارت Distinct
در این فصل دستور SELECT DISTINCT را توضیح می دهیم.
دستور SELECT DISTINCT
Wiki
در یک جدول بعضی ستونها ممکن است داده های تکراری داشته باشند. بعضی مواقع شما می خواهید لیستی تهیه کنید که تنها داده های یکتا در آن باشد. یعنی همه داده ها را نشان دهد و داده های تکراری را یکبار نشان دهد.
کلید واژه DISTINCT برای برگرداندن داده های یکتا و متمایز به کار برده می شود.
فرم دستور SELECT DISTINCT:
SELECT DISTINCT column_name(s)
FROM table_name
مثال:
Wiki
در جدول زیر می خواهیم داده های یکتا از ستون City را بدست آوریم:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
از عبارت زیر برای این منظور استفاده می کنیم:
SELECT DISTINCT City FROM Persons
نتیجه به شکل زیر خواهد بود:
| City |
|---|
| Sandnes |
|
Stavanger |
آموزش SQL-عبارت Where
عبارت WHERE برای فیلتر کردن رکوردها استفاده می شود.
عبارت WHERE
Wiki
عبارت WHERE برای بیرون کشیدن رکوردهایی که در شرط خاصی صدق می کنند کاربرد دارد.
فرم عبارت WHERE:
SELECT column_name(s)
FROM table_name
WHERE column_name operator value
مثال:
در جدول 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 |
می خواهیم اطلاعات افرادی که در شهر Sandnes زندگی می کنند را انتخاب کنیم.
از دستور زیر استفاده می کنیم:
SELECT * FROM Persons
WHERE City='Sandnes'
نتیجه به شکل زیر خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
علامت کوتیشن در اطراف TEXT
Wiki
از کوتیشن در اطراف داده متنی (text) استفاده کنید (در اکثر پایگاه داده ها دابل کوتیشن " استفاده می شود.)
اما داده های عددی نیازی به قرار گرفتن در داخل کوتیشن ندارند.
برای داده های متنی:
این عبارت صحیح است:
SELECT * FROM Persons WHERE FirstName='Tove'
این عبارت غلط است:
SELECT * FROM Persons WHERE FirstName=Tove
برای داده های عددی:
این عبارت صحیح است:
SELECT * FROM Persons WHERE Year=1965
این عبارت غلط است:
SELECT * FROM Persons WHERE Year='1965'
عملگرهای مجاز در عبارت WHERE
Wiki
در عبارت WHERE مجاز به استفاده از این عملگرها هستیم:
| عملگر | توضیحات |
|---|---|
| = | مساوی است با |
| <> | مخالف با |
| < | بزرگتر است از |
| > | کوچکتر است از |
| >= | بزرگتر مساوی است با |
| <= | کوچکتر مساوی است با |
| BETWEEN | بین یک محدوده |
| LIKE | به دنبال یک الگو بگرد |
| IN |
برای جستجوی بر اساس چندین مقدار ممکن |
آموزش SQL-عبارت AND-OR
عملگرهای AND و OR برای فیلتر کردن رکوردها، براساس بیشتر از یک شرط استفاده می شوند.
عملگرهای AND و OR
Wiki
عملگر AND رکوردی را نمایش می دهد که هم شرط اول و هم شرط دوم در آن صدق کند.
عملگر OR رکوردی را نمایش می دهد که یا شرط اول و یا شرط دوم یا هر دو در آن صدق کند.
مثالی از عملگر AND
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 |
می خواهیم تنها افرادی را انتخاب کنیم که نام آنها مساوی "Tove" و نام خانوادگی آنها مساوی "Svendson" باشد.
برای این منظور از دستور SELECT زیر استفاده می کنیم.
SELECT * FROM Persons
WHERE FirstName='Tove'
AND LastName='Svendson'
نتیجه به شکل زیر خواهد شد:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
مثالی از عملگر OR
Wiki
می خواهیم افرادی را که نام آنها Tove یا Ola می باشد را انتخاب کنیم:
از دستور زیر استفاده می کنیم:
SELECT * FROM Persons
WHERE FirstName='Tove'
OR FirstName='Ola'
نتیجه به شکل زیر خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
ترکیب AND و OR
Wiki
می توانید AND و OR را با هم ترکیب کنید. (از پرانتز برای ترکیب عبارات استفاده کنید)
می خواهیم افرادی را انتخاب کنیم که نام خانوادگی آنها Svendson و نام آنها Tove یا Ola باشد.
از دستور زیر استفاده می کنیم:
SELECT * FROM Persons WHERE
LastName='Svendson'
AND (FirstName='Tove' OR FirstName='Ola')
جدول نتیجه به شکل زیر خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 2 | Svendson | Tove | Borgvn 23 |
Sandnes |
آموزش SQL-عبارت Order By
کلمه کلیدی ORDER BY برای مرتب کردن نتیجه پرس و جو استفاده می شود.
کلمه کلیدی ORDER BY
Wiki
دستور ORDER BY برای مرتب کردن نتیجه پرس و جو بر اساس ستون مشخص شده استفاده می شود.
در دستور ORDER BY به صورت پیش فرض، رکوردها به صورت صعودی (از کوچک به بزرگ) مرتب می شوند.
اگر می خواهید رکوردها را نزولی (از بزرگ به کوچک) مرتب کنید، باید از کلید واژه DESC استفاده کنید.
فرم کلی ORDER BY:
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC
مثال:
در جدول "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 |
| 4 | Nilsen | Tom | Vingvn 23 | Stavanger |
می خواهیم تمام افراد ازجدول بالا را انتخاب کنیم اما افراد بر اساس نام خانوادگی شان مرتب شده باشند.
از عبارت SELECT زیر استفاده می کنیم:
SELECT * FROM Persons
ORDER BY LastName
result-set به این صورت می شود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 4 | Nilsen | Tom | Vingvn 23 | Stavanger |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
مثال ORDER در حالت DESC
Wiki
حالا می خواهیم تمام افراد جدول بالا را بر اساس ترتیب نزولی نام خانوادگی شان انتخاب کنیم.
از عبارت SELECT زیر استفاده می کنیم:
SELECT * FROM Persons
ORDER BY LastName DESC
result-set به صورت زیر خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
| 4 | Nilsen | Tom | Vingvn 23 | Stavanger |
| 1 | Hansen | Ola | Timoteivn 10 |
Sandnes |
آموزش SQL-دستور Insert
دستور INSERT INTO برای درج کردن(واردکردن) رکورد جدید به جدول استفاده می شود.
دستور INSERT INTO
Wiki
دستور INSERT INTO برای درج کردن (واردکردن) سطر جدید به جدول استفاده می شود.
فرم دستور INSERT INTO
می توان دستور INSERT INTO را به دو صورت نوشت:
در فرم اول نام ستونهایی که اطلاعات در آن درج می شوند مشخص نمی شود و تنها مقادیر مشخص می شود.
INSERT INTO table_name
VALUES (value1, value2, value3,...)
در فرم دوم هم نام ستون و هم مقادیری که باید درج شوند مشخص می شوند.
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
مثال:
جدول "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 |
حالا می خواهیم تا سطر جدیدی را به جدول فوق اضافه کنیم.
از عبارت SQL زیر استفاده می کنیم:
INSERT INTO Persons
VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger')
جدول "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 |
| 4 | Nilsen | Johan | Bakken 2 | Stavanger |
سطر جدید در انتهای جدول اضافه می شود.
داده را تنها به ستون های مشخصی اضافه کنید
Wiki
می توان تنها داده را به ستون های مشخصی اضافه کرد.
عبارت SQL زیر سطر جدیدی را اضافه می کند اما تنها داده ها را به ستون های "P_Id" و "LastName" و "FirstName" اضافه می کند.
INSERT INTO Persons (P_Id, LastName, FirstName)
VALUES (5, 'Tjessem', 'Jakob')
بنابراین جدول "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 |
| 4 | Nilsen | Johan | Bakken 2 | Stavanger |
| 5 | Tjessem | Jakob |
|
آموزش SQL-دستور Update
دستور UPDATE برای به روز رسانی(تغییر) رکوردهای مشخص(از مقدار فعلی به مقدار جدید) در جدول استفاده می شود.
دستور UPDATE
Wiki
دستور UPDATE برای به روز رسانی رکوردهای موجود در یک جدول استفاده می شود.
فرم دستور UPDATE:
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
مثال:
در جدول 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 |
| 4 | Nilsen | Johan | Bakken 2 | Stavanger |
| 5 | Tjessem | Jakob |
می خواهیم اطلاعات شخص "Tjessem, Jakob" را در جدول فوق update کنیم(تغییر دهیم).
از عبارت SQL زیر استفاده می کنیم:
UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'
WHERE LastName='Tjessem' AND FirstName='Jakob'
جدول 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 |
| 4 | Nilsen | Johan | Bakken 2 | Stavanger |
| 5 | Tjessem | Jakob | Nissestien 67 | Sandnes |
هشدار در مورد دستور UPDATE
Wiki
هنگام UPDATE کردن رکوردها دقت کنید. اگر بند WHERE را در مثال بالا حذف کنیم یعنی دستور به صورت زیر شود:
UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'
نتیجه به شکل زیر خواهد شد یعنی تمام رکوردها به یک مقدار تغییر می کنند:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Nissestien 67 | Sandnes |
| 2 | Svendson | Tove | Nissestien 67 | Sandnes |
| 3 | Pettersen | Kari | Nissestien 67 | Sandnes |
| 4 | Nilsen | Johan | Nissestien 67 | Sandnes |
| 5 | Tjessem | Jakob | Nissestien 67 |
Sandnes |
آموزش SQL-دستور Delete
دستور DELETE برای حذف رکوردها در یک جدول استفاده می شود.
دستور DELETE
Wiki
دستور DELETE برای حذف سطرها در یک جدول استفاده می شود.
فرم دستور DELETE
DELETE FROM table_name
WHERE some_column=some_value
مثال DELETE
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 |
| 4 | Nilsen | Johan | Bakken 2 | Stavanger |
| 5 | Tjessem | Jakob | Nissestien 67 | Sandnes |
می خواهیم شخص "Tjessem, Jakob" را از جدول Persons پاک کنیم.
از عبارت SQL زیر استفاده می کنیم:
DELETE FROM Persons
WHERE LastName='Tjessem' AND FirstName='Jakob'
جدول 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 |
| 4 | Nilsen | Johan | Bakken 2 | Stavanger |
Delete کردن تمام سطرها
Wiki
می توان تمام رکوردهای یک جدول را بدون Delete کردن جدول پاک کرد. این بدان معناست که ساختار، ویژگی ها و index (شاخص های جدول) به قوت خود باقی می مانند.
DELETE FROM table_name
or
DELETE * FROM table_name
آموزش پیشرفته SQL
آموزش SQL-عملگر Like
عملگر LIKE
Wiki
عملگر LIKE در بند WHERE براي پيدا کردن يک الگوي خاص در يک ستون استفاده مي شود.
فرم عملگر LIKE:
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
مثال عملگر LIKE
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 |
مي خواهيم افرادي که در شهري زندگي مي کنند که با حرف s شروع مي شود را انتخاب کنيم.
از دستور زير استفاده مي کنيم:
SELECT * FROM Persons
WHERE City LIKE 's%'
توجه کنيد که يک الگو را در بين کوتيشن مي نويسيم.
علامت % جانشيني براي يک يا چند کاراکتر در الگو استفاده مي شود که مي تواند اين کاراکترها هر چيزي باشد.
جدول نتايج بدين شکل خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
حال اگر بخواهيم افرادي را انتخاب کنيم که در شهري زندگي مي کنند که به کاراکتر S ختم مي شوند از دستور زير استفاده مي کنيم:
SELECT * FROM Persons
WHERE City LIKE '%s'
جدول نتايج به شکل زير خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
حال اگر بخواهيم افرادي را انتخاب کنيم که در شهري زندگي مي کنند که حاوي کلمه "tav" در نام شهر خود مي باشند از دستور زير استفاده مي کنيم:
SELECT * FROM Persons
WHERE City LIKE '%tav%'
جدول نتايج به شکل زير خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
مي شود افرادي را انتخاب کرد که در شهري زندگي مي کنند که حاوي کلمه "tav" نمي باشند. اين کار را با کليد واژه NOT قبل از عملگر LIKE انجام مي دهيم. (NOT LIKE)
از دستور زير استفاده مي کنيم:
SELECT * FROM Persons
WHERE City NOT LIKE '%tav%'
جدول نتايج به شکل زير خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 |
Sandnes |
آموزش SQL-کاراکترهای جایگزین
wildcard ها می توانند هنگام جستجوی داده از یک پایگاه داده مورد استفاده قرار گیرند.
Wildcardها یا کاراکترهای جایگزین در SQL
Wiki
Wildcardها می توانند جانشین یک یا چند کاراکتر برای جستجوی داده در یک پایگاه داده شوند.
Wildcardها باید به همراه عملگر LIKE استفاده شوند.
Wildcardهای زیر در SQL می توانند استفاده شوند:
| Wildcard | توضیحات |
|---|---|
| % | جانشینی برای صفر یا چند کاراکتر |
| _ | جانشینی برای دقیقا یک کاراکتر |
| [charlist] | کاراکترهای نوشته شده در براکت |
|
یا [^charlist]
[!charlist] |
به غیر از کاراکترهای نوشته شده در براکت |
مثال Wildcardها
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 |
کاربرد %
Wiki
می خواهیم افرادی را انتخاب کنیم که در شهری زندگی می کنند که با sa شروع می شود.
از دستور زیر استفاده می کنیم:
WHERE City LIKE 'sa%'
جدول نتایج به شکل زیر خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
حال می خواهیم افرادی را انتخاب کنیم که در شهری زندگی می کنند که نام آن شهر حاوی nes می باشد.
از دستور زیر استفاده می کنیم:
WHERE City LIKE '%nes%'
جدول نتایج به شکل زیر خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
کاربرد _ (زیر خط)
Wiki
می خواهیم افرادی را انتخاب کنیم که نام کوچک (first name) آنها با هر کاراکتری شروع شود و در ادامه حروف la آمده باشد.
از دستور زیر استفاده می کنیم:
WHERE FirstName LIKE '_la'
جدول نتایج به شکل زیر خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
حال می خواهیم افرادی را انتخاب کنیم که نام خانوادگی (last name) آنها با s شروع می شود و بعد از آن یک کاراکتر باشد و در ادامه end باشد و بعد یک کاراکتر باشد و در ادامه on باشد.
از دستور زیر استفاده می کنیم:
WHERE LastName LIKE 'S_end_on'
جدول نتایج به شکل زیر خواهد شد:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
کاربرد [آرایه ای از کاراکترها]
Wiki
می خواهیم از جدول persons افرادی را انتخاب کنیم که نام خانوادگی آنها با "b" یا "s" یا "p" شروع می شود.
از دستور زیر استفاده می کنیم:
WHERE LastName LIKE '[bsp]%'
جدول نتایج به شکل زیر خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
می خواهیم از جدول persons افرادی را انتخاب کنیم که نام خانوادگی آنها با "b" یا "s" یا "p" شروع نشود.
از دستور زیر استفاده می کنیم:
WHERE LastName LIKE '[!bsp]%'
جدول نتایج به شکل زیر خواهد شد:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 |
Sandnes |
آموزش SQL-عبارت TOP
عبارت TOP
Wiki
عبارت TOP برای مشخص کردن تعداد رکوردهایی که می خواهیم برگردانده شود استفاده می شود.
عبارت TOP در جداول بزرگ با هزاران رکورد می تواند بسیار مفید باشد. بیرون کشیدن تعداد زیادی از رکوردها می تواند روی عملکرد بسیار مؤثر باشد.
فرم عبارت TOP:
SELECT TOP number|percent column_name(s)
FROM table_name
معادل SELECT TOP در MySQL و Oracle
Wiki
فرم آن در MySQL:
SELECT column_name(s)
FROM table_name
LIMIT number
مثال:
SELECT *
FROM Persons
LIMIT 5
فرم آن در Oracle:
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number
مثال:
SELECT *
FROM Persons
WHERE ROWNUM <=5
مثال در SQL
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 |
| 4 | Nilsen | Tom | Vingvn 23 | Stavanger |
می خواهیم تنها دو رکورد اول را از جدول بالا انتخاب کنیم.
از دستور زیر استفاده می کنیم:
SELECT TOP 2 * FROM Persons
جدول نتایج result-set بدین صورت خواهد شد:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
مثال TOP PERCENT
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 |
| 4 | Nilsen | Tom | Vingvn 23 | Stavanger |
می خواهیم در جدول بالا 50 درصد رکوردها را انتخاب کنیم.
از دستور زیر استفاده می کنیم:
SELECT TOP 50 PERCENT * FROM Persons
جدول نتایج به شکل زیر خواهد شد:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 |
Sandnes |
آموزش SQL-عملگر IN
عملگر IN
Wiki
عملگر IN به شما اين امکان را مي دهد که چندين ارزش را در عبارت WHERE مشخص کنيد.
فرم عملگر IN:
FROM table_name
WHERE column_name IN (value1,value2,...)
مثال:
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 |
مي خواهيم افرادي را که نام خانوادگي آنها "Hansen" يا "Pettersen" مي باشد را انتخاب کنيم:
از دستور زير استفاده مي کنيم:
WHERE LastName IN ('Hansen','Pettersen')
جدول نتايج به شکل زير خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 |
Stavanger |
آموزش SQL-عملگر Between
عملگر BETWEEN در عبارت WHERE برای انتخاب محدوده ای از داده ها بین دو مقدار استفاده می شود.
عملگر BETWEEN
Wiki
عملگر BETWEEN یک محدوده از داده ها بین دو مقدار را انتخاب می کند. مقدارها می توانند اعداد، متن ها و تاریخ باشد.
فرم عملگر BETWEEN:
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
مثال 1
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 |
می خواهیم افرادی را انتخاب کنیم که نام خانوادگی آنها از نظر الفبایی بین Hansen و Pettersen می باشد.
از دستور زیر استفاده می کنیم:
WHERE LastName
BETWEEN 'Hansen' AND 'Pettersen'
جدول نتایج به شکل زیر خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
در بعضی از پایگاه داده ها، افرادی با نام خانوادگی Hansen یا Pettersen لیست نمی شوند، زیرا عملگر BETWEEN فیلدهای بین دو مقدار را بجز مقادیر ابتدا و انتهای محدوده برمی گرداند.
در بعضی دیگر از پایگاه داده ها، افرادی با نام خانوادگی Hansen یا Pettersen لیست می شوند، زیرا عملگر BETWEEN فیلدهای بین دو مقدار رابه همراه مقادیر ابتدا و انتهای محدوده برمی گرداند.
در بعضی دیگر از پایگاه داده ها، افرادی با نام خانوادگی Hansen لیست می شوند اما نام خانوادگی Pettersen در لیست نمی آید (مانند مثال بالا)، زیرا عملگر BETWEEN فیلدهای بین دو مقدار رابه همراه مقدار ابتدایی و بدون مقدار انتهایی محدوده برمی گرداند.
بنابراین: پایگاه داده خود را کنترل کنید که چگونه با عملگر BETWEEN رفتار می کند.
مثال 2
Wiki
برای نمایش افرادی که خارج از محدوده هستند از دستور NOT BETWEEN استفاده کنید:
WHERE LastName
NOT BETWEEN 'Hansen' AND 'Pettersen'
جدول نتایج به شکل زیر خواهد بود:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 |
Stavanger |