Après avoir contribué en ligne aux milliers de demandes d'aide de programmation et chez la personne j'ai beaucoup de théories et d'idées au sujet de la façon dont les gens devraient apprendre la programmation et de la façon dont ils devraient considérer les problèmes qu'ils se trouvent dedans. Ce poteau est le premier de beaucoup qui examineront des problèmes généralement demandés et donneront des bouts que si lu devrait résoudre certains d'entre eux.
Beaucoup de mon expérience se concentre sur des bases de données de SQL et car tel est l'un des secteurs où je pense les gens devraient comprendre les idées centrales avant qu'ils commencent à poser des questions de d'autres. Conceptuellement, il y a dix mots-clés principaux dans toutes les variantes de la langue de SQL qui sont employées pour créer changent et détruisent des tables et des bases de données ; et selon l'entrée, modifiez et enlevez les données de ces tables.
Vous êtes seulement prêt à progresser dans votre SQL si vous pouvez lire cet article entier et pouvoir identifier les mots ci-dessous, pour écrire plus qu'est écrit, expliquez ce que signifient elles et employez-les dans votre base de données de choix sans référence à d'autres sources. (la plupart de mes exemples seront norme ANSI visée SQL ou mySQL standard) il y a beaucoup plus qui peuvent être lus sur ces matières mais est ci-dessous les nécessités nues requises pour vous passer.
1. CRÉEZ LA TABLE
Avant que vous puissiez commencer par le travail avec des données, vous avez besoin d'un récipient pour le stocker dedans. Le récipient dans une base de données de SQL s'appelle une table. C'est une série de rangées (où chaque article des données est stocké) et colonnes qui sont des divers donnée-types qui sont employés pour identifier la rangée particulière et pour contenir les données. Le rapport de CRÉATION permet à une table d'être faite, spécifiant toutes les règles au sujet de ce qui peut être contenu dans la table (et de la façon dont il peut être indexé).
Car c'est un de base guidez ; Je décrirai juste un simple crée le rapport et ce que signifient les composants ;
CRÉEZ le your_table_name de TABLE (un international NON NUL, b VARCHAR (20));
Ceci créera une table appelée le your_table_name avec deux colonnes, qui est un nombre entier, qui ne permettra aucuns valeurs nulles et b qui est une corde qui peut contenir des caractères jusqu'à une longueur de 20.
Note ; il y a d'autres options,
- vous pouvez avoir des arguments qui spécifient pour créer la table si elle n'existe pas déjà.
- On peut créer des Tableaux qui sont comme d'autres tables (copiant leur définition)
- Des Tableaux peuvent être créés en employant un rapport choisi et en copiant les données renvoyées de lui
- Les tables provisoires sont ceux qui ne sont pas écrites au disque et ne sont pas gardées de manière permanente comme des tables sans mot-clé provisoire, et ne sont pas conçues pour être permanentes.
- Des contraintes et les commentaires peuvent être ajoutés aux colonnes et à la table dans son ensemble
- Une clé primaire et d'autres index peuvent être ajoutés ; limitant la duplication des données et d'augmenter son searchability.
- Les clefs étrangères peuvent être des valeurs limitatives supplémentaires à insérer selon les valeurs contenues dans d'autres tables.
- Il y a beaucoup de différents datatypes qui peuvent être employés pour contenir des données pour des colonnes
- Des valeurs par défaut peuvent être placées pour des données.
- Si une table existe déjà alors vous ne peut pas le créer - et une erreur peut se produire.
- Quelques bases de données doivent spécifier le propriétaire en tant qu'élément du nom de table (IE dbo.your_table_name de dbo par exemple)
2. CHANGENT LA TABLE
Une fois qu'une table a été créée, il peut devenir nécessaire de changer comment des données peuvent être entrées dans la table ou comment les données sont stockées. Changez la table est le mécanisme par lequel ces changements
CHANGEZ le your_table_name de TABLE AJOUTENT ColumnName VARCHAR (10) PAS NULLE ;
CHANGEZ LA BAISSE ColumnName de your_table_name de TABLE ;
CHANGEZ LA CLÉ PRIMAIRE de BAISSE de your_table_name de TABLE ;
Si vous ajoutez des colonnes ou ajoutez des choses à la table puis les mêmes règles s'appliquent quant à créez. Les mêmes options de déclaration peuvent être données, comme avec les mêmes types et restrictions d'index.
Vous pouvez enlever des colonnes en se rapportant à elles de nom.
Vous pouvez enlever des index et des restrictions en spécifiant cela dans la baisse.
Quelques choses à la note :
- Vous ne pouvez pas normalement avoir deux colonnes avec le même nommé (il est approprié créer et changer ce)
- Vous pouvez avoir des problèmes enlever certaines colonnes si elles secteur référencé par d'autres clefs étrangères
- Les problèmes peuvent se poser quand les index dépendent des colonnes prévues pour être abandonné.
- Des index ne peuvent pas nécessairement être ajoutés si les données contenues dans la table ne reflètent pas les restrictions imposées par le changement.
3. TABLE DE BAISSE
Your_table_name de TABLE de BAISSE ;
TABLE de BAISSE SI EXISTE le your_table_name ;
Le rejet des tables est aussi facile que se rapportant à la table que vous voulez enlever et dire la table de baisse. Assurez-vous que vous avoir des permissions de laisser tomber la table ou elle ne pouvez pas aller cela facilement. Quelques bases de données de SQL soutiennent SI existe la signification de syntaxe qu'elle ne donnera pas une erreur si la table n'existe pas et vous essayez de l'enlever, mais s'il existe alors elle est enlevée. De même si vous enlevez les tables qui ont des dépendances sur eux des clefs étrangères d'IE puis elles peuvent ne pas aller cela rapidement.
4. INSERTION DANS
Normalement, le point de toutes vos qualifications de base de données de SQL est de travailler avec des données. Il y a beaucoup de rapports qui permettent la population des données, mais le plus utilisé généralement serait le rapport d'insertion. Ceci fait exactement ce qu'il implique, il insère des rangées des données dans la table. Il y a trois variantes importantes. La première variation spécifie les colonnes que des données seront insérées dans, y compris leur ordre et l'autre spécifie les données qui entreront dans ces colonnes.
INSERTION DANS le your_table_name (first_column_name, another_column_name,…. )
VALEURS (first_value, second_value,…. )
Une autre méthode d'isoler les données à insérer est en se rapportant à des données contenues dans la base de données déjà. Ceci emploie un rapport choisi normal comme défini ci-dessous :
INSERTION DANS le your_table_name (col_name1, col_name2,…. ) CHOISI…
La méthode finale est d'employer un rapport qui place la valeur de chaque colonne qui doit être changée à des autres valeurs utilisant une tâche d'égales. Je ne recommanderais pas d'employer cette méthode.
Choses à la note :
- Quelques bases de données de SQL permettent l'insertion des rangées multiples dans l'exécution d'un rapport.
- L'insertion des données est commandée par des dépendances, contrôles et les rapports et si les données échouent ces contrôles puis des erreurs peuvent résulter.
- Assurez-vous que les données sont dans le type défini par l'à colonnes.
- Non toutes les colonnes doivent nécessairement être peuplées
- Il y a beaucoup de fonctions qui peuvent manoeuvrer la forme des données.
- Les données doivent être dans un format qui peut être converti en type de données correct - choses comme le ′ du `23 peut être interprété différemment que 23
- Les virgules inversées dans les données peuvent présenter des problèmes d'insertion et il y a des fonctions qui peuvent manipuler ceci.
- Validez toujours n'importe quelles données qui viennent des sources hors sécurité (les utilisateurs d'IE)
- Si des champs d'auto-incrément ou d'identité ne sont pas spécifiés alors ils généralement se transféreront sur la valeur la plus élevée dans la table et additionneront un.
- Notez que des fonctions de conversion peuvent également devoir être employées si choisissant parmi les colonnes dans une base de données qui ne sont pas identiques que leur destination.
- Des colonnes peuvent être choisies dans un ordre différent qu'elles semblent dans la table de destination également - non tout le besoin d'être spécifié.
- Des données peuvent être changées de l'entrée avant d'être insérée, utilisant des fonctions inhérentes au SQL pour le but.
- Vous pouvez généralement employer des paramètres pour insérer des valeurs dans des tables.
5. MISE À JOUR
First_column de your_table_name de MISE À JOUR = valeur 1 RÉGLÉS, second_column = valeur 2,…. LÀ OÙ criteriaExists
Les colonnes des données peuvent contenir l'information qui est incorrecte ou doit être modifiée. Le mécanisme que le SQL te donne est le rapport de mise à jour. Typiquement ceci impliquera de modifier seulement les données dans une table, même si d'autres tables sont employées pour des critères. Au-dessus de la mise à jour de volonté la table appelée le your_table_name et assignent la valeur dans la première colonne égale à la « valeur 1 » et au second_column à la valeur 2 où il y a des critères spécifiques (élaborés dans ci-dessous où). S'il n'y a aucun critère puis chaque rangée est mise à jour.
Choses à la note :
- Des limites peuvent être appliquées ainsi seulement un nombre de rangées donné est effectuées
- D'autres tables peuvent être associées au où condition
- Ce n'est pas généralement une bonne idée au nom d'emprunt les tables dans le rapport de mise à jour.
- La valeur ne doit pas être fixe et peut se rapporter à une manipulation des colonnes ou des constantes courantes ou différentes.
- Non toutes les colonnes doivent être effectuées par la mise à jour.
6. SUPPRESSION
SUPPRESSION de your_table_name OÙ criteriaExists
L'élimination des rangées des tables est réalisée utilisant le rapport de suppression. C'est aussi simple qu'identifiant la table et les critères les rangées devraient se réunir et alors spécifiant que vous voulez supprimer, utilisant un rapport semblable à en haut. Les critères est expliqués ci-dessous.
Choses à la note :
- Les limites peuvent être appliquées spécifiant un nombre maximum des rangées à enlever
- Les suppressions peuvent avoir des problèmes se rapporter à d'autres rangées dans la même table et dont de telles tables provisoires peuvent avoir besoin pour être utilisées.
- Les suppressions normalement peuvent seulement effectuer une table à la fois (même si une autre est liée pour des critères de buts)
- La suppression peut avoir des problèmes s'ils enlèvent des dépendances principales étrangères comptaient au moment avec d'autres tables.
7. CHOISI
Un rapport choisi normal ressemblera au suivant
CHOISI definition_for_First_column comme fc, t1.second_column,…. Du tableName comme T1 OÙ criteria_exists
Choisissez simplement les identifys les données pour être montré à travers les colonnes. Notez que ceci peut apparaître plus d'une fois dans une question si vous avez une question incluse (substratez la question) en tant qu'élément d'une définition de colonne (si elle renvoie seulement une colonne et une rangée) ou en tant qu'élément du (utilisant la question comme c'était une table) ou dans du où condition (au moyen de elle pour prouver ou réfuter un ensemble de critères)
Choses à la note :
- Souvent les erreurs se produisent parce qu'il n'y a pas une définition de données entre chacun (excepté le bout)
- Quelques bases de données ont une limite 256 ou 1024 de colonne
- Le mot-clé DISTINCT après que choisi donnera seulement des rangées uniques (la rangée entière doit être unique)
- Le GROUPE PRÈS à la fin du rapport peut effectuer ce qui peut être montré dans le choisi
- Les colonnes ne doivent pas être des tables, elles peuvent être des constantes
- Les colonnes peuvent également représenter des mathématiques entre les constantes
- Des colonnes peuvent être passées par des fonctions
- Il n'est pas dans de bons habitudes d'avoir les colonnes multiples avec le même nom
- Des colonnes peuvent aliased en employant un mot pour lui donner un nom après qu'un espace après que l'IE de définition de colonne (tableName.t1 comme field1 ou en faisant tablename.t2 xxx) qui créerait deux colonnes appelées field1 (ęr exemple) et xxx comme deuxième exemple
- Le tablename n'a pas besoin nécessairement d'être employé pour adresser un champ, si le nom de champ est unique à cette table ou sous-question
- Là n'a pas besoin nécessairement d'a de ou où des critères selon la base de données
8. DE
Du table_name
DE (sous-question)
Ceci est normalement vu où un rapport exige l'information concernant une table ou un ensemble de données. Dans les premiers exemples vous pouvez seulement vouloir employer ceci concernant les tables données, dans des scénarios plus avancés que vous pouvez choisir parmi une question incluse. C'est parmi le plus franc - où fondamentalement tout après que du du devoir être une table, vue ou quelque chose qui apparaît comme une table ou la vue (l'IE a des rangées et des colonnes)
Choses à la note :
- Il peut y avoir les tables multiples ou les sous-questions dans de la définition
- Les Tableaux ou les sous-questions peuvent recevoir IE de noms de table_name car le T1 signifierait que là où le T1 lui a été mis en référence a mis en référence cette table
- La même table ou sous-question peut être des périodes multiples incluses et chacun est traité indépendamment
- Tout énuméré en tant qu'élément du de la clause effectuera la question (même si il n'est pas spécifiquement adressé) pendant que là se joint entre chacun de ces ensembles de données.
9. LÀ OÙ
D'habitude vous ne voulez pas voir chaque morceau de données dans une base de données. La restriction ce qui est retourné, basée sur des critères est le point entier du où mot-clé.
Essentiellement où les rapports ont lu comme leurs équivalents anglais. Tels que pour chaque rangée - la base de données demande, fait appliquer ce retour de rapport vrai, si tellement puis affichage la rangée - autrement ne faites pas. Vous pouvez avoir ou des rapports et employer la logique complexe mais chaque où le rapport bout en bas de cette simplification.
Exemples comme :
LÀ OÙ t1.currency = « AUD »
LÀ OÙ t1.field1 > t2.field3
LÀ OÙ (t1.field1 t2.field3) = (t2.field2 * t2.field7)
LÀ OÙ your_table_name.firstName = « Andrew » ou your_table_name.firstName = « Becky »
LÀ OÙ your_table_name. Genre = « mâle » et your_table_name.age entre 18 et 25
Si vous pouvez lire ces rapports ils semblent sembler raisonnable. Le premier renverra seulement les valeurs qui sont en les dollars australiens et le deuxième montrera seulement des rangées où un champ donné est plus grand qu'encore. Quelconque d'entre ces rapports doivent évaluer pour rectifier pour renvoyer des rangées.
Choses à la note :
- Il y a beaucoup de fonctions qui peuvent être employées pour évaluer pour rectifier ou faux dans tels qu'où la condition - signes >/de >= < de <= \ ! = dans () ( ) entre % et beaucoup plus peut être employé - si vous êtes incertain et ils sont dans où la condition alors recherchent ce que signifient elles, parce que le rapport pour les travailler toujours seront employées en quelque sorte qui peut donner un vrai ou un faux après qu'ils soient évalués.
- Quelques bases de données joignent des tables dans le leur où les conditions et d'autres ne font pas.
- Il est possible d'avoir des rapports qui ne renverront jamais l'IE vrai OÙ 1 ! = 1 sera toujours faux comme 1 ne va jamais ne pas être égal à 1 (le <> d'utilisation de quelques bases de données pour pas des égales)
- Des questions de sous-marin peuvent être retournées pour vérifier si une valeur particulière fait ou n'existe pas dans cette question secondaire
- Les erreurs peuvent se produire si vous essayez de comparer les valeurs qui ne sont pas du même type IE « 1 » sont inégales à 1 dans beaucoup de bases de données car le premier est le caractère et le deuxième est la valeur
- De là où des conditions sont normalement évaluées utilisant des parenthèses d'IE de BOMDAS multipliez le clivage s'ajoutent et soustraient.
- Là où les rapports peuvent employer le caprice que vrai et faux sont traité comme nombres dans quelques bases de données - IE faux peut = 0 et vrai est tout autre nombre
- La logique conditionnelle peut être employée pour évaluer des conditions - iif d'IE, si et des rapports de cas
Conclusion :
La compréhension de ces rapports est importante. Il y a beaucoup de nuances et de subtilités qui n'ont pas été couvertes par ce document d'introduction. Si vous voulez un ou plusieurs détails examinés dans plus de profondeur, svp contactez-moi et j'écrirai un autre poteau abordant vos soucis.
Le SQL était quelque chose que j'ai détesté quand d'abord l'apprenant, de nos jours je pense que ses possibilités et utilisation sont impressionnante.
Si vous aimiez ce poteau svp commentez ci-dessous, partagez-le avec des amis ou sur les réseaux sociaux et souscrivez à mon alimentation de RSS
%DIGG%





































Comme Sysadmin, la commande SQL La plus fréquente que j'emploie est GRANT bien que ce ne soit pas strictement SQL pur. Ceci est de près suivi de STATUT d'ESCLAVE de CONTRÔLE et not-so-closely suivi CRÉEZ LA BASE DE DONNÉES, la TABLE de CONTRÔLE et la TABLE de RÉPARATION.
Naturellement, quand je programme les neuf vous mentionnez êtes celui que j'emploie.
La chose est, mon travail serait beaucoup plus dur sans commandes que j'ai mentionnées. (Bon… excepté CRÉEZ LA BASE DE DONNÉES. Il est assez facile de créer une nouvelle base de données manuellement.)
Dave,
Je conviens, ceux suis très commun CRÉE également l'UTILISATEUR est un autre qui est employé très généralement de même que les rapports de secours. Car quelqu'un qui a fait des rôles de DBA et des questions de bâtiment (programmeur) il y a une grande différence entre ce que vous considérez important selon ce que vous faites. Général je considérerais la chose la plus importante au sujet des bases de données doit pouvoir accéder aux données et pendant que tels j'écrivaient ce poteau avec cela à l'esprit. Je pense que j'écrirai les mots-clés administratifs supérieurs et comment les employer pour ceux qui davantage sont concernés par l'opération de la base de données, plutôt qu'accédant à ce qu'il contient.