Ce cours d'instruction montre la syntaxe et les commandes de base et de la langue de SQL.
D'abord, laissez-nous voient quelles bases de données existent déjà dans le serveur de MySQL. Nous pouvons regarder cette information en employant la commande d'EXPOSITION. Entrez dans le suivant (excepté le mysql > la partie) dans le client de console de MySQL, suivi d'un retour :
BASES DE DONNÉES de mysql > d'EXPOSITION ;
il y a deux bases de données déjà créées dans le serveur de MySQL. La base de données de mysql contient l'information d'administration pour le serveur de MySQL et ne devrait pas être modifiée. Est exactement l'autre base de données, essai, à de ce que cela ressemble : un essai pour le serveur de MySQL. La base de données d'essai ne contient rien, et elle peut être enlevée sans risque s'il y a lieu.
Ainsi comment ajoutons-nous notre propre base de données dans le serveur de MySQL ? Pour faire ceci, nous employons la commande de CRÉER. Disons-nous souhaitent créer une base de données appelée le mydata ; nous emploierions la syntaxe suivante.
| Note | Le tableau suivant présente les restrictions de longueur et de caractère qui sont imposées aux noms des bases de données, des tables, des colonnes, et des noms d'emprunt. |
| Marque | Longueur Maximum | Caractères Valides |
|---|---|---|
| Base de données | 64 | Tous les caractères valides de nom d'annuaire excepté "." et "/". |
| Tableau | 64 | Tous les caractères valides de nom d'annuaire excepté "." et "/". |
| Colonne | 64 | Tous sont valides. |
| Dit | 15 | Tous sont valides. |
le mysql > CRÉENT le mydata de BASE DE DONNÉES ;
|
|
Notez que le point-virgule est ajouté après chaque commande dans la langue de SQL. Quand nous serrons le retour après avoir écrit cette commande, la console nous informe que la question était correcte.
Maintenant que nous avons créé la base de données, nous pouvons l'assurer est sur le serveur en employant encore la commande d'EXPOSITION, comme suit :
BASES DE DONNÉES de mysql > d'EXPOSITION ;
Quand nous serrons le retour avec cette commande, nous pouvons voir que notre base de données a été ajoutée à la liste (note que la liste est dans l'ordre alphabétique, pas l'ordre dans lequel les bases de données ont été créées).
Maintenant nous enlèverons la base de données du serveur. Notez cela quand nous faisons ceci, toutes les données (si quel) sera perdu. Pour enlever une base de données, nous "la laissons tomber" du serveur en employant la commande de BAISSE. Laisser tomber ainsi notre nouvelle base de données de mydata, nous emploierions la commande suivante :
mydata de BASE DE DONNÉES de mysql > de BAISSE ;
Quand nous exécutons cette commande par retour de courrier de pression, la question sera rapportée en tant que bien.
Maintenant, si nous énumérons encore les bases de données en utilisant la commande d'EXPOSITION :
BASES DE DONNÉES de mysql > d'EXPOSITION ;
... nous pouvons voir que notre base de données de mydata n'est plus évidente sur la liste.
Avant que nous discutions la création des tables dans des bases de données, est maintenant un bon temps pour mentionner les différents types de colonne que nous pouvons avoir dans les tables.
Chaque colonne dans une table doit être assignée un type, qui représente le type d'information que le champ va tenir. Voici une liste complète de types disponibles que vous pouvez employer :
| Type | Description |
|---|---|
| TINYINT | Un nombre entier très petit. La gamme signée est 128 à 127. La gamme non signée est de 0 à 255. |
| SMALLINT | Un petit nombre entier. La gamme signée est 32768 à 32767. La gamme non signée est de 0 à 65535. |
| MEDIUMINT | Un nombre entier moyen. La gamme signée est 8388608 à 8388607. La gamme non signée est de 0 à 16777215. |
| INTERNE | Un nombre entier classé normal. La gamme signée est 2147483648 à 2147483647. La gamme non signée est de 0 à 4294967295. |
| BIGINT | Un grand nombre entier. La gamme signée est 9223372036854775808 à 9223372036854775807. La gamme non signée est de 0 à 18446744073709551615. |
| FLOTTEUR | Un petit, nombre à point mobile de simple-précision qui ne peut pas être non signé. La gamme signée est 3.402823466E+38 au 1.755494351E.38, à 0, et au 1.755494351E.38 à 3.402823466E+38. |
| DOUBLE | Un nombre à point mobile à double précision qui ne peut pas être non signé. La gamme signée est 1.7976931348632157E+308 au 2.2250738585072014E.308, à 0, et au 2.2250738585072014E.308 à 1.7976931348632157E+308. |
| DÉCIMAL | Un nombre à point mobile déballé qui ne peut pas être non signé. Des travaux comme une colonne de "char" parce que le nombre est stockés comme corde (c.-à-d., chaque nombre emploie un caractère dans la corde). |
| DATE | Une date. La gamme est de 1000-01-01 à 9999-12-31 et est dans le format YYYY-MM-DD. |
| TEMPS | Un moment. La gamme est 838:59:59 à 838:59:59 et est dans le format HH:MM:SS. |
| DATETIME | Une combinaison de date et d'heure. La gamme est 1000-01-01 00:00:00 à 9999-12-31 21:59:59 et est dans le format YYYY-MM-DD HH:MM:SS. |
| YEAR[(2|4) ] | Une année dans 2 ou format à 4 chiffres (le défaut est 4). La gamme est de 1901 à 2155 et également 0000. |
| HORODATEUR | Un horodateur. La gamme est 1970-01-01 00:00:00 à autrefois en l'année 2037 dans le format YYYYMMDDHHMMSS. |
| CHAR(length) | Une corde de longueur constante qui droit-est toujours capitonnée avec les espaces à la longueur indiquée une fois stockée. La gamme est 1 à 255 caractères selon la "longueur" indiquée. |
| VARCHAR | Une corde de longueur variable. |
| TINYBLOB/ TINYTEXT | Un objet binaire minuscule. Longueur maximum de 255 caractères. * Voir la NOTE au-dessous de la table. |
| BLOB/TEXT | Un objet binaire. Longueur maximum de 65535 caractères. * Voir la NOTE au-dessous de la table. |
| MEDIUMBLOB/ MEDIUMTEXT | Un objet binaire moyen. Longueur maximum de 16777215 caractères. * Voir la NOTE au-dessous de la table. |
| LONGBLOB/ LONGTEXT | Un grand objet binaire. Longueur maximum de 4294967295 caractères. * Voir la NOTE au-dessous de la table. |
| ENUM('val1 ', 'val2 '...) | Une énumération. Une liste de valeurs de corde desquelles seulement une peut être choisie. Maximum de 65535 valeurs distinctes. |
| SET('val1 ', 'val2 '...) | Un ensemble. Un objet de corde qui peut avoir zéro valeurs ou plus, dont chacune doit être choisie de la liste (c.-à-d., 'val1 ', 'val2 ', etc.). Maximum de 64 caractères. |
| Note | La seule différence entre les types de texte de GOUTTE et est celle pour assortir et les comparaisons, une GOUTTE est cas-sensible, tandis que le type de texte n'est pas cas-sensible. |
Maintenant que nous connaissons les types possibles pour les colonnes dans nos tables, regardons comment nous abordons réellement créer une table.
Disons que nous souhaitons créer une table pour tenir quelques petits groupes d'utilisateur dans une base de données.
Nous voulons stocker le titre de l'utilisateur, prénom, nom de famille, âge, adresse de E-mail, et la date où l'utilisateur a été ajouté à la base de données. Ainsi nous aurons besoin des colonnes suivantes dans notre table :
Âge EmailAddress DateAdded De Nom de famille De Firstname De Titre
Avant que nous entrions dans la façon l'ajouter réellement, nous laissions pensions d'abord comment nous allons stocker l'information.or davantage au point, de quels types nous avons besoin pour chacune des colonnes.
Pour le titre, le prénom, et le nom de famille, nous pouvons employer le type de texte, car il contient l'abondance des caractères pour tenir compte de toutes les possibilités.
| Note | VARCHAR peut fonctionner plus rapidement et est peut-être un meilleur choix si la longueur de corde peut être limitée moins de 255 caractères. |
Pour l'âge, un TINYINT non signé serait un choix évident, car les âges sont numériques et personne n'a été jamais connu pour vivre après 255. Pour l'adresse de E-mail, nous pouvons encore employer un type de texte, car il nous donnera l'espace mémoire substantiel pour l'adresse. En conclusion, pour la date que l'utilisateur a été ajouté à la table, nous pouvons employer un HORODATEUR.
| Note | Avec Java, il est possible d'employer un type de données INTERNE et de stocker System.currentTimeMillis()/1000 comme valeur. Cette valeur peut plus tard être cherchée de la base de données. Alors multipliez-la d'ici 1000 et convertissez-l'en type de DATE (c.-à-d., date = nouveau Date(value) ;). C'est utile en faire la localisation et/ou la conversion entre différentes bases de données |
L'HORODATEUR a également une grande propriété parce que l'heure et la date peuvent être recherchées automatiquement dans la base de données.
Maintenant que nous connaissons quels types nous voulons pour nos colonnes, nous devons créer une base de données pour ajouter la table dans. Créons une base de données appelée le myinfo avec la commande suivante :
le mysql > CRÉENT le myinfo de BASE DE DONNÉES ;
Quand nous exécutons cette commande, la console devrait signaler que la question était correcte. Nous pouvons maintenant vérifier que notre base de données a été créée avec la commande suivante :
BASES DE DONNÉES de mysql > d'EXPOSITION ;
Maintenant nous devons dire à MySQL que nous souhaitons effectuer des actions sur la base de données de myinfo. Ceci est accompli en employant la commande d'UTILISATION :
mysql > myinfo d'UTILISATION ;
| Note | Sans UTILISATION, toutes les tables dans la base de données de myinfo devraient désigné sous le nom de myinfo.mytable, qui est naturellement tout à fait incommode. |
Après exécution de cette commande, tous les rapports de DDL (langage de définition de données) et de DML (langue de manipulation de données) qui sont exécutés affecteront la base de données en service, qui est dans ce cas-ci notre base de données de myinfo.
Maintenant que nous avons notre installation de base de données et la préparons pour accepter des commandes, nous pouvons créer notre table (que nous appellerons userinfo) avec le rapport suivant :
le mysql > CRÉENT l'userinfo de TABLEAU (- > auto_increment INTERNE d'identification, - > TEXTE de titre, - > TEXTE de firstname, - > TEXTE de nom de famille, - > l'âge TINYINT, - > TEXTE d'email, - > dateadded l'HORODATEUR, - > KEY(id) PRIMAIRE) ;
| Note | l'auto_increment n'est pas une option standard de SQL. MSSQL (Microsoft SQL) a une option semblable et ainsi fait Postgre, mais l'oracle n'a pas une manière de faire ceci car une option de table de créer. Il doit être fait avec des ordres et des déclenchements. |
Cassons ceci vers le haut du ainsi nous pouvons voir ce qui se produit. D'abord nous déclarons que nous souhaitons créer une table en entrant CRÉONS LE TABLEAU. Après nous indiquons le nom que nous souhaitons appeler la table ; dans ce cas-ci, le nom est userinfo. Alors nous employons des parenthèses pour contenir toutes les colonnes des lesquelles nous avons besoin dans notre table et énumérons simplement tous les noms et types de colonne des lesquels nous avons besoin. Note comment nous avons ajouté un champ supplémentaire appelé identification. En conclusion, notez l'addition de la clef primaire comme dernier paramètre. Ceci est employé pour déterminer comment la table est optimisée dans la base de données.
Nous pouvons maintenant vérifier que notre table a été créée avec succès en exécutant la commande suivante :
TABLEAUX de mysql > d'EXPOSITION ;
Note vous pouvez également regarder les colonnes dans une table en employant la commande suivante :
le mysql > DÉCRIVENT l'userinfo ;
Quand vous exécutez cette commande, la console montrera tous les détails pour chacune des colonnes dans la table d'userinfo.
Cette information peut être utile pour tous les deux qui assurent la table a été créée en tant que vous a envisagé et pour récapituler les colonnes que une table contient à une date ultérieure.
Ainsi maintenant que nous savons créer une table, nous laissons regarder comment nous abordons la modifier. La modification d'une table peut s'étendre de changer simplement le type d'une des colonnes en ajouter une colonne complètement nouvelle (ou enlever une colonne existante).
Laissez-nous le premier regard à la façon dont nous changeons le nom d'une colonne existante. Dans notre table d'userinfo, nous avons une colonne appelée le firstname, mais nous laissons maintenant changer ceci pour lire le prénom, un synonyme pour le prénom d'une personne.
Pour faire ce changement, nous devons employer la syntaxe suivante :
le mysql > CHANGENT LE TEXTE de prénom de firstname de CHANGEMENT d'userinfo de TABLEAU ;
| Bout | On lui recommande fortement toujours de concevoir la base de données avant de la créer parce qu'il peut y avoir les tables ou la structure de base de données des problèmes modifying/altering après qu'il y ait des données insérées dans les tables. |
Note nous devons également assurer le type de données pour la colonne aussi bien que ses vieux et nouveaux noms.
Si nous décrivons la table d'userinfo avec le suivant commandez :
le mysql > DÉCRIVENT l'userinfo ;
... nous pouvons voir que le firstname de colonne a été retitré au prénom.
Nous pouvons également changer les types de données de colonnes dans les tables. Disons que nous voulons changer la colonne d'âge d'un TINYINT en INTERNE. Nous emploierions la commande suivante :
le mysql > CHANGENT l'userinfo de TABLEAU MODIFIENT l'âge INTERNE ;
Après exécution de cette commande, si nous décrivons la table, nous pouvons voir que le type a changé en INTERNE.
En conclusion, il est bon de savoir enlever des champs d'une table (par exemple, s'ils ne sont plus exigés). Maintenant disons que nous n'avons besoin plus du champ de E-mail dans notre table d'userinfo. Ce que nous voulons faire doit "laisser tomber" le champ de notre table. Voici la syntaxe pour enlever le champ de E-mail.
le mysql > CHANGENT l'email de BAISSE d'userinfo de TABLEAU ;
Une fois que cette commande est exécutée, nous décrivons la table avec la commande suivante :
le mysql > DÉCRIVENT l'userinfo ;
L'enlèvement des tables d'une base de données est très simple, mais sans utilisation soigneuse il peut avoir des effets désastreux. La chose principale à la note est qu'en laissant tomber une table, vous perdez également toutes les données contenues dans la table. Par conséquent, il est toujours sage de soutenir une base de données avant d'exécuter toutes les commandes de BAISSE.
Maintenant regardons comment nous laissons tomber la table d'userinfo de notre base de données de myinfo. Pour faire ceci, nous devons exécuter la commande suivante dans le client de console de MySQL.
| Note | Vous ne pouvez pas laisser tomber la table s'il y a des
relations actuelles à d'autres tables qui pourraient casser
l'intégrité de la base de données. Si les relations ne sont
pas "vraies," des tables peuvent être enlevées sans erreurs, mais l'intégrité est alors compromise.
Si l'administrateur ne fait pas attention, la base de données
peut être de manière permanente corrompue.
userinfo de TABLEAU de mysql > de BAISSE ; |
Une fois que cette commande est exécutée, nous pouvons vérifier que la table a été enlevée en énumérant ce qui ajourne est actuellement dans notre base de données de myinfo en exécutant la commande suivante :
TABLEAUX de mysql > d'EXPOSITION ;
La table n'existe plus dans la base de données.
Online: 614 users browsing the articles directory
|
|