1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [کریستوفر بارتولومیو] [دانشگاه هاروارد] 3 00:00:04,000 --> 00:00:06,000 [این CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 بنابراین، برنامه نویسان استفاده از پایگاه داده به عنوان یک ابزار برای ذخیره و سازماندهی 5 00:00:11,620 --> 00:00:13,620 داده های مداوم ما را در داخل جداول. 6 00:00:13,620 --> 00:00:18,960 این به این معنی است که اطلاعات خود را در در غیر فرار مادها مانند یک دیسک سخت ذخیره می شود، 7 00:00:18,960 --> 00:00:22,940 و حتی هنگامی که کامپیوتر خاموش است، داده است که هنوز دست نخورده است. 8 00:00:22,940 --> 00:00:29,530 و به عنوان برنامه نویسان، برنامه های ما استفاده از پایگاه های داده برای حالات مانند ذخیره سازی 9 00:00:29,530 --> 00:00:32,890 اطلاعات مربوط به کاربر را از فرم های وب، به دنبال موجودی، 10 00:00:32,890 --> 00:00:36,210 و یا به روز رسانی اطلاعات مربوط به سایت های نمایش. 11 00:00:37,150 --> 00:00:40,070 اما چگونه ما در واقع تعامل با پایگاه داده، 12 00:00:40,070 --> 00:00:43,150 یا چه چیزی استفاده می کنیم به خواندن، ذخیره، حذف، 13 00:00:43,150 --> 00:00:46,070 و به روز رسانی داده های ما در این جداول پایگاه داده؟ 14 00:00:47,280 --> 00:00:49,700 خب، جواب این است که ما با استفاده از نوع خاصی از زبان پایگاه داده 15 00:00:49,700 --> 00:00:53,400 که تعامل به طور مستقیم با جداول پایگاه داده ما است. 16 00:00:53,400 --> 00:00:56,740 نام آن ساختار زبان پرس و جو، 17 00:00:56,740 --> 00:00:58,740 [زبان پرس و جوی ساخت یافته] 18 00:00:58,740 --> 00:01:00,740 و یا آنچه که من به عنوان SQL مراجعه کنید. 19 00:01:00,740 --> 00:01:05,100 >> در حال حاضر، [SE-QueL]، SQL، یک زبان برنامه نویسی نیست، 20 00:01:05,100 --> 00:01:08,580 اما در عوض، آن را به زبان فراهم می کند که یک مجموعه استاندارد از دستورات 21 00:01:08,580 --> 00:01:13,520 برای بازیابی و دستکاری داده ها از انواع سیستم های مدیریت پایگاه داده است. 22 00:01:13,520 --> 00:01:17,630 هدف از CS50، ما به بیش از چهار دستور ساده: 23 00:01:17,630 --> 00:01:21,210 را انتخاب کنید، درج، به روز رسانی و حذف کنید. 24 00:01:21,210 --> 00:01:26,230 علاوه بر این، ما یک رابط وب پایگاه داده به نام phpMyAdmin به استفاده، 25 00:01:26,230 --> 00:01:29,890 که بر روی دستگاه نصب شده برای نوشتن بیانیه های SQL است. 26 00:01:30,830 --> 00:01:33,050 بنابراین، برای کمک به شما این دستورات را به یاد داشته باشید، 27 00:01:33,050 --> 00:01:37,080 من کیک را در یک کمد برای کمک به سناریوهای ما به ارمغان آورد. 28 00:01:39,650 --> 00:01:42,210 می گویند شما پایگاه داده نوعی کیک کوچک، 29 00:01:42,210 --> 00:01:44,490 که در آن شما ذخیره تمام اطلاعات در مورد کیک شما. 30 00:01:44,490 --> 00:01:48,220 در حال حاضر، پایگاه داده می تواند حاوی جداول بسیاری از 31 00:01:48,220 --> 00:01:50,950 و جداول خود را می توانید ستون های بسیاری داشته باشد. 32 00:01:50,950 --> 00:01:57,020 در داخل پایگاه داده نوعی کیک کوچک ما، ما باید یک جدول به نام cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 این جدول استفاده می شود برای ذخیره تمام اطلاعات در مورد کیک 34 00:02:00,500 --> 00:02:02,990 که هستند، به خوبی، در کمد خود را. 35 00:02:02,990 --> 00:02:07,770 ستون هایی که در داخل جدول خود را نشان دهنده ویژگی های یک نوعی کیک کوچک. 36 00:02:07,770 --> 00:02:14,560 برای مثال، ستون cupcake_cupboard 37 00:02:14,560 --> 00:02:15,920 کیک ID، CakeType، CakeColor، و CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 این ستون بولی تایپ استفاده می شود برای تعیین اینکه آیا کیک خوب است یا خوب نیست. 39 00:02:23,040 --> 00:02:26,560 ما قصد داریم تا با نوشتن یک عبارت SELECT شروع. 40 00:02:26,560 --> 00:02:32,160 اظهارات را انتخاب کنید برای بازیابی داده ها از یک جدول پایگاه داده خاص استفاده می شود. 41 00:02:32,160 --> 00:02:34,890 در این سناریو، ما می خواهیم همه چیز را میدانی 42 00:02:34,890 --> 00:02:39,080 در مورد همه کیک که در کمد ما وجود دارد. 43 00:02:39,080 --> 00:02:48,670 نحو برای انجام این کار "انتخاب" ستاره فضا، یا *، فضا از فضای میز ما است، 44 00:02:48,670 --> 00:02:52,050 است که cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 اجازه دهید به جلو و اجرا که. 46 00:02:56,670 --> 00:03:00,140 >> همانطور که مشاهده می کنید، این ها همه کیک در کمد ما. 47 00:03:00,140 --> 00:03:05,110 این مهم است که توجه داشته باشید که *، و یا ستاره است، یک شخصیت کارت های وحشی 48 00:03:05,110 --> 00:03:08,830 که بیانگر گزینه ای است که پاسخ دادن به آن جمع آوری تمام ستون های برخی از جدول. 49 00:03:08,830 --> 00:03:13,650 به طور معمول، ما می توانیم یک ستون یا ستون خاص دسترسی داشته باشید 50 00:03:13,650 --> 00:03:16,950 * جایگزینی با نام ستون واقعی است. 51 00:03:16,950 --> 00:03:21,220 اگر ما می خواهیم ستون های متعدد، اما نه همه، ما می توانیم از این رسیدن 52 00:03:21,220 --> 00:03:25,620 با نوشتن نام ستون delimiting هر ستون را با کاما از هم. 53 00:03:25,620 --> 00:03:28,620 به عنوان مثال، اجازه دهید تنها بازیابی CakeId و CakeType در جدول cupcake_cupboard. 54 00:03:28,620 --> 00:03:38,370 نحو به انجام این کار است: SELECT فضای کاما CakeID 55 00:03:38,370 --> 00:03:44,370 فضای CakeType از میز، cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 اجازه دهید به جلو و اجرا. 57 00:03:49,340 --> 00:03:52,670 و در اینجا، ما در حال حاضر تنها دو ستون مشخص 58 00:03:52,670 --> 00:03:54,670 برای هر نوعی کیک کوچک در گنجه. 59 00:03:54,670 --> 00:03:57,710 ما همچنین می توانید نتایج جستجو خود را با تعیین پالایش 60 00:03:57,710 --> 00:04:00,910 "جایی که" بند درست بعد از نام جدول. 61 00:04:02,000 --> 00:04:05,410 به عنوان مثال، به نظر می رسد نوعی کیک کوچک در کمد ما وجود دارد 62 00:04:05,410 --> 00:04:08,660 است که، خوب، نه چندان خوب به دنبال. 63 00:04:08,660 --> 00:04:13,950 بیایید کشف کردن تمام کیک در کمد ما که هستند، به خوبی، به طوری که خوب نیست به دنبال 64 00:04:13,950 --> 00:04:16,110 با استفاده از "کجا" بند. 65 00:04:16,110 --> 00:04:26,390 نحو به انجام این کار است: SELECT * FROM فضای cupcake_cupboard فضا 66 00:04:26,390 --> 00:04:34,080 فضای مکانی که در آن فضای ستون مشروط ما، در این مورد CakeIsNice، 67 00:04:34,080 --> 00:04:36,900 و مقدار بولی کاذب. 68 00:04:36,900 --> 00:04:42,750 این مهم است که توجه داشته باشید که اگر شما در حال استفاده از رشته ها، شما باید آن را در نقل قول ها تنها محصور است. 69 00:04:42,750 --> 00:04:49,620 این درست است برای همه رشته ها در SQL، و یا در قوانین و مقررات پایگاه داده SQL، نوع کاراکتر 70 00:04:49,620 --> 00:04:51,620 شناخته شده به عنوان نوع داده VARCHAR. 71 00:04:51,620 --> 00:04:57,660 در این مورد، ما با استفاده از درست یا غلط، که یک مقدار بولی است و نه یک رشته است. 72 00:04:59,120 --> 00:05:00,660 اجازه دهید به جلو بروید و این دستور را اجرا. 73 00:05:00,660 --> 00:05:05,340 >> چرا اینک و در این مورد است که در حال حاضر 1 شکلات 74 00:05:05,340 --> 00:05:07,920 پس خوب نیست نوعی کیک کوچک در کمد ما. 75 00:05:09,620 --> 00:05:11,460 بعد، ما در حال رفتن به نوشتن یک بیانیه درج. 76 00:05:11,460 --> 00:05:15,560 درج اظهارات استفاده می شود برای درج یا اضافه کردن 77 00:05:15,560 --> 00:05:17,770 ردیف های اضافی از داده را در جدول پایگاه داده خود را شده است. 78 00:05:17,770 --> 00:05:23,160 بازبینی سناریو ما، اجازه دهید فرض کنیم که ما فقط نوعی کیک کوچک با نام تجاری جدید. 79 00:05:25,910 --> 00:05:30,080 از آنجا که ما بسیار سازماندهی خواران نوعی کیک کوچک، ما قصد داریم به این نوعی کیک کوچک جدید برای وارد کردن 80 00:05:30,080 --> 00:05:32,330 در جدول cupcake_cupboard ما. 81 00:05:32,330 --> 00:05:40,690 نحو برای انجام این کار این است: قرار دادن فضا به فضای میز ما، 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard فضا (، 83 00:05:46,830 --> 00:05:51,060 و در اینجا نام ستون مشخص، وسیله کاما از هم، 84 00:05:51,060 --> 00:05:59,790 CakeType کاما CakeColor فضای کاما CakeIsNice). 85 00:05:59,790 --> 00:06:06,540 پس از این، ما به نوشتن کلمه فضای VALUES (، و در اینجا 86 00:06:06,540 --> 00:06:12,170 ما وارد ارزش برای هر ستون بود، همچنین به وسیله کاما از هم است. 87 00:06:12,170 --> 00:06:17,830 نقل قول تنها هستند، چرا که همه ارزش VARCHAR خواهیم آنها را در نقل قول تکی را احاطه کرده است، 88 00:06:17,830 --> 00:06:26,780 کاما "کاما" کره بادام زمینی قهوه ای روشن 'درست است. 89 00:06:26,780 --> 00:06:30,480 در حال حاضر، این مهم است که به هر سطر یک شماره منحصر به فرد به خود را شناسایی. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing ستون را فراهم می کند و این به عنوان 91 00:06:33,660 --> 00:06:37,410  "هیچ دو شناسه همیشه می توانید در این جدول وجود داشته باشد." 92 00:06:37,410 --> 00:06:39,480 اجازه دهید به جلو و اجرا. 93 00:06:39,480 --> 00:06:45,380 ما به تمام سازمان یافته است. 94 00:06:49,720 --> 00:06:52,100 >> بعد از بیانیه SQL است که ما نوشتن یک بیانیه به روز رسانی است. 95 00:06:52,100 --> 00:06:55,650 در این بیانیه به روز رسانی را می توان مورد استفاده قرار گیرد برای تغییر داده ها در یک ستون 96 00:06:55,650 --> 00:06:58,440 برای هر سطر موجود در جدول پایگاه داده خود را. 97 00:06:59,670 --> 00:07:03,420 پیش از آن در سناریوی ما، با استفاده از یک عبارت SELECT، شناسایی نوعی کیک کوچک 98 00:07:03,420 --> 00:07:08,300 در داخل جدول cupcake_cupboard ما ارزش که CakeIsNice اشتباه بود. 99 00:07:08,300 --> 00:07:12,050 بیایید فرض کنیم که در حالی که نوعی کیک کوچک ما کره بادام زمینی در فر، 100 00:07:12,050 --> 00:07:15,790 ما نه چندان خوب ما نوعی کیک کوچک بسیار خوب است. 101 00:07:18,020 --> 00:07:22,240 تا این حد استثنایی سازماندهی شده است، ما می خواهیم نوعی کیک کوچک ما را به بازتاب این مقدار 102 00:07:22,240 --> 00:07:24,240 در جدول cupcake_cupboard ما. 103 00:07:24,240 --> 00:07:28,710 بنابراین، اجازه دهید نوعی کیک کوچک شکلات در پایگاه داده را به روز رسانی کند تا منعکس کننده این. 104 00:07:28,710 --> 00:07:39,720 نحو است: فضای UPDATE جدول ما، cupcake_cupboard، فضای SET 105 00:07:39,720 --> 00:07:44,240 ستون است که ما مایل به تغییر، CakeIsNice. 106 00:07:44,240 --> 00:07:49,210 و سپس در اینجا فضای ارزش جدید ما درست است ما قرار دهید. 107 00:07:49,210 --> 00:07:54,290 در حال حاضر، چون ما نمی خواهیم برای به روز رسانی تمام ردیف با این مقدار، 108 00:07:54,290 --> 00:07:57,400 ما می خواهیم به ارائه یک "که در آن" بند که ما با دقت اشاره کردن 109 00:07:57,400 --> 00:07:59,830 به سطر دقیق که ما می خواهیم برای تغییر. 110 00:07:59,830 --> 00:08:03,690 در این مورد، ما می دانیم که فقط یک نوعی کیک کوچک وجود دارد 111 00:08:03,690 --> 00:08:06,670 است که ارزش CakeIsNice کاذب. 112 00:08:06,670 --> 00:08:11,030 علاوه بر این، ما نیز خواهد بود که ما در حال به روز رسانی سطر صحیح اطمینان حاصل شود 113 00:08:11,030 --> 00:08:13,030 با استفاده از "و" بند. 114 00:08:14,340 --> 00:08:17,270 ما با استفاده از "و" بند برای اصلاح پرس و جو ما بیشتر است. 115 00:08:17,270 --> 00:08:20,380 در این مورد، از آنجا که ما می دانیم که نوعی کیک کوچک شکلات، 116 00:08:20,380 --> 00:08:23,160 ما را از این ستون CakeType استفاده کنید. 117 00:08:23,160 --> 00:08:31,500 که در آن فضای ستون مشروط فضا فضا CakeIsNice = غلط، 118 00:08:31,500 --> 00:08:38,330 و فضای CakeType = "شکلات. ' 119 00:08:38,330 --> 00:08:41,880 بنابراین، قرار دادن آن همه با هم، این بیانیه به روز رسانی می گوید: 120 00:08:41,880 --> 00:08:44,670 پیدا کردن تمام کیک را در کمد نوعی کیک کوچک ما، 121 00:08:44,670 --> 00:08:50,520 و اگر نوعی کیک کوچک که ستون CakeIsNice حاوی مقدار نادرست وجود دارد 122 00:08:50,520 --> 00:08:54,130 و CakeType حاوی مقدار شکلات، 123 00:08:54,130 --> 00:08:58,240 ما می خواهیم برای به روز رسانی ارزش CakeIsNice ردیف خاص درست است. 124 00:08:58,240 --> 00:09:01,140 بنابراین، اجازه دهید به جلو و اجرای این بیانیه است. 125 00:09:03,860 --> 00:09:05,860 و در حال حاضر، ما در حال سازماندهی است. 126 00:09:06,650 --> 00:09:09,220 >> همه این بحث از کیک ساخته شده است به من کمی گرسنه است. 127 00:09:09,220 --> 00:09:11,360 من فکر می کنم من باید خودم را به یک کمک. 128 00:09:11,360 --> 00:09:17,670 اما اگر من در واقع خوردن این نوعی کیک کوچک، من حداقل نیز باید وجود آن را حذف 129 00:09:17,670 --> 00:09:19,670  از جدول cupcake_cupboard ما. 130 00:09:20,650 --> 00:09:22,590 برای انجام این کار، ما را از بیانیه "حذف" استفاده کنید. 131 00:09:22,590 --> 00:09:27,400 بیانیه "حذف" را می توان مورد استفاده قرار گیرد به حذف تمام یا برخی از ردیف از جدول. 132 00:09:27,400 --> 00:09:29,920 اگر شما مایل به حذف برخی از سطر خاص از جدول، 133 00:09:29,920 --> 00:09:34,360 سپس شما باید یک "از کجا بند"، یک ستون به این ترتیب مشخص 134 00:09:34,360 --> 00:09:37,660 منحصر به فرد است که باید به ردیف است که شما می خواهید به حذف. 135 00:09:37,660 --> 00:09:47,370 این نحو است: حذف فضا از فضا، میز، cupcake_cupboard، فضا. 136 00:09:47,370 --> 00:09:51,760 در حال حاضر، در این مرحله، هر زمان که شما از این دور در بیانیه خود را حذف 137 00:09:51,760 --> 00:09:54,240 شما می خواهید می شود بسیار دقیق است. 138 00:09:54,240 --> 00:09:59,970 برای مثال، اگر من می خواهم برای اجرای این پرس و جو را بدون ارائه برخی از "کجا" بند است 139 00:09:59,970 --> 00:10:04,500 من که همه داده ها را در این جدول cupcake_cupboard از دست دادن، 140 00:10:04,500 --> 00:10:09,590 بلکه به این دلیل که من در حال حاضر می دانیم که شناسه کیک من منحصر به فرد است، من با استفاده از 141 00:10:09,590 --> 00:10:12,410 قرمز مخملی کیک ID برای من "جایی که" بند. 142 00:10:14,550 --> 00:10:20,670 ستون ما، CakeID = 1 که در آن فضا است. 143 00:10:20,670 --> 00:10:25,010 به این دلیل که مقدار صحیح و بدون نیاز به آن را احاطه کرده در نقل قول تکی وجود دارد. 144 00:10:25,010 --> 00:10:27,020 بنابراین، اجازه دهید اجرا بیانیه. 145 00:10:33,560 --> 00:10:35,990 خب، در حال حاضر که ما ام پاک وجود این نوعی کیک کوچک 146 00:10:35,990 --> 00:10:40,360 به از جدول cupcake_cupboard ما، ما فقط یک چیز چپ: 147 00:10:41,680 --> 00:10:43,680 آن را ناپدید می شوند. 148 00:10:43,680 --> 00:10:46,990 من کریستوفر بارتولومیو. این CS50 است.