1 00:00:05,250 --> 00:00:07,835 DUGS LOIDS: Tātad savos videoklipos par tīmekļa izstrādi mēs pāris 2 00:00:07,835 --> 00:00:10,420 reizes esam runājuši par to, kas ir datubāze. 3 00:00:10,420 --> 00:00:13,253 Un šajā videoklipā mēs iedziļināsimies nedaudz sīkāk un parādīsim, 4 00:00:13,253 --> 00:00:16,086 kas ir datubāze, kāpēc mēs to izmantotu un kā mēs varētu ar to 5 00:00:16,086 --> 00:00:18,920 darboties . 6 00:00:18,920 --> 00:00:21,702 Piemēram, lai mēs varētu izveidot vietnes, kas ir daudz sarežģītākas 7 00:00:21,702 --> 00:00:24,484 nekā tikai tīmekļa lapa, kuru viņi vienkārši apmeklē un skatās ziņas, 8 00:00:24,484 --> 00:00:27,266 mums var būt nepieciešama informācijas datu bāze, piemēram, 9 00:00:27,266 --> 00:00:30,048 lietotājvārda un paroles kombinācijas, glabāšanai, lai lietotājs 10 00:00:30,048 --> 00:00:32,830 mēģinātu reģistrēties iekšā. 11 00:00:32,830 --> 00:00:34,830 Šī pieteikšanās informācija tiek nosūtīta uz datu bāzi. 12 00:00:34,830 --> 00:00:37,030 Tas tiek pārbaudīts ar informāciju datu bāzē, lai noskaidrotu, vai 13 00:00:37,030 --> 00:00:39,230 lietotājvārda un paroles kombinācija atbilst. 14 00:00:39,230 --> 00:00:41,400 Un, ja tā ir, tas ļauj lietotājam iekļūt. 15 00:00:41,400 --> 00:00:44,516 Mēs varam arī saglabāt citu informāciju lietotājiem, piemēram, viņu 16 00:00:44,516 --> 00:00:47,633 iepirkšanās vēsturi vai jebkādu citu informāciju, ko jūs, iespējams, 17 00:00:47,633 --> 00:00:50,750 vēlēsities lietotājam ilgstoši saglabāt. 18 00:00:50,750 --> 00:00:54,110 Tagad, ja kādreiz esat izmantojis tādas programmas kā Microsoft 19 00:00:54,110 --> 00:00:57,470 Excel, Google Sheets vai Numbers, jūs droši vien esat iepazinies ar 20 00:00:57,470 --> 00:01:00,830 datu bāzes pamatideju. 21 00:01:00,830 --> 00:01:03,584 Datu bāze sastāv no pāris dažādiem hierarhijas līmeņiem. 22 00:01:03,584 --> 00:01:05,000 Datubāzē mums ir tabulas. 23 00:01:05,000 --> 00:01:08,130 Un katrā no šīm tabulām mums ir rindas un kolonnas. 24 00:01:08,130 --> 00:01:11,320 Un, ja jūs esat pazīstams ar programmu Excel vai, iespējams, pat 25 00:01:11,320 --> 00:01:14,510 nezināt, ļaujiet man īsumā pēc analogijas pastāstīt par to, kas ir 26 00:01:14,510 --> 00:01:17,700 datu bāze, tabula, rinda, kolonna. 27 00:01:17,700 --> 00:01:22,700 Un tad mēs varam to vienā mirklī pārvērst tajā pašā idejā SQL. 28 00:01:22,700 --> 00:01:26,769 Tāpēc savā ekrānā esmu atvēris Excel failu. 29 00:01:26,769 --> 00:01:34,400 Un augšpusē man ir burti — A, B, C, D, E. 30 00:01:29,060 --> 00:01:34,400 Tās būtu dažādas kolonnas manā failā. 31 00:01:34,400 --> 00:01:36,100 Kreisajā pusē man ir numurētas rindas, kurās varu ievietot 32 00:01:36,100 --> 00:01:37,800 informāciju. 33 00:01:37,800 --> 00:01:41,130 Tā, piemēram, es varētu vienkārši ievietot savu vārdu šeit šūnā A1. 34 00:01:41,130 --> 00:01:43,672 Tātad tas atrodas A kolonnā pirmajā rindā. 35 00:01:43,672 --> 00:01:46,251 Tagad apakšējā kreisajā stūrī ir funkcija, kuru, iespējams, neesat 36 00:01:46,251 --> 00:01:48,830 izmantojis pārāk bieži, ja neizmantojat programmu Excel pārāk bieži. 37 00:01:48,830 --> 00:01:50,660 Bet ir tādi priekšstati par izklājlapām . 38 00:01:50,660 --> 00:01:53,060 Izklājlapas ir līdzīgas dažādām tabulām. 39 00:01:53,060 --> 00:01:55,465 Ņemiet vērā, ka, pārejot uz 2. lapu, dati, kas bija 1. lapā, mans 40 00:01:55,465 --> 00:01:57,870 vārds, vairs nav tur. 41 00:01:57,870 --> 00:02:02,000 Tātad katrai lapai ir savs unikāls rindu un kolonnu kopums. 42 00:02:02,000 --> 00:02:04,240 Taču visas šīs lapas joprojām ir iesietas vienā failā ar nosaukumu 43 00:02:04,240 --> 00:02:06,480 Book 1. 44 00:02:06,480 --> 00:02:10,285 Tātad līdzība ir tāda, ka 1. grāmata ir mūsu datubāze, kurā ir 45 00:02:10,285 --> 00:02:14,090 atšķirīgs tabulu skaits, kas Excel valodā ir tikai izklājlapa . 46 00:02:14,090 --> 00:02:17,050 Un katrā lapā ir kolonnas, kurās mēs varam ievietot datus, un rindas, 47 00:02:17,050 --> 00:02:20,010 kurās mēs varam ievietot datus. 48 00:02:20,010 --> 00:02:22,435 Tātad ir dažādu veidu datu bāzes , kurus mēs varam izmantot savās 49 00:02:22,435 --> 00:02:24,860 programmās. 50 00:02:24,860 --> 00:02:30,921 Mēs runāsim par SQL, SQL, kas apzīmē strukturēto vaicājumu valodu. 51 00:02:30,921 --> 00:02:35,020 SQL valoda ir programmēšanas valoda, kuras vienīgais dzīves mērķis ir 52 00:02:35,020 --> 00:02:39,120 vaicāt vai uzdot jautājumus vai izgūt datus no datu bāzes. 53 00:02:39,120 --> 00:02:42,361 Un ir daudz dažādu SQL implementāciju. 54 00:02:42,361 --> 00:02:44,935 Divas no populārākajām ir šādas — mums ir MySQL, kas ir atvērtā 55 00:02:44,935 --> 00:02:47,510 pirmkoda platforma. 56 00:02:47,510 --> 00:02:50,230 To ļoti bieži izmanto, lai izveidotu relāciju datu bāzes. 57 00:02:50,230 --> 00:02:52,440 Šajā videoklipā mēs neiedziļināsimies daudz detaļās par to, kas ir 58 00:02:52,440 --> 00:02:54,650 relāciju datu bāze salīdzinājumā ar citiem datu bāzes veidiem. 59 00:02:54,650 --> 00:02:57,145 Taču ziniet, ka ir vairāk nekā viens tips, un šajā kursā mēs 60 00:02:57,145 --> 00:02:59,640 aplūkojam relāciju datu bāzes. 61 00:02:59,640 --> 00:03:02,371 Vēl viens veids, ko mēs faktiski esam izmantojuši CS50 kopš 62 00:03:02,371 --> 00:03:05,102 2016. gada, ir SQLite, kam ir ļoti līdzīga funkcija, kas iestatīta kā 63 00:03:05,102 --> 00:03:07,834 MySQL. 64 00:03:07,834 --> 00:03:09,500 Bet tā ir tikai nedaudz vieglāka . 65 00:03:09,500 --> 00:03:12,020 To ir nedaudz vieglāk izmantot CS50 IDE. 66 00:03:12,020 --> 00:03:15,140 Un tāpēc mēs faktiski izmantosim to klasē. 67 00:03:15,140 --> 00:03:18,628 Neatkarīgi no tā, kādu SQL ieviešanu izmantojat, daudzi no tiem būs 68 00:03:18,628 --> 00:03:22,116 aprīkoti ar rīku phpMyAdmin, kas ir GUI vai grafiskā lietotāja 69 00:03:22,116 --> 00:03:25,604 interfeisa rīks, ko izmanto, lai izpildītu dažus nogurdinošākus vai 70 00:03:25,604 --> 00:03:29,093 ikdienišķākus datu bāzes vaicājumus ,lietotājam draudzīgs veids, jo 71 00:03:29,093 --> 00:03:32,581 varat vienkārši noklikšķināt un veikt darbības tīmekļa 72 00:03:32,581 --> 00:03:36,070 pārlūkprogrammā. 73 00:03:36,070 --> 00:03:39,887 Un tos visbiežāk izmanto, lai vispirms izveidotu datu bāzes un 74 00:03:39,887 --> 00:03:43,704 iestatītu tabulas, jo pirmā lieta, ko darīsit pēc datu bāzes 75 00:03:43,704 --> 00:03:47,522 konfigurēšanas, ir tabulas izveide. 76 00:03:47,522 --> 00:03:49,730 Jo bez tabulas mums nav rindu un kolonnu. 77 00:03:49,730 --> 00:03:52,430 Un bez rindām un kolonnām mēs nevaram saglabāt nekādus datus. 78 00:03:52,430 --> 00:03:53,885 Tabulām ir ļoti apgrūtinoša sintakse, kas tiek izmantota to 79 00:03:53,885 --> 00:03:55,340 iestatīšanai. 80 00:03:55,340 --> 00:03:58,880 Tāpēc grafiskā interfeisa phpMyAdmin izmantošana tabulas izveidošanai 81 00:03:58,880 --> 00:04:02,420 noteikti noderēs. 82 00:04:02,420 --> 00:04:06,055 Tabulas veidošanas procesā jums būs precīzi jānorāda, kuras kolonnas 83 00:04:06,055 --> 00:04:09,690 tiks saglabātas šajā tabulā. 84 00:04:09,690 --> 00:04:12,076 Tātad pašā sākumā, kad veidojat tabulu, jūs sakāt, ka manā tabulā 85 00:04:12,076 --> 00:04:14,463 tiks saglabāti lietotājvārdi un paroles un jebkāda cita veida 86 00:04:14,463 --> 00:04:16,850 informācija, kuru vēlaties. 87 00:04:16,850 --> 00:04:20,150 un jums tas ir jānorāda pirms datu ievietošanas tabulā. 88 00:04:20,150 --> 00:04:24,410 Tāpēc jums jau laikus jāizstrādā, kā izskatīsies jūsu tabula . 89 00:04:24,410 --> 00:04:27,732 Kad tas būs izdarīts, gandrīz katrs vaicājums, izņemot, piemēram, 90 00:04:27,732 --> 00:04:31,055 datu bāzes dzēšanu un tabulas dzēšanu, kuru turpmāk izmantosit šajā 91 00:04:31,055 --> 00:04:34,377 tabulā, attieksies uz datiem, kas tiek glabāti dažādās tabulas 92 00:04:34,377 --> 00:04:37,700 rindās. 93 00:04:37,700 --> 00:04:40,560 Tāpat kā C, katra mūsu SQL tabulas kolonna spēj glabāt dažādu datu 94 00:04:40,560 --> 00:04:43,420 tipu datus. 95 00:04:43,420 --> 00:04:45,750 Piemēram, C versijā mums bija rakstzīmes un virknes, veseli skaitļi 96 00:04:45,750 --> 00:04:48,080 un peldošā komata skaitļi. 97 00:04:48,080 --> 00:04:51,110 Un SQL ir vēl daži datu veidi. 98 00:04:51,110 --> 00:04:54,030 Šie ir tikai 20 no tiem, un tas nav pat pilnīgs saraksts. 99 00:04:54,030 --> 00:04:55,610 Bet dažām no šīm lietām vajadzētu izskatīties pazīstamām. 100 00:04:55,610 --> 00:04:57,901 Tā, piemēram, mums ir int, kurš var saglabāt veselus skaitļus. 101 00:04:57,901 --> 00:05:00,130 Bet mums ir arī šie četri citi veidi, kuros var būt veseli skaitļi ar 102 00:05:00,130 --> 00:05:02,360 dažādām augšējām robežām. 103 00:05:02,360 --> 00:05:04,980 Tātad jūs varat atcerēties no C, ka vesela skaitļa augšējā robeža ir 104 00:05:04,980 --> 00:05:07,600 2 līdz 31. pakāpei vai 2 līdz 32. pakāpei, ja tie ir pozitīvi veseli 105 00:05:07,600 --> 00:05:10,220 skaitļi bez komata . 106 00:05:10,220 --> 00:05:13,955 Bet šeit mēs varam teikt mazas ints vai mazas ints vai vidējas vai 107 00:05:13,955 --> 00:05:17,690 lielas ints, kurām katrai ir atšķirīgas vērtību augšējās robežas. 108 00:05:17,690 --> 00:05:21,770 Decimālzīme un peldošais komats ir datu tipa Double un peldošā komata 109 00:05:21,770 --> 00:05:25,850 vietā, ko mēs pazīstam no C. 110 00:05:21,500 --> 00:05:27,590 Mēs varam arī saglabāt datuma un laika zīmogus SQL datu bāzēs. 111 00:05:27,590 --> 00:05:29,860 Tam nav datu veida, kas būtu paredzēts darboties C  platformā . 112 00:05:29,860 --> 00:05:32,760 Bet SQL ir daži dažādi veidi, kā to izdarīt. 113 00:05:32,760 --> 00:05:34,350 Mēs varam veikt pat eksotiskākas lietas, piemēram, uzglabāt 114 00:05:34,350 --> 00:05:35,940 ģeometriju vai rindu virknes. 115 00:05:35,940 --> 00:05:36,830 Un kas tie ir? 116 00:05:36,830 --> 00:05:39,826 Ģeometriju un rindu virknes var izmantot, lai SQL datu bāzē saglabātu 117 00:05:39,826 --> 00:05:42,823 apgabala kartēšanu vai iezīmēšanu kartē , piemēram, izmantojot ĢIS 118 00:05:42,823 --> 00:05:45,820 datus. 119 00:05:45,820 --> 00:05:49,065 Un mēs faktiski varam to saglabāt savā SQL tabulā un nedaudz vēlāk 120 00:05:49,065 --> 00:05:52,310 izveidot precīzu zīmējumu. 121 00:05:52,310 --> 00:06:00,200 Teksta veids virkņu vietā ir tikai patvaļīgi lielas teksta daļas. 122 00:06:00,200 --> 00:06:04,425 Uzskaitījumu klasifikācija ir arī veids, kas pastāv C valodā, taču 123 00:06:04,425 --> 00:06:08,650 mēs par tiem pārāk daudz nerunājam C valodā. 124 00:06:04,170 --> 00:06:07,907 Taču īsumā , enums ir jūsu tabulas kolonna, ko var izmantot, lai 125 00:06:07,907 --> 00:06:11,645 saglabātu ierobežotu vērtību kopu. 126 00:06:11,645 --> 00:06:14,339 Tā, piemēram, man varētu būt enum, ko sauc, piemēram, par 127 00:06:14,339 --> 00:06:17,034 iecienītākajām krāsām. 128 00:06:17,034 --> 00:06:19,852 Un es varētu norādīt, kad es veidoju savu tabulu , ka tā var saturēt 129 00:06:19,852 --> 00:06:22,670 tikai sarkanu, zaļu un zilu. 130 00:06:22,670 --> 00:06:25,620 Ja mēģinātu ievietot rindu, kurā šajā vietā ir violeta krāsa, tas 131 00:06:25,620 --> 00:06:28,570 nedarbosies, jo tā nav viena no uzskaitītajām vērtībām, ko var 132 00:06:28,570 --> 00:06:31,520 saglabāt šajā kolonnā. 133 00:06:31,520 --> 00:06:34,310 Ir arī char un varchar. 134 00:06:34,310 --> 00:06:38,057 Un tie nav gluži tie paši, kas, jūsuprāt, ir C valodā. 135 00:06:38,057 --> 00:06:40,788 Tāpēc veltīsim īsu brīdi, lai izskaidrotu atšķirību starp šiem diviem 136 00:06:40,788 --> 00:06:43,520 datu veidiem, kas ir diezgan svarīgi. 137 00:06:43,520 --> 00:06:47,600 Tātad atšķirībā no C, char neattiecas uz vienu rakstzīmi. 138 00:06:47,600 --> 00:06:51,110 Faktiski tas ir līdzīgs mūsu priekšstatam par virkni, taču ar 139 00:06:51,110 --> 00:06:54,620 brīdinājumu, ka šī virkne ir noteikta garuma. 140 00:06:54,620 --> 00:06:58,715 Un parasti, kad mēs norādām char vai varchar veidu, mums ir jānorāda 141 00:06:58,715 --> 00:07:02,810 šīs virknes garums pašā sākumā, tāpat kā mēs to darām c. 142 00:07:02,810 --> 00:07:07,460 Piemēram, mans kolonnas veids varētu būt 10  rakstzīmes . 143 00:07:07,460 --> 00:07:11,232 Tas nozīmē, ka es varu saglabāt 10 rakstzīmju virknes šajā tabulas 144 00:07:11,232 --> 00:07:15,005 kolonnā, tieši 10 rakstzīmju virknes. 145 00:07:15,005 --> 00:07:18,212 Tātad, ja es mēģinātu saglabāt, piemēram, vārdu “hi”, HI, kas sastāv 146 00:07:18,212 --> 00:07:21,420 tikai no diviem burtiem, tas nonāks kolonnā . 147 00:07:21,420 --> 00:07:27,782 Bet tas arī saglabātu 8 papildu — būtībā nulles baitu ekvivalentu, 148 00:07:27,782 --> 00:07:34,145 tāpēc šajā kolonnā šajā rindā man joprojām bija 10 rakstzīmes. 149 00:07:34,145 --> 00:07:36,012 Un, ja es mēģinātu saglabāt, piemēram, 15 rakstzīmju virkni, tas 150 00:07:36,012 --> 00:07:37,880 nedarbotos. 151 00:07:37,880 --> 00:07:40,100 Beigās es saglabātu tikai pirmos 10 burtus. 152 00:07:40,100 --> 00:07:43,430 Tātad tas vienmēr būs 10, katru reizi. 153 00:07:43,430 --> 00:07:46,490 No otras puses, varchar attiecas uz mainīga garuma virkni. 154 00:07:46,490 --> 00:07:50,457 Tātad, ja es teicu, ka mana kolonna ir varchar 99, es varu saglabāt 155 00:07:50,457 --> 00:07:54,425 1, 2, 3, 4, 5 rakstzīmju virknes līdz 99 rakstzīmēm garas, 156 00:07:54,425 --> 00:07:58,392 neizmantojot visas šīs papildu brīvās vietas vai nulles baitus vai 157 00:07:58,392 --> 00:08:02,360 nulles virknes beigās. 158 00:08:02,360 --> 00:08:05,100 Tātad char, fiksēta garuma virknes . 159 00:08:05,100 --> 00:08:06,557 Varchar, mainīga garuma virknes . 160 00:08:06,557 --> 00:08:07,998 Mēs nerunāsim par to, kāpēc jūs varētu vēlēties izmantot vienu vai 161 00:08:07,998 --> 00:08:09,440 otru. 162 00:08:09,440 --> 00:08:12,615 Taču ir iemesli, kāpēc jūs ne vienmēr vēlaties izmantot varchar, un 163 00:08:12,615 --> 00:08:15,790 dažās situācijās jūs varētu vēlēties izmantot char. 164 00:08:15,790 --> 00:08:19,840 Tagad SQLite faktiski ir daudzi vai visi šie paši datu tipi. 165 00:08:19,840 --> 00:08:23,030 Taču atšķirība ir tāda, ka, lai vienkāršotu lietas, katrs no šiem 166 00:08:23,030 --> 00:08:26,220 datu tipiem ir saistīts ar tā saukto tipu radniecību . 167 00:08:26,220 --> 00:08:29,033 Tātad visu sarakstu ar 20 — vai vairāk — var reducēt līdz vienai no 168 00:08:29,033 --> 00:08:31,846 šīm piecām dažādajām radniecībām — null, integer, real, text, un 169 00:08:31,846 --> 00:08:34,660 blob. 170 00:08:34,660 --> 00:08:36,700 Nulle, iespējams, ir diezgan acīmredzama — nekas. 171 00:08:36,700 --> 00:08:37,919 Integer — veseli skaitļi. 172 00:08:37,919 --> 00:08:40,929 Real  — tas ietvertu tādas lietas kā decimālzīme un peldošs. 173 00:08:40,929 --> 00:08:43,780 Text būtu iekļautas tādas lietas kā char un varchar. 174 00:08:43,780 --> 00:08:47,425 Blobs  — tas vairāk līdzinātos ģeometrijai vai datiem, kas patiesībā 175 00:08:47,425 --> 00:08:51,070 nav teksts, bet ir tikai liels bitu vai baitu skaits. 176 00:08:51,070 --> 00:08:52,060 Tas būtu blob . 177 00:08:52,060 --> 00:08:53,740 Un viss var samazināties līdz vienai no šīm piecām dažādajām vienībām 178 00:08:53,740 --> 00:08:55,420 . 179 00:08:55,420 --> 00:08:58,330 Tāpēc pēc kolonnu norādīšanas mūsu SQL tabulā ir ļoti svarīgi ņemt 180 00:08:58,330 --> 00:09:01,240 vērā vēl vienu apsvērumu, proti, vienu kolonnu, kas ir mūsu primārā 181 00:09:01,240 --> 00:09:04,150 atslēga. 182 00:09:04,150 --> 00:09:06,550 Kāpēc mums ir nepieciešama primārā atslēga? 183 00:09:06,550 --> 00:09:11,035 Iemesls ir tāds, ka katrai tabulas rindai jābūt unikālai un ātri 184 00:09:11,035 --> 00:09:15,520 identificējamai, lai mūsu SQL vaicājumi būtu visefektīvākie. 185 00:09:15,520 --> 00:09:19,750 Tāpēc pareizās primārās atslēgas izvēle ļaus mums pārliecināties, ka 186 00:09:19,750 --> 00:09:23,980 katrā rindā ir viena vērtība, kas ir pilnīgi unikāla. 187 00:09:23,980 --> 00:09:26,820 Un, ja tā ir taisnība, ja katrā rindā ir viena unikāla kolonna, mēs 188 00:09:26,820 --> 00:09:29,660 varam unikāli identificēt vai ļoti ātri noteikt, par kuru rindu mēs 189 00:09:29,660 --> 00:09:32,500 runājam. 190 00:09:32,500 --> 00:09:35,371 Tagad ir arī iespējams izveidot kopīgu primāro atslēgu, kas ir tikai, 191 00:09:35,371 --> 00:09:38,242 piemēram, divu kolonnu kombinācija, taču tas var būt patvaļīgi liels 192 00:09:38,242 --> 00:09:41,114 kolonnu skaits, kas vienmēr ir unikāls. 193 00:09:41,114 --> 00:09:42,657 Tāpēc man varētu būt viena kolonna, kurā vienmēr varētu būt A, B vai 194 00:09:42,657 --> 00:09:44,200 C. 195 00:09:44,200 --> 00:09:45,700 Man varētu būt vēl viena kolonna, kurā ir vieninieki un divi, un trīs 196 00:09:45,700 --> 00:09:47,200 un četri. 197 00:09:47,200 --> 00:09:49,570 Man varētu būt vairāki A un vairāki B un vairāki C, vairāki 198 00:09:49,570 --> 00:09:51,940 vieninieki, divi un trīs. 199 00:09:51,940 --> 00:09:54,550 Taču visās šajās rindās man ir atļauts izmantot tikai vienu 200 00:09:54,550 --> 00:09:57,160 A1 kombināciju. 201 00:09:57,160 --> 00:09:58,630 Man var būt B1, C1. 202 00:09:58,630 --> 00:10:00,370 Man var būt A2, A3, A4. 203 00:10:00,370 --> 00:10:02,410 Taču vienmēr ir tikai viena šo divu kolonnu kombinācija, kas ir 204 00:10:02,410 --> 00:10:04,450 unikāla. 205 00:10:04,450 --> 00:10:08,457 Tas būtu arī pieņemami, jo tā ir kopīga primārā atslēga. 206 00:10:08,457 --> 00:10:10,323 Tātad SQL ir programmēšanas valoda, tāpat kā citas programmēšanas 207 00:10:10,323 --> 00:10:12,190 valodas, par kurām mēs runājām. 208 00:10:12,190 --> 00:10:14,557 Bet tai ir ļoti ierobežots vārdu krājums. 209 00:10:14,557 --> 00:10:18,208 Tagad ir vairāk lietu, ko varat darīt ar SQL, nekā mēs runāsim šajā 210 00:10:18,208 --> 00:10:21,859 videoklipā, jo šajā videoklipā mēs runāsim tikai par četrām darbībām, 211 00:10:21,859 --> 00:10:25,510 kuras var veikt tabulā , vai četrām galvenajām darbības, kuras, 212 00:10:25,510 --> 00:10:29,161 visticamāk, veiksiet tabulā — INSERT, SELECT, UPDATE un DELETE. 213 00:10:29,161 --> 00:10:30,785 Un šīs četras lietas mēs iedziļināsimies mazliet sīkāk tikai pēc 214 00:10:30,785 --> 00:10:32,410 sekundes. 215 00:10:32,410 --> 00:10:35,363 Taču šīs noteikti ir visizplatītākās četras darbības, ko darīsit ar 216 00:10:35,363 --> 00:10:38,316 tabulām, kuras veidojat, noteikti CS50, bet, iespējams, arī 217 00:10:38,316 --> 00:10:41,269 vispārīgi, kad strādājat ar datu bāzēm. 218 00:10:41,269 --> 00:10:44,356 Tāpēc attiecībā uz visiem piemēriem, kurus mēs aplūkosim šajā 219 00:10:44,356 --> 00:10:47,443 videoklipā, mēs apsvērsim datubāzi, kurā ir šīs divas tabulas, ko 220 00:10:47,443 --> 00:10:50,530 sauc par users un moms . 221 00:10:50,530 --> 00:10:53,125 Un jūs varat redzēt, ka users ir četras dažādas kolonnas — idnum, 222 00:10:53,125 --> 00:10:55,720 username, password, un fullname. 223 00:10:55,720 --> 00:10:59,684 Un moms ir divas dažādas kolonnas, username un mother . 224 00:10:59,684 --> 00:11:02,852 Un tagad sāksim strādāt ar tiem un redzēsim, kā mēs varam manipulēt 225 00:11:02,852 --> 00:11:06,021 ar šo datu bāzi un tajā esošajām tabulām, lai - kāda iemesla dēļ mums 226 00:11:06,021 --> 00:11:09,190 tās būtu vajadzīgas - tiktu atjauninātas mūsu vietnē. 227 00:11:09,190 --> 00:11:11,320 Tātad pirmā darbība, ko mēs aptversim, ir insert . 228 00:11:11,320 --> 00:11:14,230 Un, kā jūs varētu gaidīt, tas pievieno informāciju tabulai. 229 00:11:14,230 --> 00:11:17,604 Tagad SQL vaicājumiem ir noteikta struktūra. 230 00:11:17,604 --> 00:11:21,142 Un tāpēc ar katru no šīm darbībām es parādīšu jums vispārīgu 231 00:11:21,142 --> 00:11:24,680 struktūru par to, kā vaicājums varētu izskatīties. 232 00:11:24,680 --> 00:11:27,015 Un tad mēs izmantosim pāris šī vaicājuma piemērus, lai redzētu, kā 233 00:11:27,015 --> 00:11:29,350 tas ietekmē mūsu tabulu. 234 00:11:29,350 --> 00:11:32,230 Tātad ievietošanas vaicājums kopumā izskatās apmēram šādi: INSERT 235 00:11:32,230 --> 00:11:35,110 INTO tabula. 236 00:11:35,110 --> 00:11:37,690 Tātad mēs norādām, kurā tabulā mēs vēlamies ievietot. 237 00:11:37,690 --> 00:11:41,710 Un tad mums ir iekavas, kolonnas — tas ir ar komatu atdalīts saraksts 238 00:11:41,710 --> 00:11:45,730 ar visām mūsu tabulas kolonnām, kurās vēlamies ievietot datus. 239 00:11:45,730 --> 00:11:49,440 Pēc tam mums ir VALUES un pēc tam ar komatu atdalīts to vērtību 240 00:11:49,440 --> 00:11:53,150 saraksts, kuras vēlamies ievietot šajās kolonnās tādā pašā secībā. 241 00:11:53,150 --> 00:11:57,345 Piemēram, es varētu vēlēties INSERT INTO lietotājus šajās trīs 242 00:11:57,345 --> 00:12:01,540 kolonnās — username, password, name . 243 00:12:01,540 --> 00:12:06,595 Vērtības attiecīgi — newman ar mazajiem burtiem, USMAIL — kas atbilst 244 00:12:06,595 --> 00:12:11,650 parolei, un pēc tam lielais burts N Newman pilnajam vārdam. 245 00:12:11,650 --> 00:12:14,964 Tātad, pieņemot, ka es izpildīšu šo vaicājumu šeit parādītajā users 246 00:12:14,964 --> 00:12:18,279 tabulā, kas notiks? 247 00:12:18,279 --> 00:12:19,820 Nu, lūk, kas notiks. 248 00:12:19,820 --> 00:12:24,350 Mēs pievienosim šo rindu, jo mēs ievietojām users tabulā. 249 00:12:24,350 --> 00:12:26,350 Bet jūs, iespējams, jautāsiet sev: uzgaidiet. 250 00:12:26,350 --> 00:12:29,150 Jūs nekad nenorādījāt ID numuru. 251 00:12:29,150 --> 00:12:31,030 Tātad, kā tieši ID numurs tur nokļuva? 252 00:12:31,030 --> 00:12:34,740 Es domāju, jūs norādījāt Newman un USMAIL un Newman. 253 00:12:34,740 --> 00:12:37,120 Bet tie 12, tie nekad nebija mūsu vaicājuma daļa. 254 00:12:37,120 --> 00:12:38,064 Un tev ir taisnība. 255 00:12:38,064 --> 00:12:40,319 Tā kā, definējot kolonnu, kas galu galā kļūst par jūsu tabulas 256 00:12:40,319 --> 00:12:42,574 primāro atslēgu, parasti ir ieteicams, lai šī kolonna būtu vesels 257 00:12:42,574 --> 00:12:44,830 skaitlis. 258 00:12:44,830 --> 00:12:49,150 Tā nav prasība, bet parasti tā ir laba doma . 259 00:12:49,150 --> 00:12:52,375 Un tā kā primārās atslēgas iegūšana ir tik svarīga, iespējams, 260 00:12:52,375 --> 00:12:55,600 vēlēsities to norādīt automātiskai palielināšanai. 261 00:12:55,600 --> 00:12:58,315 Un tas būtībā nozīmē, ka varat aizmirst iekļaut to kā daļu no sava 262 00:12:58,315 --> 00:13:01,030 vaicājuma. 263 00:13:01,030 --> 00:13:04,960 Un, ja to izdarīsit, tā tur automātiski ievietos vērtību, kas ir 264 00:13:04,960 --> 00:13:08,890 unikāla no visām pārējām vērtībām šajā kolonnā, parasti katru reizi 265 00:13:08,890 --> 00:13:12,820 palielinot tikai par vienu, lai šī rinda joprojām būtu unikāla. 266 00:13:12,820 --> 00:13:16,156 Jo, ja tas nav iestatīts uz automātisko palielināšanu un mēs 267 00:13:16,156 --> 00:13:19,493 vienkārši aizmirsām to izlaist, var būt dažas rindas, kas faktiski ir 268 00:13:19,493 --> 00:13:22,830 tukšas vai nulle. 269 00:13:22,830 --> 00:13:25,233 Bet, ja tā ir mūsu primārā atslēga, ja ID numurs ir mūsu primārā 270 00:13:25,233 --> 00:13:27,636 atslēga un mums ir dažas rindas, kas ir tukšas, tagad tās nav 271 00:13:27,636 --> 00:13:30,040 unikālas. 272 00:13:30,040 --> 00:13:31,707 Mums ir divas tukšas rindas. 273 00:13:31,707 --> 00:13:33,040 Mēs nevaram tos unikāli identificēt. 274 00:13:33,040 --> 00:13:35,465 Tāpēc, iestatot savu primāro atslēgu, jūs parasti vēlaties, lai tas 275 00:13:35,465 --> 00:13:37,890 būtu vesels skaitlis, un jūs parasti vēlaties, lai tā automātiski 276 00:13:37,890 --> 00:13:40,315 palielinātos, lai jūs pilnībā aizmirstu par to, ka par to ir 277 00:13:40,315 --> 00:13:42,740 jāuztraucas, un ļautu tabulai to izdarīt jūsu vietā. 278 00:13:42,740 --> 00:13:44,100 Tā nu 12 tur nokļuva. 279 00:13:44,100 --> 00:13:48,055 Es biju norādījis, ka mana idnum kolonna veic automātisku 280 00:13:48,055 --> 00:13:52,010 palielināšanu katru reizi, kad ievietoju tabulā. 281 00:13:52,010 --> 00:13:53,230 Darīsim to citreiz. 282 00:13:53,230 --> 00:13:55,765 Ievietosim citā tabulā, ievietosim moms table šādas vērtības šajās 283 00:13:55,765 --> 00:13:58,300 nākamajās kolonnās. 284 00:13:58,300 --> 00:14:01,684 Username un mother tabulu kolonnās varam INSERT INTO VALUES kramer un 285 00:14:01,684 --> 00:14:05,069 Babs Kramer. 286 00:14:05,069 --> 00:14:06,589 Un tāpat kā tas, ko mēs redzējām iepriekš, tas ir tas, kas mums būtu 287 00:14:06,589 --> 00:14:08,110 rezultāts. 288 00:14:08,110 --> 00:14:10,779 Mēs vienkārši ievietotu šo rindu, un tagad tā būtu daļa no mūsu datu 289 00:14:10,779 --> 00:14:13,449 bāzes un daļa no mūsu tabulām. 290 00:14:13,449 --> 00:14:14,740 Tātad tā ir insert darbība. 291 00:14:14,740 --> 00:14:17,260 Tagad parunāsim par otro darbību, kas ir select . 292 00:14:17,260 --> 00:14:19,790 Tātad, ja ievietošana tiek izmantota, lai ievietotu informāciju 293 00:14:19,790 --> 00:14:22,320 tabulā, tiek izmantota darbība select , lai šo informāciju izņemtu no 294 00:14:22,320 --> 00:14:24,850 tabulas, lai mēs varētu ar to kaut ko darīt. 295 00:14:24,850 --> 00:14:28,630 Arī select queries ir ļoti līdzīga uzbūve . 296 00:14:28,630 --> 00:14:32,198 Un tie izskatās šādi — SELECT un pēc tam visas kolonnas, kuras 297 00:14:32,198 --> 00:14:35,766 vēlaties izvēlēties FROM , no kuras tabulas vēlaties tās izvēlēties. 298 00:14:35,766 --> 00:14:38,158 Un tad pēc izvēles šeit sarkanā krāsā šīs divas citas lietas — WHERE 299 00:14:38,158 --> 00:14:40,550 kāds nosacījums ir izpildīts. 300 00:14:40,550 --> 00:14:43,900 Un mēs parasti SQL kontekstā nosacījumu saucam par predikātu. 301 00:14:43,900 --> 00:14:47,740 Bet būtībā mēs tikai pārbaudām, vai kāda situācija ir patiesa. 302 00:14:47,740 --> 00:14:50,410 Un mēs varētu vēlēties, piemēram, sakārtot tos pēc noteiktas 303 00:14:50,410 --> 00:14:53,080 kolonnas, lai tie būtu sakārtoti alfabētiskā secībā pēc vērtībām kādā 304 00:14:53,080 --> 00:14:55,750 kolonnā vai kā cita. 305 00:14:55,750 --> 00:14:58,770 Mums nav jādara ne WHERE , ne ORDER BY . 306 00:14:58,770 --> 00:15:03,700 Bet parasti WHERE tiks izmantots, lai jūs neatgūtu visu datu bāzi. 307 00:15:03,700 --> 00:15:06,580 Un ORDER BY tikai palīdz sakārtot lietas. 308 00:15:06,580 --> 00:15:10,146 Piemēram, šeit ir atlases vaicājums, ko mēs varētu izmantot — SELECT 309 00:15:10,146 --> 00:15:13,712 idnum, pilns nosaukums no lietotāju tabulas. 310 00:15:13,712 --> 00:15:15,420 Tātad, paskatīsimies, kas šeit notiks. 311 00:15:15,420 --> 00:15:17,555 Tāpēc atcerieties, ka es atlasu idnum un fullname no lietotāju 312 00:15:17,555 --> 00:15:19,690 tabulas. 313 00:15:19,690 --> 00:15:22,420 Nu, kāds atlases vaicājums man atgriezīsies? 314 00:15:22,420 --> 00:15:23,647 Šī informācija šeit. 315 00:15:23,647 --> 00:15:26,448 Tajā tiks aplūkota katra tabulas rinda, un tajā tiks izvilkts ID 316 00:15:26,448 --> 00:15:29,249 numurs un pilns vārds, un visi tie tiks parādīti visā lietotāju 317 00:15:29,249 --> 00:15:32,050 tabulā. 318 00:15:32,050 --> 00:15:35,990 Mana lietotāju tabula sastāv tikai no trim rindām, tāpēc tajā ir 319 00:15:35,990 --> 00:15:39,930 sniegti trīs informācijas pāri, trīs idnum-fullname kombinācijas. 320 00:15:39,930 --> 00:15:41,555 Tagad pieņemsim, ka es vēlos nedaudz ierobežot meklēšanu un nedaudz 321 00:15:41,555 --> 00:15:43,180 ierobežot vaicājumu. 322 00:15:43,180 --> 00:15:48,200 SELECT password FROM users WHERE idnum ir mazāks nekā 12 . 323 00:15:48,200 --> 00:15:49,952 Tāpēc tagad es savam atlases vaicājumam pievienoju predikātu vai 324 00:15:49,952 --> 00:15:51,704 nosacījumu. 325 00:15:51,704 --> 00:15:52,870 Kas te notiks? 326 00:15:52,870 --> 00:15:55,480 Nu, es iegūšu šo informāciju. 327 00:15:55,480 --> 00:15:58,920 Šī ir tikai paroles kolonna no users tabulas, kur ID numurs šajā 328 00:15:58,920 --> 00:16:02,360 rindā ir mazāks par 12. 329 00:16:02,360 --> 00:16:05,830 Tāpēc man tiek atdota tikai 10. un 11. rindas parole. 330 00:16:05,830 --> 00:16:09,610 12. rindas parole man nav atdota, jo 12 nav mazāks par 12. 331 00:16:09,610 --> 00:16:11,575 Ir vēl viena lieta, ko mēs varam darīt ar atlases vaicājumu, un tas 332 00:16:11,575 --> 00:16:13,540 ir, lai atlasītu *. 333 00:16:13,540 --> 00:16:17,750 SELECT * from moms where username equals jerry. 334 00:16:17,750 --> 00:16:20,800 * ir tikai saīsinājums katrai kolonnai. 335 00:16:20,800 --> 00:16:23,750 Tā vietā, lai šeit būtu jānorāda lietotājvārds, mother , divas 336 00:16:23,750 --> 00:16:26,700 kolonnas vai, ja es izmantoju users tabulu, jānorāda idnum, username, 337 00:16:26,700 --> 00:16:29,650 password, fullname , es varu vienkārši pateikt SELECT *. 338 00:16:29,650 --> 00:16:31,680 Dodiet man visu šajā rindā. 339 00:16:31,680 --> 00:16:35,388 Un, ja es SELECT * from moms where username equals jerry , man tiek 340 00:16:35,388 --> 00:16:39,096 atdota šī informācijas kopa. 341 00:16:39,096 --> 00:16:41,672 Tomēr datubāzēs ir lieliska lieta — mums nav jābūt tikai divām 342 00:16:41,672 --> 00:16:44,249 tabulām. 343 00:16:44,249 --> 00:16:47,189 Un jo īpaši mums nav jābūt tikai vienai tabulai, kurā tiek glabāta 344 00:16:47,189 --> 00:16:50,130 visa atbilstošā informācija par lietotāju. 345 00:16:50,130 --> 00:16:53,256 Ja mēs vēlētos saglabāt papildus tam, kas mums ir pieejams, tādu 346 00:16:53,256 --> 00:16:56,382 informāciju kā viņu adrese un dzimšanas datums un sociālās 347 00:16:56,382 --> 00:16:59,508 apdrošināšanas numurs vai jebkas cits, ko mēs vēlamies saglabāt par 348 00:16:59,508 --> 00:17:02,634 viņiem, šī tabula varētu kļūt arvien lielāka, un lielāka un lielāka 349 00:17:02,634 --> 00:17:05,760 līdz brīdim, kad tas kļūst gandrīz kaitinoši, ka tas ir jāizmanto. 350 00:17:05,760 --> 00:17:08,930 Bet mēs varam izmantot attiecības starp dažādām tabulām. 351 00:17:08,930 --> 00:17:12,599 Un šeit relāciju datubāzei tiek izmantots termins relāciju. 352 00:17:12,599 --> 00:17:15,766 Mēs varam pietiekami rūpīgi izveidot tabulas savās datu bāzēs, lai 353 00:17:15,766 --> 00:17:18,934 mēs varētu izmantot attiecības starp tām, lai iegūtu informāciju no 354 00:17:18,934 --> 00:17:22,102 vietas, kur mums tā ir vajadzīga, neievietojot visu šo informāciju 355 00:17:22,102 --> 00:17:25,270 vienā tabulā. 356 00:17:25,270 --> 00:17:30,250 Tā, piemēram, šeit ir mūsu datubāze, kā mēs to pēdējo reizi atstājām, 357 00:17:30,250 --> 00:17:35,231 ar trīs rindām katrā no users un moms tabulām. 358 00:17:35,231 --> 00:17:39,312 Tagad iedomāsimies hipotētisku situāciju, kad mēs vēlamies savienot 359 00:17:39,312 --> 00:17:43,393 pārī lietotāja pilnu vārdu, kas pašlaik ir saglabāts tikai users 360 00:17:43,393 --> 00:17:47,474 tabulā, ar viņa mātes vārdu, kas tiek saglabāts tikai moms s tabulā. 361 00:17:47,474 --> 00:17:49,140 Viņi šobrīd nav vienā tabulā . 362 00:17:49,140 --> 00:17:50,665 Tāpēc mēs nevaram izmantot tāda paša veida atlases vaicājumu, kādu 363 00:17:50,665 --> 00:17:52,190 izmantojām iepriekš. 364 00:17:52,190 --> 00:17:56,000 Mums ir jāizmanto tā sauktais atlases pievienošanās vaicājums. 365 00:17:56,000 --> 00:17:58,700 Tas izskatās diezgan līdzīgs iepriekšējam atlases vaicājumam. 366 00:17:58,700 --> 00:18:01,030 Taču mēs pievienojam vienu papildu informāciju, proti, kuras tabulas 367 00:18:01,030 --> 00:18:03,360 mēs savienojam. 368 00:18:03,360 --> 00:18:06,831 Tāpēc es vēlos atlasīt noteiktu kolonnu kopu no vienas tabulas, tikai 369 00:18:06,831 --> 00:18:10,302 īslaicīgi pievienojot tai citai tabulai. 370 00:18:10,302 --> 00:18:11,510 Tās īsti nesavienojas . 371 00:18:11,510 --> 00:18:16,700 Bet tas rada šāda veida hipotētisku tabulu, kas tās apvieno. 372 00:18:16,700 --> 00:18:19,310 Attiecībā uz predikātu, kur predikāts ir — būtībā mēs cenšamies 373 00:18:19,310 --> 00:18:21,920 atrast, kur abas tabulas pārklājas, lai mēs varētu izveidot šo 374 00:18:21,920 --> 00:18:24,530 sapludināto tabulu tikai uz laiku šī vaicājuma vajadzībām un pēc tam 375 00:18:24,530 --> 00:18:27,140 tās atkal atdalīt. 376 00:18:27,140 --> 00:18:32,368 Piemēram, man varētu būt vaicājums, kas izskatās šādi — SELECT 377 00:18:32,368 --> 00:18:37,597 users.fullname, comma, moms.mother FROM users , kas pievienojas moms 378 00:18:37,597 --> 00:18:42,826 tabulai, uz to īslaicīgi ON  — kas ir līdzīgs WHERE — users.username 379 00:18:42,826 --> 00:18:48,055 equals moms.username . 380 00:18:48,055 --> 00:18:50,180 Un šī sintakse arī ir nedaudz sveša, vai ne? 381 00:18:50,180 --> 00:18:52,000 Es tagad pievienoju dažus savu kolonnu nosaukumus ar tabulu 382 00:18:52,000 --> 00:18:53,820 nosaukumiem. 383 00:18:53,820 --> 00:18:58,435 Iemesls, kāpēc es to daru, ir jo īpaši pēdējā rindiņa, kur katrā no 384 00:18:58,435 --> 00:19:03,050 šīm divām tabulām man bija kolonna ar nosaukumu username . 385 00:19:03,050 --> 00:19:05,180 Man tie jānošķir. 386 00:19:05,180 --> 00:19:07,640 Tāpēc man jānorāda, kura tabula un kāda kolonna. 387 00:19:07,640 --> 00:19:10,173 Tas ir viss, kas šeit notiek, jo es ļoti skaidri runāju par to, kuru 388 00:19:10,173 --> 00:19:12,706 kolonnu vēlos, norādot ne tikai kolonnas nosaukumu, bet arī tabulas 389 00:19:12,706 --> 00:19:15,240 nosaukumu. 390 00:19:15,240 --> 00:19:19,400 Lūk, kas notiktu, ja izpildītu šo atlases vaicājumu. 391 00:19:19,400 --> 00:19:21,980 Šeit ir mūsu divas tabulas pašā sākumā. 392 00:19:21,980 --> 00:19:25,520 Šī ir visa informācija, ar kuru es mēģinu sākt. 393 00:19:25,520 --> 00:19:29,825 Es savienošu šīs divas tabulas, kur where users.username equals 394 00:19:29,825 --> 00:19:34,130 moms.username. 395 00:19:34,130 --> 00:19:35,730 Ņūmens neparādās abās tabulās. 396 00:19:35,730 --> 00:19:38,600 Tāpēc es pat netuvošos šīs informācijas iegūšanai. 397 00:19:38,600 --> 00:19:41,420 Krāmers neparādās abās tabulās, tā kā šis arī nestrādā . 398 00:19:41,420 --> 00:19:45,050 Bet gan Džerijs, gan gcostanza parādās abās tabulās. 399 00:19:45,050 --> 00:19:47,990 Un tāpēc tas ir sava veida pārklāšanās punkts. 400 00:19:47,990 --> 00:19:52,344 Un jūs varat domāt par to tā, it kā mums būtu mūsu users tabula, kas 401 00:19:52,344 --> 00:19:56,699 ir kā viens aplis šeit, un mūsu moms tabula, kas ir viens aplis šeit. 402 00:19:56,699 --> 00:19:59,240 Kad mēs pievienojamies, tā ir tāda pati kā Venna diagramma. 403 00:19:59,240 --> 00:20:02,022 Mēs cenšamies noskaidrot, kas šīm divām tabulām ir kopīgs, un 404 00:20:02,022 --> 00:20:04,805 izmantojam to kā savienojuma tabulu enkura punktu. 405 00:20:04,805 --> 00:20:05,930 Tā mēs šeit darījām. 406 00:20:05,930 --> 00:20:08,660 Mēs noskaidrojām, kur abām tabulām ir kopīgi dati. 407 00:20:08,660 --> 00:20:13,700 Pamatojoties uz to, mēs izveidojam šo hipotētisko tabulu, ko sauc par 408 00:20:13,700 --> 00:20:18,740 users un moms un kurā ir visa informācija, kas parādās abās tabulās. 409 00:20:18,740 --> 00:20:22,490 Bet ievērojiet, ka otrā kolonna norāda uz pārklāšanos. 410 00:20:22,490 --> 00:20:24,989 Šī kolonna attiecas uz datiem, kas atrodas gan failā user.username, 411 00:20:24,989 --> 00:20:27,489 gan moms.username. 412 00:20:27,489 --> 00:20:29,030 Tātad tas ir tas, ko mēs šeit iegūstam. 413 00:20:29,030 --> 00:20:31,363 Bet atcerieties, ka šajā vaicājumā , mēs nevēlējāmies visu. 414 00:20:31,363 --> 00:20:33,946 Tas nebija SELECT * FROM users JOIN moms WHERE users.username equals 415 00:20:33,946 --> 00:20:36,530 moms.username. 416 00:20:36,530 --> 00:20:40,650 Username We tikai pieprasa pilnu vārdu un mātes vārdu. 417 00:20:40,650 --> 00:20:42,200 Un tas ir tas, ko mēs iegūstam. 418 00:20:42,200 --> 00:20:45,773 Un šī patiešām garā vaicājuma rezultātā mēs iegūstam šo informācijas 419 00:20:45,773 --> 00:20:49,346 kopu — users.fullname un moms.mother katrai rindai abās tabulās, kur 420 00:20:49,346 --> 00:20:52,920 username ir vienāds. 421 00:20:52,920 --> 00:20:53,532 Labi. 422 00:20:53,532 --> 00:20:54,990 Tātad tas bija nedaudz sarežģītāk. 423 00:20:54,990 --> 00:20:56,540 Jūs, iespējams, nedarīsit pārāk daudz pievienošanās. 424 00:20:56,540 --> 00:21:00,210 Par laimi, pēdējās divas darbības ir nedaudz vieglākas. 425 00:21:00,210 --> 00:21:02,510 Tātad atjaunināšana ir trešā no četrām galvenajām operācijām. 426 00:21:02,510 --> 00:21:04,705 Tas ir tas, ko mēs izmantojam, lai mainītu informāciju tabulā vai 427 00:21:04,705 --> 00:21:06,901 mainītu to vai atjauninātu informāciju. 428 00:21:06,901 --> 00:21:09,753 Ietvars izskatās šādi — UPDATE table SET column equals value  — tāpēc 429 00:21:09,753 --> 00:21:12,606 mēs atjauninām kādu kolonnu, lai tajā būtu jauns datu fragments — 430 00:21:12,606 --> 00:21:15,459 WHERE predikāti. 431 00:21:15,459 --> 00:21:17,629 Mēs cenšamies noskaidrot, kuru rindu vēlamies atjaunināt, un pēc tam 432 00:21:17,629 --> 00:21:19,800 mēs atjauninām šo kolonnu. 433 00:21:19,800 --> 00:21:22,683 Tā, piemēram, es vēlos UPDATE users SET password equals yadayada 434 00:21:22,683 --> 00:21:25,566 WHERE idnum equals 10 435 00:21:25,566 --> 00:21:27,690 Droši vien varat uzminēt, kas šeit notiks. 436 00:21:27,690 --> 00:21:31,660 Mēs atradīsim rindu, kuras ID numurs ir 10, un tur atjaunināsim 437 00:21:31,660 --> 00:21:35,630 paroli no “fusilli” uz “yadayada”. Diezgan vienkārši. 438 00:21:35,630 --> 00:21:39,301 Ceturtā un pēdējā darbība, ko mēs visbiežāk veicam SQL, ir dzēšana, 439 00:21:39,301 --> 00:21:42,972 kas izjauc vai pilnībā noņem informāciju no tabulas. 440 00:21:42,972 --> 00:21:46,566 Pamata ietvars izskatās apmēram šādi - DELETE no kādas tabulas WHERE 441 00:21:46,566 --> 00:21:50,160 predikāta vai, atkal, kur ir izpildīts kāds nosacījums. 442 00:21:50,160 --> 00:21:52,451 Tā, piemēram, jūs varētu vēlēties DELETE no mūsu users tabulas, WHERE 443 00:21:52,451 --> 00:21:54,743 the user name equals 'newman.' . Tagad, ja mēs to izdarījām un šī 444 00:21:54,743 --> 00:21:57,034 bija mūsu tabula, ar kuru sākt, jūs droši vien varat uzminēt, kas 445 00:21:57,034 --> 00:21:59,326 notiks. 446 00:21:59,326 --> 00:22:02,673 Pēc šī vaicājuma izpildes rinda, kuras lietotājvārds ir newman, vairs 447 00:22:02,673 --> 00:22:06,020 nav mūsu tabulā. 448 00:22:06,020 --> 00:22:09,538 Tagad visas darbības, kuras mēs tikko parādījām, ir patiešām viegli 449 00:22:09,538 --> 00:22:13,056 izdarāmas phpMyAdmin grafiskajā saskarnē, kas ir iekļauta lielākajā 450 00:22:13,056 --> 00:22:16,574 daļā SQL implementēšanu , ko varat lejupielādēt. 451 00:22:16,574 --> 00:22:19,607 Tomēr, lai gan phpMyAdmin ir ļoti ērti lietojams, tam ir nepieciešama 452 00:22:19,607 --> 00:22:22,640 manuāla iejaukšanās. 453 00:22:22,640 --> 00:22:25,190 Jums būs jāpiesakās un jānoklikšķina uz dažām pogām, lai izdzēstu 454 00:22:25,190 --> 00:22:27,740 informāciju vai atjauninātu vai mainītu to. 455 00:22:27,740 --> 00:22:29,009 Un mēs nevēlamies to darīt. 456 00:22:29,009 --> 00:22:30,050 Mēs esam tīmekļa pārziņi , vai ne? 457 00:22:30,050 --> 00:22:31,970 Mēs vēlamies, lai lietas notiktu automātiski. 458 00:22:31,970 --> 00:22:33,558 Mēs vēlamies, lai mūsu rakstītās programmas veiktu šīs izmaiņas mūsu 459 00:22:33,558 --> 00:22:35,147 vietā. 460 00:22:35,147 --> 00:22:37,730 Tāpēc mēs nevēlamies iedziļināties phpMyAdmin un veikt šīs izmaiņas. 461 00:22:37,730 --> 00:22:40,490 Mums ir jāraksta kods, kas to dara mūsu vietā. 462 00:22:40,490 --> 00:22:43,850 Par laimi, SQL patiešām lieliski integrējas ar daudzām modernām 463 00:22:43,850 --> 00:22:47,210 programmēšanas valodām, piemēram, Python vai PHP, kurām ir funkcijas, 464 00:22:47,210 --> 00:22:50,570 kuras varat izmantot, lai izveidotu savienojumu ar datu bāzi. 465 00:22:50,570 --> 00:22:54,395 Un tad programmēšanas valodai ir citas funkcijas, kas jūsu vietā 466 00:22:54,395 --> 00:22:58,220 pieprasīs datu bāzi un veiks šīs izmaiņas. 467 00:22:58,220 --> 00:23:01,430 Tagad mēs apspriedīsim tieši to, kā šīs valodas to dara. 468 00:23:01,430 --> 00:23:04,007 Mēs to saglabāsim video par šīm valodām. 469 00:23:04,007 --> 00:23:07,324 Bet ziniet, ka to varat darīt, lai izvairītos no jebkāda veida 470 00:23:07,324 --> 00:23:10,642 manuālas iejaukšanās, kad vēlaties atjaunināt vai veikt jebkādas 471 00:23:10,642 --> 00:23:13,960 darbības savās datu bāzēs. 472 00:23:13,960 --> 00:23:15,220 Mani sauc Dags Loids. 473 00:23:15,220 --> 00:23:20,220 Šis ir CS50.