Oracle1 数据库管理

Oracle的安装

一、基础表的创建

1.1 切换到scott用户

  1. 用sys 账户 登录

Oracle1 数据库管理_第1张图片

  1. 解锁scott账户
alter user scott account unlock;

conn scott/tiger;

Oracle1 数据库管理_第2张图片
发现并不存在scott账户,自己创建一个?

  1. 查找资料后发现,scott用户的脚本需要自己执行一下
@C:\app\oracle\product\12.2.0\dbhome_1\rdbms\admin\scott.sql;

Oracle1 数据库管理_第3张图片

  1. 手动创建了
--sys
CREATE USER c##scott IDENTIFIED BY TIGER;
alter user c##scott identified by TIGER;
GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE, DBA TO c##scott IDENTIFIED BY TIGER;
ALTER USER c##scott DEFAULT TABLESPACE USERS;
ALTER USER c##scott TEMPORARY TABLESPACE TEMP;


--c##scott
DROP TABLE DEPT;
CREATE TABLE DEPT
       (DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
	DNAME VARCHAR2(14) ,
	LOC VARCHAR2(13) ) ;
DROP TABLE EMP;
CREATE TABLE EMP
       (EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,
	ENAME VARCHAR2(10),
	JOB VARCHAR2(9),
	MGR NUMBER(4),
	HIREDATE DATE,
	SAL NUMBER(7,2),
	COMM NUMBER(7,2),
	DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);
INSERT INTO DEPT VALUES
	(10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES
	(30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES
	(40,'OPERATIONS','BOSTON');
INSERT INTO EMP VALUES
(7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);
INSERT INTO EMP VALUES
(7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
INSERT INTO EMP VALUES
(7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
INSERT INTO EMP VALUES
(7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
INSERT INTO EMP VALUES
(7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
INSERT INTO EMP VALUES
(7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
INSERT INTO EMP VALUES
(7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);
INSERT INTO EMP VALUES
(7788,'c##SCOTT','ANALYST',7566,to_date('13-JUL-87')-85,3000,NULL,20);
INSERT INTO EMP VALUES
(7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
INSERT INTO EMP VALUES
(7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
INSERT INTO EMP VALUES
(7876,'ADAMS','CLERK',7788,to_date('13-JUL-87')-51,1100,NULL,20);
INSERT INTO EMP VALUES
(7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);
INSERT INTO EMP VALUES
(7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);
INSERT INTO EMP VALUES
(7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);
DROP TABLE BONUS;
CREATE TABLE BONUS
	(
	ENAME VARCHAR2(10)	,
	JOB VARCHAR2(9)  ,
	SAL NUMBER,
	COMM NUMBER
	) ;
DROP TABLE SALGRADE;
CREATE TABLE SALGRADE
      ( GRADE NUMBER,
	LOSAL NUMBER,
	HISAL NUMBER );
INSERT INTO SALGRADE VALUES (1,700,1200);
INSERT INTO SALGRADE VALUES (2,1201,1400);
INSERT INTO SALGRADE VALUES (3,1401,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);
COMMIT;


1.2 导入数据文件

01_del_data.sql02_hr_cre.sql03_hr_popul.sql

@C:\Users\ifeng\Desktop\guigu\01_del_data.sql;

@C:\Users\ifeng\Desktop\guigu\02_hr_cre.sql;

@C:\Users\ifeng\Desktop\guigu\03_hr_popul.sql;

Oracle1 数据库管理_第4张图片

二、Oracle 管理

可以用Oracle企业管理器 连接 数据库服务器

Oracle1 数据库管理_第5张图片

2.1 用户
2.1.0 创建用户
create user ifeng identified by 123456

Oracle1 数据库管理_第6张图片

2.1.1 概要文件

每个Oracle数据库都有一个默认的资源概要文件,名为DEFAULT
其中的口令 可以 设置 用户密码错误n次口 账户锁定

Oracle1 数据库管理_第7张图片

Oracle1 数据库管理_第8张图片

Oracle1 数据库管理_第9张图片

2.2 对象

每一个登录的账户都是一个用户对象

Oracle1 数据库管理_第10张图片
未授权的情况下,每个用户只能读取自己的创建的表
授权:

  1. 在Oracle企业管理器 中 找到要管理的用户,
  2. 其他用户(当做一个对象)呈现
  3. 其他对象(用户)的 表 ,给select 权限

Oracle1 数据库管理_第11张图片

2.2.2 模式

组织数据库 对象(用户)的一个逻辑概念,与数据库对象的物理存储无关
一个模式只能属于一个数据库用户,与用户名相同

从一个模式中引用另一个模式的对象(查询另一个用户的表)
可以用 scott.emp 的形式 ,不同模式的对象名字可以重复

2.2.3 模式对象和非模式对象

可以包含在模式中的对象:

  • 索引
  • 触发器

不属于任何模式的对象:

  • 表空间、
  • 用户账户、
  • 角色、
  • 概要文件
2.2.4 默认表空间

逻辑存储

用户的各种模式对象(表、索引、过程、触发器)都放在表空间中
默认为USERS表空间

2.2.5 临时表空间

大量的查询排序 需要 用到临时表
默认为TEMP表空间

2.2.6 SYSTEM表空间

system表空间用来存储数据库系统信息

  • 表、视图 —数据字典
  • 源代码—函数、触发器

2.3 权限

2.3.1 系统权限

对整个数据库的操作能力
Oracle1 数据库管理_第12张图片

2.3.2 对象权限

对某个对象(用户、DB的概念)执行的权限
Oracle1 数据库管理_第13张图片

2.4 角色

利用角色进行管理

很好理解吧,也可以创建自定义的角色

给与用户权限的时候,也可以直接授予 角色
Oracle1 数据库管理_第14张图片

三、SQL

SQL(Structured Query Language)和 PL/SQL(Procedural Language/Structured Query Language)是用于在 Oracle 数据库中进行编程和查询的不同语言。
下面是它们之间的主要区别:

  1. SQL 是一种用于管理和查询关系型数据库的语言。它用于执行操作,如插入、更新和删除数据,以及查询数据。SQL 主要用于处理数据和执行数据库级别的操作,而不是编写复杂的业务逻辑。
  2. PL/SQL 是 Oracle 数据库提供的过程式编程语言,它结合了 SQL 和通用编程语言的特性。PL/SQL 具有变量、条件控制、循环和异常处理等传统编程语言的功能,同时也可以包含 SQL 语句来操作数据库。它允许开发者编写复杂的业务逻辑、触发器、存储过程和函数等。
  3. SQL 主要用于执行查询和数据操作,它强调对数据进行检索和操纵的能力。SQL 语句可以用于从数据库中获取数据、创建表、定义约束、建立索引等。SQL 是一种声明性语言,您只需指定您需要什么,而不需要关注实现的细节。
  4. PL/SQL 是一种完整的编程语言,它具有流程控制、变量和常量、异常处理等编程语言的特性。PL/SQL 强调编写复杂的业务逻辑,可以将 SQL 语句与程序代码结合起来,实现更灵活和强大的功能。

总结来说,SQL 是一种用于查询和操作数据库的语言,而 PL/SQL 是一种过程式编程语言,它在 SQL 的基础上扩展了更多的编程功能。SQL 主要用于对数据库进行操作,而 PL/SQL 则更适合编写数据库应用程序和处理复杂的业务逻辑。

  • DML : Manipulation 操纵 语言
    • insert、update、delete
    • select
  • DDL : Definition 定义 语言
    • create
    • alter
    • drop
    • create/drop index :在表上创建索引
  • DCL : Control 控制语言
    • Grant/Revoke
    • commit/rollback
    • savepoint
    • Lock:对数据库特定部分进行锁定

你可能感兴趣的:(Oracle,数据库)