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 [C'EST CS50] [CS50 TV] 4 00:00:07,950 --> 00:00:11,620 Ainsi, les programmeurs utilisent des bases de données comme un outil pour stocker et organiser 5 00:00:11,620 --> 00:00:13,620 nos données persistantes dans les tables. 6 00:00:13,620 --> 00:00:18,960 Cela signifie que vos données sont stockées sur la non-volatiles médianes comme un disque dur, 7 00:00:18,960 --> 00:00:22,940 et même lorsque l'ordinateur est éteint, les données sont toujours intacts. 8 00:00:22,940 --> 00:00:29,530 Et, en tant que programmeurs, nos programmes utilisent des bases de données pour les scénarios tels que le stockage 9 00:00:29,530 --> 00:00:32,890 informations utilisateur à partir des formulaires Web, levant les yeux inventaire, 10 00:00:32,890 --> 00:00:36,210 ou la mise à jour des informations sur quels sites afficher. 11 00:00:37,150 --> 00:00:40,070 Mais comment pouvons-nous réellement interagir avec notre base de données, 12 00:00:40,070 --> 00:00:43,150 ou qu'est-ce que nous utilisons pour lire, enregistrer, supprimer, 13 00:00:43,150 --> 00:00:46,070 et mettre à jour nos données dans ces tables de bases de données? 14 00:00:47,280 --> 00:00:49,700 Eh bien, la réponse est que nous utilisons un type particulier de langage de base 15 00:00:49,700 --> 00:00:53,400 qui interagit directement avec nos tables de bases de données. 16 00:00:53,400 --> 00:00:56,740 Son nom est Structured Query Language, 17 00:00:56,740 --> 00:00:58,740 [Structured Query Language] 18 00:00:58,740 --> 00:01:00,740 ou ce que j'appelle SQL. 19 00:01:00,740 --> 00:01:05,100 >> Maintenant, [Se-Quel], ou SQL, n'est pas un langage de programmation, 20 00:01:05,100 --> 00:01:08,580 mais à la place, c'est une langue qui fournit un ensemble standard de commandes 21 00:01:08,580 --> 00:01:13,520 pour extraire et manipuler les données d'une variété de systèmes de gestion de bases de données. 22 00:01:13,520 --> 00:01:17,630 Aux fins de la CS50, nous allons passer en revue quatre commandes de base: 23 00:01:17,630 --> 00:01:21,210 sélectionner, insérer, mettre à jour et supprimer. 24 00:01:21,210 --> 00:01:26,230 En outre, nous allons utiliser une interface web base de données appelée phpMyAdmin, 25 00:01:26,230 --> 00:01:29,890 qui est installé sur l'appareil d'écrire nos instructions SQL. 26 00:01:30,830 --> 00:01:33,050 Donc, pour vous aider à se souvenir de ces commandes, 27 00:01:33,050 --> 00:01:37,080 J'ai apporté quelques petits gâteaux dans un placard pour aider avec nos scénarios. 28 00:01:39,650 --> 00:01:42,210 Disons que vous avez une base de données de cupcake, 29 00:01:42,210 --> 00:01:44,490 où vous stockez toutes les informations sur vos petits gâteaux. 30 00:01:44,490 --> 00:01:48,220 Maintenant, bases de données peut contenir plusieurs tables 31 00:01:48,220 --> 00:01:50,950 et les tableaux eux-mêmes peuvent contenir plusieurs colonnes. 32 00:01:50,950 --> 00:01:57,020 A l'intérieur de notre base de données de cupcake, nous avons une table appelée cupcake_cupboard. 33 00:01:57,020 --> 00:02:00,500 Ce tableau sera utilisé pour stocker toutes les informations sur les petits gâteaux 34 00:02:00,500 --> 00:02:02,990 qui sont, eh bien, dans votre placard. 35 00:02:02,990 --> 00:02:07,770 Les colonnes qui sont à l'intérieur de votre tableau représentent les attributs d'un petit gâteau. 36 00:02:07,770 --> 00:02:14,560 Par exemple, les colonnes de la cupcake_cupboard sont 37 00:02:14,560 --> 00:02:15,920 Gâteau d'identité, CakeType, CakeColor et CakeIsNice. 38 00:02:15,920 --> 00:02:23,040 Cette colonne booléenne typé est utilisé pour déterminer si le gâteau est bon ou pas bon. 39 00:02:23,040 --> 00:02:26,560 Nous allons commencer par écrire une instruction select. 40 00:02:26,560 --> 00:02:32,160 Instructions Select sont utilisées pour récupérer des données d'une table de base de données particulière. 41 00:02:32,160 --> 00:02:34,890 Dans ce scénario, nous voulons tout savoir 42 00:02:34,890 --> 00:02:39,080 sur tous les petits gâteaux qui existent dans notre placard. 43 00:02:39,080 --> 00:02:48,670 La syntaxe pour ce faire est la star de "Select" espace, ou *, l'espace de l'espace de notre table, 44 00:02:48,670 --> 00:02:52,050 qui est cupcake_cupboard. 45 00:02:52,050 --> 00:02:54,640 Allons de l'avant et d'exécuter cela. 46 00:02:56,670 --> 00:03:00,140 >> Comme nous pouvons le voir, ce sont tous les petits gâteaux dans notre placard. 47 00:03:00,140 --> 00:03:05,110 Il est important de noter que *, ou un astérisque, est un caractère joker 48 00:03:05,110 --> 00:03:08,830 qui représente la collecte de toutes les colonnes d'une certaine table. 49 00:03:08,830 --> 00:03:13,650 Normalement, nous pouvons accéder à une colonne spécifique ou colonnes 50 00:03:13,650 --> 00:03:16,950 en remplaçant * avec le nom de colonne réelle. 51 00:03:16,950 --> 00:03:21,220 Si nous voulons que plusieurs colonnes, mais pas tous, nous pouvons atteindre cet 52 00:03:21,220 --> 00:03:25,620 en écrivant les noms de colonnes qui délimitent chaque colonne par une virgule. 53 00:03:25,620 --> 00:03:28,620 Par exemple, nous allons seulement récupérer le CakeId et CakeType dans le tableau cupcake_cupboard. 54 00:03:28,620 --> 00:03:38,370 La syntaxe pour ce faire est la suivante: SELECT espace CakeID par des virgules 55 00:03:38,370 --> 00:03:44,370 Espace CakeType de notre table, cupcake_cupboard. 56 00:03:44,370 --> 00:03:46,370 Allons de l'avant et d'exécuter cela. 57 00:03:49,340 --> 00:03:52,670 Et ici, nous avons maintenant seulement les deux colonnes que nous avons spécifiées 58 00:03:52,670 --> 00:03:54,670 pour chaque petit gâteau dans notre placard. 59 00:03:54,670 --> 00:03:57,710 On peut aussi affiner nos résultats de la requête en spécifiant 60 00:03:57,710 --> 00:04:00,910 la "Where" juste après le nom de la table. 61 00:04:02,000 --> 00:04:05,410 Par exemple, il semble y avoir un petit gâteau dans notre placard 62 00:04:05,410 --> 00:04:08,660 c'est, eh bien, pas si agréable à regarder. 63 00:04:08,660 --> 00:04:13,950 Essayons d'imaginer tous les petits gâteaux dans notre placard qui sont, eh bien, pas si agréable à regarder 64 00:04:13,950 --> 00:04:16,110 en utilisant le "Where". 65 00:04:16,110 --> 00:04:26,390 La syntaxe pour ce faire est la suivante: SELECT * espace espace espace DE cupcake_cupboard 66 00:04:26,390 --> 00:04:34,080 espace lorsque l'espace de notre colonne conditionnelle, dans ce cas CakeIsNice = 67 00:04:34,080 --> 00:04:36,900 et la valeur booléenne False. 68 00:04:36,900 --> 00:04:42,750 Il est important de noter que si vous utilisez des chaînes, vous devez le placer entre guillemets simples. 69 00:04:42,750 --> 00:04:49,620 Cela est vrai pour toutes les chaînes SQL, ou, en termes de bases de données SQL, variante caractères 70 00:04:49,620 --> 00:04:51,620 connu sous le nom varchar. 71 00:04:51,620 --> 00:04:57,660 Dans ce cas, nous utilisons Vrai ou faux, ce qui est une valeur booléenne et non une chaîne. 72 00:04:59,120 --> 00:05:00,660 Allons de l'avant d'exécuter cette commande. 73 00:05:00,660 --> 00:05:05,340 >> Et voilà, il est vrai que nous avons 1 chocolat 74 00:05:05,340 --> 00:05:07,920 pas si gentil petit gâteau dans notre placard. 75 00:05:09,620 --> 00:05:11,460 Ensuite, nous allons écrire une instruction insert. 76 00:05:11,460 --> 00:05:15,560 Déclarations d'insertion sont utilisés pour insérer ou ajouter 77 00:05:15,560 --> 00:05:17,770 rangées supplémentaires de données dans votre base de données. 78 00:05:17,770 --> 00:05:23,160 Revisiter notre scénario, supposons que nous venons de faire un petit gâteau tout neuf. 79 00:05:25,910 --> 00:05:30,080 Étant donné que nous sommes très organisés mangeurs de petit gâteau, nous allons devoir insérer ce petit gâteau nouvelle 80 00:05:30,080 --> 00:05:32,330 dans notre tableau cupcake_cupboard. 81 00:05:32,330 --> 00:05:40,690 La syntaxe pour ce faire est la suivante: Insérer un espace dans l'espace de notre table, 82 00:05:40,690 --> 00:05:46,830 cupcake_cupboard, espace (, 83 00:05:46,830 --> 00:05:51,060 et ici nous spécifier les noms de colonnes, séparées par une virgule, 84 00:05:51,060 --> 00:05:59,790 Virgule CakeType CakeColor virgule CakeIsNice) l'espace. 85 00:05:59,790 --> 00:06:06,540 Suite à cela, nous écrivons le mot espace VALUES (et ici 86 00:06:06,540 --> 00:06:12,170 nous entrons dans la valeur de chaque colonne, respectivement, également délimité par une virgule. 87 00:06:12,170 --> 00:06:17,830 Apostrophe, car elles sont toutes les valeurs Varchar nous allons les entourer de guillemets simples, 88 00:06:17,830 --> 00:06:26,780 LIGHT 'virgule' BEURRE D'ARACHIDE BROWN virgule True. 89 00:06:26,780 --> 00:06:30,480 Maintenant, il est important de donner à chaque ligne un numéro unique pour se faire identifier. 90 00:06:30,480 --> 00:06:33,660 Autoincrementing une colonne fournit ce que 91 00:06:33,660 --> 00:06:37,410  "Il n'ya pas deux les mêmes ID ne peut jamais exister dans ce tableau." 92 00:06:37,410 --> 00:06:39,480 Allons de l'avant et à exécuter. 93 00:06:39,480 --> 00:06:45,380 Nous y voilà, tout organisé. 94 00:06:49,720 --> 00:06:52,100 >> L'instruction SQL suivante que nous allons écrire une déclaration de mise à jour. 95 00:06:52,100 --> 00:06:55,650 L'instruction update permet de modifier des données dans une colonne 96 00:06:55,650 --> 00:06:58,440 pour toute ligne existante dans votre base de données. 97 00:06:59,670 --> 00:07:03,420 Plus tôt dans notre scénario, en utilisant une instruction select, nous avons identifié un petit gâteau 98 00:07:03,420 --> 00:07:08,300 au sein de notre tableau de cupcake_cupboard dont la valeur CakeIsNice était faux. 99 00:07:08,300 --> 00:07:12,050 Supposons que, bien que notre petit gâteau au beurre d'arachide était dans le four, 100 00:07:12,050 --> 00:07:15,790 nous avons fait notre petit gâteau n'est pas si gentil très gentil. 101 00:07:18,020 --> 00:07:22,240 Étant exceptionnellement organisé, nous voulons que notre petit gâteau pour refléter cette valeur 102 00:07:22,240 --> 00:07:24,240 dans notre tableau cupcake_cupboard. 103 00:07:24,240 --> 00:07:28,710 Par conséquent, nous allons mettre à jour notre petit gâteau de chocolat dans la base de données pour refléter cela. 104 00:07:28,710 --> 00:07:39,720 La syntaxe est la suivante: l'espace UPDATE notre table, cupcake_cupboard, espace SET espace 105 00:07:39,720 --> 00:07:44,240 la colonne que nous voulons changer, CakeIsNice =. 106 00:07:44,240 --> 00:07:49,210 Alors voilà, nous mettons notre espace nouvelle valeur True. 107 00:07:49,210 --> 00:07:54,290 Maintenant, parce que nous ne voulons pas mettre à jour toutes les lignes avec cette valeur, 108 00:07:54,290 --> 00:07:57,400 nous voulons offrir un "Where" qui nous localiser 109 00:07:57,400 --> 00:07:59,830 à la ligne exacte que nous voulons modifier. 110 00:07:59,830 --> 00:08:03,690 Dans ce cas, nous savons qu'il n'y a qu'un seul petit gâteau 111 00:08:03,690 --> 00:08:06,670 qui a une valeur CakeIsNice False. 112 00:08:06,670 --> 00:08:11,030 Par ailleurs, nous allons aussi nous assurer que nous mettons à jour la ligne correcte 113 00:08:11,030 --> 00:08:13,030 en utilisant le "Et" clause. 114 00:08:14,340 --> 00:08:17,270 Nous utilisons le "Et" clause d'affiner notre interrogation. 115 00:08:17,270 --> 00:08:20,380 Dans ce cas, parce que nous savons que le cupcake est au chocolat, 116 00:08:20,380 --> 00:08:23,160 nous allons utiliser cette colonne CakeType. 117 00:08:23,160 --> 00:08:31,500 Lorsque l'espace de notre espace conditionnelle colonne CakeIsNice espace = False, 118 00:08:31,500 --> 00:08:38,330 et l'espace CakeType = 'CHOCOLAT. 119 00:08:38,330 --> 00:08:41,880 Ainsi, il met tous ensemble, cette déclaration dit mise à jour 120 00:08:41,880 --> 00:08:44,670 trouver tous les petits gâteaux dans notre placard gâteau, 121 00:08:44,670 --> 00:08:50,520 et si il ya un petit gâteau dont la colonne CakeIsNice contient la valeur False 122 00:08:50,520 --> 00:08:54,130 et CakeType contient CHOCOLATE, 123 00:08:54,130 --> 00:08:58,240 nous voulons mettre à jour la valeur spécifique CakeIsNice lignes à True. 124 00:08:58,240 --> 00:09:01,140 Donc, nous allons aller de l'avant et exécutez l'instruction. 125 00:09:03,860 --> 00:09:05,860 Et maintenant, nous sommes organisés. 126 00:09:06,650 --> 00:09:09,220 >> Toute cette histoire de petits gâteaux m'a fait un peu faim. 127 00:09:09,220 --> 00:09:11,360 Je pense que je devrais me servir un. 128 00:09:11,360 --> 00:09:17,670 Mais si j'ai vraiment manger ce gâteau, je devrais au moins aussi enlever son existence 129 00:09:17,670 --> 00:09:19,670  de notre table cupcake_cupboard. 130 00:09:20,650 --> 00:09:22,590 Pour ce faire, nous allons utiliser le bouton "Supprimer" déclaration. 131 00:09:22,590 --> 00:09:27,400 Le "Supprimer" déclaration peut être utilisée pour enlever tout ou partie des lignes de la table. 132 00:09:27,400 --> 00:09:29,920 Si vous souhaitez supprimer certains ligne spécifique de la table, 133 00:09:29,920 --> 00:09:34,360 vous devez fournir une "Where", précisant ainsi une colonne 134 00:09:34,360 --> 00:09:37,660 qui doit être unique à la ligne que vous souhaitez supprimer. 135 00:09:37,660 --> 00:09:47,370 Voici la syntaxe: DELETE FROM espace espace de notre table, cupcake_cupboard, l'espace. 136 00:09:47,370 --> 00:09:51,760 Maintenant, à ce moment-là, quand vous êtes loin de votre instruction delete 137 00:09:51,760 --> 00:09:54,240 vous voulez être très prudent. 138 00:09:54,240 --> 00:09:59,970 Par exemple, si je veux exécuter cette requête est que sans fournir certains "Where" 139 00:09:59,970 --> 00:10:04,500 Je perdrais toutes les données de ce tableau cupcake_cupboard, 140 00:10:04,500 --> 00:10:09,590 mais parce que je sais déjà que mes identifiants sont uniques gâteau, je vais utiliser 141 00:10:09,590 --> 00:10:12,410 l'ID de velours rouge gâteau pour mon "Where". 142 00:10:14,550 --> 00:10:20,670 Lorsque l'espace de notre colonne, CakeID = 1. 143 00:10:20,670 --> 00:10:25,010 Comme il s'agit d'une valeur entière qu'il n'est pas nécessaire de l'entourer de guillemets simples. 144 00:10:25,010 --> 00:10:27,020 Donc, nous allons exécuter l'instruction. 145 00:10:33,560 --> 00:10:35,990 Eh bien, maintenant que nous avons essuyé l'existence de ce petit gâteau 146 00:10:35,990 --> 00:10:40,360 de notre table cupcake_cupboard, nous n'avons qu'une seule chose à faire: 147 00:10:41,680 --> 00:10:43,680 Faire disparaître. 148 00:10:43,680 --> 00:10:46,990 Je suis Christopher Barthélemy. C'est CS50.