امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
SQL Statements
نویسنده پیام
ajlajlajl آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,192
موضوع‌ها: 70
تاریخ عضویت: مهر ۱۳۸۴

تشکرها : 932
( 2618 تشکر در 1020 ارسال )
ارسال: #1
SQL Statements
دیدم آقای lord_viper بحثو شروع کرده گفتم منم بحثو کاملش کنم. البته میدونم که اینجا همه بلدند ولی گفتم یه آموزش کاملش باشه بد نیست.
این مطالب ترجمه شده از سایت www.sql-tutorial.net و www.w3schools.com و چند تا منبع دیگه است. هر بار که به سایت سر بزنم یه خردشو ترجمه میکنم و مینویسم و میارم.

میزان رای دشمن است!
[تصویر:  cff100.png]
۲۷-اسفند-۱۳۸۶, ۱۷:۴۷:۳۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : lord_viper
ajlajlajl آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,192
موضوع‌ها: 70
تاریخ عضویت: مهر ۱۳۸۴

تشکرها : 932
( 2618 تشکر در 1020 ارسال )
ارسال: #2
RE: SQL Statements
مقدمه ای بر SQL (Structured Query Language)
SQL یک زبان استاندارد برای ارتباط با پایگاه داده ها و خواندن و نوشتن در آنها است. با SQL میتونید یه پایگاه داده بسازید ، جدول ها شو بسازید ، اطلاعات توش ذخیره کنید ، اطلاعات از یه جدول بخونید ، خالیش کنید و هر کار دیگه ای که بخواید.( البته چون قبلا توی فروم دیدم سعی کنید پایگاه داده هاتون رو بر اساس استاندارد ها طراحی کنید تا انتظارات بیجا ازشون نداشته باشید. اگه پایگاه داده هاتون استاندارد و مهندسی باشه همینا برای کار باهاش کافیه) و بقول سایت دوم یاد گرفتنش هم آسونه (خب آسونه دیگه). شما میتونید از SQL برای ارتباط با پایگاه داده هایی مثل MS Access , DB2 , Informix , MS SQL Server , MySQL , Oracle, Sybase و ... استفاده کنید . ولیک باید یک نکته رو در نظر داشته باشید که اکثر این نرم افزار ها مثل MySQL و Access و ... برای خودشون استاندارد هایی در دستورات SQL به وجود آوردند ( مثلا Access استاندارد JET SQL رو ساخته ، MySQL استاندارد T-SQLو Oracle هم PL/SQL و بهمین ترتیب ...) . البته نگران نباشید چون در اکثر اونها دستورات اصلی تفاوتی ندارند یا تفاوت های خیلی جزئی دارند که ممکنه حتی متوجه اونها هم نشید. به هرحال میتونید با کمی کار کردن با هر کدومشون راه بیفتید. بلاخره منظور این بود که ما قراره SQL استانارد رو یاد بدیم که بقول سایت یه ANSI standard هسته.
در این مقالات قراره که فقط دستورات رو یاد بدیم و چطوری ازشون استفاده کنید دیگه گردن خودتونه. قبل از شروع آموزشات هم باید با مفهوم دیتابیس ، جدول ، فیلد ، رکورد و این جور چیزای ساده آشنا باشید.(اینم گردن خودتون)

نکته: در بعضی از این سیستم های مدیریت پایگاه داده باید آخر دستورات یه ; بگذارید.

SQL Data Manipulation Language (DML)
این بخش از زبان SQL برای دستیابی به دیتابیس و دستکاری اونه. چهار تا دستور زیر با هم بخش DML زبان SQL رو تشکیل میدند:

SELECT : استخراج داده از پیگاه داده
INSERT INTO : افزودن داده به پایگاه داده
UPDATE : به روز آوری داده های پایگاه داده
DELETE : حذف داده از پایگاه داده

SQL Data Definition Language (DDL)
این بخش از SQL هم برای کار با جداوله. ساخت ، حذف ، تعریف Index و غیره کار این دستوراته. مهم ترین این دستورات :

CREATE TABLE : یک جدول جدید می سازد
ALTER TABLE : ویرایش یک جدول
DROP TABLE : حذف یک جدول
CREATE INDEX : ساخت Index
DROP INDEX : حذف Index

میزان رای دشمن است!
[تصویر:  cff100.png]
۲۷-اسفند-۱۳۸۶, ۱۷:۴۹:۳۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : lord_viper
ajlajlajl آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,192
موضوع‌ها: 70
تاریخ عضویت: مهر ۱۳۸۴

تشکرها : 932
( 2618 تشکر در 1020 ارسال )
ارسال: #3
SELECT
دستور SELECT
دستور SELECT اولین و پرکاربرد ترین دستوریه که هر کسی باید یاد بگیره. با این دستور میتونید اطلاعاتی رو از جداول مورد نظرتون استخراج کنید. حالت کلی دستور اینه:
SELECT Column1, Column2, Column3,…
FROM Table1
نکته: میتونید دستوراتتون رو در یک خط یا چند خط بنویسید.

در اینجا جلو SELECT نام فیلد ها یی که می خواید رو مینویسید (Column) و نام جدولی که اطلاعات باید ازش بگیره هم رو جلو FROM مینویسید. اگه تمامی فیلد های جدول نمایش داده بشند میتونید بجای نوشتن نام همه فیلد ها از * استفاده کنید.
برای مثال اگه جدولی به شکل زیر با نام ST داشته باشیم :
Id name mark
------------------
1 ali 20
2 mamal 18
3 gholy 11
4 taghy 16
5 vali 15.5
6 hasan 9.5
دستور SELECT * FROM st نتیجه زیر ا میدهد:
Id name mark
-----------------------
1 ali 20
2 mamal 18
3 gholy 11
4 taghy 16
5 vali 15.5
6 hasan 9.5
یعنی دقیقا تمامی جدول با تمامی فیلد ها و دستور SELECT name,id FROM st :
name id
---------------------
ali 1
mamal 2
gholy 3
taghy 4
vali 5
hasan 6

ببخشید این جدول رو هیچ جور دیگه نتونستم نشون بدم.

میزان رای دشمن است!
[تصویر:  cff100.png]
(آخرین ویرایش در این ارسال: ۲۷-اسفند-۱۳۸۶, ۱۸:۰۰:۳۹، توسط ajlajlajl.)
۲۷-اسفند-۱۳۸۶, ۱۷:۵۸:۲۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : 00110, lord_viper
ajlajlajl آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,192
موضوع‌ها: 70
تاریخ عضویت: مهر ۱۳۸۴

تشکرها : 932
( 2618 تشکر در 1020 ارسال )
ارسال: #4
DISTINCT
DISTINCT
کلمه DISTINCT به شکل زیر در دستورات SQL استفاده می شود و باعث می شود تا در نتیجه دستور ردیف ها یی که تمامی اطلاعات فیلد های درخواست شده آنها تکراری است نمایش داده نشوند.
SELECT DISTINCT Column1, Column2, Column3,…
FROM Table1
برای مثال اگر جدولی به شکل زیر با نام ST داشته باشیم :
Id name mark
1 ali 20
2 mamal 18
3 gholy 11
4 taghy 16
5 vali 15.5
6 hasan 9.5
7 hossein 18
با اجرای دستور SELECT DISTINCT mark FROM st چنین نتیجه ای میبینید :
mark
20
18
11
16
15.5
9.5
در اینجا یک ردیف به علت تکراری بودن حذف شده و 6 ردیف بازگردانده شده است ولی با اجرای دستور SELECT DISTINCT mark ,id FROM st چنین نتیجه ای میبینید :
mark id
20 1
18 2
11 3
16 4
15.5 5
9.5 6
18 7
در اینجا 7 ردیف بازگردانده میشود چون تمامی اطلاعات ردیف 2 و 7 تکراری نیستند.

میزان رای دشمن است!
[تصویر:  cff100.png]
۲۷-اسفند-۱۳۸۶, ۲۲:۱۹:۴۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : lord_viper
ajlajlajl آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,192
موضوع‌ها: 70
تاریخ عضویت: مهر ۱۳۸۴

تشکرها : 932
( 2618 تشکر در 1020 ارسال )
ارسال: #5
WHERE
WHERE
و اما WHERE یکی دیگه از پر کاربرد ترین اجزاء دستورات SQL. این کلمه کلیدی در باعث می شود که عملیات مورد نظر ما فقط روی رکورد هایی که شرط نوشته شده جلو WHERE را دارا می باشند اجرا شود.
کلمه کلیدی WHERE به شکل زیر در دستورات SQL استفاده می شود.
SELECT Column1, Column2, Column3,…
FROM Table1
WHERE condition
که condition شرط مورد نظرمونه. توی شرط میتونید از علامت های = , <> , > , >= , < , <= و کلمات LIKE و BETWEEN استفاده کنیم. نحوه استفادهه از علامت های منطقی رو که همه بلدند. نحوه استفاده از دو تا کلمه هم رو بعدا میبینید.
مثال: جدول قبلی رو فرض بگیرید. با اجرای این دستور :
SELECT * FROM st WHERE mark>15
چنین نتیجه ای برگردانده می شود:
id name mark
-----------------------
1 ali 20
2 mamal 18
4 taghy 16
5 vali 15.5
7 hossein 18
همین طور که میبینید فقط تمامی رکورد هایی که فیلد mark آنها بزرگتر از 15 هست برگردانده می شوند.

میزان رای دشمن است!
[تصویر:  cff100.png]
۲۸-اسفند-۱۳۸۶, ۱۵:۵۵:۴۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : lord_viper
amin_amin آفلاین
كاربر دو ستاره
**

ارسال‌ها: 168
موضوع‌ها: 29
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 45
( 19 تشکر در 15 ارسال )
ارسال: #6
RE: SQL Statements
روشی وجود داره که از یه گرید روی فرم بتونیم به عنوان یک تیبل توی دستورات اس کیو ال استفاده کنیم ؟
مثلا من دو تا تیبل دارم و یک گرید

یه چیزی که همچین کاری رو بکنه :

select * from table,grid

که بعدش هم با inner join به چیزی که می خام برسم

راه حلش چیه ؟
(آخرین ویرایش در این ارسال: ۳۰-مرداد-۱۳۸۷, ۰۰:۵۴:۳۱، توسط amin_amin.)
۲۹-مرداد-۱۳۸۷, ۱۵:۱۳:۵۲
ارسال‌ها
پاسخ
far_222000 آفلاین
مدير بخش ديتابيس
*****

ارسال‌ها: 955
موضوع‌ها: 68
تاریخ عضویت: شهریور ۱۳۸۴

تشکرها : 468
( 1249 تشکر در 422 ارسال )
ارسال: #7
RE: SQL Statements
می تونی اون Grid رو با دستور Create Table به یه Table تبدیل کنی و این کار رو انجام بدی و به صورت مستقیم نه نمی شه

پارک24
مرجع خرید و فروش خودرو
۲۹-مرداد-۱۳۸۷, ۱۶:۰۷:۱۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : amin_amin


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS