قدیمی 04-12-2008, 12:51 AM   #1 (permalink)
مدير کل انجمن و سایت
Admin
 
rahimonline آواتار ها
 
تاریخ عضویت: Mar 2007
محل سکونت: BONAB
پست ها: 5,300
تشکر: 492
تشکر شده 662 بار در 589 پست
Activity Longevity
18/20 20/20
Today پست ها
sssss5300
rahimonline به AIM ارسال پیام rahimonline به Yahoo ارسال پیام فرستادن پیام با Skype به rahimonline
پیش فرض شروع مبتدیانه Sql در 24 ساعت

من این مطلب تو وب خودم هم زده بودم اینجاهم میزنم چون فکر کنم مثل بقیه آموزش هام در زبانی بسیار ساده شروع کردم... امیدوارم خوشتون بیاد...
-----------------------------------------------------------------------
سلام دوستان اینبار میخوام با هم دیگه یه مقدمه ای بر SQl بزنیم تا با هم دستوراتشو اجرا کنیم.
پس ما از همون اولاش شروع میکنم. ( اگه دوستایی حرفه تر ی از ما بودن کمک برسونن)
چون میخوام نحوه کار رو با SQL Express Ediotion باشه و لازمه با شکل جلو بریم فعلا امروز چند تا از خصوصیات SQl رو توضیح میدم. تا واسه بعد که شکلا آماده میشه شروع بهتری داشته باشم
1.نگاهی به فرامین وقوانین SQL
اصولا مثل VisuaBasic مثل خوندن به زبان شیرین اجنبی ( انگلیسی) است. این رو رفته رفته خواهیم داد.
1.1دستور اول CREATE:
از این دستور برای ایجاد پایگاه داده و جداول استفاده می شود.
1.2دوستور دوم DROP :
همون DELETE خودمون است
1.3دستور سوم ALTER :
یا به زبان بسار ساده UPDATE دقیقا یک کار رو انجام میده . بروز رسانی حذف ، افزایش و... داده
2.دستورات:
2.1- نام بانک اطلاعاتی ما نباید از 128 کارکتر بیشتر باشد
2.2- این نام ها منحصر بفرد بوده ونمیتواند از نام های رزرو شده باشد.
2.3-در قواعد نامگذاری بهتر است نکات زیر رو هم در نظر بگیریم.
2.3.1 نخستین کارکتر باید با یک حرف یا ( _ )آندرلاین علامت @ یا # باشد
2.3.2 کاترکترهای بعدی میتوانند همه چیزی باشند
2.3.3 -چیزی به اسم فضای خالی نداریم یعنی نمیتوانیم از دکمه Space استفاده کنیم.
اینم یه جدول که مختصری از مفید ترین نوع داده های که همیشه استفاده میشه رو براتون نشون میده.

rahimonline هم اکنون آنلاین است.   پاسخ با نقل قول
قدیمی 04-12-2008, 12:57 AM   #2 (permalink)
مدير کل انجمن و سایت
Admin
 
rahimonline آواتار ها
 
تاریخ عضویت: Mar 2007
محل سکونت: BONAB
پست ها: 5,300
تشکر: 492
تشکر شده 662 بار در 589 پست
Activity Longevity
18/20 20/20
Today پست ها
sssss5300
rahimonline به AIM ارسال پیام rahimonline به Yahoo ارسال پیام فرستادن پیام با Skype به rahimonline
پیش فرض قدم اول

خوب میرسیم به قدم اول
فرض من بر اینه که شما SQL SerVer رو نصب کردین.
خوب کافیه تو شروع برنامه روی گزینه NewQuery کلیک کنید.

حالا تو پنجره ایجاد شده ما میخواهیم پایگاه داده خودمون رو ایجاد کنیم . واسه اینکار گفتیم که باید از دستور
کد:
CREATE DATABASE databaseName
من اینجا پایگاه داده ای با نام shceg ایجاد کردم

الان دکمه زیبای F5 رو بزنید. تا نتیجه کارتون رو ببینید
میبینید که نتیجه موفقیت آمیز برای من نشان داده شد
[HIGHLIGHT=#ff0000]فقط شایان ذکر است که یک بار در دستوراتتون پایگاه دادتو رو ایجاد کنید چون شما اجازه ایجاد فقط یک پایگاه داده با یک نام دارین یعنی نمیتونین همیشه یه پایگاه داده با یه اسم ثابت ایجاد کنید[/highlight]
خو ب حالا باید این پایگاه داده ما واسه خودش یه جدول داشته باشه( جدول هم همون خصوصیات است) من اینجا یه جدول به اسم myinfo ایجاد میکنم که دارای خصیصه های Id یک شمارنده fname فیلد اسم از نوع کارکتری یونیکد lname فیلد اسم که این هم کارکتر است.

دقت کنید که میتونید برای خصیصه char تعداد معرفی کنید مثلا اعلام کنید که کارکتر چندتائی من اینجا برای نام حداکثر 20 کارکتر وبرای نام خانوادگی 25 کارکتر درنظر گرفتم.
توجه:
نوع داده ای int نمیتواند تعداد داشته باشد یعنی شما نمیتوانید بنویسید
کد:
Age int(5)
دقکت کردید که من در شکل دوم از عبارت USE databasename استفاده کردم چون من یکبار این پایگاه رو ایجاد کردم دیگر اجازه ایجاد مجدد ندارم.
در ضمن در هر مرحله ای برای نمایش اطلاعات موجود میتویند از دستور
کد:
SELECt * FROM tableName
استفاده کنید. در اینجا * به معنی کل اطلاعات است.( در آینده بیشتر با این مورد کار خواهیم کرد)
rahimonline هم اکنون آنلاین است.   پاسخ با نقل قول
قدیمی 04-12-2008, 09:14 PM   #3 (permalink)
مدير کل انجمن و سایت
Admin
 
rahimonline آواتار ها
 
تاریخ عضویت: Mar 2007
محل سکونت: BONAB
پست ها: 5,300
تشکر: 492
تشکر شده 662 بار در 589 پست
Activity Longevity
18/20 20/20
Today پست ها
sssss5300
rahimonline به AIM ارسال پیام rahimonline به Yahoo ارسال پیام فرستادن پیام با Skype به rahimonline
پیش فرض

حالا به یک دستور مهم وحیاتی به نامه INSERT INTO می رسیم.
همون طور که از اسمش معلومه جهت وارد کردن اطلاعات به درون پایگاه دده به کار می رود
روش استفاده هم ساده و به صورت زیر است:
کد:
INSERT INTO TableName VALUES (data1,'data2',data3)
من نمونه ساده رو به کار میگیرم رو همون پایگاه داده ای که قبلا ایجاد کردیم. ومقادیری رو وارد کردیم

همونطوری که میدونیم پایگاه داده ما دارای سه فیلد شماره ، نام و نام خانوادگی بود. وما این مقادیر رو وارد کردیم.
دیدید که به سادگی میتونید مقادیری رو وارد پایگاه داده بکنیم فقط به یاد داشته باشی که اعداد موجود برای ID که به صورت PRIMARY KEY تعریف شده اند نمیتوانند مساوی باشند مثلا در مثال ما این عمل رو انجام داده ایم و در نتیجه سیستم برای ما خطائی رو بازگردانده است
rahimonline هم اکنون آنلاین است.   پاسخ با نقل قول
قدیمی 04-12-2008, 09:23 PM   #4 (permalink)
مدير کل انجمن و سایت
Admin
 
rahimonline آواتار ها
 
تاریخ عضویت: Mar 2007
محل سکونت: BONAB
پست ها: 5,300
تشکر: 492
تشکر شده 662 بار در 589 پست
Activity Longevity
18/20 20/20
Today پست ها
sssss5300
rahimonline به AIM ارسال پیام rahimonline به Yahoo ارسال پیام فرستادن پیام با Skype به rahimonline
Exclamation بخش سوم

ایت دستور جهت مرتب سازی ساده به کار میرود روش کار هم ساده است:
کد:
 
SELECT ColumnName FROM TABLE 
ORDER BY ColumnName
مثلا من میخواهم که یک آمار بر حسب نام های موجود بگیرم همانطور که میدانیم نام ها بر اساس حروف الفبا وارد نشده اند توسط این دستور ساده می توانید نام ها را بر اساس ترتیب الفبائی مشاهده کنید:
کد:
 
USE shceg 
SELECT  fname FROM myinfo 
ORDER  BY fname 
SELECT * FROM myinfo
rahimonline هم اکنون آنلاین است.   پاسخ با نقل قول
قدیمی 04-14-2008, 01:10 AM   #5 (permalink)
مدير کل انجمن و سایت
Admin
 
rahimonline آواتار ها
 
تاریخ عضویت: Mar 2007
محل سکونت: BONAB
پست ها: 5,300
تشکر: 492
تشکر شده 662 بار در 589 پست
Activity Longevity
18/20 20/20
Today پست ها
sssss5300
rahimonline به AIM ارسال پیام rahimonline به Yahoo ارسال پیام فرستادن پیام با Skype به rahimonline
پیش فرض

راستی یادم رفت بگم که ما میتونیم این آمار رو به صورت صعودی ونزولی هم مرتب کنیم. ساده است کافیه از کلمات کلیدی ASC, DESc استفاده کنیم.
ببینید:
DESC مخفف کلمه DECREMENT یا نزولی
ASC مخفف کلمه ASCCEDING یا صعودی است
من در این شکل خواهان نمایش به صورت نزولی میباشم ببینید:

دستور این کار هم ساده است:
کد:
 
SELECT  COLUMNNAME FROM TableName 
ORDER  BY CoulmnName DESC or ASC
rahimonline هم اکنون آنلاین است.   پاسخ با نقل قول
قدیمی 04-15-2008, 11:34 AM   #6 (permalink)
مدير کل انجمن و سایت
Admin
 
rahimonline آواتار ها
 
تاریخ عضویت: Mar 2007
محل سکونت: BONAB
پست ها: 5,300
تشکر: 492
تشکر شده 662 بار در 589 پست
Activity Longevity
18/20 20/20
Today پست ها
sssss5300
rahimonline به AIM ارسال پیام rahimonline به Yahoo ارسال پیام فرستادن پیام با Skype به rahimonline
پیش فرض And / Or

and و or جهت اتصال دو یا چند موقعیت درWhERE به کار میرود.
AND جهت نمایش سطری از عوامل درست.که فقط درست هستند به کار می رود.
OR جهت نمایش سطرهایی از لیست که ممکن است درست باشند به کار می رود.
فرض کنید جدول ما دارای داده های زیر باشد.

فرض کنید می خواهیم می خواهیم داده ای را انتخاب کنیم که نامش برابر hamid وایمیل آن NULL باشد.
حالا میخواهیم از OR استفاده کنیم. اینجور عمل میکنیم.
کد:
 
USE 
SHCEG 
SELECT  * FROM myinfo WHERE fname='hamid' AND email IS NULL[/color]

نتیجه رو دیدیم.
حال میخوایم داده ای را جستجو کنیم که نامش hamid یا ایمیل آن NULL باشد.
کد:
 
USE 
SHCEG 
SELECT 
* FROM myinfo WHERE fname='hamid' OR email IS NULL 
[/size][/color]

میبینیم. نتایج به صورت کلی تر آمد یعنی جائی که یا نام برابر hamid یا ایمیل مقداری ندارد
rahimonline هم اکنون آنلاین است.   پاسخ با نقل قول
قدیمی 04-16-2008, 08:47 PM   #7 (permalink)
مدير کل انجمن و سایت
Admin
 
rahimonline آواتار ها
 
تاریخ عضویت: Mar 2007
محل سکونت: BONAB
پست ها: 5,300
تشکر: 492
تشکر شده 662 بار در 589 پست
Activity Longevity
18/20 20/20
Today پست ها
sssss5300
rahimonline به AIM ارسال پیام rahimonline به Yahoo ارسال پیام فرستادن پیام با Skype به rahimonline
پیش فرض

از دستور IN یراس مقدار دقیق یک داده استفاده می شود.
شکل کلی ان به صورت
کد:
SELECT column_name FROM table_name
WHERE column_name IN (value1,value2,..)
طبق معمول یک مثال می زینم. من مثلا میخوام داده رو جستجو کنم که مقدار دقیق اسم اون به صورت mehrdad و hamid است
ساده است. دستورش به شکل زیر میشه
کد:
use shceg
select * from myinfo
where fname in('mehrdad','hamid')
اینم نتیجه کار ببیند.
rahimonline هم اکنون آنلاین است.   پاسخ با نقل قول
پاسخ

علاقه مندی ها (Bookmarks)

ابزارهای تاپيك
نحوه نمایش

شرايط ارسال
شما نمیتوانید تاپيك جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code is فعال
شکلک ها فعال است
کد [IMG] فعال است
کدهای HTML غیر فعال است
Trackbacks are فعال
Pingbacks are فعال
Refbacks are فعال
انتخاب سریع یک انجمن



Powered by vBulletin Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises  LC

:
Design by TaHa