Oracle期末复习

Oracle期末复习

1.引言

本部分介绍大型数据库和云计算相关概念,了解云数据库关系型数据库的基本常识

2.Oracle 12c 数据库的管理

  • 1.创建/删除数据库表空间
create tablespace test1 datafile '/u01/app/oracle/test1.dbf' size 200M;

drop tablespace test1 including contents and datafiles;
  • 2.数据库实例的含义
一个完整的Oracle数据库包括两个部分:数据库和数据库实例

💎数据库是存储数据的多个物理文件的集合,如控制文件,数据文件,参数文件,日志文件,临时文件等 ,它是静态的、永久的,只要文件存在它就存在。数据库名(db_name)就是对数据库的标识。

💎Oracle实例是一个进程。就是由内存空间和工作进程两部分组成。我们只能通过实例操作数据库,同一时间,一个实例只能打开一个数据库,也就是一个实例只能操作或管理一个数据库,但一个数据库可以被多个是实例打开。
  • 3.容器数据库及可插拔数据库的区别以及基本使用
💎容器数据库是Oracle 12c引入的新特性,允许容器数据库(Container Database)中创建并维护多个数据库,这样的数据库被称为PDB(Pluggable Database)
💎基本使用
# 以DBA连接
sqlplus sys/oracle@//localhost:1521/orcl as sysdba
# 查看当前数据库
show con_name
# 查看数据文件,日志文件,控制文件
select * from v$logfile;
select * from v$tablespace;
select * from v$controlfile;
# 切换数据库
alter session set container=pdb;
# 创建pdb
create pluggable database pdb1;
# 打开关闭指定的pdb
alter pluggable database pdb1 open;
# 切换pdb
select status from v$instance;
  • 4.oracle监听程序的管理
lsnrctl status 查看运行状态
lsnrctl stop 停止监听
lsnrctl start 启动监听
  • 5.数据库网络配置
打开图形化工具,进行点着修改
  • 6.数据库管理工具的基本使用(Sqlplus,sql developer)
  • 7.数据对象,数据字典,数据库存储结构的理解
数据对象:而单独的一张表就称为数据对象
数据字典:数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述
数据库存储结构:
	逻辑结构:
		1、数据库集群-Database cluster
    2、数据库-Database
    3、表空间-tablespace
  物理结构:
  	一个tablespace对应一个目录,存储在文件内,并建立索引
  • 8.用户的增加删除,权限的赋予
#创建用户
create user steveyu identified by "Root123.." default tablespace test;
#给用户授予权限
grant create session to steveyu;
grant connect,resource to steveyu;
grant dba to steveyu;
grant resource to steveyu;
#删除用户
drop user steveyu cascade;

3.SQL基础

  • 1.表操作
1.创建表
create table A(
  id int,
  name varchar2(10),
  money number(7, 2),
  birth date,
  birthtime timestamp
)
2.删除表
drop table A;
3.查看表结构
desc A;
4.增加数据
insert into A values(1, 'hi')
5.修改数据
update A set id=2 where name='hi';
6.查询数据
select * from A;
7.删除数据
delete from A where id=2;
8.约束
create table money(
	amount int primary key
);
create table people(
	id int not null,
	name varchar2(10),
	identity varchar2(20) unique,
	constraint pri_id primary key(id)
)
9.函数

字符函数
 --cancat  连接字符串
 select concat('hello','oracele') from dual;
 或者
 select 'hello'||'oracele' from dual;
 --lpad() 左填充
 select lpad('abc',5,'*') from dual;
 --rpad() 右填充
 select rpad('abc',5,'*') from dual;
 --lower() 小写字母
 select lower(ename) from emp;
 --upper() 大写字母
 select upper(ename) from emp;
 --initcap() 首字母大写,其余小写
 select initcap(ename) from emp;
 --length() 字符串的长度
 select length(ename) from emp;
 --substr(字符串,开始位置,长度) 截取字符串
 select sunstr(ename,0,2) from emp;
 --instr(字符串,字符) 查看字符是否在字符串中存在,不存在返回0;存在则返回字符所在的的位置
 select instr('abc','a') from dual;
 --TRIM(字符 FROM 字符串)  去掉字符串首尾的字符
 select ename,trim('S' from ename) from emp;
 --to_char() 将其他类型转成字符类型
 select  to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;
 --查看是否有人今天过生日
 select * from emp where to_char(hiredate,'mmdd')=to_char(sysdate,'mmdd');
 --to_date() 把其他类型转换为日期类型
 update emp set hiredate=to_date('2009-10-1','yyyy-mm-dd') where empno=9000;
 --replace(字符串,字符串1,字符串2)  将字符串中的字符1替换成字符2;
 select replace(ename,'S','*') from emp;
 --translate(字符串,字符串1,字符串2)  按位逐个替换
 select translate(ename,'abc','123') ename from emp;
 --ASCII(char) 求字符的ascii码 
 select ascii('A') from dual;

日期函数

--ADD_MONTHS(日期,数字) 在已有的日期上加一定的月份;
select add_months(sysdate,1),sysdate from dual;  
--把天数加一
select sysdate,sysdate+1 from dual;
--用系统时间减去一个日期
select sysdate-to_date('2018-7-8','yyyy-mm-dd') from dual;
--LAST_DAY(日期) 求出该日期的最后一天.
select last_day(sysdate) from dual;
--MONTHS_BETWEEN(日期1,日期2) 求出两个月之间的天数(注意返回的天数为小数)
select months_between(sysdate,'8-7月-2020') from dual;
--NEXT_DAY(d,char) 返回d指定的日期之后并满足char指定条件的第一个日期 
select next_day(sysdate,'星期一') from dual;
--NVL(字符串,替换字符) 如果字符串为空则替换,否则不替换 
select ename,nvl(comm,0) from emp;
--如果不为空,就显示第一个数据,为空时显示第二个数据
select ename,nvl2(comm,0,100) from emp;

4.pl/sql编程

  • 1.plsql基础语法(变量定义声明,运算符,选择循环,异常处理,记录类型(索引、嵌套表、可变数组),游标
  • 2.子程序的定义和使用(存储过程、存储函数)
  • 3.包的定义使用(如何建立包,运用包管理程序,常见的系统包和运用)

1.插入一条记录并显示

DECLARE

   Row_id UROWID;

   info    VARCHAR2(40);

BEGIN

       INSERT INTO dept VALUES (90, ‘SERVICE’, ‘BEIJING’)

         RETURNING rowid, dname||’:’||to_char(deptno)||’:’||loc

                     INTO row_id, info;

       DBMS_OUTPUT.PUT_LINE(‘ROWID:’||row_id);

       DBMS_OUTPUT.PUT_LINE(info);

END;

5.熟练对scott用户表结构进行处理

posted @ 2020-07-04 17:43  SteveYu  阅读(353)  评论(0编辑  收藏  举报