1 00:00:00,000 --> 00:00:03,493 >> [Παίζει μουσική] 2 00:00:03,493 --> 00:00:04,934 3 00:00:04,934 --> 00:00:07,100 DOUG LLOYD: Στο βίντεο μας για θέματα ανάπτυξης ιστοσελίδων, 4 00:00:07,100 --> 00:00:10,560 έχουμε αναφέρει την έννοια της μια βάση δεδομένων μερικές φορές, σωστά; 5 00:00:10,560 --> 00:00:12,700 Έτσι, μια βάση δεδομένων είστε πιθανώς εξοικειωμένοι με την από 6 00:00:12,700 --> 00:00:15,780 δηλαδή χρησιμοποιώντας το Microsoft Excel ή το Google Spreadsheets. 7 00:00:15,780 --> 00:00:20,650 Είναι πραγματικά ακριβώς μια οργανωμένη τυποποιημένους πίνακες, σειρές, στήλες και. 8 00:00:20,650 --> 00:00:23,140 >> Και μια βάση δεδομένων όπου είναι καταστήματα ιστοσελίδα μας 9 00:00:23,140 --> 00:00:26,760 πληροφορίες που είναι σημαντικό για την ιστοσελίδα μας για να λειτουργήσει σωστά. 10 00:00:26,760 --> 00:00:30,150 Και πάλι, ένα πολύ κοινό παράδειγμα εδώ αποθηκεύει ονόματα χρήστη και κωδικούς 11 00:00:30,150 --> 00:00:32,824 σε μια βάση δεδομένων, έτσι ώστε όταν ένας χρήστης συνδέεται στην ιστοσελίδα μας, 12 00:00:32,824 --> 00:00:36,690 η βάση δεδομένων μπορεί να ερωτηθούν για να δείτε αν υπάρχει ο χρήστης στη βάση δεδομένων. 13 00:00:36,690 --> 00:00:39,260 Και αν είναι, ελέγχοντας ότι τον κωδικό πρόσβασής τους είναι σωστή. 14 00:00:39,260 --> 00:00:43,420 Και αν ο κωδικός τους είναι σωστή, τότε μπορούμε να τους δώσουμε τη σελίδα Ό, τι 15 00:00:43,420 --> 00:00:45,370 από όπου και αν ζητούν. 16 00:00:45,370 --> 00:00:48,590 >> Έτσι είστε κατά πάσα πιθανότητα, και πάλι, εξοικειωμένοι με αυτήν την ιδέα από το Excel ή το Google 17 00:00:48,590 --> 00:00:49,430 Υπολογιστικά φύλλα. 18 00:00:49,430 --> 00:00:52,980 Έχουμε τις βάσεις δεδομένων, πίνακες, σειρές, στήλες και. 19 00:00:52,980 --> 00:00:56,450 Και αυτό είναι πραγματικά το είδος του συνόλου των θεμελιωδών 20 00:00:56,450 --> 00:00:58,470 της ιεραρχικής κατανομή εδώ. 21 00:00:58,470 --> 00:00:59,800 Έτσι, εδώ είναι ένα υπολογιστικό φύλλο Excel. 22 00:00:59,800 --> 00:01:02,640 Και αν έχετε ανοίξει ποτέ αυτό ή άλλο παρόμοιο πρόγραμμα 23 00:01:02,640 --> 00:01:06,780 ξέρετε ότι αυτά είναι εδώ rows-- 1, 2, 3, 4, 5, 6, 7. 24 00:01:06,780 --> 00:01:08,760 Αυτά είναι στήλες. 25 00:01:08,760 --> 00:01:11,790 >> Ίσως εδώ κάτω, αν και μπορεί να Δεν χρησιμοποιήσετε αυτήν τη δυνατότητα τρομερά much-- 26 00:01:11,790 --> 00:01:15,370 Θα zoom in-- έχουμε αυτή η ιδέα ενός φύλλου. 27 00:01:15,370 --> 00:01:17,930 Έτσι ίσως αυτά τα φύλλα, αν Έχω εναλλάσσονται μπροστά και πίσω, 28 00:01:17,930 --> 00:01:21,600 είναι διαφορετικοί πίνακες που υπάρχουν στη βάση δεδομένων μου. 29 00:01:21,600 --> 00:01:25,210 Και αν συνεχίσουμε το παράδειγμα όλων ο τρόπος, το όνομα αυτής της βάσης δεδομένων 30 00:01:25,210 --> 00:01:26,940 Κάντε κράτηση είναι 1. 31 00:01:26,940 --> 00:01:28,710 Ίσως έχω Βιβλίο 2 και 3 Βιβλίου. 32 00:01:28,710 --> 00:01:33,270 Έτσι, κάθε αρχείο Excel είναι ένα βάσεων δεδομένων, κάθε φύλλο είναι ένας πίνακας, 33 00:01:33,270 --> 00:01:39,530 και στο εσωτερικό της κάθε τραπέζι που έχω αυτή η ιδέα των γραμμών και στηλών. 34 00:01:39,530 --> 00:01:41,900 >> Λοιπόν, πώς μπορώ να δουλεύω με αυτή τη βάση δεδομένων; 35 00:01:41,900 --> 00:01:43,630 Πώς μπορώ να πάρω πληροφορίες από αυτό; 36 00:01:43,630 --> 00:01:47,540 Λοιπόν υπάρχει μια γλώσσα που ονομάζεται SQL-- η οποία συνήθως απλά τηλεφωνήστε Sequel-- 37 00:01:47,540 --> 00:01:50,010 και αντιπροσωπεύει το Structured Query Language. 38 00:01:50,010 --> 00:01:52,981 Και αυτή είναι μια γλώσσα προγραμματισμού, αλλά είναι μια αρκετά περιορισμένη προγραμματισμού 39 00:01:52,981 --> 00:01:53,480 γλώσσα. 40 00:01:53,480 --> 00:01:56,407 Δεν είναι αρκετά όπως και άλλοι ότι έχουμε εργαστεί με. 41 00:01:56,407 --> 00:01:58,240 Αλλά ο σκοπός αυτού γλώσσα προγραμματισμού 42 00:01:58,240 --> 00:02:01,570 είναι για την αναζήτηση σε μια βάση δεδομένων, να να ζητήσει πληροφορίες από μια βάση δεδομένων, 43 00:02:01,570 --> 00:02:04,480 βρείτε πληροφορίες για ένα βάσεων δεδομένων, και ούτω καθεξής. 44 00:02:04,480 --> 00:02:08,449 >> Επίσης, σε CS50-- και είναι ένα πολύ κοινής πλατφόρμας, θα ονομάζεται MySQL. 45 00:02:08,449 --> 00:02:10,600 Αυτό είναι αυτό που χρησιμοποιούμε στο μάθημα. 46 00:02:10,600 --> 00:02:12,880 Είναι ένα open source πλατφόρμα που θεσπίζει 47 00:02:12,880 --> 00:02:16,732 το λεγόμενο σχεσιακή database-- μια βάση δεδομένων, αποτελεσματικά. 48 00:02:16,732 --> 00:02:18,440 Δεν πρέπει να πάρετε σε πάρα πολλή λεπτομέρεια 49 00:02:18,440 --> 00:02:20,930 Σε ό, τι μια σχεσιακή βάση δεδομένων είναι. 50 00:02:20,930 --> 00:02:24,650 Αλλά η γλώσσα SQL είναι πολύ έμπειροι στην εργασία 51 00:02:24,650 --> 00:02:29,760 με MySQL και άλλα παρόμοια στυλ των σχεσιακών βάσεων δεδομένων. 52 00:02:29,760 --> 00:02:34,010 >> Και πολλές εγκαταστάσεις MySQL έρθει με κάτι 53 00:02:34,010 --> 00:02:37,760 που ονομάζεται phpMyAdmin, η οποία είναι ένα Graphical User 54 00:02:37,760 --> 00:02:40,970 interface-- μια GUI-- ότι καθιστά λίγο πιο 55 00:02:40,970 --> 00:02:44,410 φιλική προς το χρήστη να εκτελέσει αναζητήσεις στη βάση δεδομένων, 56 00:02:44,410 --> 00:02:48,980 επειδή οι βάσεις δεδομένων δεν χρησιμοποιούνται μόνο από την προηγμένη προγραμματιστές, έτσι δεν είναι; 57 00:02:48,980 --> 00:02:51,510 Μερικές φορές υπάρχουν Αυτές οι μικρές επιχειρήσεις, 58 00:02:51,510 --> 00:02:53,900 και δεν μπορούν να αντέξουν οικονομικά να προσλάβει μια ομάδα προγραμματιστών, 59 00:02:53,900 --> 00:02:56,700 αλλά πρέπει ακόμα να αποθηκεύσετε πληροφορίες σε μια βάση δεδομένων. 60 00:02:56,700 --> 00:02:59,300 >> Κάτι σαν το phpMyAdmin καθιστά πολύ εύκολο για κάποιον 61 00:02:59,300 --> 00:03:03,630 που ποτέ δεν προγραμματίζονται, πριν να επιβιβάζουν και να εξοικειωθεί με το πώς 62 00:03:03,630 --> 00:03:07,710 να συνεργαστεί με μια βάση δεδομένων. 63 00:03:07,710 --> 00:03:11,800 Το πρόβλημα είναι, phpMyAdmin, ενώ είναι ένα φανταστικό εργαλείο για την εκμάθηση 64 00:03:11,800 --> 00:03:14,850 σχετικά με τις βάσεις δεδομένων, είναι χειροκίνητη. 65 00:03:14,850 --> 00:03:18,050 Θα πάμε να πρέπει να συνδεθείτε αυτό και να εκτελέσουν εντολές και τον τύπο 66 00:03:18,050 --> 00:03:19,910 τα πράγματα με το χέρι. 67 00:03:19,910 --> 00:03:23,160 >> Και όπως γνωρίζουμε από μας παράδειγμα σε PHP Προγραμματισμός στο Web, 68 00:03:23,160 --> 00:03:26,550 που έχουν να κάνουν με το χέρι τα πράγματα στην ιστοσελίδα μας, 69 00:03:26,550 --> 00:03:30,970 αν θέλουμε μια δυναμική, ενεργητική απόκριση δικτυακό τόπο, ίσως να μην είναι η καλύτερη προσέγγιση. 70 00:03:30,970 --> 00:03:33,980 Θα θέλαμε να βρούμε έναν τρόπο για να ίσως να αυτοματοποιήσει αυτό με κάποιο τρόπο. 71 00:03:33,980 --> 00:03:37,864 Και SQL θα μας επιτρέψει να το κάνουμε αυτό. 72 00:03:37,864 --> 00:03:39,780 Έτσι, όταν θα πάμε να αρχίσουν να εργάζονται με SQL, 73 00:03:39,780 --> 00:03:41,220 θα πρέπει πρώτα να έχουν μια βάση δεδομένων για να εργαστείτε με. 74 00:03:41,220 --> 00:03:42,510 Η δημιουργία μιας βάσης δεδομένων κάτι που πιθανώς 75 00:03:42,510 --> 00:03:45,350 θα κάνουμε στο phpMyAdmin, επειδή θα πρέπει μόνο να το κάνουμε μια φορά, 76 00:03:45,350 --> 00:03:49,690 και η σύνταξη για να κάνει έτσι είναι πολύ πιο απλή. 77 00:03:49,690 --> 00:03:51,940 Είναι πολύ πιο εύκολο να το κάνουμε σε μια γραφική διεπαφή χρήστη 78 00:03:51,940 --> 00:03:53,520 ό, τι πληκτρολογείτε έξω ως εντολή. 79 00:03:53,520 --> 00:03:55,186 Η εντολή μπορεί να πάρει λίγο περίπλοκη. 80 00:03:55,186 --> 00:03:58,889 Ομοίως, δημιουργώντας ένα τραπέζι μπορεί να πάρει αρκετά λίγο περίπλοκη, καθώς και. 81 00:03:58,889 --> 00:04:01,930 Και έτσι τα πράγματα όπως τη δημιουργία μιας βάσης δεδομένων και τη δημιουργία ενός πίνακα, το οποίο είστε 82 00:04:01,930 --> 00:04:06,270 πιθανώς μόνο πρόκειται να κάνει once-- μία φορά ανά τραπέζι, μία φορά ανά database-- 83 00:04:06,270 --> 00:04:09,040 είναι ΟΚ για να το κάνουμε αυτό σε ένα γραφικό περιβάλλον. 84 00:04:09,040 --> 00:04:11,570 Κατά τη διαδικασία της τη δημιουργία ενός πίνακα, θα 85 00:04:11,570 --> 00:04:14,840 Πρέπει επίσης να προσδιορίζει όλα τα στήλες που θα είναι σε αυτό το τραπέζι. 86 00:04:14,840 --> 00:04:18,149 Τι είδους πληροφορίες κάνουν θέλετε να αποθηκεύσετε στον πίνακα; 87 00:04:18,149 --> 00:04:24,520 Ίσως το όνομα και την ημερομηνία γέννησης ενός χρήστη, κωδικό πρόσβασης, τον αριθμό ταυτότητας του χρήστη, και ίσως 88 00:04:24,520 --> 00:04:26,170 πόλη και την πολιτεία, σωστά; 89 00:04:26,170 --> 00:04:30,080 >> Και για κάθε φορά που θέλουμε να προσθέσουμε ένα χρήστη με τη βάση δεδομένων, θέλουμε να πάρει όλα τα έξι 90 00:04:30,080 --> 00:04:31,890 από αυτά τα κομμάτια των πληροφοριών. 91 00:04:31,890 --> 00:04:34,840 Και το κάνουμε αυτό με την προσθήκη γραμμών στον πίνακα. 92 00:04:34,840 --> 00:04:37,800 Γι 'αυτό πρώτα να δημιουργήσετε μια βάση δεδομένων, τότε δημιουργούμε ένα πίνακα. 93 00:04:37,800 --> 00:04:40,100 Ως μέρος της δημιουργίας ένα τραπέζι, καλούμαστε 94 00:04:40,100 --> 00:04:44,280 για να καθορίσετε κάθε στήλη, η οποία θα θέλαμε σε αυτόν τον πίνακα. 95 00:04:44,280 --> 00:04:47,247 Και τότε, όπως θα αρχίσουμε να προσθέσουμε πληροφορίες στη βάση δεδομένων 96 00:04:47,247 --> 00:04:49,580 και το ερώτημα της βάσης δεδομένων περισσότερα generally-- όχι μόνο προσθέτοντας, 97 00:04:49,580 --> 00:04:51,610 αλλά ό, τι άλλο μας do-- θα είμαστε ασχολούνται 98 00:04:51,610 --> 00:04:58,870 με σειρές του πίνακα, το οποίο είναι ένα πληροφορίες των χρηστών από ολόκληρο το σύνολο. 99 00:04:58,870 --> 00:05:03,210 >> Έτσι, κάθε SQL στήλη είναι σε θέση να κρατώντας τα δεδομένα ενός συγκεκριμένου τύπου δεδομένων. 100 00:05:03,210 --> 00:05:06,560 Γι 'αυτό το είδος της εξαλειφθεί αυτό ιδέα των τύπων δεδομένων σε PHP, 101 00:05:06,560 --> 00:05:08,747 αλλά είναι πίσω εδώ στην SQL. 102 00:05:08,747 --> 00:05:10,080 Και υπάρχουν πολλά είδη δεδομένων. 103 00:05:10,080 --> 00:05:13,420 Εδώ είναι μόνο 20 από αυτούς, αλλά δεν είναι καν όλα αυτά. 104 00:05:13,420 --> 00:05:16,240 Έτσι έχουμε ιδέες όπως INTs-- Integers-- που ίσως γνωρίζετε 105 00:05:16,240 --> 00:05:17,760 ότι αυτή η στήλη μπορεί να κρατήσει ακέραιοι. 106 00:05:17,760 --> 00:05:21,077 Και υπάρχουν παραλλαγές thereon-- SMALLINT, tinyint, MEDIUMINT, BIGINT. 107 00:05:21,077 --> 00:05:22,660 Ίσως δεν χρειαζόμαστε πάντα τέσσερις τσιμπήματα. 108 00:05:22,660 --> 00:05:26,800 Ίσως χρειαζόμαστε οκτώ bytes, και γι 'αυτό μπορούν να χρησιμοποιήσουν αυτές τις παραλλαγές σε ακέραιους αριθμούς 109 00:05:26,800 --> 00:05:28,510 να είναι λίγο περισσότερο χώρο αποτελεσματική. 110 00:05:28,510 --> 00:05:31,899 Μπορούμε να κάνουμε δεκαδικούς αριθμούς, μπορούμε μπορούν να κάνουν αριθμούς κινητής υποδιαστολής. 111 00:05:31,899 --> 00:05:32,940 Αυτά είναι αρκετά παρόμοια. 112 00:05:32,940 --> 00:05:34,773 Υπάρχουν κάποιες διαφορές, και αν έχετε την καλοσύνη 113 00:05:34,773 --> 00:05:37,330 αρέσει να κοιτάζω προς τα πάνω το SQL είδος του οδηγού, μπορείτε 114 00:05:37,330 --> 00:05:40,670 μπορούν να δουν ποια είναι η μικρή διαφορές μεταξύ τους. 115 00:05:40,670 --> 00:05:43,250 >> Ίσως θέλουμε να αποθηκεύσουμε πληροφορίες σχετικά με την ημερομηνία και ώρα. 116 00:05:43,250 --> 00:05:47,047 Ίσως είμαστε παρακολούθηση των όταν ο χρήστης προσχώρησε ιστοσελίδα μας, 117 00:05:47,047 --> 00:05:48,880 και έτσι ίσως θέλουμε να έχει μια στήλη που είναι 118 00:05:48,880 --> 00:05:52,820 ένας χρόνος ημερομηνία ή μια χρονική σήμανση ότι υποδεικνύει πότε ο χρήστης πράγματι 119 00:05:52,820 --> 00:05:54,130 υπογράψει. 120 00:05:54,130 --> 00:05:56,132 Μπορούμε να κάνουμε γεωμετρίες και linestrings. 121 00:05:56,132 --> 00:05:57,340 Αυτό είναι στην πραγματικότητα αρκετά δροσερό. 122 00:05:57,340 --> 00:06:01,410 Θα μπορούσαμε να χαράξουμε μια γεωγραφική περιοχή, χρησιμοποιώντας 123 00:06:01,410 --> 00:06:05,110 GIS συντεταγμένες για να σχεδιάσετε μια περιοχή έξω. 124 00:06:05,110 --> 00:06:08,580 Έτσι, μπορεί να αποθηκεύσει στην πραγματικότητα αυτό το είδος πληροφοριών σε μια στήλη SQL. 125 00:06:08,580 --> 00:06:11,390 >> TEXT είναι απλά γίγαντας σταγόνες του κειμένου, ίσως. 126 00:06:11,390 --> 00:06:12,840 ENUMs είναι είδος ενδιαφέρον. 127 00:06:12,840 --> 00:06:16,080 Στην πραγματικότητα υπάρχουν σε C. Δεν κάνουμε μιλήσουμε γι 'αυτούς επειδή δεν είναι 128 00:06:16,080 --> 00:06:19,110 τρομερά χρησιμοποιούνται συνήθως, τουλάχιστον CS50. 129 00:06:19,110 --> 00:06:22,680 Αλλά είναι μια αριθμητικού τύπου δεδομένων, η οποία είναι ικανή Holding Limited τιμές. 130 00:06:22,680 --> 00:06:25,940 >> Ένα πολύ καλό παράδειγμα εδώ θα ήταν για να δημιουργήσετε ένα enum όπου ο επτά 131 00:06:25,940 --> 00:06:29,394 πιθανές τιμές είναι Κυριακή, Δευτέρα, ΤΡΙΤΗ ΤΕΤΑΡΤΗ ΠΕΜΠΤΗ ΠΑΡΑΣΚΕΥΗ, 132 00:06:29,394 --> 00:06:30,060 Σάββατο, σωστά; 133 00:06:30,060 --> 00:06:33,311 Αυτός ο τύπος δεδομένων Ημέρας Εβδομάδα δεν υπάρχει, 134 00:06:33,311 --> 00:06:35,310 αλλά θα μπορούσαμε να δημιουργήσουμε μια απαριθμούνται τύπο δεδομένων, όπως 135 00:06:35,310 --> 00:06:39,400 ότι η στήλη μπορεί να κρατήσει μόνο ποτέ ένα από αυτά τα επτά πιθανές τιμές. 136 00:06:39,400 --> 00:06:44,300 Έχουμε απαριθμούνται όλες των πιθανών τιμών. 137 00:06:44,300 --> 00:06:47,630 >> Στη συνέχεια έχουμε CHAR και VARCHAR, και έχω το χρώμα αυτών των πράσινων 138 00:06:47,630 --> 00:06:49,505 γιατί στην πραγματικότητα είμαστε πρόκειται να λάβει μια δεύτερη 139 00:06:49,505 --> 00:06:51,950 για να μιλήσουμε για τη διαφορά μεταξύ αυτών των δύο πράγματα. 140 00:06:51,950 --> 00:06:55,780 Έτσι ΧΑΡ, σε αντίθεση με C όπου ΧΑΡ ήταν ένα ενιαίο χαρακτήρα, 141 00:06:55,780 --> 00:07:00,730 σε SQL ένα ΧΑΡ ​​αναφέρεται σε μια σταθερή συμβολοσειρά μήκους. 142 00:07:00,730 --> 00:07:02,620 Και όταν δημιουργούμε αυτό στήλη, στην πραγματικότητα 143 00:07:02,620 --> 00:07:05,070 μπορείτε να καθορίσετε το μήκος του string. 144 00:07:05,070 --> 00:07:08,080 >> Έτσι, σε αυτό το παράδειγμα, θα μπορούσαμε να πούμε CHAR (10). 145 00:07:08,080 --> 00:07:11,190 Αυτό σημαίνει ότι κάθε στοιχείο αυτής της στήλης 146 00:07:11,190 --> 00:07:13,910 θα αποτελείται από 10 bytes πληροφοριών. 147 00:07:13,910 --> 00:07:15,770 Όχι περισσότερο, όχι λιγότερο. 148 00:07:15,770 --> 00:07:21,780 Έτσι, αν προσπαθήσουμε και να θέσει σε 15 bit ή ένα στοιχείο 15 χαρακτήρων 149 00:07:21,780 --> 00:07:25,340 ή την αξία σε αυτή τη στήλη, είμαστε μόνο να πάρει το πρώτο 10. 150 00:07:25,340 --> 00:07:27,290 Αν βάλουμε στα δύο χαρακτήρα καιρό αξίας, 151 00:07:27,290 --> 00:07:30,700 θα πάμε να έχουν τα δύο χαρακτήρες, και στη συνέχεια οκτώ null τσιμπήματα. 152 00:07:30,700 --> 00:07:34,990 Εμείς ποτέ δεν θα είναι πιο αποτελεσματική από ό, τι αυτό. 153 00:07:34,990 --> 00:07:37,727 >> Μια VARCHAR είναι κάτι σαν αντίληψή μας για μια σειρά 154 00:07:37,727 --> 00:07:39,560 ότι είμαστε εξοικειωμένοι με από C ή από την PHP. 155 00:07:39,560 --> 00:07:40,830 Είναι μια συμβολοσειρά μεταβλητού μήκους. 156 00:07:40,830 --> 00:07:42,560 Και όταν δημιουργείτε αυτή η στήλη, απλά 157 00:07:42,560 --> 00:07:44,860 Καθορίστε το μέγιστο δυνατό μήκος. 158 00:07:44,860 --> 00:07:49,065 Έτσι ίσως 99, ή κοινώς 255. 159 00:07:49,065 --> 00:07:50,440 Αυτό θα είναι το μέγιστο μήκος. 160 00:07:50,440 --> 00:07:52,890 Και έτσι, αν ήμασταν αποθήκευση 15 ακολουθία χαρακτήρων, 161 00:07:52,890 --> 00:07:56,157 θα χρησιμοποιήσει 15 bytes, ίσως 16 byte για τη μηδενική τερματισμού. 162 00:07:56,157 --> 00:07:57,990 Αν ήμασταν μια αποθήκευση τρία σειρά χαρακτήρων, 163 00:07:57,990 --> 00:08:01,120 θα χρησιμοποιήσει τρία ή τέσσερα byte. 164 00:08:01,120 --> 00:08:03,050 Αλλά εμείς δεν θα χρησιμοποιούν την πλήρη 99. 165 00:08:03,050 --> 00:08:05,190 >> Επομένως, γιατί θα έχουμε και τα δύο; 166 00:08:05,190 --> 00:08:08,210 Λοιπόν, αν θα πρέπει να καταλάβω πώς μακριά κάτι με VARCHAR, 167 00:08:08,210 --> 00:08:10,680 θα πρέπει να επαναλάβει το είδος του πάνω σε αυτό ακριβώς όπως κάναμε σε C 168 00:08:10,680 --> 00:08:12,230 και να καταλάβω πού να σταματήσει. 169 00:08:12,230 --> 00:08:15,920 Ενώ αν γνωρίζουμε ότι τα πάντα σε αυτήν τη στήλη είναι 10 bytes, ίσως 170 00:08:15,920 --> 00:08:19,220 Γνωρίζουμε ότι οι πληροφορίες, μπορούμε να πηδήξει 10 bytes, 10 bytes, 10 bytes, 10 bytes, 171 00:08:19,220 --> 00:08:21,790 και πάντα βρίσκουν το αρχή του string. 172 00:08:21,790 --> 00:08:25,210 >> Έτσι μπορεί να έχουμε κάποια σπατάλη χώρου με ΧΑΡ, 173 00:08:25,210 --> 00:08:28,510 αλλά ίσως υπάρχει ένα εμπόριο εκτός από έχοντας την καλύτερη ταχύτητα 174 00:08:28,510 --> 00:08:30,160 στην πλοήγηση της βάσης δεδομένων. 175 00:08:30,160 --> 00:08:32,330 Αλλά ίσως θέλουμε η ευελιξία ενός VARCHAR 176 00:08:32,330 --> 00:08:36,710 αντί having-- Αν ΧΑΡ μας ήταν 255, αλλά οι περισσότεροι από τους χρήστες μας 177 00:08:36,710 --> 00:08:40,537 ήταν μόνο εισαγωγή τρεις ή τέσσερις ψηφιολέξεις Αξίζει πληροφοριών ή τρεις ή τέσσερις 178 00:08:40,537 --> 00:08:41,870 χαρακτήρες αξίας των πληροφοριών. 179 00:08:41,870 --> 00:08:44,324 >> Αλλά μερικοί χρήστες που χρησιμοποιούν το σύνολο 255, ίσως 180 00:08:44,324 --> 00:08:45,990 VARCHAR θα ήταν πιο κατάλληλο εκεί. 181 00:08:45,990 --> 00:08:49,840 Είναι ένα είδος εμπορίου off, και γενικότερα, για σκοπούς του CS50, 182 00:08:49,840 --> 00:08:54,107 δεν χρειάζεται να ανησυχείτε πάρα πολύ για αν χρησιμοποιείτε ένα CHAR ή VARCHAR. 183 00:08:54,107 --> 00:08:57,190 Αλλά στον πραγματικό κόσμο, αυτά τα πράγματα έχουν σημασία, διότι όλες αυτές οι στήλες 184 00:08:57,190 --> 00:08:59,300 καταλαμβάνουν πραγματικό φυσικό χώρο. 185 00:08:59,300 --> 00:09:04,150 Και φυσικό χώρο, στο πραγματικό κόσμο, έρχεται σε ένα ασφάλιστρο. 186 00:09:04,150 --> 00:09:06,800 >> Έτσι, μία άλλη μελέτη όταν είστε οικοδόμηση ενός πίνακα 187 00:09:06,800 --> 00:09:09,840 είναι να διαλέξετε μία στήλη να είναι αυτό που λέγεται πρωτεύον κλειδί. 188 00:09:09,840 --> 00:09:14,350 Και ένα πρωτεύον κλειδί είναι μια στήλη όπου κάθε τιμή είναι μοναδική. 189 00:09:14,350 --> 00:09:19,980 Και αυτό σημαίνει ότι μπορείτε εύκολα ξεχωρίσω μια ενιαία γραμμή μόνο κοιτώντας 190 00:09:19,980 --> 00:09:22,450 στο πρωτεύον κλειδί του εν λόγω σειράς. 191 00:09:22,450 --> 00:09:24,580 Έτσι, για παράδειγμα, γενικά, με τους χρήστες, 192 00:09:24,580 --> 00:09:27,210 Δεν θέλω δύο χρήστες που έχουν τον ίδιο αριθμό ταυτότητας χρήστη. 193 00:09:27,210 --> 00:09:28,960 Και έτσι ίσως έχετε πολλές πληροφορίες, 194 00:09:28,960 --> 00:09:30,793 και ίσως δύο χρήστες μπορούν να έχουν την ίδια name-- 195 00:09:30,793 --> 00:09:32,650 Έχετε John Smith και John Smith. 196 00:09:32,650 --> 00:09:34,520 Αυτό δεν είναι απαραιτήτως ένα πρόβλημα, επειδή υπάρχουν πολλά άτομα 197 00:09:34,520 --> 00:09:35,830 στον κόσμο το όνομα John Smith. 198 00:09:35,830 --> 00:09:40,766 Αλλά έχουμε μόνο έναν χρήστη τον αριθμό ταυτότητας 10, ένας χρήστης αριθμό 11, 12, 13 ID. 199 00:09:40,766 --> 00:09:42,640 Δεν έχουμε δύο χρήστες με τον ίδιο αριθμό, 200 00:09:42,640 --> 00:09:46,010 και έτσι ίσως αριθμούς ταυτότητας χρήστη θα ήταν μια καλή πρωτεύον κλειδί. 201 00:09:46,010 --> 00:09:48,610 >> Δεν έχουμε καμία επικάλυψη, και μπορούμε τώρα μοναδικά 202 00:09:48,610 --> 00:09:52,619 προσδιορίσει κάθε γραμμή μόνο κοιτάζοντας αυτή τη στήλη. 203 00:09:52,619 --> 00:09:55,410 Επιλέγοντας πρωτεύοντα κλειδιά μπορεί πραγματικά να τις επακόλουθες ενέργειες τραπέζι 204 00:09:55,410 --> 00:09:59,710 πολύ πιο εύκολο, διότι μπορούν να αξιοποιήσουν το γεγονός ότι ορισμένες σειρές που θα 205 00:09:59,710 --> 00:10:02,720 είναι μοναδικό, ή μια συγκεκριμένη στήλη της βάσης δεδομένων ή το τραπέζι σας 206 00:10:02,720 --> 00:10:06,030 θα είναι μοναδικό για να πάρει έξω ιδιαίτερη σειρές. 207 00:10:06,030 --> 00:10:08,790 >> Μπορείτε επίσης να έχετε μια κοινή πρωτογενή κλειδί, το οποίο μπορείτε να βρείτε ευκαιρία 208 00:10:08,790 --> 00:10:11,720 στη χρήση, το οποίο είναι απλώς ένα συνδυασμός δύο στήλες που 209 00:10:11,720 --> 00:10:13,280 είναι εγγυημένη για να είναι μοναδική. 210 00:10:13,280 --> 00:10:16,410 Έτσι ίσως έχετε ένα στήλη που είναι Όπως και Β, 211 00:10:16,410 --> 00:10:19,290 μία στήλη που είναι ένα, δύο, και τρία, αλλά θα ποτέ μόνο 212 00:10:19,290 --> 00:10:23,660 έχουν ένα ενιαίο Α1, ένα ενιαίο Α2, και ούτω καθεξής και ούτω καθεξής. 213 00:10:23,660 --> 00:10:28,980 Αλλά μπορεί να έχετε μια Β2, μια C2, ή ένας Α1, Α2, Α3, Α4. 214 00:10:28,980 --> 00:10:32,840 Έτσι, μπορείτε να έχετε πολλαπλές Όπως, πολλαπλές BS, πολλαπλές αυτές, πολλαπλές δυάρια, 215 00:10:32,840 --> 00:10:38,567 αλλά το μόνο που μπορεί να έχει ποτέ ενιαία A1, B2, C3, και ούτω καθεξής. 216 00:10:38,567 --> 00:10:40,400 Έτσι, όπως είπα, είναι ένα SQL γλώσσα προγραμματισμού, 217 00:10:40,400 --> 00:10:42,024 αλλά έχει ένα αρκετά περιορισμένο λεξιλόγιο. 218 00:10:42,024 --> 00:10:44,880 Δεν είναι τόσο επεκτατική ως C και PHP και άλλες γλώσσες 219 00:10:44,880 --> 00:10:46,350 ότι μιλάμε στην πορεία. 220 00:10:46,350 --> 00:10:49,960 Είναι μια πιο αναλυτική περιγραφή γλώσσα από ό, τι είμαστε 221 00:10:49,960 --> 00:10:52,789 πρόκειται να μιλήσουμε για αυτό βίντεο, επειδή σε αυτό το βίντεο 222 00:10:52,789 --> 00:10:54,830 θα πάμε να μιλήσουμε για τέσσερις πράξεις ότι 223 00:10:54,830 --> 00:10:55,720 μπορεί να εκτελέσει σε ένα τραπέζι. 224 00:10:55,720 --> 00:10:56,761 >> Υπάρχουν περισσότερα από αυτό. 225 00:10:56,761 --> 00:10:58,730 Μπορούμε να κάνουμε περισσότερα από αυτό, αλλά για τους σκοπούς μας, 226 00:10:58,730 --> 00:11:02,250 είμαστε γενικά θα πρέπει να χρησιμοποιούν μόλις τέσσερις operations-- ένθετο, 227 00:11:02,250 --> 00:11:05,360 επιλέξετε, να ενημερώσετε και να διαγράψετε. 228 00:11:05,360 --> 00:11:08,750 Και μπορείτε να μαντέψετε ίσως διαισθητικά τι τα τέσσερα από αυτά τα πράγματα κάνουν. 229 00:11:08,750 --> 00:11:12,520 Αλλά θα πάμε σε ένα κομμάτι λεπτομέρειες για κάθε μία. 230 00:11:12,520 --> 00:11:15,780 >> Έτσι, για τους σκοπούς του παρόντος βίντεο, ας υποθέσουμε 231 00:11:15,780 --> 00:11:18,870 έχουμε τα εξής δύο πίνακες σε μια ενιαία βάση δεδομένων. 232 00:11:18,870 --> 00:11:23,460 Έχουμε έναν πίνακα που ονομάζεται Χρήστες που έχει τέσσερις columns-- αριθμό ταυτότητας, το όνομα χρήστη, 233 00:11:23,460 --> 00:11:25,350 κωδικό πρόσβασης και το πλήρες όνομα. 234 00:11:25,350 --> 00:11:27,430 Και έχουμε μια δεύτερη τραπέζι στην ίδια βάση δεδομένων 235 00:11:27,430 --> 00:11:32,129 που ονομάζεται Moms που αποθηκεύει μόνο πληροφορίες σχετικά με ένα όνομα χρήστη και μια μητέρα. 236 00:11:32,129 --> 00:11:33,920 Έτσι, για όλα τα παραδείγματα σε αυτό το βίντεο, θα 237 00:11:33,920 --> 00:11:37,945 να χρησιμοποιεί αυτή τη βάση δεδομένων και μετέπειτα ενημερώσεις σε αυτό. 238 00:11:37,945 --> 00:11:40,070 Ας πούμε ότι θέλουμε να προσθήκη πληροφοριών σε ένα τραπέζι. 239 00:11:40,070 --> 00:11:44,460 Αυτό είναι ό, τι κάνει η λειτουργία εισαγωγής. 240 00:11:44,460 --> 00:11:46,550 Σε εξηγώντας όλα Αυτές οι εντολές, θα πάω 241 00:11:46,550 --> 00:11:48,860 για να σας δώσει μια γενική σκελετό για να χρησιμοποιήσετε. 242 00:11:48,860 --> 00:11:51,661 Επειδή ουσιαστικά, τα ερωτήματα θα φαίνονται αρκετά παρόμοια, 243 00:11:51,661 --> 00:11:54,660 είμαστε ακριβώς πρόκειται να αλλάζει ελαφρώς διαφορετικά κομμάτια των πληροφοριών 244 00:11:54,660 --> 00:11:56,750 να κάνω διαφορετικά πράγματα με τον πίνακα. 245 00:11:56,750 --> 00:11:59,200 >> Έτσι, για INSERT, το σκελετό φαίνεται κάτι σαν αυτό. 246 00:11:59,200 --> 00:12:02,230 Θέλουμε να εισαγάγει ένα συγκεκριμένο πίνακα. 247 00:12:02,230 --> 00:12:05,290 Στη συνέχεια έχουμε μια ανοιχτή παρένθεση και μια λίστα των στηλών 248 00:12:05,290 --> 00:12:08,070 ότι θέλουμε να θέσει αξίες σε. 249 00:12:08,070 --> 00:12:10,974 Κλείστε παρενθέσεις, η ακόλουθες τιμές, και στη συνέχεια 250 00:12:10,974 --> 00:12:13,390 και πάλι, παραθέτουμε τις τιμές θέλουμε να βάλει στο τραπέζι. 251 00:12:13,390 --> 00:12:15,950 >> Έτσι, ένα παράδειγμα αυτού θα είναι η ακόλουθη. 252 00:12:15,950 --> 00:12:19,170 Θέλω να εισαγάγει στον πίνακα Οι χρήστες το ακόλουθο columns-- 253 00:12:19,170 --> 00:12:21,010 το όνομα χρήστη, τον κωδικό πρόσβασης, και Ονοματεπώνυμο. 254 00:12:21,010 --> 00:12:25,282 Έτσι, μια νέα σειρά όπου βάζω σε αυτές τις τρεις στήλες και είμαστε 255 00:12:25,282 --> 00:12:30,030 πρόκειται να θέσει στις τιμές Newman, USMAIL, και Newman. 256 00:12:30,030 --> 00:12:32,730 Έτσι, σε αυτή την περίπτωση, είμαι βάζοντας το πεζό Newman 257 00:12:32,730 --> 00:12:38,710 στη στήλη όνομα χρήστη, ο κωδικός πρόσβασης USMAIL, και το πλήρες όνομα του κεφαλαίου Ν 258 00:12:38,710 --> 00:12:41,940 Newman στη στήλη Ονοματεπώνυμο. 259 00:12:41,940 --> 00:12:44,240 >> Έτσι, εδώ είναι ό, τι η βάση δεδομένων έμοιαζε πριν. 260 00:12:44,240 --> 00:12:48,250 Εδώ είναι τι ο πίνακας των χρηστών σχετικά με το κορυφή έμοιαζε πριν το κάναμε αυτό. 261 00:12:48,250 --> 00:12:50,760 Μετά εκτελούμε αυτό ερώτημα, παίρνουμε αυτό. 262 00:12:50,760 --> 00:12:54,790 Έχουμε προσθέσει μια νέα γραμμή στον πίνακα. 263 00:12:54,790 --> 00:12:56,810 Αλλά παρατηρήσετε αυτό το ένα πράγμα ότι δεν διευκρίνισε, 264 00:12:56,810 --> 00:12:59,880 αλλά με κάποιο τρόπο έχω την τιμή για, το οποίο είναι αυτό το 12 εδώ. 265 00:12:59,880 --> 00:13:02,820 Δεν είπα ήθελα να να θέσει τον αριθμό ταυτότητας εκεί. 266 00:13:02,820 --> 00:13:04,900 Ήθελα να βάλει το όνομα χρήστη, κωδικό πρόσβασης, Ονοματεπώνυμο. 267 00:13:04,900 --> 00:13:06,440 Και το έκανα αυτό, ότι το πρόστιμο. 268 00:13:06,440 --> 00:13:07,760 >> Αλλά εγώ επίσης πήρα αυτό 12. 269 00:13:07,760 --> 00:13:09,490 Γιατί να πάρω αυτό το 12; 270 00:13:09,490 --> 00:13:12,904 Λοιπόν, αποδεικνύεται ότι όταν καθορίζετε 271 00:13:12,904 --> 00:13:15,570 μια στήλη που πρόκειται να σας πρωτεύον κλειδί, το οποίο είναι συνήθως, 272 00:13:15,570 --> 00:13:16,510 όπως είπα, ένας αριθμός ταυτότητας. 273 00:13:16,510 --> 00:13:18,718 Δεν είναι πάντα απαραίτητα πρόκειται να είναι ένας αριθμός ταυτότητας, 274 00:13:18,718 --> 00:13:22,380 αλλά είναι συνήθως μια καλή ιδέα να είναι ένα είδος ακέραιος αξίας. 275 00:13:22,380 --> 00:13:25,950 Έχετε μια επιλογή στο phpMyAdmin όταν είστε δημιουργία βάσης δεδομένων σας 276 00:13:25,950 --> 00:13:31,130 ή το τραπέζι σας για να ορίσετε ότι στήλη ως αυτόματη επαύξησης που. 277 00:13:31,130 --> 00:13:34,520 >> Ποια είναι μια πραγματικά καλή ιδέα, όταν εργάζεστε με ένα πρωτεύον κλειδί, 278 00:13:34,520 --> 00:13:39,330 επειδή θέλετε κάθε τιμή στην εν λόγω στήλη να είναι μοναδική. 279 00:13:39,330 --> 00:13:43,310 Και αν ξεχάσετε να καθορίσετε για περισσότερο από ένα άτομο, 280 00:13:43,310 --> 00:13:46,240 Έχετε τώρα μια κατάσταση όπου η στήλη αυτή δεν είναι πλέον το μοναδικό. 281 00:13:46,240 --> 00:13:50,200 Έχετε δύο κενά, έτσι ώστε να μπορείτε όχι πλέον να προσδιορίσει μονοσήμαντα ένα column-- 282 00:13:50,200 --> 00:13:54,150 ή δεν είστε πλέον μοναδικά μπορεί προσδιορίσει μια σειρά που βασίζεται σε αυτή τη στήλη. 283 00:13:54,150 --> 00:13:57,010 Είναι χάσει όλα του αξία ως πρωτεύον κλειδί. 284 00:13:57,010 --> 00:14:02,010 >> Και έτσι προφανώς αυτό που έχω κάνει Εδώ έχει διαμορφωθεί το αναγνωριστικό χρήστη 285 00:14:02,010 --> 00:14:07,790 στήλη για αυτόματη αύξηση, έτσι ώστε κάθε ώρα μπορώ να προσθέσω τις πληροφορίες στον πίνακα, 286 00:14:07,790 --> 00:14:12,220 θα μου δώσει αυτόματα μια τιμή για το πρωτεύον κλειδί. 287 00:14:12,220 --> 00:14:15,570 Έτσι μπορώ να ξεχάσω ποτέ να το κάνω γιατί η βάση δεδομένων θα το κάνει για μένα. 288 00:14:15,570 --> 00:14:16,587 Έτσι, αυτό είναι το είδος της Νίκαιας. 289 00:14:16,587 --> 00:14:18,670 Και έτσι γι 'αυτό έχουμε 12 εκεί, γιατί έχω 290 00:14:18,670 --> 00:14:21,772 σύνολο που στήλης μέχρι την αυτόματη αύξηση. 291 00:14:21,772 --> 00:14:23,730 Αν έχω προσθέσει κάποιος άλλος θα ήθελα να είναι 13, αν προστεθούν 292 00:14:23,730 --> 00:14:27,890 κάποιος άλλος θα ήθελα να είναι 14, και ούτω καθεξής. 293 00:14:27,890 --> 00:14:30,190 >> Οπότε ας κάνουμε μια ακόμη προσθήκη. 294 00:14:30,190 --> 00:14:34,530 Θα εισαχθεί στον πίνακα μαμάδες, σε Ειδικότερα, το όνομα και η μητέρα 295 00:14:34,530 --> 00:14:37,390 στήλη, οι τιμές Kramer και Μπαμπς Kramer. 296 00:14:37,390 --> 00:14:39,140 Και έτσι είχαμε πριν από αυτό. 297 00:14:39,140 --> 00:14:41,800 Μετά εκτελούμε ότι Ερώτημα SQL, έχουμε αυτό. 298 00:14:41,800 --> 00:14:47,290 Προσθέσαμε Kramer και Babs Kramer στο τραπέζι μαμάδες. 299 00:14:47,290 --> 00:14:48,350 >> Έτσι ώστε να είναι παρεμβολή. 300 00:14:48,350 --> 00:14:51,850 SELECT είναι αυτό που χρησιμοποιούμε για να εξαγάγετε πληροφορίες από τον πίνακα. 301 00:14:51,850 --> 00:14:54,390 Έτσι, αυτό είναι το πώς θα φτάσετε πληροφορίες από τη βάση δεδομένων. 302 00:14:54,390 --> 00:14:59,589 Και έτσι να επιλέξετε εντολές πρόκειται να είναι πολύ συχνά χρησιμοποιούνται στον προγραμματισμό. 303 00:14:59,589 --> 00:15:02,130 Η γενική framework-- η γενικές σκελετός μοιάζει με αυτό. 304 00:15:02,130 --> 00:15:06,550 Επιλέξτε ένα σύνολο στηλών από ένα τραπέζι, και στη συνέχεια, προαιρετικά 305 00:15:06,550 --> 00:15:11,090 μπορείτε να καθορίσετε ένα condition-- ή αυτό που συνήθως ονομάζουμε ένα κατηγόρημα, 306 00:15:11,090 --> 00:15:13,010 είναι συνήθως ο όρος που χρησιμοποιούμε στον SQL. 307 00:15:13,010 --> 00:15:16,490 >> Αλλά είναι αυτό που βασικά Ειδικότερα γραμμές που θέλετε να πάρετε. 308 00:15:16,490 --> 00:15:19,100 Αν θέλετε, αντί να πάρει τα πάντα, να το περιορίσετε, 309 00:15:19,100 --> 00:15:20,060 αυτό είναι όπου θα το κάνουμε αυτό. 310 00:15:20,060 --> 00:15:22,777 Και στη συνέχεια, προαιρετικά, μπορείτε επίσης να παραγγείλετε από μια συγκεκριμένη στήλη. 311 00:15:22,777 --> 00:15:25,860 Έτσι, ίσως θέλετε να έχουν τα πράγματα ταξινόμηση με αλφαβητική σειρά βασίζεται σε μία στήλη 312 00:15:25,860 --> 00:15:27,540 ή αλφαβητικά με βάση ένα άλλο. 313 00:15:27,540 --> 00:15:30,610 >> Και πάλι, πού και ORDER BY είναι προαιρετική. 314 00:15:30,610 --> 00:15:32,681 Αλλά μάλλον θα είναι useful-- ιδιαίτερα 315 00:15:32,681 --> 00:15:34,680 Πού θα ήταν χρήσιμο να Για να περιορίσετε τα κάτω έτσι ώστε να μην 316 00:15:34,680 --> 00:15:37,460 να πάρει ολόκληρη τη βάση δεδομένων σας πίσω και Πρέπει να το επεξεργαστεί, έχετε μόνο 317 00:15:37,460 --> 00:15:39,300 τα κομμάτια του αυτό που σας ενδιαφέρει. 318 00:15:39,300 --> 00:15:44,932 Έτσι, για παράδειγμα, ίσως να θέλετε να επιλέξετε Αριθμό ταυτότητας και Ονοματεπώνυμο από τους χρήστες. 319 00:15:44,932 --> 00:15:46,140 Λοιπόν, τι θα μπορούσε να μοιάζει με αυτό; 320 00:15:46,140 --> 00:15:48,270 Τόσο εδώ είναι χρήστες τραπέζι μου. 321 00:15:48,270 --> 00:15:51,080 Θέλω να επιλέξετε idnum Ονοματεπώνυμο και από τους χρήστες. 322 00:15:51,080 --> 00:15:52,300 Τι θα πάω να πάρω; 323 00:15:52,300 --> 00:15:53,580 Πάω να πάρω αυτό. 324 00:15:53,580 --> 00:15:56,930 Εγώ δεν το περιορίσετε, έτσι είμαι να πάρει τον αριθμό ταυτότητας για κάθε γραμμή 325 00:15:56,930 --> 00:16:00,850 και παίρνω την πλήρη όνομα από κάθε σειρά. 326 00:16:00,850 --> 00:16:02,210 >> ΕΝΤΆΞΕΙ. 327 00:16:02,210 --> 00:16:05,640 Τι γίνεται αν θέλω να επιλέξετε τον κωδικό πρόσβασης από τους χρήστες WHERE-- έτσι και τώρα 328 00:16:05,640 --> 00:16:10,370 Είμαι προσθέτοντας έναν όρο, μια predicate-- όπου idnum είναι μικρότερο από 12. 329 00:16:10,370 --> 00:16:13,660 Έτσι, εδώ είναι και πάλι τη βάση δεδομένων μου, Οι χρήστες τραπέζι μου την κορυφή. 330 00:16:13,660 --> 00:16:17,030 Τι είμαι πρόκειται να πάρει, αν θέλω να επιλέξτε τις πληροφορίες αυτές, ο κωδικός πρόσβασης, 331 00:16:17,030 --> 00:16:21,550 όπου το αναγνωριστικό χρήστη ή idnum είναι μικρότερη από 12; 332 00:16:21,550 --> 00:16:24,910 Πάω να πάρω αυτό πληροφορίες πίσω, έτσι δεν είναι; 333 00:16:24,910 --> 00:16:29,170 Συμβαίνει ότι idnum είναι 10, λιγότερο από 12, τον αριθμό ταυτότητας 11 μικρότερο από 12. 334 00:16:29,170 --> 00:16:32,160 Παίρνω τον κωδικό πρόσβασης για αυτές τις σειρές. 335 00:16:32,160 --> 00:16:33,914 Αυτό είναι ό, τι ζήτησα. 336 00:16:33,914 --> 00:16:34,580 Τι λες για αυτό? 337 00:16:34,580 --> 00:16:39,170 Τι γίνεται αν θέλω να επιλέξετε από το αστέρι moms πίνακα όπου το ψευδώνυμο ισούται Τζέρι; 338 00:16:39,170 --> 00:16:43,780 OK, επιλέξτε αστέρι είναι η ειδική είδος μπαλαντέρ λεγόμενων 339 00:16:43,780 --> 00:16:45,670 που χρησιμοποιούμε για να πάρει τα πάντα. 340 00:16:45,670 --> 00:16:48,620 Έτσι λένε επιλέξτε όνομα χρήστη κόμμα μητέρα, η οποία 341 00:16:48,620 --> 00:16:51,060 έτυχε να είναι η μόνη δύο στήλες του πίνακα, 342 00:16:51,060 --> 00:16:53,260 Μπορώ να επιλέξετε ακριβώς αστέρων και να πάρει τα πάντα 343 00:16:53,260 --> 00:16:55,030 όπου το όνομα χρήστη ισούται Τζέρι. 344 00:16:55,030 --> 00:16:59,380 Και έτσι αυτό είναι που θα ήθελα να πάρει αν έκανα αυτό το συγκεκριμένο ερώτημα. 345 00:16:59,380 --> 00:17:01,810 >> Τώρα, οι βάσεις δεδομένων είναι μεγάλη, επειδή επιτρέπουν 346 00:17:01,810 --> 00:17:06,074 μας για να οργανώσετε τις πληροφορίες ίσως λίγο πιο αποτελεσματικά από ό, τι 347 00:17:06,074 --> 00:17:06,740 μπορεί διαφορετικά. 348 00:17:06,740 --> 00:17:10,240 Δεν υποχρεωμένοι να αποθηκεύσετε κάθε σχετική πληροφορία 349 00:17:10,240 --> 00:17:12,230 για ένα χρήστη στον ίδιο πίνακα. 350 00:17:12,230 --> 00:17:13,730 Είχαμε δύο πίνακες εκεί. 351 00:17:13,730 --> 00:17:15,734 >> Θα πρέπει να αποθηκεύσετε το όνομα της μητέρας του καθενός, 352 00:17:15,734 --> 00:17:18,900 και ίσως δεν έχουμε κοινωνική ασφάλιση αριθμός, έχουμε την ημερομηνία γέννησής τους. 353 00:17:18,900 --> 00:17:21,819 Αυτό δεν πρέπει πάντα να είναι στο ίδιο τραπέζι. 354 00:17:21,819 --> 00:17:25,339 Όσο μπορούμε να ορίσουμε σχέσεις μεταξύ του tables-- 355 00:17:25,339 --> 00:17:28,440 και αυτό είναι όπου η σχεσιακή έννοια της βάσεως του είδους έρχεται 356 00:17:28,440 --> 00:17:32,130 σε play-- όσο μπορούμε να ορίσουμε σχέσεις μεταξύ των πινάκων, 357 00:17:32,130 --> 00:17:35,545 Είμαστε είδος μπορούν να κατακερματίσουν ή αφηρημένα πράγματα ένας τρόπος, 358 00:17:35,545 --> 00:17:37,670 όπου έχουμε μόνο το πραγματικά σημαντικές πληροφορίες 359 00:17:37,670 --> 00:17:39,270 νοιαζόμαστε για τον πίνακα του χρήστη. 360 00:17:39,270 --> 00:17:43,220 Και τότε έχουμε βοηθητικές πληροφορίες ή επιπλέον πληροφορίες σε άλλους πίνακες 361 00:17:43,220 --> 00:17:48,260 ότι μπορούμε να συνδέσουμε πίσω στην κύρια Οι χρήστες τραπέζι σε ένα συγκεκριμένο τρόπο. 362 00:17:48,260 --> 00:17:52,200 >> Έτσι, εδώ έχουμε αυτά τα δύο πίνακες, αλλά υπάρχει μια σχέση μεταξύ τους, 363 00:17:52,200 --> 00:17:53,010 δικαίωμα? 364 00:17:53,010 --> 00:17:55,070 Φαίνεται όπως το όνομα χρήστη θα μπορούσε να είναι κάτι 365 00:17:55,070 --> 00:17:59,909 ότι υπάρχει κοινό μεταξύ αυτά τα δύο διαφορετικούς πίνακες. 366 00:17:59,909 --> 00:18:01,700 Τι κι αν έχουμε τώρα μια κατάσταση όπου είμαστε 367 00:18:01,700 --> 00:18:06,046 Θέλετε να αποκτήσετε το πλήρες όνομα ενός χρήστη από τραπέζι του χρήστη, και η μητέρα τους 368 00:18:06,046 --> 00:18:07,170 όνομα από τον πίνακα μητέρα; 369 00:18:07,170 --> 00:18:10,960 Δεν έχουμε έναν τρόπο για να πάρει ότι, ως έχει, σωστά; 370 00:18:10,960 --> 00:18:17,790 Δεν υπάρχει ενιαίο πίνακα που περιέχει τόσο πλήρες όνομα και το όνομα της μητέρας του. 371 00:18:17,790 --> 00:18:20,400 Δεν έχουμε αυτή την επιλογή από ό, τι έχουμε δει μέχρι τώρα. 372 00:18:20,400 --> 00:18:22,950 >> Και έτσι πρέπει να εισαγάγει Η ιδέα ενός JOIN. 373 00:18:22,950 --> 00:18:24,857 Και ενώνει είναι πιθανώς το πιο complex-- 374 00:18:24,857 --> 00:18:27,940 είναι πραγματικά πιο σύνθετη λειτουργία θα πάμε να μιλήσουμε για το βίντεο. 375 00:18:27,940 --> 00:18:30,040 Είναι λίγο περίπλοκο, αλλά μόλις πάρετε κρεμάστε από το, 376 00:18:30,040 --> 00:18:31,248 ότι δεν είναι πραγματικά πάρα πολύ κακό. 377 00:18:31,248 --> 00:18:32,820 Είναι απλά μια ειδική περίπτωση ενός SELECT. 378 00:18:32,820 --> 00:18:37,120 Εμείς πάμε για να επιλέξετε ένα σύνολο στηλών από έναν πίνακα που ενώνει 379 00:18:37,120 --> 00:18:40,650 σε ένα δεύτερο πίνακα σε κάποιο κατηγόρημα. 380 00:18:40,650 --> 00:18:45,340 >> Σε αυτή την περίπτωση, σκεφτείτε αρέσει this-- τραπέζι ένα είναι ένα κύκλο πάνω από εδώ, 381 00:18:45,340 --> 00:18:47,530 πίνακας δύο είναι ένα άλλο κύκλο εδώ. 382 00:18:47,530 --> 00:18:49,410 Και αυτό το μέρος κατηγόρημα στη μέση, είναι 383 00:18:49,410 --> 00:18:51,701 περίπου όπως αν νομίζετε περίπου ως διάγραμμα Venn, τι 384 00:18:51,701 --> 00:18:52,670 δεν έχουν από κοινού; 385 00:18:52,670 --> 00:18:55,960 Θέλουμε να συνδέσουμε αυτά τα δύο πίνακες βασίζεται σε αυτό που έχουν κοινό 386 00:18:55,960 --> 00:19:01,230 και να δημιουργήσει αυτό το υποθετικό πίνακα ότι είναι η συγχώνευση των δύο μαζί. 387 00:19:01,230 --> 00:19:03,480 Έτσι θα δούμε αυτό σε μια παράδειγμα και ίσως ότι θα βοηθήσει 388 00:19:03,480 --> 00:19:04,521 καθαρίσει επάνω λίγο. 389 00:19:04,521 --> 00:19:09,260 Έτσι, ίσως να θέλετε να επιλέξετε USER.FULLNAME και moms.mother 390 00:19:09,260 --> 00:19:13,220 από τους χρήστες να συμμετέχουν στις πίνακας μαμάδες σε κάθε κατάσταση 391 00:19:13,220 --> 00:19:16,790 όπου η στήλη όνομα χρήστη είναι η ίδια μεταξύ τους. 392 00:19:16,790 --> 00:19:19,240 Και αυτό είναι ένα νέο συντακτικής εδώ, αυτό το χρήστη. 393 00:19:19,240 --> 00:19:20,460 και μαμάδες .. 394 00:19:20,460 --> 00:19:26,697 Αν κάνω πολλαπλούς πίνακες μαζί, να ορίσετε έναν πίνακα. 395 00:19:26,697 --> 00:19:29,530 Μπορώ να διακρίνω ιδίως όσον αφορά ότι στις στο κάτω μέρος εκεί. 396 00:19:29,530 --> 00:19:33,220 Μπορώ να διακρίνω το όνομα χρήστη στήλη του πίνακα χρηστών 397 00:19:33,220 --> 00:19:36,010 από τη στήλη όνομα του moms πίνακα, που είναι otherwise-- 398 00:19:36,010 --> 00:19:38,070 αν εμείς απλά είπε το όνομα χρήστη ισούται με το όνομα χρήστη, που πραγματικά δεν έχει 399 00:19:38,070 --> 00:19:38,970 σημαίνει τίποτα. 400 00:19:38,970 --> 00:19:41,440 Θέλουμε να το κάνουμε όπου ταιριάζουν. 401 00:19:41,440 --> 00:19:46,080 >> Έτσι μπορώ να καθορίσετε το τραπέζι και το όνομα στήλης σε περίπτωση μιας κατάστασης 402 00:19:46,080 --> 00:19:48,370 όπου θα ήταν ασαφής τι πράγμα μιλάω. 403 00:19:48,370 --> 00:19:51,880 Έτσι, αυτό είναι το μόνο που κάνω είναι εκεί είμαι λέγοντας αυτή τη στήλη από τον πίνακα αυτόν, 404 00:19:51,880 --> 00:19:54,020 και είναι πολύ σαφής. 405 00:19:54,020 --> 00:19:56,810 Έτσι και πάλι, είμαι η επιλογή το πλήρες όνομα και το όνομα της μητέρας του 406 00:19:56,810 --> 00:20:00,950 από τον πίνακα των χρηστών που συνδέονται μεταξύ τους με τον πίνακα μαμάδες σε κάθε κατάσταση 407 00:20:00,950 --> 00:20:05,960 όπου μοιράζονται αυτό το column-- μοιράζονται αυτό το όνομα χρήστη έννοια. 408 00:20:05,960 --> 00:20:08,580 >> Έτσι, εδώ είναι οι πίνακες που είχαμε πριν. 409 00:20:08,580 --> 00:20:12,210 Αυτή είναι η κατάσταση μας βάση δεδομένων όπως υπάρχει τώρα. 410 00:20:12,210 --> 00:20:16,390 Οι πληροφορίες είμαστε εξόρυξη Είναι αυτό για να αρχίσει με. 411 00:20:16,390 --> 00:20:19,820 Αυτός είναι ο νέος πίνακας θα πάμε να δημιουργήσει συνδυάζοντας αυτά μαζί. 412 00:20:19,820 --> 00:20:23,585 Και παρατηρήσετε δεν είμαστε τονίζοντας Σειρά του Newman στο τραπέζι του χρήστη, 413 00:20:23,585 --> 00:20:25,960 και δεν είμαστε τονίζοντας Σειρά Kramer στον πίνακα μαμάδες 414 00:20:25,960 --> 00:20:31,250 επειδή ούτε υπάρχει κανείς σε τόσο sets-- και στους δύο πίνακες. 415 00:20:31,250 --> 00:20:36,260 >> Η μόνη πληροφορία που είναι προς το κοινό μεταξύ τους είναι Jerry είναι δύο πίνακες 416 00:20:36,260 --> 00:20:39,100 και gcostanza είναι και στους δύο πίνακες. 417 00:20:39,100 --> 00:20:42,620 Και έτσι, όταν κάνουμε το SQL JOIN, τι get-- και κάνουμε πραγματικά να πάρει αυτό. 418 00:20:42,620 --> 00:20:44,830 Είναι το είδος της προσωρινής μεταβλητής. 419 00:20:44,830 --> 00:20:47,330 Είναι σαν ένα υποθετικό συγχώνευση των δύο πινάκων. 420 00:20:47,330 --> 00:20:49,930 Είμαστε πραγματικά να πάρει κάτι όπως αυτό, όπου 421 00:20:49,930 --> 00:20:54,730 έχουμε συγχωνευθεί μαζί τους πίνακες για το πληροφορίες που έχουν από κοινού. 422 00:20:54,730 --> 00:20:58,334 >> Έτσι παρατηρήσετε ότι users.username και η στήλη moms.username, 423 00:20:58,334 --> 00:20:59,250 Είναι ακριβώς το ίδιο. 424 00:20:59,250 --> 00:21:01,820 Αυτή ήταν η πληροφορία ότι ήταν συνεπής από τους χρήστες 425 00:21:01,820 --> 00:21:02,890 τραπέζι και το τραπέζι μαμάδες. 426 00:21:02,890 --> 00:21:04,270 Και γι 'αυτό τους συγχωνεύονται. 427 00:21:04,270 --> 00:21:06,919 Εμείς απορρίπτονται Kramer γιατί δεν υπάρχει στον πίνακα των χρηστών, 428 00:21:06,919 --> 00:21:09,710 και απορρίπτονται Newman, επειδή ότι δεν υπάρχει στον πίνακα μητέρες. 429 00:21:09,710 --> 00:21:16,450 Έτσι, αυτό είναι το υποθετικό συγχώνευση χρησιμοποιώντας τη λειτουργία JOIN SELECT. 430 00:21:16,450 --> 00:21:21,250 >> Και μετά ψάχναμε για το το πλήρες όνομα του χρήστη και η μητέρα του χρήστη, 431 00:21:21,250 --> 00:21:24,999 και έτσι αυτή είναι η πληροφορία που θα παίρναμε από το γενικό ερώτημα 432 00:21:24,999 --> 00:21:26,040 ότι κάναμε με το πλήκτρο SELECT. 433 00:21:26,040 --> 00:21:28,873 Έτσι ενώσαμε τους πίνακες μαζί και εξάγαμε αυτές τις δύο στήλες, 434 00:21:28,873 --> 00:21:31,610 και έτσι αυτό είναι αυτό που θα πάρετε. 435 00:21:31,610 --> 00:21:33,370 Αλλά SQL JOINs ένα είδος περίπλοκη. 436 00:21:33,370 --> 00:21:36,770 Πιθανότατα δεν θα τους κάνουμε πάρα πολλά, αλλά απλώς έχουν κάποια ιδέα για το σκελετό 437 00:21:36,770 --> 00:21:41,992 ότι θα μπορούσατε να χρησιμοποιήσετε για τη συγχώνευση δύο τραπέζια μαζί αν χρειάζεται να. 438 00:21:41,992 --> 00:21:43,700 Οι δύο τελευταίες είναι λίγο πιο απλό υπόσχομαι. 439 00:21:43,700 --> 00:21:48,040 Έτσι ενημέρωση, μπορούμε να χρησιμοποιήσουμε ΕΝΗΜΕΡΩΣΗ να αλλάξετε τις πληροφορίες σε έναν πίνακα. 440 00:21:48,040 --> 00:21:53,880 Η γενική μορφή είναι μερικά ΕΝΗΜΕΡΩΣΗ πίνακας, που ορισμένες στήλη να έχει κάποια αξία 441 00:21:53,880 --> 00:21:55,540 Σε περίπτωση που ορισμένες κατηγόρημα είναι ικανοποιημένοι. 442 00:21:55,540 --> 00:21:57,850 Έτσι, για παράδειγμα, θα μπορούσαμε να θέλουμε για την ενημέρωση του πίνακα των χρηστών 443 00:21:57,850 --> 00:22:04,400 και να ορίσετε τον κωδικό πρόσβασης για να μπλα μπλα, όπου ο αριθμός ID είναι 10. 444 00:22:04,400 --> 00:22:06,400 >> Έτσι, σε αυτή την περίπτωση, είμαστε ενημέρωση του πίνακα των χρηστών. 445 00:22:06,400 --> 00:22:08,275 Ο αριθμός ID είναι 10 για ότι η πρώτη γραμμή εκεί, 446 00:22:08,275 --> 00:22:10,690 και θέλουμε να ενημερώσετε το κωδικό πρόσβασης για αρκετά σημαντικό. 447 00:22:10,690 --> 00:22:12,170 Και έτσι αυτό είναι που θα συμβεί. 448 00:22:12,170 --> 00:22:13,628 Είναι αρκετά απλό, σωστά; 449 00:22:13,628 --> 00:22:17,990 Είναι απλά μια πολύ απλή τροποποίηση του πίνακα. 450 00:22:17,990 --> 00:22:22,250 >> DELETE είναι η λειτουργία που χρησιμοποιείται για την αφαιρέσει τις πληροφορίες από έναν πίνακα. 451 00:22:22,250 --> 00:22:24,817 Διαγραφή από το τραπέζι, όπου κάποια κατηγόρημα είναι ικανοποιημένος. 452 00:22:24,817 --> 00:22:26,900 Θέλουμε να διαγράψετε από το Οι χρήστες τραπέζι για παράδειγμα, 453 00:22:26,900 --> 00:22:28,254 όπου το όνομα χρήστη είναι Newman. 454 00:22:28,254 --> 00:22:31,420 Μπορείτε να μαντέψετε τι πρόκειται να να συμβεί εδώ μετά θα εκτελέσει το SQL 455 00:22:31,420 --> 00:22:35,790 ερώτημα, Newman έχει φύγει από το τραπέζι. 456 00:22:35,790 --> 00:22:40,460 >> Έτσι, όλες αυτές οι εργασίες, όπως έχω πει, είναι πολύ εύκολο να το κάνουμε στο phpMyAdmin. 457 00:22:40,460 --> 00:22:43,020 Είναι ένα πολύ φιλικό προς το χρήστη interface. 458 00:22:43,020 --> 00:22:45,930 Αλλά αυτό απαιτεί χειρωνακτική προσπάθεια. 459 00:22:45,930 --> 00:22:47,840 Δεν θέλουμε να απασχολούν χειρωνακτική προσπάθεια. 460 00:22:47,840 --> 00:22:51,280 Θέλουμε τα προγράμματά μας να κάνετε αυτό για εμάς, έτσι δεν είναι; 461 00:22:51,280 --> 00:22:53,190 Έτσι, θα μπορούσαμε να θέλουμε να κάνουμε Αυτή προγραμματισμού. 462 00:22:53,190 --> 00:22:56,410 Θέλουμε να ενσωματώσει SQL και έχουν κάτι άλλο να κάνει αυτό για εμάς. 463 00:22:56,410 --> 00:23:02,710 >> Αλλά αυτό που έχουμε δει που επιτρέπει μας να κάνουμε κάτι προγραμματισμού; 464 00:23:02,710 --> 00:23:03,690 Έχουμε δει PHP, σωστά; 465 00:23:03,690 --> 00:23:05,760 Εισάγει κάποια δυναμισμό στα προγράμματά μας. 466 00:23:05,760 --> 00:23:10,430 Και έτσι ευτυχώς, SQL και PHP παίζουν πολύ ωραία μαζί. 467 00:23:10,430 --> 00:23:13,230 Υπάρχει μια συνάρτηση σε PHP ονομάζεται ερώτημα, τα οποία μπορούν να χρησιμοποιηθούν. 468 00:23:13,230 --> 00:23:15,870 Και μπορείτε να περάσετε όσο το παράμετρος ή το επιχείρημα 469 00:23:15,870 --> 00:23:19,210 να διερευνούν ένα ερώτημα SQL που θα θέλατε να εκτελέσει. 470 00:23:19,210 --> 00:23:23,250 Και η PHP θα το κάνει για λογαριασμό σας. 471 00:23:23,250 --> 00:23:25,564 >> Έτσι, αφού έχετε συνδεθεί στη βάση δεδομένων σας με την PHP, 472 00:23:25,564 --> 00:23:26,980 υπάρχουν δύο προκριματικές το κάνετε αυτό. 473 00:23:26,980 --> 00:23:29,230 Υπάρχει κάτι που ονομάζεται mysqli και κάτι που ονομάζεται ΠΟΠ. 474 00:23:29,230 --> 00:23:31,063 Εμείς δεν θα πάμε σε μια τεράστια ποσό λεπτομέρεια εκεί. 475 00:23:31,063 --> 00:23:32,957 Σε CS50 χρησιμοποιούμε ΠΟΠ. 476 00:23:32,957 --> 00:23:34,790 Αφού έχετε συνδέσει στη βάση δεδομένων σας, 477 00:23:34,790 --> 00:23:40,980 μπορεί στη συνέχεια να κάνουν αναζητήσεις στη βάση δεδομένων σας με το πέρασμα των ερωτημάτων ως επιχειρήματα 478 00:23:40,980 --> 00:23:42,730 με τις λειτουργίες της PHP. 479 00:23:42,730 --> 00:23:46,460 Και όταν το κάνετε αυτό, μπορείτε να αποθηκεύσετε το σύνολο αποτελεσμάτων σε μια συνειρμική σειρά. 480 00:23:46,460 --> 00:23:50,290 >> Και ξέρουμε πώς να συνεργαστεί με συνειρμική συστοιχίες στην PHP. 481 00:23:50,290 --> 00:23:52,630 Έτσι μπορώ να πω κάτι όπως this-- $ results-- 482 00:23:52,630 --> 00:23:55,470 Αυτό είναι PHP-- ισούται με το ερώτημα. 483 00:23:55,470 --> 00:23:57,660 Και τότε μέσα από το Λειτουργία ερώτημα που επιχείρημα 484 00:23:57,660 --> 00:24:00,130 ότι περνώ στο ερώτημα που μοιάζει SQL. 485 00:24:00,130 --> 00:24:01,160 Και στην πραγματικότητα, που είναι SQL. 486 00:24:01,160 --> 00:24:05,700 Αυτό είναι το ερώτημα string που θα ήθελε να εκτελέσει στη βάση δεδομένων μου. 487 00:24:05,700 --> 00:24:09,250 >> Και έτσι με κόκκινο χρώμα, αυτό είναι η PHP. 488 00:24:09,250 --> 00:24:11,890 Αυτό είναι SQL που είμαι ενσωματώνοντας σε PHP, καθιστώντας 489 00:24:11,890 --> 00:24:15,020 αυτό το επιχείρημα στο ερώτημα λειτουργία. 490 00:24:15,020 --> 00:24:19,640 Θέλω να επιλέξετε από Ονοματεπώνυμο Οι χρήστες όπου ο ID αριθμός ισούται με το 10. 491 00:24:19,640 --> 00:24:22,560 Και τότε ίσως αφού έχω κάνει αυτό, Θα ήθελα να πω κάτι τέτοιο. 492 00:24:22,560 --> 00:24:25,550 Θέλω να εκτυπώσετε το Ευχαριστώ μήνυμα για να συνδεθείτε. 493 00:24:25,550 --> 00:24:32,530 >> Και θέλω interpolate-- θέλω να παρεμβάλει $ Ονοματεπώνυμο αποτελέσματα. 494 00:24:32,530 --> 00:24:36,280 Και έτσι αυτό είναι το πώς δουλεύω με αυτό συνειρμική σειρά που πήρα πίσω. 495 00:24:36,280 --> 00:24:39,730 $ αποτελέσματα θα Ονοματεπώνυμο ουσιαστικά καταλήγουν εκτύπωση, 496 00:24:39,730 --> 00:24:42,870 ευχαριστίες για τη σύνδεση, Jerry Seinfeld. 497 00:24:42,870 --> 00:24:46,570 Αυτό ήταν το πλήρες όνομα όπου idnum ισούται με το 10. 498 00:24:46,570 --> 00:24:48,850 >> Και έτσι όλα τα κάνω είναι ότι είμαι εγώ now-- αποθηκεύονται 499 00:24:48,850 --> 00:24:52,780 το ερώτημα μου, τα αποτελέσματα του ερωτήματος μου και καταλήγει σε ένα associative πίνακα, 500 00:24:52,780 --> 00:24:56,330 Ονοματεπώνυμο και είναι το όνομα του η στήλη είχα πάρει για. 501 00:24:56,330 --> 00:25:01,010 Έτσι, αυτό είναι το κλειδί μου στα αποτελέσματα συνειρμική σειρά που θέλω. 502 00:25:01,010 --> 00:25:05,930 Έτσι Ευχαριστώ για τη σύνδεση, $ αποτελέσματα, Ονοματεπώνυμο θα εκτυπώσετε, θα κολλήσει 503 00:25:05,930 --> 00:25:08,654 ακριβώς ανάμεσα σγουρά τιράντες, Jerry Seinfeld. 504 00:25:08,654 --> 00:25:11,820 Και εγώ θα ήθελα να εκτυπώσετε το μήνυμα Ευχαριστώ για τη σύνδεση στο Jerry Seinfeld. 505 00:25:11,820 --> 00:25:16,652 >> Τώρα, εμείς μάλλον δεν θέλουν να σκληρό Κωδικός πράγματα όπως ότι, έτσι δεν είναι; 506 00:25:16,652 --> 00:25:19,860 Θα μπορούσαμε να θέλουμε να κάνουμε κάτι σαν εκτύπωσης f, όπου μπορούμε να υποκαταστήσει και ίσως 507 00:25:19,860 --> 00:25:22,443 συλλέξουν διαφορετικές πληροφορίες, ή ίσως έχουν το ερώτημα διαδικασία 508 00:25:22,443 --> 00:25:23,370 διαφορετικές πληροφορίες. 509 00:25:23,370 --> 00:25:27,920 Και έτσι το ερώτημα, το ερώτημα λειτουργία έχει αυτή η έννοια της ταξινόμησης των αντικαταστάσεων 510 00:25:27,920 --> 00:25:32,310 πολύ παρόμοια με την εκτύπωση στ τοις εκατό s και γ τοις εκατό, είναι ερωτηματικά. 511 00:25:32,310 --> 00:25:34,290 >> Και μπορούμε να χρησιμοποιήσουμε ερώτηση σήματα πολύ αναλόγως 512 00:25:34,290 --> 00:25:38,400 για να εκτυπώσετε f για υποκατάστατο μεταβλητές. 513 00:25:38,400 --> 00:25:44,120 Έτσι ίσως χρήστη εισέλθει νωρίτερα, και έχετε αποθηκεύσει το χρήστη τον αριθμό ταυτότητας τους 514 00:25:44,120 --> 00:25:51,710 σε $ _SESSION της PHP σούπερ παγκόσμιες στο κλειδί ID. 515 00:25:51,710 --> 00:25:55,947 Έτσι ίσως αφού συνδεθείτε, ορίσετε $ _SESSION ID ισούται με το 10, 516 00:25:55,947 --> 00:25:58,280 παρέκταση από το παράδειγμα μόλις είδαμε πριν από ένα δευτερόλεπτο. 517 00:25:58,280 --> 00:26:01,960 >> Και έτσι, όταν στην πραγματικότητα εκτελεί Αυτό το ερώτημα τα αποτελέσματα τώρα, 518 00:26:01,960 --> 00:26:08,440 θα συνδέσετε σε 10, ή οτιδήποτε άλλο το αναγνωριστικό τιμή $ _SESSION είναι. 519 00:26:08,440 --> 00:26:10,790 Και έτσι αυτό μας επιτρέπει να να είναι λίγο πιο δυναμική. 520 00:26:10,790 --> 00:26:12,699 Δεν είμαστε κωδικοποίησης σκληρά τα πράγματα στο άλλο. 521 00:26:12,699 --> 00:26:14,490 Είμαστε αποθήκευση πληροφοριών κάπου και στη συνέχεια, 522 00:26:14,490 --> 00:26:18,924 μπορούμε να χρησιμοποιήσουμε αυτές τις πληροφορίες για να ξανά είδος γενικεύσουμε τι θέλουμε να κάνουμε, 523 00:26:18,924 --> 00:26:21,090 και μόλις plug-in και αλλαγή η συμπεριφορά της σελίδας μας 524 00:26:21,090 --> 00:26:26,489 με βάση το τι αριθμό ταυτότητας του χρήστη στην πραγματικότητα είναι αφού έχουν εισέλθει. 525 00:26:26,489 --> 00:26:28,530 Είναι επίσης δυνατό, αν και, ότι τα αποτελέσματα που σας 526 00:26:28,530 --> 00:26:30,840 μπορεί να αποτελείται από πολλαπλές σειρές. 527 00:26:30,840 --> 00:26:33,990 Σε αυτή την περίπτωση, έχετε μια σειρά από arrays-- 528 00:26:33,990 --> 00:26:35,334 μια σειρά από συνειρμικό συστοιχίες. 529 00:26:35,334 --> 00:26:37,000 Και το μόνο που χρειάζεται για να μετακινηθείτε μέσα από αυτό. 530 00:26:37,000 --> 00:26:41,950 Και ξέρουμε πώς να επαναλάβει μέσω μιας σειράς σε PHP, σωστά; 531 00:26:41,950 --> 00:26:45,600 Έτσι, εδώ είναι ίσως το πιο πολύπλοκο πράγμα που έχουμε δει μέχρι τώρα. 532 00:26:45,600 --> 00:26:49,640 Ενσωματώνει πραγματικότητα τρεις γλώσσες μαζί. 533 00:26:49,640 --> 00:26:52,920 >> Εδώ στο κόκκινο, αυτό είναι κάποια HTML. 534 00:26:52,920 --> 00:26:56,872 Είμαι προφανώς αυτό είναι starting-- ένα απόσπασμα από κάποιο HTML που έχω. 535 00:26:56,872 --> 00:26:59,580 Αρχίζω μια νέα παράγραφο που λέει ότι οι μητέρες των Seinfeld τηλεόρασης. 536 00:26:59,580 --> 00:27:02,350 Και στη συνέχεια αμέσως μετά Αρχίζω ένα τραπέζι. 537 00:27:02,350 --> 00:27:06,060 Και στη συνέχεια μετά από αυτό, έχουν κάποια PHP, σωστά; 538 00:27:06,060 --> 00:27:08,229 Έχω όλα αυτού του κώδικα PHP εκεί. 539 00:27:08,229 --> 00:27:09,645 Είμαι προφανώς θα κάνει ένα ερώτημα. 540 00:27:09,645 --> 00:27:14,180 Και για να κάνει το ερώτημα, Πάω να να χρησιμοποιούν ΕΠΙΛΟΓΗ ΑΠΟ μητέρες μαμάδες. 541 00:27:14,180 --> 00:27:15,970 >> Έτσι, αυτό είναι getting-- αυτό είναι SQL. 542 00:27:15,970 --> 00:27:17,300 Έτσι, το μπλε είναι η SQL. 543 00:27:17,300 --> 00:27:19,680 Το κόκκινο είδαμε ένα δευτερόλεπτο πριν ήταν HTML. 544 00:27:19,680 --> 00:27:21,360 Και το πράσινο εδώ είναι η PHP. 545 00:27:21,360 --> 00:27:23,400 Έτσι κάνω ένα ερώτημα με τη βάση δεδομένων μου, είμαι 546 00:27:23,400 --> 00:27:26,040 την επιλογή όλων των μητέρες στον πίνακα μητέρες. 547 00:27:26,040 --> 00:27:30,710 Όχι μόνο θα μειωθεί σε συγκεκριμένα σειρά, ρωτάω για όλα αυτά. 548 00:27:30,710 --> 00:27:33,290 >> Τότε μπορώ να ελέγξω εάν το αποτέλεσμα είναι Δεν ίσων ισούται με ψευδείς. 549 00:27:33,290 --> 00:27:37,410 Αυτός είναι ακριβώς ο τρόπος μου από τον έλεγχο του είδους του αν τα αποτελέσματα δεν είναι ίση με null, 550 00:27:37,410 --> 00:27:40,260 ότι θα βλέπαμε γ, για παράδειγμα. 551 00:27:40,260 --> 00:27:44,000 Βασικά, αυτό είναι μόνο για να κάνει τον έλεγχο βεβαιωθείτε ότι πήρε πραγματικά στοιχεία πίσω. 552 00:27:44,000 --> 00:27:47,041 Επειδή δεν θέλω να ξεκινήσει η εκτύπωση από τα δεδομένα αν δεν είχα πάρει όλα τα δεδομένα. 553 00:27:47,041 --> 00:27:50,690 Στη συνέχεια, για κάθε αποτέλεσμα ως αποτέλεσμα την σύνταξη από foreach της PHP, όλα τα κάνω 554 00:27:50,690 --> 00:27:53,399 Εκτυπώνει μητέρες $ αποτέλεσμα. 555 00:27:53,399 --> 00:27:55,940 Και έτσι είμαι πρόκειται να πάρει ένα σετ του συνόλου των μητέρων each-- 556 00:27:55,940 --> 00:27:59,980 Είναι μια σειρά από συνειρμική arrays-- και είμαι εκτύπωση 557 00:27:59,980 --> 00:28:03,649 το καθένα τη δική του γραμμή του πίνακα. 558 00:28:03,649 --> 00:28:05,690 Και αυτό είναι πραγματικά όμορφη πολύ όλα υπάρχει σε αυτό. 559 00:28:05,690 --> 00:28:07,750 Ξέρω ότι υπάρχει μια μικρή bit συμβαίνει εδώ 560 00:28:07,750 --> 00:28:13,210 σε αυτό το τελευταίο παράδειγμα με συστοιχίες arrays-- συστοιχίες της συνειρμικής συστοιχίες. 561 00:28:13,210 --> 00:28:17,340 Αλλά πραγματικά μόλις πάρει βράση προβλέπεται στο SQL για να κάνει ένα ερώτημα, 562 00:28:17,340 --> 00:28:21,102 συνήθως μετά την επιλογή που έχουμε ήδη τεθεί πληροφορίες στον πίνακα, 563 00:28:21,102 --> 00:28:22,310 και στη συνέχεια να το τράβηγμα έξω. 564 00:28:22,310 --> 00:28:25,710 >> Και αυτό είναι που θα το τραβήξει έξω στη συγκεκριμένη περίπτωση. 565 00:28:25,710 --> 00:28:31,120 Θα εξάγει το σύνολο των ατομικών μητέρες από το τραπέζι μητέρες. 566 00:28:31,120 --> 00:28:35,970 Πήραμε μια ολόκληρη σειρά από αυτά, και Θέλετε να επαναλάβει και να εκτυπώσετε 567 00:28:35,970 --> 00:28:37,630 κάθε ένα. 568 00:28:37,630 --> 00:28:40,510 Έτσι και πάλι, αυτό είναι πιθανώς το πιο περίπλοκο παράδειγμα 569 00:28:40,510 --> 00:28:44,510 έχουμε δει γιατί είμαστε ανάμειξη των τριών διαφορετικές γλώσσες μαζί, σωστά; 570 00:28:44,510 --> 00:28:50,100 >> Και πάλι, έχουμε HTML εδώ με κόκκινο χρώμα, αναμειγνύεται με κάποια SQL εδώ σε μπλε, 571 00:28:50,100 --> 00:28:52,049 αναμειγνύεται με κάποια PHP στο πράσινο. 572 00:28:52,049 --> 00:28:53,840 Αλλά όλα αυτά παίζουν όμορφα μαζί, είναι 573 00:28:53,840 --> 00:28:57,060 ακριβώς ένα θέμα της ανάπτυξης καλές συνήθειες, έτσι ώστε μπορείτε να πάρετε 574 00:28:57,060 --> 00:28:58,780 τους να εργαστούν από κοινού με τον τρόπο που θέλετε. 575 00:28:58,780 --> 00:29:03,790 Και ο μόνος τρόπος για να γίνει πραγματικά ότι είναι η πρακτική, πρακτική, πρακτική. 576 00:29:03,790 --> 00:29:06,740 Είμαι ο Νταγκ Lloyd, αυτό είναι CS50. 577 00:29:06,740 --> 00:29:08,647