Maison  >  Article  >  base de données  >  Qu'est-ce qu'un schéma dans Oracle

Qu'est-ce qu'un schéma dans Oracle

WBOY
WBOYoriginal
2022-05-09 10:34:1810536parcourir

Dans Oracle, un schéma est une collection d'objets de base de données ; un utilisateur Oracle correspond à un schéma, et un schéma ne peut être créé qu'en créant un utilisateur. Le schéma peut être appelé un alias de l'utilisateur, c'est-à-dire le schéma. name correspond et est identique au nom d'utilisateur.

Qu'est-ce qu'un schéma dans Oracle

L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.

Qu'est-ce qu'un schéma dans Oracle

Jetons d'abord un coup d'œil à leurs définitions :

Un schéma est une collection d'objets de base de données (utilisés par un utilisateur.)

Les objets de schéma sont les structures logiques qui font directement référence au schéma. données de la base de données.

Un utilisateur est un nom défini dans la base de données qui peut se connecter aux objets et y accéder.

Les schémas et les utilisateurs aident les administrateurs de base de données à gérer la sécurité de la base de données.

D'après la définition, nous pouvons voir que le schéma est une collection d'objets. . Afin de distinguer chaque collection, nous devons donner un nom à cette collection. Ces noms sont les nombreux nœuds de type nom d'utilisateur que nous voyons sous la solution Enterprise Manager. Ces nœuds de type nom d'utilisateur sont en fait un schéma, et le schéma contient divers objets. tels que des tables, des vues, des séquences, des procédures stockées, des synonymes, des index, des clusters et des liens de base de données.

Un utilisateur correspond généralement à un schéma. Le nom du schéma de l'utilisateur est égal au nom de l'utilisateur et sert de schéma par défaut de l'utilisateur. C'est pourquoi nous constatons que les noms de schéma sont tous des noms d'utilisateur de base de données sous le schéma Enterprise Manager. Un nouveau schéma ne peut pas être créé dans la base de données Oracle. Pour créer un schéma, il ne peut être résolu qu'en créant un utilisateur (bien qu'il existe une instruction de création de schéma dans Oracle, elle n'est pas utilisée pour créer un schéma). Dans le même temps, un schéma portant le même nom que le nom d'utilisateur est créé pour cet utilisateur et utilisé comme shcema par défaut de l'utilisateur. C'est-à-dire que le nombre de schémas est le même que le nombre d'utilisateurs, et le nom du schéma correspond au nom d'utilisateur un à un et est le même, nous pouvons donc appeler le schéma un alias de l'utilisateur. pas précis, c'est plus facile à comprendre.

Un utilisateur a un schéma par défaut, et son nom de schéma est égal au nom d'utilisateur. Bien entendu, un utilisateur peut également utiliser d'autres schémas. Si nous accédons à une table sans spécifier à quel schéma appartient la table, le système ajoutera automatiquement le nom Sheman par défaut à la table. Par exemple, lorsque nous accédons à la base de données, nous accédons à la table emp sous l'utilisateur scott via select * from emp. En fait, la manière complète d'écrire cette instruction SQL est select * from scott.emp; Le nom complet d'un objet dans la base de données est schema.object et non user.object. De la même manière que si nous ne spécifions pas le schéma de l'objet lors de la création d'un objet, le schéma de l'objet est le schéma par défaut de l'utilisateur. C'est comme un utilisateur ayant un espace table par défaut, mais l'utilisateur peut également utiliser d'autres espaces table si nous ne spécifions pas d'espace table lors de la création d'un objet, l'objet sera stocké dans l'espace table par défaut si nous voulons l'objet. à stocker Dans d'autres espaces table, nous devons spécifier l'espace table de l'objet lors de la création de l'objet.

Ahem, cela dit, laissez-moi vous donner un exemple, sinon tout sera ennuyeux !

SQL> Gruant dba to scott
SQL> create table test(name char(10));
Table created.
SQL> create table system.test(name char(10));
Table created.
SQL> insert into test values('scott'); 
1 row created.
SQL> insert into system.test values('system');
1 row created.
SQL> commit;
Commit complete.
SQL> conn system/manager
Connected.
SQL> select * from test;
NAME
----------
system
SQL> ALTER SESSION SET CURRENT_SCHEMA = scott; --改变用户缺省schema名
Session altered.
SQL> select * from test;
NAME
----------
scott
SQL> select owner ,table_name from dba_tables where table_name=upper('test');
OWNER TABLE_NAME
------------------------------ ------------------------------
SCOTT TEST
SYSTEM TEST

--La requête ci-dessus est la base pour laquelle j'utilise le schéma comme alias de l'utilisateur. En fait, en termes d'utilisation, shcema est exactement la même chose que user. Il n'y a aucune différence. Le nom d'utilisateur peut également apparaître là où le nom du schéma.

Tutoriel recommandé : "Tutoriel vidéo Oracle"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn