1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [کرسٹوفر BARTHOLOMEW] [ہارورڈ یونیورسٹی] 3 00:00:04,000 --> 00:00:06,000 [اس CS50] [ٹی وی CS50] 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 اس کا مطلب یہ ہے کہ آپ کا ڈیٹا اس طرح کی ہارڈ ڈرائیو کے طور پر انہراسی medians پر محفوظ کیا جاتا ہے، 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 >> اب، [QueL SE]، یا 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 میں ہمارے منظرنامے کے ساتھ کی مدد کے لئے الماری میں کچھ cupcakes لایا ہوں. 28 00:01:39,650 --> 00:01:42,210 کا کہنا ہے کہ آپ کو ایک cupcake ڈیٹا بیس ہے، 29 00:01:42,210 --> 00:01:44,490 آپ کو آپ cupcakes کے بارے میں تمام معلومات کہاں سٹور. 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 کے ڈیٹا بیس کے اندر، ہم نامی cupcake_cupboard میز ہے. 33 00:01:57,020 --> 00:02:00,500 یہ میز cupcakes کے بارے میں تمام معلومات کو محفوظ کرنے کے استعمال کیا جائے گا 34 00:02:00,500 --> 00:02:02,990 ہیں، آپ کی الماری میں ہے. 35 00:02:02,990 --> 00:02:07,770 کالم جو آپ کی ٹیبل کے اندر ہیں ایک cupcake کی صفات کی نمائندگی کرتی ہیں. 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 ہم منتخب بیان لکھنے کے ساتھ شروع کرنے کے لئے جا رہے ہیں. 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 تمام cupcakes جو اپنی الماری میں موجود کے بارے میں. 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 >> جیسا کہ ہم دیکھ سکتے ہیں، یہ ہمارے الماری میں تمام cupcakes ہیں. 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 اور cupcake_cupboard ٹیبل میں CakeType بازیافت. 54 00:03:28,620 --> 00:03:38,370 ایسا کرنے کا نحو ہے: SELECT خلا CakeID کوما 55 00:03:38,370 --> 00:03:44,370 ہماری ٹیبل cupcake_cupboard سے CakeType جگہ. 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 ہمارے الماری میں ہر cupcake کے لئے. 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 مثال کے طور پر، ہمارے الماری میں ایک cupcake ظاہر 62 00:04:05,410 --> 00:04:08,660 ٹھیک ہے، یہ ہے کہ، دیکھ تو اچھا نہیں. 63 00:04:08,660 --> 00:04:13,950 آو ہمارے الماری میں تمام cupcakes کہ، اچھی طرح کر رہے ہیں، تو اچھا نہیں پتہ لگ 64 00:04:13,950 --> 00:04:16,110 "جہاں" کی شق کا استعمال کرتے ہوئے. 65 00:04:16,110 --> 00:04:26,390 ایسا کرنے کا نحو ہے: خلا 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 ہمارے الماری میں cupcake اچھا نہیں. 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 ہماری منظر نامے Revisiting، فرض ہے کہ ہم صرف ایک نئے برانڈ cupcake کر دیا ہے. 79 00:05:25,910 --> 00:05:30,080 چونکہ ہم بہت cupcake کار کھانے والا ہی سمجھتے منعقد کی جاتی ہیں، ہم اس نئے cupcake داخل کرنے کی ضرورت کے لئے جا رہے ہیں 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 اس کے بعد، ہم لفظ اقدار کی جگہ (لکھتے ہیں، اور یہاں 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 ہمارے جائزہ میں پہلے منتخب بیان کا استعمال کرتے ہوئے، ہم نے ایک cupcake کی شناخت 98 00:07:03,420 --> 00:07:08,300 ہمارے cupcake_cupboard کے ٹیبل کے اندر اندر جن CakeIsNice قدر جھوٹی تھی. 99 00:07:08,300 --> 00:07:12,050 چلو مان لیتے ہیں کہ جبکہ ہمارے مونگفلی کا مکھن cupcake تندور میں تھا، 100 00:07:12,050 --> 00:07:15,790 ہم ہماری نہیں کتنے اچھے cupcake بہت اچھا بنا دیا ہے. 101 00:07:18,020 --> 00:07:22,240 کیا جا رہا ہے تاکہ غیر معمولی منظم، ہم اپنے cupcake اس قیمت کی عکاسی کرنا چاہتے ہیں 102 00:07:22,240 --> 00:07:24,240 ہماری cupcake_cupboard ٹیبل میں. 103 00:07:24,240 --> 00:07:28,710 لہذا، ہمارے ڈیٹا بیس میں چاکلیٹ cupcake اس کی عکاسی کرنے کے لئے اپ ڈیٹ. 104 00:07:28,710 --> 00:07:39,720 نحو ہے: اپ ڈیٹ خلائی ہمارے ٹیبل، 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 اس صورت میں، ہم جانتے ہیں کہ صرف ایک cupcake ہے 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 اس صورت میں، کیونکہ ہم جانتے ہیں کہ cupcake چاکلیٹ ہے، 116 00:08:20,380 --> 00:08:23,160 ہم اس CakeType کالم کا استعمال کریں گے. 117 00:08:23,160 --> 00:08:31,500 WHERE ہمارے مشروط کالم کی جگہ 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 ہمارے cupcake الماری میں cupcakes تلاش 121 00:08:44,670 --> 00:08:50,520 اور اگر ایک cupcake ہیں جن کے کالم 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 >> cupcakes کی اس بات نے مجھے تھوڑا سا بھوکا کر دیا گیا ہے. 127 00:09:09,220 --> 00:09:11,360 مجھے لگتا ہے کہ میں اپنے آپ کو ایک کی مدد کرنی چاہئے. 128 00:09:11,360 --> 00:09:17,670 لیکن اگر میں واقعی میں اس cupcake کھانا، کم از کم میں نے بھی اس کے وجود کو ختم کرنا چاہئے 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 WHERE خلائی ہمارے کالم، 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 ٹھیک ہے، اب ہم اس cupcake کے وجود کا صفایا کر دیا ہے 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 میں کرسٹوفر BartholOmew ہوں. یہ CS50 ہے.