Installation, désinstallation et utilisation de base

Oracle

1. Objectifs du cours

【了解】Oracle基本概念
【理解】Oracle的安装与卸载
【掌握】Oracle的基本使用

2. Aperçu

Le système de base de données ORACLE est un ensemble de produits logiciels avec base de données distribuée comme noyau fourni par la société américaine ORACLE (Oracle). Il est actuellement l'une des bases de données d'architecture client / serveur (CLIENT / SERVER) ou B / S les plus populaires. La base de données ORACLE est actuellement le système de gestion de base de données le plus utilisé dans le monde. En tant que système de base de données général, il a des fonctions complètes de gestion des données; en tant que base de données relationnelle, il s'agit d'un produit relationnel complet; en tant que base de données distribuée, il réalise le traitement de type une fonction. Mais toutes ses connaissances, tant que vous apprenez les connaissances ORACLE sur un modèle, vous pouvez les utiliser sur différents types de machines.

2.1 Historique du développement d'Oracle

• En 1978, Oracle 2 est né, il a été développé en langage d'assemblage, mais son apparence n'a pas attiré beaucoup d'attention

• En 1982, Oracle a introduit Oracle 3, qui était la première base de données relationnelle pouvant fonctionner sur de grands et des mini-ordinateurs

• En 1997, Oracle Corporation a lancé Oracle 8 basé sur le langage Java

• En 1999, Oracle a officiellement fourni la première base de données Internet Oracle8i au monde

• En juin 2001, Oracle Corporation a publié Oracle 9i

• Le 12 juillet 2007, Oracle Corporation a lancé Oracle 11g. Le «g» dans Oracle 11g signifie «réseau»

2.2 Fonctionnalités d'Oracle Database System

• Prise en charge de la grande base de données, du traitement des transactions multi-utilisateurs haute performance

• Bonne sécurité

• Fournit de nouvelles capacités de base de données distribuées

• Portabilité et compatibilité

2.3 Structure de stockage de la base de données Oracle

Insérez la description de l'image ici

Bloc de données

Le bloc de données est la plus petite unité de gestion des données, c'est-à-dire que toutes les opérations d'E / S dans Oracle sont basées sur un bloc. La taille du bloc de données est un multiple entier de la taille du bloc du système d'exploitation, la taille commune est de 2 Ko ou 4 Ko

Étendue des données

L'intervalle de données est composé de blocs stockés physiquement et en continu. Il s'agit de la plus petite unité d'allocation de stockage Oracle. Un ou plusieurs blocs forment un intervalle de données.

Segment de données

Plusieurs intervalles de données constituent un segment de données

Espace de table

Afin d'améliorer l'efficacité de la gestion et du fonctionnement du serveur de base de données, Oracle 11g utilise le concept virtuel d '"espace table" pour gérer les objets logiques. Les utilisateurs peuvent stocker des objets logiques de différentes natures dans différents espaces table.
Dans le système d'exploitation Windows, utilisez des dossiers Pour classer et gérer différents fichiers, l'espace table équivaut au dossier de la base de données Oracle.

Chaque espace table est composé d'un ou plusieurs fichiers de données, et un fichier de données ne peut être associé qu'à un seul espace table

La relation entre le compte, l'espace table et la table

Un compte peut avoir l'autorisation d'utiliser plusieurs tablespaces, un tablespace peut stocker plusieurs tables et une table ne peut appartenir qu'à un tablespace

Troisièmement, la désinstallation et l'installation d'Oracle

3.1 Désinstallation d'Oracle

1) Arrêtez tous les services Oracle en cours d'exécution

Insérez la description de l'image ici

2) Supprimer les informations de registre correspondantes

Supprimez les informations du registre oracle. Exécutez regedit, supprimez la clé de registre
HKEY_LOCAL_MACHINE \ SOFTWARE \ Oracle

Supprimez le service oracle. L'emplacement du service oracle dans le Registre est:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Service
Supprimez tous les services commençant par le caractère oracle.

Supprimez le journal des événements. L'emplacement dans le registre est
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentContrilSet \ Services \ Eventlog \ Application pour
supprimer toutes les clés commençant par le caractère oracle.

3) Supprimez la variable d'environnement oracle dans la variable d'environnement

Supprimez les variables d'environnement ORACLE, telles que la variable "JSERV" et le chemin de l'oracle dans la variable Path

4) Supprimer les menus et répertoires liés à oracle

  1. Supprimez le menu oracle.
  2. Supprimer le répertoire "program files \ oracle"
  3. Redémarrez Windows.
  4. Supprimez le répertoire de base d'Oracle.

3.2 Installation d'Oracle

1) Décompressez le package d'installation dans le fichier spécifié (s'il s'agit du package d'installation téléchargé depuis le site officiel, vous devez décompresser les deux fichiers compressés ensemble)

Les étapes qui ne figurent pas dans la capture d'écran ci-dessous peuvent être directement passées à l'étape suivante.

Insérez la description de l'image ici

2) Cliquez sur setup.exe pour installer

Insérez la description de l'image ici

3) Suivez les invites pour terminer la configuration et l'installation d'oracle

Décocher l'invite de mise à jour de sécurité

Insérez la description de l'image ici

Choisissez d'installer des applications serveur

Insérez la description de l'image ici

Sélectionnez l'installation avancée pour une configuration détaillée

Insérez la description de l'image ici

Sélectionnez l'emplacement d'installation du logiciel de gestion oracle, et l'emplacement détaillé sera automatiquement généré par la suite

Insérez la description de l'image ici

Modifier le jeu de caractères par défaut des données stockées dans la base de données

Insérez la description de l'image ici

Définissez un mot de passe pour le compte par défaut (peut être défini de manière uniforme ou séparément)

Insérez la description de l'image ici

4) Déverrouiller le compte et changer le mot de passe

Par défaut, de nombreux comptes sont verrouillés et ne peuvent pas être utilisés, et doivent être déverrouillés avant de pouvoir être utilisés

Insérez la description de l'image ici

5) Utilisez sqlplus pour tester si vous pouvez vous connecter à la base de données

Insérez la description de l'image ici

L'utilisateur entre sys en tant que sysdba et entre le mot de passe

Insérez la description de l'image ici

3.3 Installation de l'outil graphique PLSQL Developer

1) Décompressez dans le dossier spécifié

Insérez la description de l'image ici

2) Configurez la configuration pour vous connecter aux données oracle actuelles

Entrez le dossier spécifié pour modifier le fichier .ora

Insérez la description de l'image ici

Modifiez l'ip en l'ip où se trouve la base de données oracle
et entrez ipconfig dans la commande DOS pour afficher l'adresse IP locale

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.50.6.110 )(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

Quatre, l'utilisation de base d'Oracle

4.1 Déclaration DCL

4.1.1 Création de l'espace table

Le rôle de l'espace table

Vous pouvez utiliser l'espace table pour limiter la taille
des fichiers de base de données. Utilisez l'espace table pour stocker les fichiers de données sur différents disques afin d'améliorer les performances d'E / S et faciliter la sauvegarde et la restauration des données.
Créez la syntaxe de l'espace table:
CREATE TABLESPACE
nomespace table DATAFILE'filename '[SIZE integer [ K | M]]
[EXTENSION AUTOMATIQUE [NON | OUI]];

create tablespace myspace
datafile 
  'e:/my01.dbf' size 5 M,
  'd:/my02.dbf' size 10 M
-- 创建表时,为表指定表空间
 create table person
 (
    pid number ,
    pname varchar2(20) ,
    page number(3),
    birthday date,
    address varchar2(20) default '不详'
 )tablespace myspace;

4.1.2 Création de compte

Il peut y avoir plusieurs utilisateurs dans la même base de données en même temps, et chaque utilisateur gère ses propres objets de base de données. Tels que les tables de base de données, les index, les vues, etc. .
La commande CREATE USER d'Oracle est utilisée pour créer un nouvel utilisateur. Chaque utilisateur dispose d'un espace table par défaut et d'un espace table temporaire. S'il n'est pas spécifié, Oracle définit SYSTEM comme espace de table par défaut et TEMP comme espace de table temporaire.

CREATE USER ahx
IDENTIFIED BY 123456
DEFAULT TABLESPACE myspace;

Le compte nouvellement créé est verrouillé par défaut et n'a aucune autorisation de connexion, il doit être déverrouillé et autorisé

将指定用户解锁
alter user ahx account unlock;

4.1.3 Authentification de l'autorité de rôle

Les rôles système prédéfinis couramment utilisés dans Oracle sont les suivants.

CONNEXION: les utilisateurs temporaires, en particulier les utilisateurs qui n'ont pas besoin de créer de tables, se voient généralement attribuer ce rôle.
RESSOURCE: des utilisateurs de base de données plus fiables et plus formels peuvent accorder ce rôle et peuvent créer des tables, des déclencheurs, des procédures, etc.
DBA: rôle d'administrateur de base de données, a l'autorité la plus élevée pour gérer la base de données. Un utilisateur avec un rôle DBA peut révoquer tous les autres utilisateurs ou même d'autres autorisations DBA, ce qui est très dangereux, alors n'accordez pas facilement ce rôle à certains utilisateurs sans importance.
Attribuer des autorisations ou des rôles aux utilisateurs

La commande GRANT est utilisée pour attribuer des autorisations ou des rôles aux utilisateurs, et la commande REVOKE est utilisée pour révoquer les autorisations et les rôles des utilisateurs

Autorisation

分配权限或角色语法:GRANT [<权限> | <角色>] TO <用户>;
将指定用户授权
grant connect,dba,resource to ahx
grant create session,create table to ahx;--为用户分配权限
grant connect to ahx;--为用户分配角色
grant resource to ahx;
--grant connect,resource to ahx;--为用户分配角色

--为ahx分配查询scott账号下的emp表的权限
 -- grant select|insert|update|delete on 表 to 用户
 grant select on scott.emp to ahx
 --以xiaoming账号登录查询
 select * from scott.emp

Lors de l'octroi d'autorisations, vous pouvez attribuer des autorisations individuelles au compte spécifié, ou vous pouvez attribuer des rôles pour avoir directement les autorisations détenues par le rôle

Annuler l'autorisation

撤销权限和角色语法:REVOKE [<权限> | <角色>] FROM <用户>;

4.2 Instructions DDL

Étant donné qu'Oracle n'a pas le concept de bibliothèque, la création d'un espace table est une instruction pour créer une base de données. L'instruction ddl d'Oracle fait souvent référence à une instruction qui crée une table ou modifie les colonnes d'une table.

4.2.1 Instruction CREATE TABLE

À l'exception du type de données, il a la même syntaxe que l'instruction de création de table MySQL, et oracle permet de vérifier les contraintes (généralement transmises au serveur pour traitement)

---创建表: create table 表名(列名1 数据类型 [约束])
create table dept
(
   deptno number(6) primary key,
   deptname varchar2(50) not null,
   deptnum  number(5)  check (deptnum>=0),
   loc varchar(100) default '郑州' 
)

create table employee
(
   empId number(10) primary key,
   empName varchar2(50) not null,
   empAge number(3) check(empAge>=18 and empAge<=60),
   deptno number(6) references dept(deptno)
)

Oracle n'a pas le concept d'incrémentation automatique de clé primaire. Si vous avez besoin de l'incrémentation automatique de clé primaire, vous pouvez le résoudre par séquence.

4.2.2 Instruction ALTER TABLE

Opérer sur les colonnes d'une table existante

augmenter

语法: modifier la table tableName ajouter columnName dataType;

alter table employee add empTel varchar2(11);

modifier

语法: modifier la table tableName modifier columnName dataType;

alter table employee modify empTel varchar2(14);

effacer

语法: modifier la table tableName drop column columnName;

alter table employee drop column empTel;

Ajouter des contraintes aux colonnes

语法: modifier la table tableName ajouter une contrainte constraintName constraintType (columnName)

alter table dept add constraint un_deptname unique(deptname);

Afficher les contraintes à partir de la vue USER_CONS_COLUMNS

sélectionnez constraint_name, column_name dans user_cons_columns

4.2.3 Séquence

SEQUENCE est un générateur de nombres séquentiels nommés, qui peut générer une série d'entiers séquentiels de manière série

Le but principal de la séquence:

  • Exigences relatives aux applications de clé primaire et de valeur de clé étrangère
  • Exigences relatives à la demande de numéro de série
  • Génération de séquence et contenu de définition

Syntaxe de séquence:

CREATE SEQUENCE sequnce_name
[START WITH n1] // Spécifiez le premier numéro de séquence à générer (à partir de n1)
[INCREMENT BY n2] // Utilisé pour spécifier l'intervalle entre les numéros de séquence, la valeur par défaut est 1
[{MAXVALUE n3 | NOMAXVALUE }] // Spécifiez la valeur maximale que la séquence peut générer
[{MINVALUE n4 | NOMINVALUE}] // Spécifiez la valeur minimale que la séquence peut générer
[{CACHE n5 | NOCACHE}] // Utilisez pour spécifier la pré-allocation dans le cache Le nombre de numéros de série, la valeur par défaut est 20
[{CYCLE | NOCYCLE}] // Utilisé pour spécifier s'il faut faire un cycle après avoir atteint le maximum ou le minimum de la séquence
[ORDER]; // Utilisé pour spécifier de générer des numéros de série dans afin de garantir que la séquence est unique et ordonnée

create sequence ms
   start with 1
   increment by 1
   maxvalue 5
   minvalue 1
   nocycle
   cache 10;

utilisation

Obtenez la valeur de la séquence suivante via nextval

select ms.nextval from dual;

Obtenir la valeur de la séquence actuelle via currval

select ms.currval from dual;

Utilisation de la séquence

--创建序列
create sequence ms
start with 1  --从1开始
increment by 1 --序列的间隔(每次变化的数值)
maxvalue 10000000 --最大值
minvalue 1   --最小值
nocycle --不循环
cache 10 

 select * from dual
 select my_seq.nextval from dual
 select my_seq.currval from dual
   
 select * from employee
   --Oracle中没有主键自增的概念,但可以通过自定义序列来实现
   insert into employee(empId,empName,empAge,deptno) values(ms.nextval,'zhangsan',20,10)

Modifier la séquence

#更改序列
ALTER SEQUENCE ms MAXVALUE 5000 CYCLE;
#删除序列
DROP SEQUENCE ms;

4.3 Déclaration DML

L'instruction oracle de base utilise sql, donc c'est fondamentalement la même que l'instruction dml utilisée lors de l'apprentissage de mysql

4.3.1 augmentation de l'insertion

insert into 表名(列名1,列名2,列名3)values(1,2 ,3)

Puisqu'il n'y a pas d'auto-incrémentation de clé primaire, la séquence est utilisée pour la génération d'ID de données lors de l'ajout

4.3.2 mise à jour

update 表名 set 列名1=1, 列名2=2[where 条件]

4.3.3 supprimer supprimer

delete from 表名 [where 条件]

Exercice d'instruction de requête de base

--使用scott账号练习基本查询语句
--1 查询当前用户下的所有表
select * from tab;
--2 查询雇员表中所有信息
select * from emp;
--3 查询雇员编号,姓名,工作,工资
select empno,ename,job,sal from emp
--4 查询雇员编号,姓名,工作,工资,并显示中文(为列起别名)
select empno as 编号,ename as 姓名,job as 工作,sal as 工资 from emp
--5 消除重复列,查询雇员工作种类
select distinct job from emp
--6 字符串连接操作(||)
--查询雇员编号,姓名,工作.按以下格工显示:编号:7369,姓名:Smith,工作:Clerk
select '编号:'||empno,'姓名:'||ename,'工作:'||job from emp
--7 查询列支持四则运算(年薪=(工资+奖金)*12)
--查询雇员编号,姓名,工作,年薪 
select empno,ename,job,(sal+nvl(comm,0))*12 from emp
nvl(comm,0)==>如果comm值为空,取值0

--8 Where条件查询
-- 查询工资大于1500的所有雇员
select * from emp where sal>1500
--查询可以得到奖金的所有雇员
select * from emp where comm is not null
--查询工资大于1500或可以得到奖金的雇员
select * from emp where sal>1500 or comm is not null
--查询工资大于1500并且可以领取奖金的雇员
select * from emp where sal>1500 and comm is not null
--查询工资不大于1500或者不可以领取奖金的雇员
select * from emp where sal<=1500 or comm is null
--查询工资在1500到3000的所有雇员信息
select * from emp where sal>=1500 and sal<=3000
select * from emp where sal between 1500 and 3000
--查询在1981年雇用的员工信息
select * from emp where hiredate like '%81%'
--查询雇员姓名中第二个字母为"M"的雇员
select * from emp where ename like '_M%'
--查询雇员工资中带8这个数字的
select * from emp where sal like '%8%'
--查询编号是7369,7499,7521,7799的雇员信息
select * from emp where empno=7369 or empno=7499 or empno=7521 or empno=7799
select * from emp where empno in(7369,7499,7521,7799)
--查询雇员编号不是7369,7499,7521,7799的所有雇员信息
select * from emp where empno not in(7369,7499,7521,7799)
--查询雇员编号为7369的雇员信息
select * from emp where empno =7369
--查询雇员编号不为7369的雇员信息
select * from emp where empno !=7369
select * from emp where empno <>7369

--查询雇员信息,按工资由低到高排序
select * from emp order by sal asc
--查询雇员信息,按工资由高到低排序
select * from emp order by sal desc

--操作集合:
--union:将两个记录合并,去掉重复项 
select distinct deptno from emp union select deptno from dept;
--union:将两个记录合并,不去掉重复项 
select distinct deptno from emp union all select deptno from dept;
--intersect:取两个集合的交集
select distinct deptno from emp intersect select deptno from dept;
--minus:去掉交集(集合A-(集合A和集合B的交集))
select deptno from dept minus select distinct deptno from emp ;

Je suppose que tu aimes

Origine blog.csdn.net/qq_53449032/article/details/115298607
conseillé
Classement