1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [SQL] 2 00:00:02,000 --> 00:00:04,000 [Christopher BARTHOLOMEW] [Harvard Universiteti] 3 00:00:04,000 --> 00:00:06,000 [BU CS50 IS] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Belə ki, proqramçılar saxlamaq və təşkil etmək üçün bir vasitə kimi verilənlər bazası istifadə 5 00:00:11,620 --> 00:00:13,620 masa çərçivəsində davamlı data. 6 00:00:13,620 --> 00:00:18,960 Bu, sizin data belə bir sabit olaraq qeyri-uçucu medians saxlanılır deməkdir 7 00:00:18,960 --> 00:00:22,940 və kompüter off olsa belə, məlumat hələ bütöv deyil. 8 00:00:22,940 --> 00:00:29,530 Və, proqramçılar kimi, bizim proqramları belə saxlanılması kimi ssenariləri üçün verilənlər bazası istifadə 9 00:00:29,530 --> 00:00:32,890 inventar qədər axtarır web formaları istifadəçi məlumat, 10 00:00:32,890 --> 00:00:36,210 və ya sites keçirmək haqqında məlumat yenilənməsi. 11 00:00:37,150 --> 00:00:40,070 Amma necə biz, həqiqətən, bizim bazası ilə qarşılıqlı yoxdur 12 00:00:40,070 --> 00:00:43,150 və ya nə biz, oxumaq mağaza silmək üçün istifadə edirsiniz 13 00:00:43,150 --> 00:00:46,070 və bu verilənlər bazası masalar ərzində bizim data yeniləmə? 14 00:00:47,280 --> 00:00:49,700 Yaxşı, cavabını biz bazasında dil xüsusi növü istifadə ki, 15 00:00:49,700 --> 00:00:53,400 olan verilənlər bazası masaları ilə birbaşa əlaqə. 16 00:00:53,400 --> 00:00:56,740 Bu adı, Query Language qurulub 17 00:00:56,740 --> 00:00:58,740 [Yapılandırılmış Query Language] 18 00:00:58,740 --> 00:01:00,740 və ya nə SQL kimi baxın. 19 00:01:00,740 --> 00:01:05,100 >> İndi, [Se-Quel], və ya SQL, bir proqramlaşdırma dili deyil 20 00:01:05,100 --> 00:01:08,580 əvəzinə, bu əmrləri bir standart təmin edən bir dil var 21 00:01:08,580 --> 00:01:13,520 verilənlər bazası idarəetmə sistemlərinin müxtəlif məlumat almaq və manipulyasiya. 22 00:01:13,520 --> 00:01:17,630 CS50 məqsədilə, biz dörd əsas əmrləri artıq getmək lazımdır: 23 00:01:17,630 --> 00:01:21,210 seçin daxil yeniləşdirmək və silin. 24 00:01:21,210 --> 00:01:26,230 Bundan əlavə, biz phpMyAdmin adlı bir verilənlər bazası web interface istifadə edəcəyik 25 00:01:26,230 --> 00:01:29,890 olan SQL hesabatları yazmaq üçün cihaz quraşdırılıb. 26 00:01:30,830 --> 00:01:33,050 Belə ki, bu əmrləri yadda kömək 27 00:01:33,050 --> 00:01:37,080 Mən ssenari yardım bir şkaf bəzi cupcakes gətirdi etdik. 28 00:01:39,650 --> 00:01:42,210 Bir cupcake verilənlər bazası var De 29 00:01:42,210 --> 00:01:44,490 Siz cupcakes haqqında bütün məlumat saxlamaq yerləşir. 30 00:01:44,490 --> 00:01:48,220 İndi, məlumat bazaları çox masa ola bilər 31 00:01:48,220 --> 00:01:50,950 və masalar özləri çox sütun ola bilər. 32 00:01:50,950 --> 00:01:57,020 Bizim cupcake verilənlər bazası Inside, biz cupcake_cupboard adlı bir masa var. 33 00:01:57,020 --> 00:02:00,500 Bu cədvəl cupcakes haqqında bütün məlumat saxlamaq üçün istifadə olunacaq 34 00:02:00,500 --> 00:02:02,990 ki, şkaf ildə də var. 35 00:02:02,990 --> 00:02:07,770 Sizin masa daxilində olan sütunlar bir cupcake və atributları əks etdirir. 36 00:02:07,770 --> 00:02:14,560 Məsələn, cupcake_cupboard nin sütun var 37 00:02:14,560 --> 00:02:15,920 Cake ID, CakeType, CakeColor və CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Bu boolean tipli sütun tort gözəl gözəl olmadığını müəyyən etmək üçün istifadə olunur. 39 00:02:23,040 --> 00:02:26,560 Biz seçin bəyanat yazılı başlamaq olacaq. 40 00:02:26,560 --> 00:02:32,160 Select hesabatları xüsusi verilənlər bazası masa məlumat almaq üçün istifadə olunur. 41 00:02:32,160 --> 00:02:34,890 Bu ssenari, biz hər şeyi bilmək istəyirəm 42 00:02:34,890 --> 00:02:39,080 bizim şkaf mövcud olan bütün cupcakes haqqında. 43 00:02:39,080 --> 00:02:48,670 Bunu üçün sintaksis "Seç" kosmik ulduz, və ya * kosmik bizim masa alan deyil, 44 00:02:48,670 --> 00:02:52,050 cupcake_cupboard olan. 45 00:02:52,050 --> 00:02:54,640 Nin davam və icra edək. 46 00:02:56,670 --> 00:03:00,140 >> Göründüyü kimi, bu bizim şkaf bütün cupcakes var. 47 00:03:00,140 --> 00:03:05,110 Bu *, və ya ulduz qeyd etmək vacibdir ki, bir vəhşi kart xarakter 48 00:03:05,110 --> 00:03:08,830 bəzi masa bütün sütunların toplanması bildirir. 49 00:03:08,830 --> 00:03:13,650 Adətən, biz müəyyən bir sütun və ya sütun daxil ola bilərsiniz 50 00:03:13,650 --> 00:03:16,950 faktiki sütun adı ilə * əvəz. 51 00:03:16,950 --> 00:03:21,220 Biz çox sütun istəyirəm, lakin bütün varsa, biz buna nail ola bilər 52 00:03:21,220 --> 00:03:25,620 bir vergül ilə hər sütun ayıran hüdudlarla sütun adlarını yazmaqla. 53 00:03:25,620 --> 00:03:28,620 Məsələn, yalnız cupcake_cupboard cədvəldə CakeId və CakeType almaq imkan verir. 54 00:03:28,620 --> 00:03:38,370 Bunu üçün sintaksis edir: SELECT kosmik CakeID vergül 55 00:03:38,370 --> 00:03:44,370 Bizim masa cupcake_cupboard dən CakeType sahəsi. 56 00:03:44,370 --> 00:03:46,370 Nin irəli getmək və bu icra edək. 57 00:03:49,340 --> 00:03:52,670 Və burada, indi yalnız biz göstərilən iki sütun var 58 00:03:52,670 --> 00:03:54,670 bizim şkaf hər cupcake üçün. 59 00:03:54,670 --> 00:03:57,710 Biz də ifadə edərək, bizim sorğu nəticələri rafine edə bilərsiniz 60 00:03:57,710 --> 00:04:00,910 yalnız masa adı sonra "Harada" sözləri. 61 00:04:02,000 --> 00:04:05,410 Məsələn, şkaf bir cupcake olmaq görünür 62 00:04:05,410 --> 00:04:08,660 ki, yaxşı, belə axtarır gözəl deyil. 63 00:04:08,660 --> 00:04:13,950 Nin axtarır, yaxşı, belə gözəl deyil ki, şkaf bütün cupcakes anlamaq edək 64 00:04:13,950 --> 00:04:16,110 ki, "harada" sözləri istifadə edərək. 65 00:04:16,110 --> 00:04:26,390 Bunu üçün sintaksis edir: məkan cupcake_cupboard seçin space * kosmik 66 00:04:26,390 --> 00:04:34,080 kosmik HARADA bu halda sahə bizim şərti sütun, CakeIsNice = 67 00:04:34,080 --> 00:04:36,900 Asma və boolean dəyəri. 68 00:04:36,900 --> 00:04:42,750 Bu strings istifadə etsəniz, bir quotes bu əlavə lazımdır ki, qeyd etmək vacibdir. 69 00:04:42,750 --> 00:04:49,620 Bu SQL bütün strings üçün aiddir, və ya, SQL verilənlər bazası baxımından variant simvol 70 00:04:49,620 --> 00:04:51,620 Varchar datatype kimi tanınır. 71 00:04:51,620 --> 00:04:57,660 Bu halda, biz boolean dəyər və simli olan, doğru və ya yalan istifadə olunur. 72 00:04:59,120 --> 00:05:00,660 Nin irəli getmək və bu funksiyanı icra edək. 73 00:05:00,660 --> 00:05:05,340 >> Yalnız və budur, biz 1 şokolad olan halda 74 00:05:05,340 --> 00:05:07,920 bizim şkaf ilə cupcake gözəl deyil. 75 00:05:09,620 --> 00:05:11,460 Sonra, biz bir insert bəyanat yazmaq olacaq. 76 00:05:11,460 --> 00:05:15,560 Daxil hesabatlarına daxil və ya əlavə etmək üçün istifadə olunur 77 00:05:15,560 --> 00:05:17,770 Sizin verilənlər bazası masa veri əlavə satır. 78 00:05:17,770 --> 00:05:23,160 Bizim ssenari Revisiting, biz yalnız yeni cupcake etdik fərz edək. 79 00:05:25,910 --> 00:05:30,080 Biz çox cupcake yeyənlər təşkil olduğundan, biz bu yeni cupcake daxil etmək olacaq 80 00:05:30,080 --> 00:05:32,330 bizim cupcake_cupboard masa. 81 00:05:32,330 --> 00:05:40,690 , Kosmik bizim masa daxil yer daxil edin: Bunu üçün sintaksis bu 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, kosmik ( 83 00:05:46,830 --> 00:05:51,060 Burada biz bir vergül ilə ayrılmış sütunlar adları daxil 84 00:05:51,060 --> 00:05:59,790 CakeType vergül CakeColor CakeIsNice vergül) sahəsi. 85 00:05:59,790 --> 00:06:06,540 Bundan sonra biz sözü DƏYƏRLƏRİN yer (yazmaq və burada 86 00:06:06,540 --> 00:06:12,170 biz bir vergül ilə ayrılmış də, müvafiq olaraq, hər bir sütun üçün dəyər daxil edin. 87 00:06:12,170 --> 00:06:17,830 Onlar bütün Varchar dəyərlər çünki Subay quote, biz tək quotes onları əhatə edəcəyik 88 00:06:17,830 --> 00:06:26,780 Fıstık ezmesi "vergül" LIGHT BROWN "vergül True. 89 00:06:26,780 --> 00:06:30,480 İndi hər bir sıra özü müəyyən bir unikal nömrəsini vermək vacibdir. 90 00:06:30,480 --> 00:06:33,660 Bir sütun Autoincrementing kimi təqdim edir 91 00:06:33,660 --> 00:06:37,410  "Heç iki eyni kimlikleri heç bu cədvəl mövcud ola bilər." 92 00:06:37,410 --> 00:06:39,480 Nin davam və icra edək. 93 00:06:39,480 --> 00:06:45,380 Var ki, biz bütün mütəşəkkil gedin. 94 00:06:49,720 --> 00:06:52,100 >> Biz yazmaq ki, növbəti SQL bəyanat yeniləmə bəyanatdır. 95 00:06:52,100 --> 00:06:55,650 Güncelleştirme bəyanat bir sütun ərzində data dəyişdirmək üçün istifadə edilə bilər 96 00:06:55,650 --> 00:06:58,440 Sizin verilənlər bazası masa mövcud sıra üçün. 97 00:06:59,670 --> 00:07:03,420 Əvvəllər bizim ssenari, bir seçin bəyanat istifadə edərək, biz bir cupcake müəyyən 98 00:07:03,420 --> 00:07:08,300 bizim cupcake_cupboard masa ərzində onun CakeIsNice dəyər Asma idi. 99 00:07:08,300 --> 00:07:12,050 Bizim peanut yağ cupcake sobada isə güman ki, 100 00:07:12,050 --> 00:07:15,790 bizim çox da gözəl cupcake çox gözəl etmişdir. 101 00:07:18,020 --> 00:07:22,240 Belə olduqca təşkil edilən, biz cupcake bu dəyər əks istəyirəm 102 00:07:22,240 --> 00:07:24,240 bizim cupcake_cupboard masa. 103 00:07:24,240 --> 00:07:28,710 Buna görə də, bu əks etdirmək üçün verilənlər bazası bizim şokolad cupcake yeniləmə imkan verir. 104 00:07:28,710 --> 00:07:39,720 Bu syntax edir: OLUNUB kosmik bizim masa cupcake_cupboard, kosmik SET kosmik 105 00:07:39,720 --> 00:07:44,240 biz dəyişdirmək istədiyiniz sütun, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Sonra burada biz yeni dəyər True yer qoyun. 107 00:07:49,210 --> 00:07:54,290 İndi biz bu dəyər bütün satır yeniləmək istəmirəm, çünki 108 00:07:54,290 --> 00:07:57,400 biz yerini bir "Harada" bəndində təmin etmək istəyirik 109 00:07:57,400 --> 00:07:59,830 biz dəyişdirmək istədiyiniz dəqiq sıraya. 110 00:07:59,830 --> 00:08:03,690 Bu halda, biz yalnız bir cupcake olduğunu bilmək 111 00:08:03,690 --> 00:08:06,670 ki, yanlış bir CakeIsNice dəyər var. 112 00:08:06,670 --> 00:08:11,030 Bundan əlavə, biz də doğru sıra yenilənməsi təmin edəcək 113 00:08:11,030 --> 00:08:13,030 da "və" sözləri istifadə edərək. 114 00:08:14,340 --> 00:08:17,270 Biz sorğu da saflaşdırmaq üçün "Və" bənddə istifadə edin. 115 00:08:17,270 --> 00:08:20,380 Bu halda, çünki biz, cupcake şokolad bilirik ki, 116 00:08:20,380 --> 00:08:23,160 biz bu CakeType sütun istifadə edəcək. 117 00:08:23,160 --> 00:08:31,500 HARADA kosmik bizim şərti sütun yer CakeIsNice kosmik = False, 118 00:08:31,500 --> 00:08:38,330 və kosmik CakeType = 'CHOCOLATE. 119 00:08:38,330 --> 00:08:41,880 Belə ki, bütün birlikdə qoyaraq, bu yeniləmə deyilir 120 00:08:41,880 --> 00:08:44,670 bizim cupcake şkaf bütün cupcakes tapmaq 121 00:08:44,670 --> 00:08:50,520 və onun sütun CakeIsNice Asma dəyəri başqa bir cupcake olduqda 122 00:08:50,520 --> 00:08:54,130 və CakeType, dəyəri CHOCOLATE şey 123 00:08:54,130 --> 00:08:58,240 biz True üçün xüsusi satır CakeIsNice dəyər yeniləmək istəyirəm. 124 00:08:58,240 --> 00:09:01,140 Belə ki, in irəli getmək və hesabatda icra edək. 125 00:09:03,860 --> 00:09:05,860 İndi biz təşkil edirik. 126 00:09:06,650 --> 00:09:09,220 >> Cupcakes Bütün bu söhbət mənə bir az ac etdi. 127 00:09:09,220 --> 00:09:11,360 Mən bir özüm kömək etməlidir. 128 00:09:11,360 --> 00:09:17,670 Mən, həqiqətən, bu cupcake yemək Lakin, mən ən azı də öz mövcudluğunu aradan qaldırılması lazımdır 129 00:09:17,670 --> 00:09:19,670  bizim cupcake_cupboard masa. 130 00:09:20,650 --> 00:09:22,590 Bunu etmək üçün, biz "Sil" ifadəsi istifadə edəcək. 131 00:09:22,590 --> 00:09:27,400 Bu "Sil" bəyanat masa bütün və ya bəzi satır aradan qaldırılması üçün istifadə edilə bilər. 132 00:09:27,400 --> 00:09:29,920 Siz masa bəzi xüsusi sıra aradan qaldırılması istəyirsinizsə, 133 00:09:29,920 --> 00:09:34,360 sonra belə bir sütun ifadə, bir "harada" bəndində təmin etməlidir 134 00:09:34,360 --> 00:09:37,660 ki, siz aradan qaldırılması üçün istədiyiniz sıra unikal olmalıdır. 135 00:09:37,660 --> 00:09:47,370 Bu sintaksis var: bizim masa cupcake_cupboard, yer yer alan SİLİNDİ. 136 00:09:47,370 --> 00:09:51,760 İndi, bu nöqtədə zaman bu qədər sizin sil bəyanat var 137 00:09:51,760 --> 00:09:54,240 siz çox diqqətli olmaq istəyirəm. 138 00:09:54,240 --> 00:09:59,970 Mən bu sorğu almaq istəyirsinizsə Məsələn, bəzi "Harada" bəndində təmin olmadan 139 00:09:59,970 --> 00:10:04,500 Mən bu cupcake_cupboard cədvəldə bütün məlumatları itirə bilər 140 00:10:04,500 --> 00:10:09,590 Mən artıq mənim tort kimlikleri benzersiz bilirik ki, çünki, mən istifadə edəcəyik 141 00:10:09,590 --> 00:10:12,410 mənim "harada" sözləri üçün Red Velvet tort ID. 142 00:10:14,550 --> 00:10:20,670 HARADA kosmik bizim sütun, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Bu tam dəyər Çünki tək quotes bu əhatə etməyə ehtiyac yoxdur. 144 00:10:25,010 --> 00:10:27,020 Belə ki, ən bəyanat icra edək. 145 00:10:33,560 --> 00:10:35,990 Yaxşı, indi biz bu cupcake varlığını məhv etdik ki, 146 00:10:35,990 --> 00:10:40,360 bizim cupcake_cupboard masa, biz yalnız sol bir şey var: 147 00:10:41,680 --> 00:10:43,680 Yox olun. 148 00:10:43,680 --> 00:10:46,990 Mən Christopher BARTHOLOMEW edirəm. Bu CS50 edir.