PDA

View Full Version : دستورات SQL Server



اصغر (پآچ)
چهارشنبه 25 اردیبهشت 1387, 16:12 عصر
سلام دوستاي عزيز
امروز مي خوام براي اون دسته از دوستايي كه جديدا برنامه نويسي رو شروع كردن و با SQL Server آشنايي ندارن و يا اون دسته از دوستان كه دستورات اين رو فراموش كردن يه سري دستورات پر كاربرد در برنامه نويسي پايگاه داده رو بذارم. اگه كسايي هستند كه خارج از اين دستورات دستورات ديگه اي بنظرشون ميرسه پر كاربردند رو بذارن ممنون ميشم.

اصغر (پآچ)
چهارشنبه 25 اردیبهشت 1387, 16:12 عصر
1 -

انتخاب يك سري فيلد از پايگاه داده است كه با دستور SELECT انجام ميشه؛


فرم كلي استفاده از اين دستور به اين شكله:




SELECT فیلد2, ...,] فیلد 1]
FROM <نام جدول>




مثال:





SELECT *
FROM teachers
و
SELECT name FROM teachers

اصغر (پآچ)
چهارشنبه 25 اردیبهشت 1387, 16:23 عصر
2 -انتخاب يك سري فيلد از پايگاه داده است با شرايط خاص كه با دستور SELECT انجام ميشه؛


فرم كلي استفاده از اين دستور به اين شكله:





SELECT فیلد2, ...,] فیلد 1]
FROM<نام جدول>
WHERE <شرط ها>




مثال:





SELECT *
FROM teachers
WHERE teachercode >100
و
SELECT name
FROM teachers
WHERE teachercode >100



در اين دستور مي توان از جملات(... ,Where Clause (OR, AND, NOT, IS, LIKE استفاده نمود.

اصغر (پآچ)
چهارشنبه 25 اردیبهشت 1387, 16:31 عصر
3

–ايجاد يك محدوده مشخص در يك فيلد از پايگاه داده است كه با دستور Where … Between انجام ميشه؛


فرم كلي استفاده از اين دستور به اين شكله:





SELECT فیلد2, ...,] فیلد 1]
FROM<نام جدول>
WHERE فيلد BETWEEN شروع محدوده AND پايان محدوده




مثال:





SELECT *
FROM Sell
WHERE Date BETWEEN2003/01/01 AND 2003/01/31

اصغر (پآچ)
چهارشنبه 25 اردیبهشت 1387, 16:36 عصر
4 –پيدا كردن كلمات مشابه در يك فيلد از پايگاه داده است؛


فرم كلي استفاده از اين دستور به اين شكله:






SELECT فیلد2, ...,] فیلد 1]
FROM <نام جدول>
WHERE فيلد LIKE'كلمه مورد نظر'




مثال:






SELECT *
FROM teachers
WHERE name LIKE'Ali'





براي تعميم به كلمات مشابه به هر طولي:





SELECT *
FROM teachers
WHERE name LIKE'Ali%'





براي تعميم كلمه مورد نياز در هر محلي:





SELECT *
FROM teachers
WHERE name LIKE'%Ali%'





بجاي كلمه LIKEمي توان از علامت = نيز استفاده كرد.

اصغر (پآچ)
چهارشنبه 25 اردیبهشت 1387, 16:41 عصر
5 – پيدا كردن مقادير خاص در يك فيلد از پايگاه داده است؛
فرم كلي استفاده از اين دستور به اين شكله:


SELECT فیلد2, ...,] فیلد 1]
FROM <نام جدول>
WHERE فيلد IN (مقدار1, مقدار2, …)

مثال:


SELECT *
FROM teachers
WHERE teachercod IN (101, 900, 56)

اصغر (پآچ)
چهارشنبه 25 اردیبهشت 1387, 16:49 عصر
6 – پيدا كردن ركورد هاي پر نشده يك فيلد از پايگاه داده است؛
فرم كلي استفاده از اين دستور به اين شكله:


SELECT فیلد2, ...,] فیلد 1]
FROM <نام جدول>
WHERE فيلد IS NULL

تذكر خيلي مهم: Null با Blank كاملا متفاوت است. چنانچه در فيلدي (Space)ريخته شود آن فيلد Null نيست بلكه Blank محسوب مي شود. اما اگر در فيلدي هيچ چيز ريخته نشود Null به حساب خواهد آمد.

اصغر (پآچ)
چهارشنبه 25 اردیبهشت 1387, 16:54 عصر
7 – مرتب سازي پايگاه داده؛
فرم كلي استفاده از اين دستور به اين شكله:


SELECT فیلد 2 ,] فیلد 1, ...]
FROM <نام جدول>
ORDER BY <فيلد> [Asc/Desc]

مثال:


SELECT *
FROM teachers
ORDER BY teachercod ASC

تذكر مهم: فيلدي كه مرتب سازي بر اساس آن انجام مي شود بايد در دستور Select قيد شده باشد.

اصغر (پآچ)
چهارشنبه 25 اردیبهشت 1387, 16:57 عصر
8 - استفاده از عبارات رياضي در دستور Select:
استفاده از توابع آماده رياضي؛
فرم كلي استفاده از اين دستور به اين شكله:


SELECT فيلد 1) توابع رياضي) [AS نام مستعار]
FROM <نام جدول>

ليست توابع رياضي:
Max : بيشترين مقدار در ركوردها؛ Min : كمترين مقدار در ركوردها؛ Sum : مجموع مقادير ركوردها؛
Count : تعداد ركوردها؛ Avg : ميانگين ركوردها؛
مثال:


SELECT MAX(speed)
FROM cars
و
SELECT MAX(speed) AS faster
FROM cars

اصغر (پآچ)
چهارشنبه 25 اردیبهشت 1387, 17:02 عصر
9 – ارتباط بين پايگاه هاي داده؛
فرم كلي استفاده از اين دستور به اين شكله:


SELECT فیلد 2 ,] فیلد 1, ...]
FROM <نام جدول1> INEER JOIN
<نام جدول2> ON فیلد.جدول 2 = فیلد.جدول 1


مثال:


SELECT *
FROM teachers INEER JOIN
students ON teachers.name = students.teacher

اصغر (پآچ)
چهارشنبه 25 اردیبهشت 1387, 17:05 عصر
10 – (Select)انتخاب هاي تو در تو؛
فرم كلي استفاده از اين دستور به اين شكله:


SELECT فیلد 2 ,] فیلد 1, ...]
FROM <نام جدول1,نام جدول2 >
WHERE عملگرها فيلد ( SELECT فیلد 2 ,] فیلد 1, ...]
FROM <نام جدول1,نام جدول2 >)


ليست عملگرها:
IN/ NOT IN: در مجموعه هست/نيست؛ EXISTS/ NOT EXISTS: اگر وجود دارد/ندارد؛
ANY: حداقل يكي؛ ALL: حتما همه؛ >, <, =, <=, >=, <>: روابط منطقي در فيلد؛
مثال: انتخاب دانش آموزاني كه نمره بالاتر از 15 گرفته اند.


SELECT studentname
FROM students
WHERE studentcode IN (SELECT studentcode
FROM term
WHERE grade>15)

نكته مهم: چرا از (Select)انتخاب هاي تودر تو استفاده مي كنيم؟
چون استفاده از اين روش دستورات SQL رو خواناتر و سريعتر و بعداً اگه وقت كنم نشون مي دم كه تركيب اين قابليت با ديگر دستورات چقده مفيده!

Vahid_moghaddam
پنج شنبه 26 اردیبهشت 1387, 09:52 صبح
البته select های تو در تو زمان انجام عملیات رو افزایش می ده. در استفاده از اونها باید دقت کرد. استفاده از join ها هم روش مناسبیه.

Vahid_moghaddam
پنج شنبه 26 اردیبهشت 1387, 09:56 صبح
SELECT studentname
FROM students
WHERE studentcode IN (SELECT studentcode
FROM term
WHERE grade>15)
نمونه:



Select studentname from students
inner join term on students.studentcode=term.studentcode and term.grade>15

daniyal_1363
شنبه 29 خرداد 1389, 11:54 صبح
سلام

کاشکی آدم ها یاد بگیرن به حقوق بقیه احترام بزارن

این کتاب Sql رو من چند سال پیش خوندم - جالبه که تمام نوشته هاش اینجا هست

و جالبه که هیچ اسمی ازش برده نشده (قابل توجه دوستانی که از روی نوشته های دیگران پست میدن ولی منبع رو ذکر نمی کنند)