123 votes

MySQL 'create schema" et "créer une base de données" - quelle Est la différence

Prendre un pic dans le 'information_schema' base de données et un sommet à l'métadonnées pour un de mes projets favoris, je vais avoir un moment difficile la compréhension de ce que (le cas échéant) différences il y a entre le "créer un schéma de commande' et la 'création de la base de données de commande de MySQL.

Existe-il des différences? Si non, est-ce plutôt un modèle de comportement pour les bases de données relationnelles (j'ai entendu dire que pour les autres bases de données comme Oracle, un schéma existe dans une base de données, plutôt que d'être sur le même niveau que celui d'une base de données).

Merci!

169voto

Pascal MARTIN Points 195780

La documentation de MySQL dit :

CRÉER une BASE de données crée une base de données avec le nom donné. Pour utiliser cette déclaration, vous devez le CRÉER privilège de la base de données. CRÉER Le SCHÉMA est un synonyme pour CRÉER La BASE de données de MySQL 5.0.2.

Il semblerait donc normal que ces deux instructions en faire de même.

29voto

Adinochestva Points 4459

Documentation de Mysql dit : CREATE SCHEMA est un synonyme pour CRÉER une BASE de données comme MySQL 5.0.2.


tout cela remonte à une norme de norme ANSI pour SQL dans le milieu des années 80.

Cette norme a eu une "CRÉER le SCHÉMA de la commande", et il a servi à introduire plusieurs espaces de nom pour la table et afficher les noms. Toutes les tables et vues étaient créé à l'intérieur d'un "schéma". Je ne sais pas si cette version définie certains de la croix-schéma de l'accès à des tables et des vues, mais je suppose qu'il a fait. AFAIR, pas de produit (au moins) vraiment mis en œuvre, l'ensemble de le concept est plus de la théorie que de la pratique.

Otoh, que, ISTR cette version de la norme n'a pas le concept d'un "utilisateur" ou "CRÉER un UTILISATEUR" de commande, donc il y avait des produits qui ont utilisé l' concept d'un "utilisateur" (qui avait alors son propre espace de noms pour les tables et les point de vue) de mettre en œuvre leur équivalent de "schéma".

C'est un domaine où les systèmes diffèrent.

Aussi loin que l'administration est concernée, ce qui ne devrait pas trop d'importance, car ici vous avez les différences de toute façon.

Aussi loin que vous regardez le code de l'application, vous n'avez des soins à ce sujet les cas où une application accède à des tables à partir de plusieurs espaces de nom. Autant que je sache, tous les systèmes de soutien d'une syntaxe ".", et pour cela, il ne devrait pas question de savoir si le nom de l'espace est celle d'un l'utilisateur, un "schéma", ou une "base de données".

8voto

Sergey Olontsev Points 806

CRÉER un SCHÉMA est un synonyme pour CRÉER une BASE de données. CRÉER une BASE de données Syntaxe

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X