>> [MUSIC PLAYING]
DOUG LLOYD: bizim video In web inkişaf mövzular üzrə,
biz anlayışı qeyd etdik doğru bir verilənlər bazası bir neçə dəfə?
Belə ki, bir verilənlər bazası sen olan yəqin ilə tanış
Microsoft Excel istifadə edərək demək və ya Google Spreadsheets.
Bu, həqiqətən, yalnız mütəşəkkil var masalar, satırlar, və sütun seçin.
>> Və bir verilənlər bazası harada Bizim veb mağazaları
əhəmiyyətli məlumat Bizim haqqinda üçün düzgün çalışması üçün.
Yenə, həqiqətən ümumi Məsələn burada istifadəçi adı və parol saxlanılması
Bir verilənlər bazası, belə ki, zaman bizim saytda bir istifadəçi logs,
Verilənlər bazası görmək üçün sorğulanan bilər ki, istifadəçi bazasında varsa.
Onlar əgər, ki, yoxlanılması Onların parol doğru deyil.
Onların parol doğru əgər, onda biz nə səhifə onlara verə bilər
Onlar tələb edirik.
>> Belə ki, daha, yəqin ki, tanış olduğunuz Excel və ya Google bu ideya ilə
Spreadsheets.
Biz verilənlər bazası var, masalar, satırlar, və sütun.
Və həqiqətən sort var fundamental set
burada iyerarxik qəza.
Belə ki, burada bir Excel elektron tablo var.
Və heç bu açmıştınız əgər və ya digər analoji proqram
bu burada bilirik ki, rows-- 1, 2, 3, 4, 5, 6, 7.
Bu sütun var.
>> Bəlkə burada, siz bilər, baxmayaraq ki, olduqca much-- bu xüsusiyyət istifadə
Mən biz in-- zoom olacaq bir hesabatı bu fikir.
Belə ki, bəlkə bu təbəqələr, əgər Mən geri və irəli alternativ
müxtəlif cədvəllər var ki, mənim bazasında mövcuddur.
Və biz nümunə bütün davam yol, bu verilənlər bazası adı
Kitab 1.
Bəlkə Kitab 2 Kitab 3 var.
Belə ki, hər Excel fayl bir verilənlər bazası, hər bir hesabatı bir masa,
və hər bir masa daxilində Mən satır ve sütun bu fikir.
>> Belə ki, necə bu bazası ilə çalışır?
Mən necə məlumat əldə edirsiniz?
Yaxşı adlı dil var SQL-- Mən adətən yalnız Sequel-- adlandırdığımız
və bu dayanır Yapılandırılmış Query Language.
Və bir proqramlaşdırma dilidir, lakin bu kifayət qədər məhdud proqramlaşdırma var
dil.
Bu olduqca başqaları kimi deyil ki, biz işləmişik.
Amma bu məqsədi proqramlaşdırma dili
, bir verilənlər bazası sorğu üçün bir verilənlər bazası informasiya xahiş,
bir informasiya tapa verilənlər bazası və s.
>> Biz də, CS50 və bir çox var ümumi platforma, bu MySQL deyirlər.
Yəni biz əlbəttə istifadə budur.
Bu açıq mənbə müəyyən platform
qondarma relational bazasında bir bir verilənlər bazası, səmərəli.
Biz almaq üçün ehtiyac yoxdur çox ətraflı daxil
nə bir relational verilənlər bazası var.
Amma SQL dili iş çox usta
MySQL və oxşar digər relational verilənlər bazası üslub.
>> Və bir çox qurğular Bir şey ilə MySQL gəlib
adlı phpMyAdmin olan qrafik istifadəçi
bir GUI-- interface-- ki bir az daha edir
icra dostluq istifadəçi verilənlər bazası sorğu,
verilənlər bazası ki, yalnız istifadə olunmur, çünki qabaqcıl proqramçılar tərəfindən, sağ?
Bəzən var Bu kiçik biznes,
və onlar ödəyə bilməz proqramçılar bir komanda işə,
lakin onlar hələ saxlamaq lazımdır bazasında məlumat.
>> PhpMyAdmin kimi bir şey kimsə üçün çox asan edir
kim əvvəl proqramlaşdırılmış heç ala və necə tanış olmaq
bir verilənlər bazası ilə işləmək üçün.
problem isə, phpMyAdmin var Bu öyrənmək üçün bir fantastik alət var
verilənlər bazası haqqında, bu manual edir.
Siz daxil olacaq Bu və əmrləri və növü yerinə
əl şeyi.
>> Və biz bildiyiniz kimi bizim PHP web proqramlaşdırma məsələn,
əl nə olan bizim saytda hər şeyi,
biz dinamik, aktiv cavab istəyirsinizsə, bax, bəlkə də ən yaxşı yanaşma.
Biz bir yol tapmaq istəyirəm bəlkə elə bu avtomatlaşdırılması.
Və SQL bunu imkan verəcək.
Belə ki, biz olacaq SQL ilə iş başlamaq,
biz ilk lazımdır verilənlər bazası ilə işləmək üçün.
Bir verilənlər bazası ki, yaratmaq bir şey yəqin ki,
çünki phpMyAdmin nə edəcəyik Siz yalnız bir dəfə bunu etmək lazımdır
və bunu üçün sintaksis daha çox sadə deyil.
Bunu etmək çox asandır bir qrafik istifadəçi interfeysi
bir komanda kimi onu yazaraq daha.
komanda bir az çətin əldə edə bilərsiniz.
Eynilə, bir masa yaratmaq bilər eləcə də çətin bir qədər almaq.
Bir verilənlər bazası yaratmaq kimi və belə şeylər və etdiyiniz bir masa yaratmaq
yəqin ki, yalnız once-- edəcəyimiz masa başına bir dəfə, bir dəfə bazasında bir başına
bu bunu OK qrafik interfeys.
Prosesində , bir masa siz lazımdır yaradılması
Həmçinin müəyyən etmək ki, masa olacaq sütun.
Məlumat nə cür etmək Siz cədvəldə saxlamaq istəyirsiniz?
Bəlkə bir istifadəçi adı və doğum tarixi, parol, istifadəçi ID nömrəsi, və bəlkə
şəhər və dövlət, sağ?
>> Hər dəfə biz bir istifadəçi əlavə etmək istəyirəm verilənlər bazası, biz bütün altı almaq istəyirəm
məlumat bu ədəd.
Və biz əlavə bunu masa satır.
Beləliklə, biz ilk bir verilənlər bazası yaratmaq, sonra biz bir masa yaratmaq.
Yaradılması hissəsi kimi bir masa, biz tələb olunur
hər sütun müəyyən etmək üçün ki, bu cədvəldə istəyirəm.
Və sonra biz başlamaq kimi əlavə verilənlər bazası məlumat
və verilənlər bazası daha sorğu generally-- yalnız əlavə deyil,
lakin hər şey başqa biz do-- biz məşğul olacaq
bir masa, satır bütün set istifadəçi məlumat.
>> Belə ki, hər SQL sütun qadirdir xüsusi data type data keçirilməsi.
Beləliklə, biz sort bu aradan PHP data növləri ideyası,
lakin onlar SQL geri buradayıq.
Və məlumat növləri bir çox var.
Burada onlardan yalnız 20, lakin hətta hamısı deyil.
Beləliklə, biz INTs-- kimi fikir Biz yəqin ki, bilirik Integers--
Bu sütun integers aça bilər.
Və varyasyonları var thereon-- Smallint, tinyint, MEDIUMINT, Bigint.
Bəlkə biz həmişə dörd sokması ehtiyac yoxdur.
Bəlkə biz səkkiz bayt lazımdır, və biz integers bu varyasyonları istifadə edə bilərsiniz
bir az daha çox yer səmərəli olması üçün.
Biz decimal nömrələri edə bilərsiniz biz üzən point nömrələri edə bilərsiniz.
Bu olduqca oxşardır.
Bəzi fərqlər var, və siz ki, əgər
yuxarı baxmaq istəyirəm Guide SQL sort, siz
edə bilərsiniz nə qədər fərqlər onların arasında var.
>> Bəlkə biz saxlamaq istəyirəm tarixi və vaxtı haqqında məlumat.
Bəlkə biz takip saxlanılması edirik istifadəçi bizim veb səhifəsinə qoşulub,
və belə ki, bəlkə biz istəyirik bir sütun var
bir tarix vaxt və ya zaman damgası ki zaman istifadəçi həqiqətən göstərir
imzalanmış.
Biz geometrileri və linestrings edə bilərsiniz.
Bu, həqiqətən, olduqca sərindir.
Biz həyata xəritəyə bilər istifadə edərək coğrafi ərazi
GIS sahəsi həyata sahəsi əlaqələndirir.
Belə ki, həqiqətən ki, sort bilərsiniz bir SQL sütununda məlumat.
>> TEXT bəlkə, mətn yalnız nəhəng blobs edir.
Enums cür maraqlıdır.
Onlar, həqiqətən, C. mövcud Biz nə onlar deyilik, çünki onlar haqqında danışmaq
olduqca çox azı CS50 istifadə.
Amma bu sadalanan data type var ki, məhdud dəyərlər keçirilməsi qadirdir.
>> A həqiqətən yaxşı nümunə burada ola bilər bir enum yaratmaq olduğu yeddi
Mümkün dəyərlər, Bazar, Bazar ertəsi var Çərşənbə axşamı, çərşənbə, cümə axşamı, cümə,
Şənbə, sağ?
Ki, data type Day Həftə, mövcud deyil
lakin biz bir yarada bilər sadalanan data type belə
ki, sütun yalnız heç aça bilər ki, o yeddi mümkün dəyərlərindən biridir.
Biz bütün sadalanan etdik mümkün dəyərlər.
>> Sonra biz CHAR və VARCHAR var, və mən bu yaşıl rəng var
Biz, həqiqətən, istəyirik, çünki ikinci etmək niyyətindədir
fərq haqqında danışmaq Bu iki şey arasında.
Belə ki CHAR fərqli olaraq C harada CHAR bir xarakter idi,
SQL bir CHAR aiddir sabit uzunluğu string.
Və biz bu yaratmaq zaman sütun, biz, həqiqətən,
simli uzunluğu daxil edə bilərsiniz.
>> Bu misal Belə ki, biz char (10) deyə bilər.
Hər deməkdir ki, sütun element
məlumat 10 bytes ibarət olacaq.
No daha, az olmayaraq.
Biz cəhd və bir 15 qoymaq əgər Belə ki, bit və ya 15 xarakter element
və ya bu sütun daxil dəyəri, biz yalnız ilk 10 almaq edirik.
Biz iki qoymaq xarakter uzun dəyəri,
biz iki olacaq simvol və sonra səkkiz null sokması.
Biz ki, daha səmərəli olmaz.
>> A VARCHAR cür kimi simli bizim anlayışı
biz tanış olduğunu C və ya PHP ile.
Bu dəyişən uzunluğu simli var.
Və yaratmaq zaman bu sütun, yalnız
maksimum uzunluğu daxil.
Belə ki, bəlkə 99 və ya adətən 255.
Ki, maksimum uzunluğu olardı.
Və əgər biz saxlanılması edilmişdir 15 xarakter string,
biz bəlkə 16 15 bayt istifadə edir null terminator bayt.
Biz saxlanılması, əgər bir üç xarakter string,
biz üç və ya dörd bayt istifadə edir.
Amma biz tam 99 istifadə deyil.
>> Belə ki, niyə biz də olardı?
Bəli, biz necə anlamaq lazımdır uzun bir şey VARCHAR ilə,
biz təkrarlamaq cür var yalnız kimi rast biz C etdi
o dayanır harada və anlamaq.
Biz hər şeyi bilirik ki, əgər Halbuki Bu sütun bəlkə, 10 bayt edir
ki, məlumat bilirik, biz atlayabilir 10 bytes, 10 bytes, 10 bytes, 10 bytes,
və həmişə tapmaq simli başlayan.
>> Beləliklə, biz bir ola bilər bir char ilə yer sərf,
amma bəlkə bir ticarət var daha sürətli olan off
verilənlər bazası naviqasiya.
Amma bəlkə istəyirik bir VARCHAR rahatlıq
əvəzinə having-- bizim CHAR varsa of 255 idi, lakin bizim istifadəçilər ən
yalnız üç və ya dörd bayt giren edildi məlumat və ya üç və ya dörd dəyər
məlumat dəyərində simvol.
>> Lakin bəzi istifadəçilər istifadə bütün 255, bəlkə
VARCHAR daha çox uyğun olacaq.
Bu off ticarət sort var, və ümumiyyətlə CS50 məqsədləri üçün,
Siz haqqında çox narahat ehtiyac yoxdur Siz bir char və ya bir VARCHAR istifadə olub.
Lakin real dünyada, bunlar bu sütun, çünki fərqi yoxdur
faktiki fiziki yer tutur.
Və fiziki məkan, real dünya, bir mükafat gəlir.
>> Bir başqa nəzərə So zaman bir masa tikinti edirik
olmaq üçün bir sütun seçin edir nə ilkin əsas deyirlər.
Və ilkin əsas bir sütun edir burada hər bir dəyəri unikaldır.
Və ki, siz asanlıqla edə bilərsiniz deməkdir yalnız baxaraq bir sıra seçmək
ki, sıra əsas əsas da.
Belə ki, məsələn, siz ümumiyyətlə, istifadəçilər,
İki istifadəçilər istəməyən eyni istifadəçi ID sıra var.
Və belə ki, bəlkə var məlumat çox,
və bəlkə iki istifadəçilər eyni konseptual mənada adı var
Siz John Smith və John Smith var.
Ki, bir problem deyil Çox insanlar var, çünki
John Smith adlı dünyada.
Amma biz yalnız bir istifadəçi ID sıra var 10, bir istifadəçi ID sayı 11, 12, 13.
Biz iki istifadəçilər yoxdur eyni nömrə ilə,
və belə ki, bəlkə istifadəçi ID nömrələri yaxşı ilkin əsas olacaq.
>> Biz hər hansı bir təkrar yoxdur, və biz benzersiz bilərsiniz
yalnız hər bir sıra müəyyən ki, sütun baxaraq.
Həqiqətən əsas düymələri bilər seçilməsi sonrakı masa əməliyyatları etmək
Siz leverage bilər, çünki bir çox asan Bu faktdır ki, müəyyən satır edəcək
unikal, və ya müəyyən bir sütun olmaq Sizin verilənlər bazası və ya masa
seçin unikal olacaq həyata xüsusi satır.
>> Siz həmçinin birgə əsas ola bilər Siz münasibətilə tapa bilərsiniz ki, əsas
yalnız bir olan istifadə etmək iki sütun birləşməsi ki,
Unikal olması təmin edilir.
Belə ki, bəlkə bir var As və pansiyonlar var sütun,
iki, biri bir sütun, və üç, lakin yalnız heç lazımdır
bir A1, bir var Və s və s A2.
Amma bir B2 ola bilər, bir C2 və ya A1, A2, A3, A4.
Belə ki, çox kimi, çox ola bilər Bs, çox olanlar, çox ikilər,
lakin yalnız heç bir ola bilər bir A1, B2, C3, və s.
Belə ki, dediyim kimi, SQL bir proqramlaşdırma dili,
lakin bu kifayət qədər məhdud lüğət var.
Bu kimi olduqca kimi geniş deyil C və PHP və digər dillərdə
biz əlbəttə danışmaq ki.
Bu daha ayrıntılı bir deyil biz istəyirik nə çox dil
bu barədə danışmaq gedir video, çünki bu video
biz danışmaq olacaq Dörd əməliyyatları biz ki,
Bir masa edə bilərsiniz.
>> Bu daha çox var.
Biz bu daha çox edə bilərsiniz amma bizim üçün,
biz ümumiyyətlə istifadə etmək olacaq yalnız dörd operations-- insert,
seçin yeniləmə və silmək.
Və yəqin ki, daxilən tahmin edə bilərsiniz Bütün bunlar Allahın dörd nə.
Amma biz bir az daxil olacaq hər bir detal.
>> Bu məqsədləri üçün belə video, güman edək
biz iki aşağıdakı var bir bazasında masalar.
Biz bir masa adlı istifadəçimiz var Dörd columns-- ID sayı, istifadəçi adı,
parol, və tam adı.
Və biz ikinci var eyni verilənlər bazası masa
yalnız məlumat saklar Moms adlı bir istifadəçi adı və bir ana haqqında.
Nümunələri bütün So Bu video alacağıq
Bu verilənlər bazası istifadə və bu sonrakı yenilikləri.
Belə ki, biz istədiyiniz deyək bir masa məlumat əlavə edin.
Ki, insert əməliyyat nə var.
Bütün izah bu əmrləri, Mən gedirəm
siz istifadə bir general skelet vermək.
Əsasən, sorğu Çünki görünüş olduqca oxşar gedir,
biz yalnız dəyişən olacaq məlumat az fərqli ədəd
masa ilə müxtəlif şeyə.
>> INSERT üçün, skelet belə cür bu kimi görünür.
Biz daxil etmək istədiyiniz xüsusi masa.
Sonra biz açıq mötərizə var və sütun siyahısı
biz daxil dəyərləri qoymaq istəyirəm.
Yaxın parantez, dəyərləri aşağıdakı, və sonra
yenə biz dəyərlər siyahısı biz masa qoymaq istəyirəm.
>> Bu belə bir nümunə Aşağıdakı olacaq.
Mən masa daxil istəyirəm istifadəçi aşağıdakı columns--
istifadəçi adı, parol, və FullName.
Mən qoyulması alıram yeni sıra So Biz istəyirik və bu üç sütun
dəyərlər qoymaq niyyətindədir Newman, USMAIL və Newman.
Belə ki, bu halda, mən kiçik Newman qoyulması
istifadəçi adı sütun daxil, parol USMAIL və tam adı kapital N
FullName sütun Newman.
>> Belə ki, burada nə verilənlər bazası var əvvəl kimi baxdı.
Burada nə users masa var top biz bunu əvvəl kimi baxdı.
Bu icra sonra sorğu, biz bu almaq.
Biz masa yeni bir sıra əlavə etdik.
Amma bu bir şey qeyd Mən daxil deyil ki,
lakin elə mən bir dəyər var üçün, burada bu 12 olan.
Mən istəyirdim demədim orada ID sayı qoymaq.
Mən istifadəçi adı qoymaq istəyirdi parol, FullName.
Mən ki, gözəl, etdi.
>> Amma bu 12 var.
Niyə bu 12 əldə etdiniz?
Bəli, bu çıxır ki, zaman müəyyən edilir
olacaq bir sütun sizin adətən ilkin əsas,
Mən bir şəxsiyyət nömrəsi bildirib.
O, həmişə mütləq deyil bir şəxsiyyət nömrəsi olacaq,
lakin adətən yaxşı bir fikirdir tam dəyər bir növ ola bilər.
Siz phpMyAdmin bir seçimi var zaman bazasının yaradılması edirik
və ya masa ki, müəyyən etmək auto incrementing kimi sütun.
>> Hansı həqiqətən yaxşı bir fikirdir zaman Bir əsas düyməsi çalışırıq,
Hər dəyər istəyirəm, çünki ki, sütun unikal olmalıdır.
Və müəyyən etmək unutmaq əgər birdən çox adam üçün,
İndi bir vəziyyət olduğu var ki, sütun artıq unikal var.
Siz iki blanklara var, belə ki, heç bir edə bilərsiniz Artıq benzersiz bir column-- müəyyən
və ya artıq benzersiz bilərsiniz ki, sütun əsasında bir sıra müəyyən edir.
Bu bütün məğlub onun əsas açarı kimi dəyər.
>> Və belə ki, yəqin mən nə Burada istifadəçi ID yapılandırılmış
avtomatik increment üçün sütun hər ki, dəfə, masa məlumat əlavə
avtomatik olaraq mənə verəcək əsas düyməsi üçün dəyəri.
Beləliklə, mən, çünki bunu etmək heç vaxt unuda bilər Verilənlər bazası mənim üçün bunu edəcək.
Belə ki, bu cür gözəl.
Biz almaq niyə və ki var Orada 12, mən var, çünki
avtomatik increment ki, sütun seçin.
Mən başqası əlavə əgər Mən əlavə əgər, 13 olarıq
başqası bu qədər 14 olacaq və istədiyiniz.
>> Belə ki, yalnız bir daha durub edək.
Biz, moms masa daxil olacaq Xüsusilə, istifadəçi adı və ana
sütun, dəyərlər kramer və Babs Kramer.
Və belə ki, biz əvvəl bu idi.
Ki, icra sonra SQL sorğu, biz bu var.
Biz Kramer və babs əlavə etdik Moms masa Kramer.
>> Belə ki, daxil oldu.
SELECT biz çıxarış üçün istifadə edir masa məlumat.
Belə ki, bu biz almaq necə verilənlər bazası həyata məlumat.
Və belə SELECT əmrləri olacaq çox tez-tez proqramlaşdırma istifadə.
ümumi framework-- ümumi skelet bu kimi görünür.
Sütun bir sıra seçin bir masa və sonra isteğe
Bir vəziyyətdə daxil edə bilərsiniz və ya biz adətən bir xəbər dediyimiz,
adətən biz SQL istifadə olunur.
>> Amma bu, əsasən nə var Xüsusilə satır siz almaq istəyirəm.
Siz əvəzinə əldə istəyirsinizsə hər şey, onu kiçildə
Bunu ki bu deyil.
Və sonra isteğe, siz də edə bilərsiniz xüsusi sütun sifariş.
Belə ki, bəlkə sıralanır şeyi etmək istəyirəm əlifba sırası ilə bir sütun əsasında
və ya əlifba sırası başqa əsaslanır.
>> Yenə SİFARİŞ BY isteğe bağlıdır HARADA və.
Lakin onlar yəqin ki, olacaq useful-- xüsusilə
HARADA üçün faydalı olacaq Siz bunu kiçildə
geri bütün verilənlər bazası və emal üçün, yalnız almaq
bu ədəd siz qayğısına ki.
Belə ki, məsələn, mən seçmək üçün istədiyiniz bilər Istifadəçilər şəxsiyyət nömrəsi və FullName.
Belə ki, nə bu kimi baxmaq bilər?
Belə ki, burada mənim users masa var.
Mən idnum seçin istəyirəm və istifadəçilər FullName.
Mən almaq üçün gedirəm?
Mən bu almaq üçün gedirəm.
Mən onu kiçildə etməyib, belə ki, mən hər cərgə üçün ID sayı əldə
və mən tam alıram hər sıra ad.
>> OLDU.
Mən Şifrəni seçin istəyirsinizsə oxlar indi istifadəçilər
Mən vəziyyəti əlavə alıram, bir predicate-- idnum az 12 olduğu.
Belə ki, burada mənim verilənlər bazası yenidən var, Mənim users masa üst.
Mən istəyirəm əgər almaq üçün gedirəm məlumat seçin, parol,
istifadəçi ID və ya idnum 12 az?
Mən bu almaq üçün gedirəm məlumat geri, sağ?
Idnum 10 ki olur, az 12-dən çox, ID sayı 11 12 azdır.
Mən o satır üçün parol alıram.
Mən xahiş budur.
Bu barədə?
Mən gələn ulduz seçin istəyirsinizsə istifadəçi adı Jerry bərabərdir moms masa?
OK seçin star xüsusi vəhşi kart sort qondarma
biz hər şeyi almaq üçün istifadə edir.
Belə ki, onlar seçin deyərək edirik vergül ana, istifadəçi adı olan
yalnız olmaq oldu Bu cədvəldə iki sütun,
Mən yalnız ulduz seçə bilərsiniz və hər şeyi almaq
harada istifadəçi adı Jerry bərabərdir.
Və belə ki, mən almaq olardı nə Hesab edirəm ki, xüsusi sorğu əgər.
>> İndi, məlumat bazaları var böyük onlar imkan verir, çünki
Bizə bəlkə informasiya təşkil biz daha səmərəli bir az
başqa bilər.
Biz mütləq saxlamaq üçün yoxdur məlumat müvafiq parça
eyni süfrədə bir istifadəçi haqqında.
Biz orada iki masalar var idi.
>> Biz saxlamaq lazımdır hər kəsin ana adı,
və bəlkə biz sosial təminat yoxdur sayı, biz Dəğum onların tarixi var.
Ki, həmişə lazım deyil eyni masa olmalıdır.
Kimi uzun biz müəyyən edə bilərsiniz kimi tables-- arasında münasibətlər
ki, harada ki relational Verilənlər bazası müddətli cür gəlir
play-- kimi uzun biz müəyyən edə bilərsiniz kimi daxil masalar arasında münasibətlər,
biz növ bölümlendirirse bilər və ya mücərrəd şey bir yol,
biz yalnız olduğu həqiqətən əhəmiyyətli məlumat
biz istifadəçi cədvəldə qayğı.
Və sonra biz əlavə məlumatlar var digər cədvəllərdə və ya əlavə məlumat
biz əsas geri qoşula bilər ki, müəyyən bir şəkildə users masa.
>> Belə ki, burada biz bu iki masalar var, lakin Onların arasında əlaqələr var,
sağ?
Bu istifadəçi adı kimi görünür bir şey ola bilər
arasında ortaq mövcuddur Bu iki müxtəlif cədvəllər.
Belə ki, nə biz indi varsa bir vəziyyət biz
bir istifadəçi tam adını almaq istəyirəm istifadəçi masa və onların ana
ana masa ad?
Biz almaq üçün bir yol yoxdur sağ ki dayanır kimi?
Ehtiva heç bir masa var tam adı və anasının adı həm də.
Biz bu seçimi yoxdur Biz bu günə qədər gördüm nə.
>> Və belə ki, biz təqdim etmək Qeydiyyat ideyası.
Və daxil yəqin ki, ən complex--
bu, həqiqətən ən kompleks əməliyyat var biz video haqqında danışmaq olacaq.
Onlar bir az mürəkkəb istəyirik lakin onun asmaq almaq dəfə,
onlar həqiqətən çox pis deyilik.
Bu, sadəcə bir SELECT xüsusi halda var.
Biz bir sıra seçin olacaq qoşulması bir masa sütun
bəzi xəbər ikinci cədvəldə.
>> Bu bu kimi bu halda, hesab edirəm ki, masa bir burada bir dairə var
masa iki burada bir dairə var.
Və xəbər hissəsi ortada, bu
sort Sizcə əgər kimi haqqında bir Venn diagram kimi, nə
onlar ümumi var?
Biz bu iki masalar keçid etmək istəyirəm Onlar ortaq nə əsasında
bu hipotetik masa yaratmaq birlikdə iki birləşməsi var.
Beləliklə, biz bir görmək lazımdır nümunə və bəlkə kömək lazımdır
bir az bu qədər sil.
Belə ki, bəlkə siz seçin istədiyiniz user.fullname və moms.mother
qoşulması istifadəçilər hər vəziyyətdə moms masa
harada istifadəçi adı sütun onların arasında eyni.
Və bu yeni , burada bu istifadəçi sintaksis.
və moms ..
Mən çox masalar edirəm əgər birlikdə, mən bir masa daxil edə bilərsiniz.
Mən xüsusilə ON ayırt edə bilərsiniz ki, orada çox alt.
Mən istifadəçi adı ayırt edə bilərsiniz users masa sütun
istifadəçi adı sütun moms masa, otherwise-- var
biz yalnız istifadəçi adı bərabərdir etdi həqiqətən deyil istifadəçi adı,
bir şey demək.
Biz onların uyğun harada bunu istəyirik.
>> Beləliklə, mən masa və belirtebilirsiniz bir vəziyyət halda sütun adı
harada aydın olardı nə mən söhbət alıram.
Ki, edirəm bütün belə mən var Bu cədvəldə bu sütun söyləyərək,
və çox açıq olan.
Belə ki, yenə, mən seçilməsi alıram tam adı və anasının adı
birlikdə bağlı users masa hər vəziyyətdə moms masa ilə
onlar ki, column-- bölüşmək onlar istifadəçi adı anlayışı bölüşürlər.
>> Belə ki, burada biz əvvəl idi masalar var.
Bu dövlət bizim Verilənlər bazası indi mövcud kimi.
biz çıxarılması edirik məlumat ilə başlamaq bu.
Bu gedirik yeni masa birlikdə bu birləşən yaratmaq.
Və biz vurğulayaraq deyilik qeyd İstifadəçi cədvəldə Newman satır,
və biz vurğulayaraq deyilik Moms cədvəldə Kramerin sıra
nə bir mövcud çünki həm də cədvəllərdə dəstləri.
>> ümumi yalnız məlumat Onların arasında Jerry həm cədvəllərdə edir
və gcostanza həm cədvəllərdə edir.
Biz nə zaman, belə ki, SQL, OL biz get-- və biz bu almaq həqiqətən edir.
Bu müvəqqəti dəyişən sort var.
Bu hipotetik kimi iki masalar birləşmə.
Biz, həqiqətən, bir şey almaq bu kimi burada
Biz masalar birlikdə birləşdi etdik Onlar ortaq məlumat.
>> Belə ki, users.username qeyd və moms.username sütun,
tam eyni deyil.
Ki, informasiya idi ki, istifadəçilər ardıcıl idi
masa və moms masa.
Və belə ki, biz onları birlikdə birləşdi.
Biz Kramer atılır çünki users cədvəldə yox idi,
və biz, Newman atılır o moms cədvəldə yox idi.
Belə ki, bu hipotetik birləşmə deyil seçin OL əməliyyat istifadə.
>> Və sonra biz aradığınız istifadəçi tam adı və istifadəçi anası,
və bu məlumat ki, biz ümumi sorğu almaq olardı
biz SELECT ilə edir.
Beləliklə, biz birlikdə masalar qatıldı və biz bu iki sütun hasil,
və belə ki, biz almaq olardı budur.
Amma SQL mürəkkəb bir növ qoşulur.
Siz yəqin ki, onlara çox etməyəcək ancaq skelet bir fikir var
Siz iki birləşməsi üçün istifadə edə bilər ki, Siz lazım birlikdə əgər masalar.
Son iki bir bit sadə söz verirəm.
Belə ki, yenilənməsi, biz OLUNUB istifadə edə bilərsiniz bir masa məlumat dəyişdirmək üçün.
ümumi format UPDATE bəzi masa, bir dəyər bəzi sütun SET
Bəzi xəbər razıdır.
Belə ki, məsələn, biz istəyirik bilər istifadəçi masa yeniləmə
və Yada üçün parol təyin ID sayı 10 yada.
>> Belə ki, bu halda, biz istəyirik istifadəçi masa yenilənməsi.
ID sayı 10 orada ilk satır,
və biz yeniləmək istəyirəm yada yada parol.
Və belə ki, nə olardı var.
Bu doğru, olduqca sadə var?
Bu yalnız bir çox sadə masa modifikasiya.
>> Biz istifadə əməliyyat silmək bir masa informasiya aradan qaldırılması.
Masa HARADA FROM DELETE Bəzi xəbər razıdır.
Biz silmək üçün Məsələn users masa
harada istifadəçi adı Newman edir.
Siz yəqin ki, olacaq nə tahmin edə bilərsiniz ki, SQL icra sonra burada baş
sorğu, Newman masa getdi.
>> Belə ki, bütün bu əməliyyatlar, dedim, etdiyiniz kimi phpMyAdmin etmək çox asandır.
Bu, çox istifadəçi dostu interfeysi var.
Amma bu manual səy tələb etmir.
Biz manual səy işə istəmirəm.
Biz proqramları istəyirəm sağ, bizim üçün bunu?
Belə ki, biz nə edə bilərsiniz Bu program.
Biz SQL daxil etmək istəyirəm lazımdır başqa bir şey bizim üçün bunu.
>> Lakin biz imkan verir ki, gördük Bizə program şey etmək?
Biz sağ, PHP gördüm?
Bəzi təqdim Bizim proqramları dinamizm.
Və belə xoşbəxtlikdən, SQL və PHP birlikdə çox gözəl oynayır.
PHP bir funksiyası var istifadə edilə bilər çağırıb sorğu.
Və kimi keçə bilər parametri və ya arqument
bir SQL sorğu sorğu ki, icra etmək istəyirəm.
Və PHP adından bunu edəcəyik.
>> Siz bağlı olduğunuz sonra belə PHP ilə verilənlər bazası,
Bunu iki ilkin var.
Deyilən bir şey MySQLi var və bir şey LİM çağırıb.
Biz böyük girməyəcəyəm orada məbləği ətraflı.
CS50, biz LİM-istifadə.
Siz bağlı sonra Sizin verilənlər bazası üçün,
sorgularının ardından bazası edə bilərsiniz arqumentlər kimi sorğu keçirərək
PHP funksiyaları.
Bunu zaman, siz mağaza assosiativ array müəyyən nəticə.
>> Və biz ilə işləmək üçün necə PHP assosiativ seriallarda.
Belə ki, mən bir şey deyə bilər kimi şeylərdir $ results--
php sorğu bərabərdir bu deyil.
Və sonra daxili ki, mübahisə sorğu funksiyası
Mən sorğu keçən edirəm ki, ki, SQL kimi görünür.
Və əslində SQL edir.
Ki, mən sorğu simli var Mənim bazasında icra etmək istəyirəm.
>> Və belə qırmızı, bu PHP edir.
Bu Mən SQL edir edərək PHP inteqrasiya
Bu sorğu funksiyası arqument.
Mən fullname seçin istəyirəm ID sayı 10 bərabərdir users.
Və sonra mən etdik bəlkə sonra, Mən bu kimi bir şey deyə bilər.
Mən çap etmək istəyirəm giriş üçün mesaj təşəkkür edirik.
>> Mən istəyirəm ki, interpolate-- istəyirəm $ nəticələri fullname interpolate.
Və belə ki, mən ki, necə var Mən geri almışdır assosiativ array.
$ Nəticələri FullName ki əsasən çap başa,
, Jerry Seinfeld giriş üçün təşəkkür edirik.
Tam adı burada idnum 10 bərabərdir.
>> Və belə ki, bütün edirəm Mən, indi mən saxlanılır edirəm ki,
Mənim sorğu, mənim sorğu nəticələri və assosiativ array nəticələri,
və FullName adı Mən əldə edilib sütun.
Belə ki, nəticələr mənim əsas var Mən istəyirəm assosiativ array.
Belə ki, Thanks giriş üçün $ nəticələri, FullName qalmaq olacaq, çap edəcək
Sağ o buruq arasında aşırma, Jerry Seinfeld.
Mən mesaj çap kimi olacaq Jerry Seinfeld giriş üçün təşəkkür edirik.
>> İndi biz yəqin ki, çətin istəmirik ki, kimi code şeyi, sağ?
Biz çap kimi bir şey etmək istəyirəm bilər biz əvəz və bəlkə bilərsiniz f,
müxtəlif məlumat toplamaq, və ya bəlkə sorğu prosesi
müxtəlif məlumat.
Və belə sorğu, sorğu funksiyası var Əvəzedicilərimiz növ bu anlayışı
faiz s f çap çox oxşar və faiz c, sual işarələri var.
>> Və biz sual istifadə edə bilərsiniz Marks çox Analoji
əvəz dəyişənlərin f çap.
Belə ki, bəlkə istifadəçi əvvəllər daxil, və onların istifadəçi ID sıra xilas
PHP super $ _SESSION da əsas ID qlobal.
Onlar daxil Belə ki, bəlkə sonra, Siz ID 10 bərabərdir $ _SESSION müəyyən
Məsələn apardığımızda biz yalnız ikinci əvvəl gördüm.
>> Və belə ki, biz, həqiqətən, həyata zaman Bu, artıq nəticələr sorğu
10 plug, və ya hər hansı ki, $ _SESSION ID dəyəridir.
Və belə ki, bizə imkan verir ki, bir az daha dinamik ola bilər.
Biz ağır artıq şeyi kodlaşdırma deyilik.
Biz informasiya qənaət edirik haradasa və sonra
biz yenidən istifadə edə bilərsiniz sort biz nə etmək istədiklərini ümumiləşdirmək,
və yalnız plug-in və dəyişiklik bizim səhifəsində davranış
nə istifadəçi ID sayı əsasında onlar daxil sonra əslində.
Bu, baxmayaraq ki, mümkündür Nəticələri müəyyən
çox satır ibarət ola bilər.
Bu halda, siz var serialları bir sıra
assosiativ seriallarda bir sıra.
Və yalnız onun vasitəsilə təkrarlamaq lazımdır.
Və biz təkrarlamaq üçün necə PHP bir sıra vasitəsilə, sağ?
Belə ki, burada yəqin ki, ən çox Biz bu günə qədər gördüm kompleks şey.
Bu, həqiqətən birləşdirir birlikdə üç dildə.
>> Burada qırmızı, bu, bəzi HTML edir.
Mən yəqin bu starting-- alıram Mən bəzi HTML parçasını.
Yeni-ci bəndə ki, başlayan alıram TV Seinfeld moms deyir.
Və sonra dərhal sonra Mən bir masa başlayan alıram.
Və sonra sonra, mən sağ, bəzi PHP var?
Mən orada bu PHP kodu bütün var.
Mən yəqin bir sorğu etmək gedirəm.
Və sorğu etmək üçün, mən gedirəm moms SELECT ana istifadə etmək.
>> Belə ki, bu SQL edir getting-- edir.
Belə ki, mavi SQL edir.
biz ikinci əvvəl gördüm qırmızı HTML idi.
Və burada yaşıl PHP edir.
Mən bir sorğu edilməsi alıram Mənim bazasında, mən
bütün seçilməsi moms cədvəldə analar.
Yalnız xüsusi onu aşağı daralma deyil satır, mən onların hamısı üçün soruşuram.
>> Nəticə onda mən yoxlamaq Biz bərabər saxta bərabərdir.
Bu sort yoxlanılması yalnız mənim yoludur Nəticələr null bərabər deyil, əgər,
biz məsələn c ki.
Əsasən bu yalnız etmək üçün yoxlanılması Bu, həqiqətən data geri var ki, əmin olun.
Mən çap başlamaq istəmirəm, çünki data həyata hər hansı bir məlumat almaq olmasaydı.
Sonra nəticəsində hər nəticələr üçün PHP-dan foreach sintaksis, bütün edirəm
$ nəticə ana çap olunur.
Və mən bir sıra almaq üçün gedirəm each-- analarının bütün
Bu assosiativ bir sıra var serialları və mən çap alıram
bir masa öz sıra kimi hər biri.
Və həqiqətən olduqca var çox bütün bu var.
Mən bir az var bilirəm bit burada davam
diziler ilə bu son nümunə assosiativ seriallarda və seriallarda serialları.
Lakin bu, həqiqətən, yalnız qaynatmaq deyil bir sorğu edilməsi üçün SQL aşağı,
biz artıq sonra adətən seçilməsi masa məlumat qoymaq,
və sonra yalnız onu çəkərək.
>> Bu biz onu çəkmək olardı bu halda həyata.
Biz tək-tək bütün çıxarış moms masa analar.
Biz onların bütün set var və biz vasitəsilə təkrarlamaq və çap etmək istəyirəm
hər biri.
Belə ki, yenə, bu yəqin ki, ən mürəkkəb nümunəsi
biz üç qarışdırmaqla edirik, çünki biz gördük müxtəlif dillərdə birlikdə, sağ?
>> Yenə qırmızı burada HTML var, mavi burada bəzi SQL ilə qarışıq,
yaşıl bir PHP ilə qarışdırılır.
Amma bütün bunlar oynamaq qəşəng birlikdə, bu
inkişaf yalnız bir məsələ yaxşı vərdişlər əldə edə bilərsiniz, belə ki,
onlara istədiyiniz yol birlikdə işləmək üçün.
Və yalnız yol həqiqətən bunu etmək , təcrübə təcrübə etiqad etməkdir.
Mən Doug Lloyd deyiləm, bu CS50 edir.