Oracle/PL/SQL数据库基础操作(持续更新)

前言

        PL/SQL不是一个独立的编程语言;它是Oracle编程环境中的工具。 SQL* Plus是一个互动的工具,它可以在命令提示符下键入SQL和PL/SQL语句。这些命令发送到数据库进行处理。语句处理之后将结果发回,并在屏幕上显示出来。

分类命令
DDLcreate:创建;drop:删除;alter:修改;rename:重命名; truncate:截断;
DMLinsert:插入;delete:删除;update:更新;select:查询;
DCLgrant:授权;revoke:回收权利;commit:提交;  rollback:回滚事务;

一、基本操作

1.数据库操作

登录方式:第一种:命令行输入sqlplus再输入用户名和密码连接数据库;

                  第二种:命令行输入sqlplus/NOLOG,再输入conn 用户名/密码 as sysdba;

可以输入show user查看当前用户(下图显示为SYS即为超级用户,超级用户拥有所有权限);

9d4b9b55283d4926a0fe4cbb0cb7c91d.png

若不是SYS超级用户,可输入conn  as  sysdba;连接到超级用户;

8f5a2ac4f22645a6bd70fa05944a4c8a.png

启动数据库实例

startup;

卸载数据库

shutdown immediate

新建表空间

create tablespace 表名 datafile '创建表的路径 + 表名(后缀为.dbf)' size 空间大小;
例如:
create tablespace scott_tb_space datafile 'C:/Users/ZH/Desktop/demo/scott_tb_space.dbf' size 2m;

此时就创建了一个scott_tb_space.dbf的数据表空间

1d7c5d3fed3c43e8aa0aa3ee1c1dd5d2.png

新建用户和密码

create user 用户名 identified by 密码 default tablespace 表空间名称;
示例(表空间scott_tb_space创建了用户'zmd' 密码是'123')
create user zmd identified by 123 default tablespace scott_tb_space;

提升普通用户权限

grant dba to 想授权的用户名;

切换用户

conn 用户名/密码 as sysdba;

查看哪些用户拥有sysdba、sysoper权限

select * from V_$PWFILE_USERS;

进入某个数据库

database 数据库名;

查看当前库的所有数据表

select * from all_tables;

查看表结构 

desc 表名;

2.数据表操作


(1)  select查询

 查询表的所有字段(PL/SQL按f8运行命令)

select * from 表名;

基本查询

select  查询的信息  from  数据来源
查询demo表所有信息: 
select * from demo;(*号表示查询所有信息)
查询demo表的name和age :
select name, age from demo;

去重(不影响原数据,仅查询信息去重)

select  distinct  查询的信息  from  数据来源
查询demo表中name,lage但不显示重复信息:
select distinct name,age from demo;

取别名(不影响原数据,仅查询信息取别名)

select 查询信息 别名 from 数据来源
或
select 查询信息 as 别名 from 数据来源
示例:
select name 名称 from demo;

参考图: 

10b9d70e05644713beec6ffa8b41be12.jpg

排序(不影响原数据,仅查询信息排序)

升序
select 查询信息 from 数据来源 order by 查询信息 asc;
降序
select 查询信息 from 数据来源 order by 查询信息 desc;

参考图: 

 da8004c2d67d4667a72a5881f9ee4985.jpg

多字段排序

升序
select 查询信息 from 数据来源 order by 查询信息 asc, 查询信息 asc/desc;
降序
select 查询信息 from 数据来源 order by 查询信息 desc, 查询信息 asc/desc;

参考图:

ce721d9a71724de3bf85b6d18f56731f.jpg

(2)  伪列和表达式

伪列:查询不存在的列。当所需结果不能直接获取,需要通过计算时可以使用伪列。

select 查询信息,伪列 from 数据来源;

 参考图:

819f87e8134a4bcbb556177075892dd5.png

nvl()运算遇空(null)

相加遇到空数据时结果为空。示例:

07cee76911114890b12039d8aeff3ef2.png

 需要用nvl()函数, nvl(不为空数据,为空时数据返回0)。示例:

4df376af93a94deda6e561162d2dfb26.png

排序遇空(null)

nulls first空数据在最上面 / nulls last 空数据在最下面。示例:

cd2f359069d24e7095ff67ca0cf246cb.png

字符串拼接 

使用‘ || ’符号拼接数据。示例:

55eb17393b7a47d6bd4af96660cd5eae.png

(3)  虚拟表

语法:dual     例如 select 999*666 from dual:

00efa5c06eeb417f9e808f3ca64f040b.png

(4)  条件查询

语法:select 查询内容 from 数据来源 where 条件

例如查询性别男的同学:   select name from emp where sex = ‘男’;

除 '=' 符号外,还有 '<'  ,  '>'  ,  '!=' 等。

between  and 表示值在一定范围内

例如查询2000~4000内的数据:select * from emp where name between 2000 and 4000;

in  查询符合条件的数据

例如查询年龄18,20,30的人:select * from emp where sex in(18,20,30);

(5)  条件连接运算符

and 表示条件同时满足

例如查询年龄大于20,性别为女的数据:

select name from emp where sex = ‘女’ and age > 20;

or表示满足任意一个就行

例如查询年龄大于20,或者性别为女的数据:

select name from emp where sex = ‘女’ or age > 20;

not取反

例如查询年龄不为20的数据:

select name from emp where not age = 20;

is null  查询空数据

is not null 查询不为空的数据

(6)  like模糊查询

语法:like '%查询数据%'          (百分号表示模糊信息)

例如查询名称含 ‘Z’ 的数据:select * from emp like ‘%Z%’;

例如查询名称 ‘Z’  开头的数据:select * from emp like ‘Z%’;

escape()特殊字符查询

例如查询包含%号的数据,直接写like '%%%' 无效;

正确写法:select * from emp like ‘%a%%’ escape('a'); 此时a后面的%代表普通字符;

where子句

例如查询一班所有女生:

select * from emp where age=(select age from emp where class='1');


(以下可应用上方select的去重排序等操作,用法与select一致)

(7)  create创建

create table 表名(字段名 字段类型 可加not null表示该字段不能为空);
示例:
create table ceshi(name varchar2(20) not null);

(8)  alter修改

修改表名

alter table 原表名 rename to 新表名

注意:修改后点击tables刷新一下

添加字段 

alter table 表名 add(字段名 字段类型);

修改字段名 

alter table 表名 rename column 旧字段名 to 新字段名

修改字段类型

alter table 表名 modify(字段名1 新类型1);

删除一个字段

alter table 表名 drop(字段名);

(9)  drop删除

删除一张表

drop table 表名;

(10)  insert插入

插入一条数据

insert into 表名(字段1,字段2,…)values(值1,值2,…);
示例:
insert into cominfo(pno, pname, sex, birthday) values(1004, '李四', '男', '1998/1/4');
或
insert into cominfo values(1004, '李四', '男', '1998/1/4');

(11)  update更新

修改语句

update 表名 set 字段名 = ‘新值’ where 条件
示例:
将小月的性别改为女
update cominfo set psex = '女' where pname = '小月';

(12)  delete删除

删除语句 

delete from 表名 where 条件
示例:
删除编号为1009的同学
delete from cominfo where pno = 1009;

3. 函数

各类函数(可应用所有增删改查) 例:

 字符串转日期函数: to_date(‘日期字符串’,‘日期格式’)

示例:
insert into 表名 values(to_date('1998-01-09 18:20:10','yyyy-mm-dd hh24:mi:ss');


日期类型转字符串: to_ char(字段名 ,日期的字符串格式)

示例:
select 字段名(birthday,'yyyy') from 表名;

(1) 字符函数

concat(x,y)  连接字符串x和y;

instr(x,str,start)  在x中查找str,可以指定从start开始,也可以指定从第n次开始;

length(x)  返回x的长度;

lower(x)  x转换为小写;

upper(x)   x转换为大写;

ltrim(x,trim_str)   把x左边截去trim_str字符串,缺省截去空格;

rtrim(x,trim_str)   把x右边截去trim_str字符串,缺省截去空格;

replace(x,old,new)   在x中查找old,并替换为new;

substr(x,start,length)   返回x的字符串,从start开始,截取length个字符串;

(2) 数字函数

abs(x)   x的绝对值;

ceil(x)   向上取整;

floor(x)   向下取整;

mod(x,y)   对x求y的余数;

(3) 日期函数

sysdate   当前系统时间;

current_date   返回当前系统日期;

add_months(d1,n1)   返回在日期d1基础上再加n1个月后的日期;

last_day(d1)   返回日期d1所在月份最后一天的日期;

months_between(d1,d2)   返回日期d1到日期d2之间的月数;

next_day(d1[,c1])   返回日期d1在下周,星期几(参数c1)的日期;

(4) 转换函数

to_char(x,c)   将日期或数据安装c的格式转换为char数据类型

to_date(x,c)   将字符串x安装c的格式转换为日期;

to_number(x)   将字符串x转换为数字型

(5) 常用组函数

avg()  平均值

sum()   求和

min()   最小值

max()   最大值

count()   统计

注意:null不参与计算

(6) group by分组

语法:select ... from ... group by ...

查询各部门的平均工资:select avg(工资) from emp group by 部门编号;

(7) having组信息过滤

语法:select ... from ... group by ... having ... 

查询各部门平均工资只保留平均工资大于3000的组信息:

select avg(工资) from emp group by 部门编号 having avg(工资)>3000;

注意:where和having可以同时使用;

           where用来筛选行,只能出现行数据;

           having用来过滤组,只能出现组数据;


4. 分页和去重

(1) rownum分页

rownum对每行数据增加编号,从1开始;

86afe4c307634540adf1b33dcca486aa.png

查询前五条数据:select ename, sal, deptno from emp where rownum <= 5;

3d9bb2a649de49c3b4844ab7f6271f20.png

(2) rowid去重

        rowid是一个伪列,它并不实际存在表中,他是oracle在读取表的行数据时,根据每行数据的物理地址信息编码生成的一个伪列。数据库大多数操作都是通过rowid完成的,而且使用rowid进行单记录定位速度是最快的。

        有时数据相同,无法通过distinct和group by去重,rowid具有唯一性,就需要用到rowid了。

例如下图,圈内的数据相同,但rowid不同,此时可以使用rowid去重或进行其他操作。

9c13d65e648d404c9c5892b09b40fdf1.png


5. 表连接查询

查询a和b表数据:select * from a , b;

(1) on连接

on可做等值连接,非等值连接,自连接,可以解决一切连接,关系列必须要区分查询信息。

(2) 92标准

select ... from table1,table2 where table1.xxx and table1.xxx=1;

(3) 99标准

select ... from table1 cross join table2 where ...; 等值连接

select ... from table1 natural join table2 where ...;   自等值连接

select ... from table1 join table2 using(同字段名) where ...; 同名字段等值连接

select ... from table1 join table2 on 连接条件;   on连接

(4) 集合操作

Union 并集(去重)   对两个结果集进行并集操作,不包括重复行,进行默认规则排序;

Union All 全集(不去重)   对两个结果集进行全集操作,包括重复行,不进行排序;

Intersect 交集(找出重复)   对两个结果集进行交集操作,不包括重复行,进行默认规则排序;

Minus 差集(减去重复)   对两个结果集进行差集操作,不包括重复行,进行默认规则排序;


6. DDL操作

(1) 约束

primary key(主键约束)    约束字段唯一且不能为空;

unique(唯一约束)    约束字段唯一,但可以为空;

not null(非空约束)   约束字段不能为空;

foreign key(外键约束)   约束从表数据必须存在主表中;

check(检查约束)   根据自定义条件进行约束,例如设置数据必须在0~100之间;

示例图(倒数第二个写错了,应该是约束唯一,不是非空):

e85605ac22794e8186e9c41279622d83.png

(2) 给出约束名称

语法:...  constraint  约束名称  约束函数。例:

595879eba75149b4b8e1052ebc722be4.png

(3) 启用/禁用约束

enable/disable(启用/禁用)   是否对新变更的数据启用约束;

validate/novalidate(验证/非验证)  是否对表中已客观存在的数据进行约束验证;

注意:这四种状态可任意组合,默认为enable validate

(4) 删除约束

语法:alter table 表名 drop constraint 约束名称;


7. 查看视图结构

查看数据库

show parameter name;

查看数据库(v$database)视图结构

查看数据库结构
desc v$database;
查看数据库结构的字段信息
select 数据结构字段 from v$database;

查看实例(v$instance)视图结构

查看实例结构
desc v$instance;
查看实例字段的信息
select 实例结构字段 from v$instance;

查看v$version视图结构(包含数据库版本信息)

desc v$version;
查看v$version视图结构(一般v$version里只有BANNER一个字段,BANNER包含数据版本信息)

查看数据库版本信息
select banner from v$version;

查看dba_objects视图结构

desc dba_objects;

数据库视图结构各字段含义链接:

Oracle体系结构之Oracle基本数据字典:v$database、v$instance、v$version、dba_objects - ChavinKing - 博客园 (cnblogs.com)

pl/sql 7.1操作手册,文,总共239页 目录 目录.............................................................................................................................................................3 1. 介绍.....................................................................................................................................................9 2. 安装...................................................................................................................................................13 2.1 系统需求......................................................13 2.2 工作站安装....................................................13 2.3 基于服务器安装................................................13 2.4 脚本安装......................................................14 2.5 卸载 PL/SQL DEVELOPER...........................................14 3. 编写程序...........................................................................................................................................15 3.1 创建程序......................................................15 3.2 保存程序......................................................16 3.3 修改程序......................................................17 3.4 编译程序......................................................17 3.5 置换变量......................................................18 4. 测试程序...........................................................................................................................................19 4.1 创建测试脚本..................................................19 4.2 运行测试脚本..................................................20 4.3 变量类型......................................................21 4.4 保存测试脚本..................................................22 4.5 跟踪运行时间错误..............................................23 4.6 包声明和 JAVA 会话声明.........................................23 4.7 查看结果集....................................................24 4.8 查看 DBMS_OUTPUT................................................24 4.9 查看 HTP 输出.................................................24 4.10 调试..........................................................24 4.11 跟踪运行......................................................28 4.12 回归测试......................................................29 5. 优化...................................................................................................................................................30 5.1 使用解释计划窗口..............................................30 5.2 自动统计......................................................31 5.3 PL/SQL 概览图...................................................32 5.4 SQL 跟踪........................................................33 6. 专用 SQL...........................................................................................................................................35 6.1 使用 SQL 窗口.................................................35 6.2 结果格处理..................................................36 6.3 实例模式查询..................................................40 6.4 连接查询......................................................41 6.5 置换变量......................................................42 4 PL/SQL Developer 7.0 用户指南 6.6 更新数据库....................................................43 6.7 查看和编辑 XMLTYPE 列..........................................44 6.8 直接查询导出..................................................44 6.9 保存 SQL 脚本..................................................44 6.10 创建标准查询..................................................45 7. 命令窗口...........................................................................................................................................46 7.1 输入 SQL 语句和命令............................................46 7.2 开发命令文件..................................................47 7.3 支持命令......................................................48 8. 创建与修改非 PL/SQL 对象............................................................................................................51 8.1 定义编辑器..................................................51 8.2 序列定义编辑器................................................63 8.3 同义词定义编辑器..............................................63 8.4 库定义编辑器..................................................64 8.5 目录定义编辑器................................................64 8.6 作业定义编辑器................................................65 8.7 队列定义编辑器................................................65 8.8 队列定义编辑器..............................................66 8.9 用户定义编辑器................................................67 8.10 角色定义编辑器................................................70 8.11 概要文件定义编辑器............................................71 8.12 数据库连接定义编辑器..........................................71 9. 图...................................................................................................................................................72 9.1 创建图......................................................72 9.2 保存和打开图文件............................................75 9.3 更新......................................................75 10. 报告...................................................................................................................................................76 10.1 标准报告......................................................76 10.2 定制报告......................................................77 10.3 变量..........................................................78 10.4 精制版面......................................................83 10.5 风格库........................................................90 10.6 选项..........................................................91 10.7 报告菜单......................................................93 11. 图形...................................................................................................................................................94 12. 工程...................................................................................................................................................97 12.1 创建一个新工程................................................97 12.2 保存工程......................................................98 12.3 添加文件到工程................................................98 12.4 添加数据库对象到工程..........................................98 PL/SQL Developer 7.0 用户指南 5 12.5 用工程项目工作................................................99 12.6 编译工程......................................................99 13. 任务项目.........................................................................................................................................101 13.1 创建任务项目.................................................102 13.2 编辑任务项目.................................................102 13.3 关闭任务项目.................................................103 13.4 删除任务项目.................................................103 14. 窗口、数据库会话和事务.............................................................................................................104 14.1 会话模式.....................................................104 14.2 运行于多路会话或双路会话模式.................................104 15. 浏览对象.........................................................................................................................................105 15.1 使用浏览器...................................................105 15.2 浏览器过滤器.................................................110 15.3 浏览器文件夹.................................................111 16. 首选项.............................................................................................................................................114 16.1 ORACLE - 连接.................................................115 16.2 ORACLE - 选项.................................................116 16.3 ORACLE - 调试器...............................................117 16.4 ORACLE - 输出.................................................118 16.5 ORACLE - 跟踪.................................................119 16.6 ORACLE - 概览图...............................................119 16.7 ORACLE - 登录历史.............................................121 16.8 ORACLE - 提示.................................................122 16.9 用户界面 - 选项.............................................124 16.10 用户界面 - 工具栏...........................................125 16.11 用户界面 - 浏览器...........................................126 16.12 用户界面 - 编辑器...........................................127 16.13 用户界面 - 字体.............................................129 16.14 用户界面 - 代码助手.........................................130 16.15 用户界面 - 键配置...........................................131 16.16 用户界面 - 外观.............................................132 16.17 用户界面 - 日期/时间........................................133 16.18 窗口类型 - 程序窗口.........................................134 16.19 窗口类型 - SQL 窗口.........................................136 16.20 窗口类型 - 测试窗口.........................................138 16.21 窗口类型 - 计划窗口.........................................138 16.22 工具 - 差异.................................................139 16.23 工具 - 数据生成器...........................................139 16.24 工具 - 任务列.............................................140 16.25 工具 - 重新调用声明.........................................140 6 PL/SQL Developer 7.0 用户指南 16.26 文件 - 目录..................................................141 16.27 文件 - 扩展名................................................142 16.28 文件 - 格式..................................................143 16.29 文件 - 备份..................................................144 16.30 文件 - HTML/XML..............................................145 16.31 其它 - 打印..................................................146 16.32 其它 - 更新与消息............................................147 16.33 首选项集.....................................................148 17. 工具................................................................................................................................................150 17.1 浏览器.......................................................150 17.2 查找数据库对象...............................................151 17.3 编译无效对象.................................................152 17.4 导出.......................................................153 17.5 导入.......................................................156 17.6 导出用户对象.................................................158 17.7 文本导入器...................................................159 17.8 ODBC 导入器..................................................163 17.9 数据生成器...................................................165 17.10 比较用户对象.................................................169 17.11 比较数据...................................................171 17.12 事件监视器...................................................173 17.13 会话.........................................................174 17.14 自定义工具...................................................176 17.15 测试管理器...................................................181 18. 编辑器............................................................................................................................................185 18.1 选择功能.....................................................185 18.2 列选择.......................................................185 18.3 指引线.......................................................186 18.4 代码助手.....................................................186 18.5 重新调用语句.................................................187 18.6 专用复制.....................................................188 18.7 前后关系敏感帮助.............................................189 18.8 数据库对象弹出式菜单.........................................189 18.9 解释计划.....................................................189 18.10 宏...........................................................189 18.11 书签.........................................................191 18.12 颜色标记.....................................................191 18.13 代码目录.....................................................192 18.14 代码层次.....................................................193 18.15 超链接导航...................................................193 18.16 导航按钮.....................................................194 PL/SQL Developer 7.0 用户指南 7 18.17 重构.........................................................194 18.18 搜索栏.......................................................195 19. 大数据编辑器.................................................................................................................................197 19.1 编辑纯文本...................................................198 19.2 编辑 RTF.....................................................198 19.3 编辑 XML.....................................................199 19.4 编辑图象.....................................................200 19.5 编辑十六进制数据.............................................200 19.6 调用外部查看器或编辑器.......................................202 20. 查询设计器.....................................................................................................................................204 20.1 创建新的 SELECT 语句...........................................204 20.2 修改现有的 SELECT 语句.........................................208 20.3 处理查询定义.................................................208 20.4 查询设计器首选项.............................................209 20.5 查询设计器插件...............................................210 21. PL/SQL 美化器...............................................................................................................................211 21.1 定义选项.....................................................211 21.2 定义规则.....................................................212 21.3 使用美化器...................................................213 22. 模板.................................................................................................................................................214 22.1 模板窗口.....................................................214 22.2 使用模板.....................................................215 22.3 创建和修改模板...............................................216 23. 窗口列.........................................................................................................................................221 24. 可停放和浮动的工具.....................................................................................................................222 25. 授权.................................................................................................................................................223 25.1 启用授权.....................................................223 25.2 定义授权.....................................................224 25.3 停用授权.....................................................225 26. ORACLE 文件系统 (OFS)...............................................................................................................226 26.1 OFS 管理器...................................................226 26.2 OFS 用法.....................................................228 27. 帮助系统.........................................................................................................................................230 27.1 MS 帮助文件..................................................230 27.2 HTML 手册....................................................230 28. 定制.................................................................................................................................................234 28.1 首选项.......................................................234 28.2 窗口版面.....................................................234 28.3 在线文档.....................................................234 8 PL/SQL Developer 7.0 用户指南 28.4 命令行参数...................................................236 28.5 SQLPL/SQL、命令、JAVA 和 XML 关键词.........................238 28.6 插件.........................................................238
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值