[Powered by Google Translate] [SQL] [کریستوفر بارتولومیو] [دانشگاه هاروارد] [این CS50] [CS50 TV] بنابراین، برنامه نویسان استفاده از پایگاه داده به عنوان یک ابزار برای ذخیره و سازماندهی داده های مداوم ما را در داخل جداول. این به این معنی است که اطلاعات خود را در در غیر فرار مادها مانند یک دیسک سخت ذخیره می شود، و حتی هنگامی که کامپیوتر خاموش است، داده است که هنوز دست نخورده است. و به عنوان برنامه نویسان، برنامه های ما استفاده از پایگاه های داده برای حالات مانند ذخیره سازی اطلاعات مربوط به کاربر را از فرم های وب، به دنبال موجودی، و یا به روز رسانی اطلاعات مربوط به سایت های نمایش. اما چگونه ما در واقع تعامل با پایگاه داده، یا چه چیزی استفاده می کنیم به خواندن، ذخیره، حذف، و به روز رسانی داده های ما در این جداول پایگاه داده؟ خب، جواب این است که ما با استفاده از نوع خاصی از زبان پایگاه داده که تعامل به طور مستقیم با جداول پایگاه داده ما است. نام آن ساختار زبان پرس و جو، [زبان پرس و جوی ساخت یافته] و یا آنچه که من به عنوان SQL مراجعه کنید. در حال حاضر، [SE-QueL]، SQL، یک زبان برنامه نویسی نیست، اما در عوض، آن را به زبان فراهم می کند که یک مجموعه استاندارد از دستورات برای بازیابی و دستکاری داده ها از انواع سیستم های مدیریت پایگاه داده است. هدف از CS50، ما به بیش از چهار دستور ساده: را انتخاب کنید، درج، به روز رسانی و حذف کنید. علاوه بر این، ما یک رابط وب پایگاه داده به نام phpMyAdmin به استفاده، که بر روی دستگاه نصب شده برای نوشتن بیانیه های SQL است. بنابراین، برای کمک به شما این دستورات را به یاد داشته باشید، من کیک را در یک کمد برای کمک به سناریوهای ما به ارمغان آورد. می گویند شما پایگاه داده نوعی کیک کوچک، که در آن شما ذخیره تمام اطلاعات در مورد کیک شما. در حال حاضر، پایگاه داده می تواند حاوی جداول بسیاری از و جداول خود را می توانید ستون های بسیاری داشته باشد. در داخل پایگاه داده نوعی کیک کوچک ما، ما باید یک جدول به نام cupcake_cupboard. این جدول استفاده می شود برای ذخیره تمام اطلاعات در مورد کیک که هستند، به خوبی، در کمد خود را. ستون هایی که در داخل جدول خود را نشان دهنده ویژگی های یک نوعی کیک کوچک. برای مثال، ستون cupcake_cupboard کیک ID، CakeType، CakeColor، و CakeIsNice. این ستون بولی تایپ استفاده می شود برای تعیین اینکه آیا کیک خوب است یا خوب نیست. ما قصد داریم تا با نوشتن یک عبارت SELECT شروع. اظهارات را انتخاب کنید برای بازیابی داده ها از یک جدول پایگاه داده خاص استفاده می شود. در این سناریو، ما می خواهیم همه چیز را میدانی در مورد همه کیک که در کمد ما وجود دارد. نحو برای انجام این کار "انتخاب" ستاره فضا، یا *، فضا از فضای میز ما است، است که cupcake_cupboard. اجازه دهید به جلو و اجرا که. همانطور که مشاهده می کنید، این ها همه کیک در کمد ما. این مهم است که توجه داشته باشید که *، و یا ستاره است، یک شخصیت کارت های وحشی که بیانگر گزینه ای است که پاسخ دادن به آن جمع آوری تمام ستون های برخی از جدول. به طور معمول، ما می توانیم یک ستون یا ستون خاص دسترسی داشته باشید * جایگزینی با نام ستون واقعی است. اگر ما می خواهیم ستون های متعدد، اما نه همه، ما می توانیم از این رسیدن با نوشتن نام ستون delimiting هر ستون را با کاما از هم. به عنوان مثال، اجازه دهید تنها بازیابی CakeId و CakeType در جدول cupcake_cupboard. نحو به انجام این کار است: SELECT فضای کاما CakeID فضای CakeType از میز، cupcake_cupboard. اجازه دهید به جلو و اجرا. و در اینجا، ما در حال حاضر تنها دو ستون مشخص برای هر نوعی کیک کوچک در گنجه. ما همچنین می توانید نتایج جستجو خود را با تعیین پالایش "جایی که" بند درست بعد از نام جدول. به عنوان مثال، به نظر می رسد نوعی کیک کوچک در کمد ما وجود دارد است که، خوب، نه چندان خوب به دنبال. بیایید کشف کردن تمام کیک در کمد ما که هستند، به خوبی، به طوری که خوب نیست به دنبال با استفاده از "کجا" بند. نحو به انجام این کار است: SELECT * FROM فضای cupcake_cupboard فضا فضای مکانی که در آن فضای ستون مشروط ما، در این مورد CakeIsNice، و مقدار بولی کاذب. این مهم است که توجه داشته باشید که اگر شما در حال استفاده از رشته ها، شما باید آن را در نقل قول ها تنها محصور است. این درست است برای همه رشته ها در SQL، و یا در قوانین و مقررات پایگاه داده SQL، نوع کاراکتر شناخته شده به عنوان نوع داده VARCHAR. در این مورد، ما با استفاده از درست یا غلط، که یک مقدار بولی است و نه یک رشته است. اجازه دهید به جلو بروید و این دستور را اجرا. چرا اینک و در این مورد است که در حال حاضر 1 شکلات پس خوب نیست نوعی کیک کوچک در کمد ما. بعد، ما در حال رفتن به نوشتن یک بیانیه درج. درج اظهارات استفاده می شود برای درج یا اضافه کردن ردیف های اضافی از داده را در جدول پایگاه داده خود را شده است. بازبینی سناریو ما، اجازه دهید فرض کنیم که ما فقط نوعی کیک کوچک با نام تجاری جدید. از آنجا که ما بسیار سازماندهی خواران نوعی کیک کوچک، ما قصد داریم به این نوعی کیک کوچک جدید برای وارد کردن در جدول cupcake_cupboard ما. نحو برای انجام این کار این است: قرار دادن فضا به فضای میز ما، cupcake_cupboard فضا (، و در اینجا نام ستون مشخص، وسیله کاما از هم، CakeType کاما CakeColor فضای کاما CakeIsNice). پس از این، ما به نوشتن کلمه فضای VALUES (، و در اینجا ما وارد ارزش برای هر ستون بود، همچنین به وسیله کاما از هم است. نقل قول تنها هستند، چرا که همه ارزش VARCHAR خواهیم آنها را در نقل قول تکی را احاطه کرده است، کاما "کاما" کره بادام زمینی قهوه ای روشن 'درست است. در حال حاضر، این مهم است که به هر سطر یک شماره منحصر به فرد به خود را شناسایی. Autoincrementing ستون را فراهم می کند و این به عنوان  "هیچ دو شناسه همیشه می توانید در این جدول وجود داشته باشد." اجازه دهید به جلو و اجرا. ما به تمام سازمان یافته است. بعد از بیانیه SQL است که ما نوشتن یک بیانیه به روز رسانی است. در این بیانیه به روز رسانی را می توان مورد استفاده قرار گیرد برای تغییر داده ها در یک ستون برای هر سطر موجود در جدول پایگاه داده خود را. پیش از آن در سناریوی ما، با استفاده از یک عبارت SELECT، شناسایی نوعی کیک کوچک در داخل جدول cupcake_cupboard ما ارزش که CakeIsNice اشتباه بود. بیایید فرض کنیم که در حالی که نوعی کیک کوچک ما کره بادام زمینی در فر، ما نه چندان خوب ما نوعی کیک کوچک بسیار خوب است. تا این حد استثنایی سازماندهی شده است، ما می خواهیم نوعی کیک کوچک ما را به بازتاب این مقدار در جدول cupcake_cupboard ما. بنابراین، اجازه دهید نوعی کیک کوچک شکلات در پایگاه داده را به روز رسانی کند تا منعکس کننده این. نحو است: فضای UPDATE جدول ما، cupcake_cupboard، فضای SET ستون است که ما مایل به تغییر، CakeIsNice. و سپس در اینجا فضای ارزش جدید ما درست است ما قرار دهید. در حال حاضر، چون ما نمی خواهیم برای به روز رسانی تمام ردیف با این مقدار، ما می خواهیم به ارائه یک "که در آن" بند که ما با دقت اشاره کردن به سطر دقیق که ما می خواهیم برای تغییر. در این مورد، ما می دانیم که فقط یک نوعی کیک کوچک وجود دارد است که ارزش CakeIsNice کاذب. علاوه بر این، ما نیز خواهد بود که ما در حال به روز رسانی سطر صحیح اطمینان حاصل شود با استفاده از "و" بند. ما با استفاده از "و" بند برای اصلاح پرس و جو ما بیشتر است. در این مورد، از آنجا که ما می دانیم که نوعی کیک کوچک شکلات، ما را از این ستون CakeType استفاده کنید. که در آن فضای ستون مشروط فضا فضا CakeIsNice = غلط، و فضای CakeType = "شکلات. ' بنابراین، قرار دادن آن همه با هم، این بیانیه به روز رسانی می گوید: پیدا کردن تمام کیک را در کمد نوعی کیک کوچک ما، و اگر نوعی کیک کوچک که ستون CakeIsNice حاوی مقدار نادرست وجود دارد و CakeType حاوی مقدار شکلات، ما می خواهیم برای به روز رسانی ارزش CakeIsNice ردیف خاص درست است. بنابراین، اجازه دهید به جلو و اجرای این بیانیه است. و در حال حاضر، ما در حال سازماندهی است. همه این بحث از کیک ساخته شده است به من کمی گرسنه است. من فکر می کنم من باید خودم را به یک کمک. اما اگر من در واقع خوردن این نوعی کیک کوچک، من حداقل نیز باید وجود آن را حذف  از جدول cupcake_cupboard ما. برای انجام این کار، ما را از بیانیه "حذف" استفاده کنید. بیانیه "حذف" را می توان مورد استفاده قرار گیرد به حذف تمام یا برخی از ردیف از جدول. اگر شما مایل به حذف برخی از سطر خاص از جدول، سپس شما باید یک "از کجا بند"، یک ستون به این ترتیب مشخص منحصر به فرد است که باید به ردیف است که شما می خواهید به حذف. این نحو است: حذف فضا از فضا، میز، cupcake_cupboard، فضا. در حال حاضر، در این مرحله، هر زمان که شما از این دور در بیانیه خود را حذف شما می خواهید می شود بسیار دقیق است. برای مثال، اگر من می خواهم برای اجرای این پرس و جو را بدون ارائه برخی از "کجا" بند است من که همه داده ها را در این جدول cupcake_cupboard از دست دادن، بلکه به این دلیل که من در حال حاضر می دانیم که شناسه کیک من منحصر به فرد است، من با استفاده از قرمز مخملی کیک ID برای من "جایی که" بند. ستون ما، CakeID = 1 که در آن فضا است. به این دلیل که مقدار صحیح و بدون نیاز به آن را احاطه کرده در نقل قول تکی وجود دارد. بنابراین، اجازه دهید اجرا بیانیه. خب، در حال حاضر که ما ام پاک وجود این نوعی کیک کوچک به از جدول cupcake_cupboard ما، ما فقط یک چیز چپ: آن را ناپدید می شوند. من کریستوفر بارتولومیو. این CS50 است.