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 UNIVERSITY] 3 00:00:04,000 --> 00:00:06,000 [INI ADALAH CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Jadi, programmer menggunakan database sebagai alat untuk menyimpan dan mengatur 5 00:00:11,620 --> 00:00:13,620 kami terus-menerus data dalam tabel. 6 00:00:13,620 --> 00:00:18,960 Ini berarti bahwa data anda disimpan pada non-volatile median seperti hard drive, 7 00:00:18,960 --> 00:00:22,940 dan bahkan ketika komputer dimatikan, data masih utuh. 8 00:00:22,940 --> 00:00:29,530 Dan, sebagai programmer, program kami memanfaatkan database untuk skenario seperti menyimpan 9 00:00:29,530 --> 00:00:32,890 pengguna informasi dari bentuk web, mencari persediaan, 10 00:00:32,890 --> 00:00:36,210 atau memperbarui informasi tentang apa situs ditampilkan. 11 00:00:37,150 --> 00:00:40,070 Tapi bagaimana kita benar-benar berinteraksi dengan database kami, 12 00:00:40,070 --> 00:00:43,150 atau apa yang kita gunakan untuk membaca, menyimpan, menghapus, 13 00:00:43,150 --> 00:00:46,070 dan memperbarui data kami dalam ini tabel database? 14 00:00:47,280 --> 00:00:49,700 Nah, jawabannya adalah bahwa kita menggunakan tipe khusus dari bahasa database 15 00:00:49,700 --> 00:00:53,400 yang berinteraksi langsung dengan tabel database kami. 16 00:00:53,400 --> 00:00:56,740 Nama itu adalah Structured Query Language, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 atau apa yang saya sebut sebagai SQL. 19 00:01:00,740 --> 00:01:05,100 >> Sekarang, [Se-Quel], atau SQL, bukan bahasa pemrograman, 20 00:01:05,100 --> 00:01:08,580 tetapi sebaliknya, itu adalah bahasa yang menyediakan satu set standar perintah 21 00:01:08,580 --> 00:01:13,520 untuk mengambil dan memanipulasi data dari berbagai sistem manajemen database. 22 00:01:13,520 --> 00:01:17,630 Untuk tujuan CS50, kita akan pergi ke empat perintah dasar: 23 00:01:17,630 --> 00:01:21,210 pilih, insert, update, dan menghapus. 24 00:01:21,210 --> 00:01:26,230 Selain itu, kami akan memanfaatkan antarmuka web database disebut phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 yang dipasang pada alat untuk menulis pernyataan SQL kami. 26 00:01:30,830 --> 00:01:33,050 Jadi, untuk membantu Anda mengingat perintah ini, 27 00:01:33,050 --> 00:01:37,080 Saya sudah membawa beberapa cupcakes di lemari untuk membantu dengan skenario kami. 28 00:01:39,650 --> 00:01:42,210 Katakanlah Anda memiliki database cupcake ini, 29 00:01:42,210 --> 00:01:44,490 di mana Anda menyimpan semua informasi tentang cupcakes Anda. 30 00:01:44,490 --> 00:01:48,220 Sekarang, database dapat berisi banyak tabel 31 00:01:48,220 --> 00:01:50,950 dan meja itu sendiri dapat mengandung banyak kolom. 32 00:01:50,950 --> 00:01:57,020 Dalam database cupcake kita, kita memiliki tabel yang disebut cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Tabel ini akan digunakan untuk menyimpan semua informasi tentang cupcakes 34 00:02:00,500 --> 00:02:02,990 yang, baik, dalam lemari Anda. 35 00:02:02,990 --> 00:02:07,770 Kolom yang berada di dalam meja Anda mewakili atribut cupcake. 36 00:02:07,770 --> 00:02:14,560 Misalnya, kolom cupcake_cupboard ini adalah 37 00:02:14,560 --> 00:02:15,920 Kue ID, CakeType, CakeColor, dan CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Ini kolom boolean-diketik digunakan untuk menentukan apakah kue ini bagus atau tidak bagus. 39 00:02:23,040 --> 00:02:26,560 Kita akan mulai dengan menulis pernyataan pilih. 40 00:02:26,560 --> 00:02:32,160 Pernyataan pilih yang digunakan untuk mengambil data dari tabel database tertentu. 41 00:02:32,160 --> 00:02:34,890 Dalam skenario ini, kita ingin tahu segalanya 42 00:02:34,890 --> 00:02:39,080 tentang semua cupcakes yang ada di lemari kami. 43 00:02:39,080 --> 00:02:48,670 Sintaks untuk melakukan ini adalah "Pilih" ruang bintang, atau *, ruang dari ruang meja kami, 44 00:02:48,670 --> 00:02:52,050 yang cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Mari kita pergi ke depan dan melaksanakan itu. 46 00:02:56,670 --> 00:03:00,140 >> Seperti yang bisa kita lihat, ini semua cupcakes di lemari kami. 47 00:03:00,140 --> 00:03:05,110 Sangat penting untuk dicatat bahwa *, atau tanda bintang, adalah karakter kartu liar 48 00:03:05,110 --> 00:03:08,830 yang menunjukkan berkumpulnya semua kolom tabel tertentu. 49 00:03:08,830 --> 00:03:13,650 Biasanya, kita dapat mengakses kolom tertentu atau kolom 50 00:03:13,650 --> 00:03:16,950 dengan mengganti * dengan nama kolom yang sebenarnya. 51 00:03:16,950 --> 00:03:21,220 Jika kita ingin beberapa kolom, tapi tidak semua, kita bisa mencapai hal ini 52 00:03:21,220 --> 00:03:25,620 dengan menulis nama kolom pembatasan setiap kolom dengan koma. 53 00:03:25,620 --> 00:03:28,620 Sebagai contoh, mari kita hanya mengambil CakeId dan CakeType dalam tabel cupcake_cupboard. 54 00:03:28,620 --> 00:03:38,370 Sintaks untuk melakukan ini adalah: ruang koma CakeID SELECT 55 00:03:38,370 --> 00:03:44,370 CakeType ruang dari, cupcake_cupboard meja kami. 56 00:03:44,370 --> 00:03:46,370 Mari kita pergi ke depan dan mengeksekusi ini. 57 00:03:49,340 --> 00:03:52,670 Dan di sini, sekarang kita hanya memiliki dua kolom kita ditentukan 58 00:03:52,670 --> 00:03:54,670 untuk setiap cupcake di lemari kami. 59 00:03:54,670 --> 00:03:57,710 Kami juga dapat memperbaiki hasil query kita dengan menetapkan 60 00:03:57,710 --> 00:04:00,910 "Di mana" klausul hanya setelah nama tabel. 61 00:04:02,000 --> 00:04:05,410 Sebagai contoh, tampaknya ada cupcake dalam lemari kami 62 00:04:05,410 --> 00:04:08,660 yaitu, baik, tidak begitu bagus melihat. 63 00:04:08,660 --> 00:04:13,950 Mari kita mencari tahu semua cupcakes di lemari kami yang, baik, tidak begitu baik cari 64 00:04:13,950 --> 00:04:16,110 menggunakan "Di mana" klausul. 65 00:04:16,110 --> 00:04:26,390 Sintaks untuk melakukan ini adalah: ruang ruang SELECT * FROM cupcake_cupboard ruang 66 00:04:26,390 --> 00:04:34,080 ruang MANA ruang kolom bersyarat kami, dalam hal ini CakeIsNice =, 67 00:04:34,080 --> 00:04:36,900 dan nilai boolean False. 68 00:04:36,900 --> 00:04:42,750 Penting untuk dicatat bahwa jika Anda menggunakan string, Anda harus melengkapinya dengan tanda kutip tunggal. 69 00:04:42,750 --> 00:04:49,620 Hal ini berlaku untuk semua string di SQL, atau, dalam istilah database SQL karakter varian, 70 00:04:49,620 --> 00:04:51,620 dikenal sebagai VARCHAR datatype. 71 00:04:51,620 --> 00:04:57,660 Dalam kasus ini, kita menggunakan Benar atau Salah, yang merupakan nilai boolean dan bukan string. 72 00:04:59,120 --> 00:05:00,660 Mari kita pergi ke depan dan menjalankan perintah ini. 73 00:05:00,660 --> 00:05:05,340 >> Lo dan lihatlah, itu adalah kasus yang kita miliki 1 chocolate 74 00:05:05,340 --> 00:05:07,920 tidak begitu baik cupcake di lemari kami. 75 00:05:09,620 --> 00:05:11,460 Selanjutnya, kita akan menulis sebuah pernyataan insert. 76 00:05:11,460 --> 00:05:15,560 Pernyataan insert digunakan untuk menyisipkan atau menambahkan 77 00:05:15,560 --> 00:05:17,770 tambahan baris data ke dalam tabel database Anda. 78 00:05:17,770 --> 00:05:23,160 Menyingkap skenario kami, mari kita asumsikan bahwa kita baru saja membuat cupcake baru. 79 00:05:25,910 --> 00:05:30,080 Karena kami sangat terorganisir pemakan cupcake, kita akan harus menyisipkan ini cupcake baru 80 00:05:30,080 --> 00:05:32,330 dalam tabel cupcake_cupboard kami. 81 00:05:32,330 --> 00:05:40,690 Sintaks untuk melakukan ini adalah ini: Masukkan ke dalam ruang ruang meja kami, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, ruang (, 83 00:05:46,830 --> 00:05:51,060 dan di sini kita menentukan nama kolom, dipisahkan dengan koma, 84 00:05:51,060 --> 00:05:59,790 CakeType koma CakeColor koma CakeIsNice) ruang. 85 00:05:59,790 --> 00:06:06,540 Setelah ini, kita menulis ruang kata VALUES (, dan di sini 86 00:06:06,540 --> 00:06:12,170 kita masukkan nilai untuk setiap kolom masing-masing, juga dibatasi oleh koma. 87 00:06:12,170 --> 00:06:17,830 Kutip tunggal, karena mereka semua nilai VARCHAR kita akan mengelilingi mereka dalam tanda kutip tunggal, 88 00:06:17,830 --> 00:06:26,780 'Koma' PEANUT BUTTER CAHAYA BROWN 'koma Benar. 89 00:06:26,780 --> 00:06:30,480 Sekarang, penting untuk memberikan setiap baris nomor unik untuk mengidentifikasi dirinya sendiri. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing kolom memberikan ini sebagai 91 00:06:33,660 --> 00:06:37,410  "Tidak ada dua ID yang sama pernah bisa eksis dalam tabel ini." 92 00:06:37,410 --> 00:06:39,480 Mari kita pergi ke depan dan mengeksekusi. 93 00:06:39,480 --> 00:06:45,380 Di sana kami pergi, semua terorganisir. 94 00:06:49,720 --> 00:06:52,100 >> Pernyataan SQL berikutnya yang akan kita tulis adalah pernyataan update. 95 00:06:52,100 --> 00:06:55,650 Pernyataan pembaruan dapat digunakan untuk memodifikasi data dalam kolom 96 00:06:55,650 --> 00:06:58,440 untuk setiap baris yang ada di tabel database Anda. 97 00:06:59,670 --> 00:07:03,420 Sebelumnya dalam skenario kami, menggunakan pernyataan pilih, kami mengidentifikasi cupcake 98 00:07:03,420 --> 00:07:08,300 dalam tabel cupcake_cupboard kami yang nilainya CakeIsNice adalah False. 99 00:07:08,300 --> 00:07:12,050 Mari kita berasumsi bahwa sementara kacang cupcake mentega kami berada di oven, 100 00:07:12,050 --> 00:07:15,790 kami membuat cupcake kami tidak begitu bagus sangat bagus. 101 00:07:18,020 --> 00:07:22,240 Menjadi sangat sangat terorganisir, kami ingin cupcake kami untuk mencerminkan nilai ini 102 00:07:22,240 --> 00:07:24,240 dalam tabel cupcake_cupboard kami. 103 00:07:24,240 --> 00:07:28,710 Oleh karena itu, mari kita memperbarui cupcake cokelat kami dalam database untuk mencerminkan hal ini. 104 00:07:28,710 --> 00:07:39,720 Sintaksnya adalah: UPDATE ruang meja kami, cupcake_cupboard, ruang ruang SET 105 00:07:39,720 --> 00:07:44,240 kolom yang ingin kita ubah, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Maka di sini kita menempatkan nilai baru kami ruang Benar. 107 00:07:49,210 --> 00:07:54,290 Sekarang, karena kita tidak ingin memperbarui semua baris dengan nilai ini, 108 00:07:54,290 --> 00:07:57,400 kami ingin memberikan "Di mana" klausul yang akan menentukan kita 109 00:07:57,400 --> 00:07:59,830 ke baris yang tepat yang ingin kita ubah. 110 00:07:59,830 --> 00:08:03,690 Dalam kasus ini, kita tahu bahwa hanya ada satu cupcake 111 00:08:03,690 --> 00:08:06,670 yang memiliki nilai CakeIsNice dari False. 112 00:08:06,670 --> 00:08:11,030 Selain itu, kami juga akan memastikan bahwa kita memperbarui baris yang benar 113 00:08:11,030 --> 00:08:13,030 dengan menggunakan "Dan" klausa. 114 00:08:14,340 --> 00:08:17,270 Kami menggunakan "Dan" klausul untuk memperbaiki pertanyaan kami lebih lanjut. 115 00:08:17,270 --> 00:08:20,380 Dalam kasus ini, karena kita tahu bahwa cupcake adalah cokelat, 116 00:08:20,380 --> 00:08:23,160 kita akan menggunakan kolom ini CakeType. 117 00:08:23,160 --> 00:08:31,500 MANA ruang bersyarat kolom kami ruang ruang CakeIsNice = False, 118 00:08:31,500 --> 00:08:38,330 dan ruang CakeType = 'CHOCOLATE.' 119 00:08:38,330 --> 00:08:41,880 Jadi, menempatkan itu semua bersama-sama, ini pernyataan pembaruan mengatakan 120 00:08:41,880 --> 00:08:44,670 menemukan semua cupcakes di lemari cupcake kami, 121 00:08:44,670 --> 00:08:50,520 dan jika ada cupcake yang kolom CakeIsNice berisi nilai False 122 00:08:50,520 --> 00:08:54,130 dan CakeType berisi CHOCOLATE nilai, 123 00:08:54,130 --> 00:08:58,240 kita ingin memperbarui nilai baris CakeIsNice khusus untuk Benar. 124 00:08:58,240 --> 00:09:01,140 Jadi, mari kita pergi ke depan dan mengeksekusi pernyataan tersebut. 125 00:09:03,860 --> 00:09:05,860 Dan sekarang, kita terorganisir. 126 00:09:06,650 --> 00:09:09,220 >> Semua pembicaraan mengenai cupcakes telah membuat saya sedikit lapar. 127 00:09:09,220 --> 00:09:11,360 Saya pikir saya harus menahan diri untuk satu. 128 00:09:11,360 --> 00:09:17,670 Tetapi jika aku benar-benar makan cupcake ini, saya setidaknya harus juga menghapus keberadaannya 129 00:09:17,670 --> 00:09:19,670  dari meja cupcake_cupboard kami. 130 00:09:20,650 --> 00:09:22,590 Untuk melakukan hal ini, kita akan menggunakan "Hapus" pernyataan. 131 00:09:22,590 --> 00:09:27,400 The "Hapus" Pernyataan dapat digunakan untuk menghapus semua atau beberapa baris dari tabel. 132 00:09:27,400 --> 00:09:29,920 Jika Anda ingin menghapus beberapa baris tertentu dari tabel, 133 00:09:29,920 --> 00:09:34,360 maka Anda harus memberikan "Di mana" klausul, sehingga menentukan kolom 134 00:09:34,360 --> 00:09:37,660 yang harus unik untuk baris yang ingin Anda hapus. 135 00:09:37,660 --> 00:09:47,370 Ini adalah sintaks: DELETE FROM ruang ruang meja kami, cupcake_cupboard, ruang. 136 00:09:47,370 --> 00:09:51,760 Sekarang, pada saat ini, setiap kali Anda berada sejauh ini dalam pernyataan menghapus Anda 137 00:09:51,760 --> 00:09:54,240 Anda ingin menjadi sangat berhati-hati. 138 00:09:54,240 --> 00:09:59,970 Sebagai contoh, jika saya ingin menjalankan query ini seperti tanpa memberikan beberapa "Di mana" klausul 139 00:09:59,970 --> 00:10:04,500 Saya akan kehilangan semua data dalam tabel ini cupcake_cupboard, 140 00:10:04,500 --> 00:10:09,590 tapi karena aku sudah tahu bahwa ID saya kue yang unik, saya akan menggunakan 141 00:10:09,590 --> 00:10:12,410 kue Red Velvet ID untuk klausul saya "Di mana". 142 00:10:14,550 --> 00:10:20,670 MANA ruang kita kolom, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Karena ini adalah nilai integer tidak perlu untuk mengelilingi dalam tanda kutip tunggal. 144 00:10:25,010 --> 00:10:27,020 Jadi, mari kita mengeksekusi pernyataan tersebut. 145 00:10:33,560 --> 00:10:35,990 Nah, sekarang kita telah menghapus keberadaan cupcake ini 146 00:10:35,990 --> 00:10:40,360 dari meja cupcake_cupboard kami, kami hanya memiliki satu hal kiri: 147 00:10:41,680 --> 00:10:43,680 Membuatnya menghilang. 148 00:10:43,680 --> 00:10:46,990 Saya Christopher Bartholomew. Ini adalah CS50.