[Powered by Google Translate] [SQL]
[CHRISTOPHER Bartholomew] [HARVARD UNIVERSITY]
[INI ADALAH CS50] [CS50 TV]
Jadi, pengaturcara menggunakan pangkalan data sebagai alat untuk menyimpan dan menyusun
kami data berterusan dalam jadual.
Ini bermakna bahawa data anda disimpan pada median bukan menentu seperti cakera keras,
dan walaupun komputer dimatikan, data masih utuh.
Dan, sebagai pengaturcara, program kami menggunakan pangkalan data untuk senario seperti menyimpan
maklumat pengguna dari borang web, mencari inventori,
atau mengemaskini maklumat tentang apakah laman web yang memaparkan.
Tetapi bagaimana kita sebenarnya berinteraksi dengan pangkalan data kami,
atau apa yang kita gunakan untuk membaca, menyimpan, memadam,
dan mengemaskini data kami dalam jadual pangkalan data?
Nah, jawapannya adalah kita menggunakan jenis khas bahasa pangkalan data
yang berinteraksi secara langsung dengan jadual pangkalan data kami.
Nama ia Berstruktur Query Language,
[Bahasa Pertanyaan Berstruktur]
atau apa yang saya rujuk sebagai SQL.
>> Sekarang, [Se-Quel], atau SQL, tidak adalah bahasa pengaturcaraan,
tetapi sebaliknya, ia adalah satu bahasa yang menyediakan satu set standard arahan
untuk mendapatkan semula dan memanipulasi data dari pelbagai sistem pengurusan pangkalan data.
Untuk tujuan CS50, kita akan pergi ke empat arahan asas:
pilih, memasukkan, mengemaskini, dan memadam.
Tambahan pula, kami akan menggunakan antara muka pangkalan data web yang dipanggil phpMyAdmin,
yang dipasang pada perkakas untuk menulis kenyataan SQL kami.
Jadi, untuk membantu anda ingat arahan ini,
Saya telah membawa beberapa cupcakes di dalam almari untuk membantu dengan senario kami.
Katakanlah anda mempunyai pangkalan data cupcake,
di mana anda menyimpan semua maklumat tentang cupcakes anda.
Sekarang, pangkalan data boleh mengandungi banyak jadual
dan jadual sendiri boleh mengandungi lajur banyak.
Di dalam pangkalan data cupcake kita, kita mempunyai jadual yang dipanggil cupcake_cupboard.
Jadual ini akan digunakan untuk menyimpan semua maklumat tentang cupcakes
yang, baik, di dalam almari anda.
Tiang-tiang yang berada di dalam jadual anda mewakili sifat cupcake satu.
Sebagai contoh, ruangan yang cupcake_cupboard
Kek ID, CakeType, CakeColor, dan CakeIsNice.
Ruangan ini boolean menaip digunakan untuk menentukan jika kek adalah baik atau tidak baik.
Kami akan bermula dengan menulis kenyataan pilih.
Pilih kenyataan yang digunakan untuk mendapatkan data jadual pangkalan data tertentu.
Dalam senario ini, kita mahu tahu segala-galanya
tentang semua cupcakes yang wujud di dalam almari kami.
Syntax untuk melakukan ini adalah "Select" ruang bintang, atau *, ruang dari ruang meja kami,
yang cupcake_cupboard.
Mari kita pergi ke hadapan dan melaksanakan bahawa.
>> Seperti yang kita boleh lihat, semua ini adalah cupcakes dalam almari kami.
Adalah penting untuk ambil perhatian bahawa *, atau asterisk, adalah watak kad liar
yang menandakan perhimpunan semua ruangan jadual tertentu.
Biasanya, kita boleh mengakses lajur tertentu atau lajur
dengan menggantikan * dengan nama ruang sebenar.
Jika kita mahu berbilang lajur, tetapi tidak semua, kita boleh mencapai matlamat ini
dengan menulis nama lajur delimiting setiap lajur oleh koma.
Sebagai contoh, mari kita hanya mengambil CakeId dan CakeType dalam jadual cupcake_cupboard.
Sintaks untuk melakukan ini ialah: SELECT ruang CakeID koma
Ruang CakeType dari jadual kami, cupcake_cupboard.
Mari kita pergi ke hadapan dan melaksanakan ini.
Dan di sini, kini kita hanya mempunyai dua tiang kita dinyatakan
untuk setiap cupcake dalam almari kami.
Kita juga boleh memperbaiki keputusan query kami dengan menyatakan
"Di mana" fasal hanya selepas nama table.
Sebagai contoh, terdapat muncul untuk menjadi cupcake dalam almari kami
yang, baik, tidak begitu baik cari.
Mari kita memikirkan semua cupcakes dalam almari kami yang baik, tidak begitu baik mencari
menggunakan "Di mana" fasal.
Sintaks untuk melakukan ini ialah: ruang ruang SELECT * DARI cupcake_cupboard ruang
angkasa MANA kolum ruang bersyarat, dalam kes ini CakeIsNice =,
dan nilai boolean palsu.
Adalah penting untuk ambil perhatian bahawa jika anda menggunakan tali, anda mesti sertakan dalam petikan tunggal.
Ini adalah benar bagi semua rentetan dalam SQL, atau, dari segi pangkalan data SQL, watak-watak varian
dikenali sebagai VARCHAR jenisdata.
Dalam kes ini, kita menggunakan Benar atau Palsu, yang merupakan nilai boolean dan tidak rentetan.
Mari kita pergi ke hadapan dan melaksanakan arahan ini.
>> Nah, lihatlah, ia adalah kes bahawa kita mempunyai 1 coklat
tidak begitu baik cupcake dalam almari kami.
Seterusnya, kita pergi untuk menulis kenyataan memasukkan.
Penyata Sisipan digunakan untuk memasukkan atau menambah
baris tambahan data ke dalam jadual pangkalan data anda.
Melawati senario kita, mari kita andaikan bahawa kita baru sahaja membuat jenama baru cupcake.
Sejak kita sangat dianjurkan pemakan cupcake, kita akan perlu untuk memasukkan ini cupcake baru
dalam jadual cupcake_cupboard kami.
Syntax untuk melakukan ini adalah ini: Masukkan ruang ke ruang meja kami,
cupcake_cupboard, ruang (,
dan di sini kita nyatakan nama kolum, dihalang oleh koma,
CakeType koma CakeColor koma CakeIsNice) ruang.
Berikutan ini, kita menulis ruang NILAI perkataan (, dan di sini
kita masukkan nilai bagi setiap lajur masing-masing, juga dipisahkan oleh koma.
Quote Single, kerana mereka semua nilai VARCHAR kita akan mengelilingi mereka dalam petikan tunggal,
BROWN LIGHT 'koma' MENTEGA KACANG 'Benar koma.
Kini, ia adalah penting untuk memberi setiap baris nombor unik untuk mengenal pasti dirinya.
Autoincrementing lajur menyediakan ini sebagai
"Tiada dua ID yang sama pernah boleh wujud dalam jadual ini."
Mari kita pergi ke hadapan dan melaksanakan.
Kita pergi, semua tersusun.
>> Pernyataan SQL seterusnya bahawa kita akan menulis adalah satu kenyataan update.
Kenyataan kemas kini boleh digunakan untuk mengubah data dalam lajur
bagi barisan yang sedia ada dalam jadual pangkalan data anda.
Terdahulu, dalam senario kami, menggunakan kenyataan pilih, kami telah mengenal pasti cupcake
dalam jadual cupcake_cupboard kita nilai CakeIsNice yang adalah palsu.
Mari kita andaikan bahawa sementara cupcake mentega kacang kami adalah di dalam oven,
kami membuat cupcake kami tidak-begitu-baik sangat bagus.
Yang begitu sangat dianjurkan, kita mahu cupcake kami untuk mencerminkan nilai ini
dalam jadual cupcake_cupboard kami.
Oleh itu, mari kita mengemaskini cupcake coklat dalam pangkalan data kami untuk mencerminkan ini.
Sintaks adalah: UPDATE ruang meja kami, cupcake_cupboard, ruang ruang SET
lajur bahawa kita ingin berubah, CakeIsNice =.
Kemudian di sini kita meletakkan ruang nilai baru kami Benar.
Sekarang, kerana kita tidak mahu untuk mengemaskini semua baris dengan nilai ini,
kami ingin memberikan "Jika" klausa yang akan menentukan kita
kepada barisan yang tepat yang kita mahu untuk mengubah suai.
Dalam kes ini, kita tahu bahawa hanya ada satu cupcake
yang mempunyai nilai CakeIsNice atau Palsu.
Selain itu, kami juga akan memastikan bahawa kami sedang mengemaskini barisan yang betul
dengan menggunakan "Dan" fasal.
Kami menggunakan "Dan" fasal untuk memperbaiki query kami.
Dalam kes ini, kerana kita tahu bahawa cupcake coklat,
kita akan menggunakan ruangan ini CakeType.
MANA ruang kolum ruang bersyarat CakeIsNice ruang = False,
dan ruang CakeType = 'COKLAT'.
Jadi, meletakkan semua bersama-sama, kenyataan ini kemas kini mengatakan
mencari semua cupcakes dalam almari cupcake kami,
dan jika ada adalah cupcake yang kolum CakeIsNice mengandungi nilai Palsu
dan CakeType mengandungi COKLAT nilai,
kita mahu untuk mengemaskini baris tertentu CakeIsNice nilai kepada Benar.
Jadi, mari kita pergi ke hadapan dan melaksanakan kenyataan itu.
Dan sekarang, kita dianjurkan.
>> Semua ini bercakap cupcakes telah membuat saya sedikit lapar.
Saya rasa saya perlu membantu diri saya kepada satu.
Tetapi jika saya benar-benar makan cupcake ini, saya perlu sekurang-kurangnya juga mengeluarkan kewujudannya
dari jadual cupcake_cupboard kami.
Untuk melakukan ini, kita akan menggunakan kenyataan "Delete".
"Delete" kata kenyataan boleh digunakan untuk membuang semua atau beberapa baris dari jadual.
Jika anda ingin mengeluarkan beberapa baris tertentu dari jadual,
maka anda mesti menyediakan "Di mana" fasal, lantas menyatakan lajur
yang harus unik untuk berturut-turut bahawa anda ingin membuang.
Ini adalah sintaks: DELETE ruang DARIPADA ruang meja kami, cupcake_cupboard, ruang.
Kini, pada ketika ini, apabila anda ini jauh dalam penyata anda padam
anda mahu menjadi sangat berhati-hati.
Sebagai contoh, jika saya mahu menjalankan pertanyaan ini adalah tanpa menyediakan beberapa "Di mana" fasal
Saya akan kehilangan semua data dalam jadual cupcake_cupboard ini,
tetapi kerana saya sudah tahu bahawa ID kek saya adalah unik, saya akan menggunakan
ID untuk kek Velvet Merah fasal "Di manakah" saya.
MANA ruang lajur kami, CakeID = 1.
Kerana ini adalah satu nilai integer tidak ada keperluan mengelilinginya dalam petikan tunggal.
Jadi, mari kita melaksanakan kenyataan itu.
Nah, sekarang kita telah menyapu kewujudan cupcake ini
dari jadual cupcake_cupboard kita, kita hanya mempunyai satu perkara kiri:
Jadikan ia hilang.
Saya Christopher Bartholomew. Ini adalah CS50.