oracle的数据结构与增删改总结

2017-01-04 19:29:18来源:作者:人点击

oracle

oracle安装与结构

oracle的安装

c/s框架

dos命令

配置dos命令:选中两个文件一起解压,配置环境变量 sqlplus scott/tiger@192.168.18.28:1521/orcl orcale客户端工具 pl/sql developer 网页版客户端 缺点:session失效

oracle的删除

删除注册表 关闭服务 删除oracle安装文件的位置, 删除开始菜单oracle的信息

oracle 块大小 8kb

表空间

1个表空间对应多个数据文件

存储用户数据 -> 数据文件中

用户:

指定表空间

角色:开发人员指定resource角色

权限:创建对象权限(表,过程,触发器等)

oracle的数据类型

CHAR 固定长度字符串 最大长度2000bytes

VARCHAR2 可变长度的字符串, 最大长度4000bytes 可做索引的最大长度749

NCHAR 根据字符集而定的固定长度字符串 最大长度2000bytes

NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000bytes

DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS),经过严格测试,无千虫问题

TIMESTAMP 日期(日-月-年) DD-MM-YY(HH-MI-SS:FF3),经过严格测试,无千虫问题 与DATE相比较,TIMESTAMP有小数位秒信息

LONG 超长字符串 最大长度2G,足够存储大部头著作

RAW 固定长度的二进制数据 最大长度2000bytes 可存放多媒体图象声音等

LONG RAW 可变长度的二进制数据 最大长度2G 可存放多媒体图象声音等

BLOB 二进制数据 最大长度4G

CLOB 字符数据 最大长度4G

NCLOB 根据字符集而定的字符数据 最大长度4G

BFILE 存放在数据库外的二进制数据 最大长度4G

NUMBER(P,S) 数字类型 P为整数位,S为小数位

DECIMAL(P,S) 数字类型 P为整数位,S为小数位

INTEGER 整数类型 小的整数

FLOAT 浮点数类型 NUMBER(38),双精度

REAL 实数类型 NUMBER(63),精度更高

sql操作

Oracle的数据类型

表的基本管理(DDL:Data Definition Language)

表的增删改语句(insert,update,delete)(DML:Data Manipulation Language)

增删改的事务操作(DCL:Data Control Language)

表的查询语句基本结构(select)(DML:Data Manipulation Language)

表的基本管理 DDL

DDL主要关键字:create,alter,drop,truncate

创建表:

用 create table 表名(列名 类型 默认值,,,,)

create table student(s_id,s_name,varchar2(20));

命名规范:

不能和oracle关键字冲突 字符的长度不超过30个字符 oracle所有的字符集

给表增加列

alter table student add s_sex char(2);

修改列名

alter table student rename colums column s_age to s_age_new

修改类的类型

alter table student modify s_name varchar2(30);

删除列

alter table student drop column s_age_new;

修改表的名字

rename student to student1;

删除表

drop table student1;

直接从回收站中删除表

drop table student purge;

查看回收站中存在删除的表

select * from user_recyclebin;//user_recyclebin回收站的表名

查看回收站中表的数据 名字用引号引住

select * from “回收站的表名”;

清空回收站的信息

purge recyclebin

从回收站中还原删除的表

flashback table student to before drop;//闪回

销毁创建表

truncate table student;

清空表的记录

truncate table student

delete from student where s_id=102;//会造成碎片

表的重构(清除碎片)

alter table student move;

DML表的增删改

增加数据:

给所有列添加数据

insert into student values(106,’数数’);//保证值的顺序和表的列的顺序保存一致

给指定列添加数据

insert into student(s_id) values(107);

通过子查询给添加数据

insert into student select * from student;

语法:insert into student 子查询

更新表的记录

update student set s_name='利率' where s_id=103;

删除表的记录

delete from student where s_id=103;

select rowid,student.* from student;

清空表的记录

delete (dml) 事务的开始,有条件的删除 truncate (ddl) 事务的结束,删除重建(跟表本身的数据记录没关系)

delete与truncate的区别:

delete逐条删除;truncate先摧毁表,再重建 delete是DML(可以回滚) truncate是DDL(不可以回滚) delete不会释放空间 truncate会 delete可以闪回(flashback) truncate不可以 delete会产生碎片 truncate不会

增删改的事务操作

原子性 一致性 隔离性

持久性

事务的开始,dml语句开始

insert into student values(201,’得到’);//事务开始

事务的结束

显式

commit,提交事务;rollback,回滚事务

2.隐式

1.使用了ddl语句,事务自动提交

2.用户正常退出,事务自动提交

3.用户非正常退出,事务回滚

事务的存储点

delete from student where s_id=107;//事务的提交

savepoint aa; //aa存储点的名字

update student set s_name=’savepoint’;//回滚

rollback to aa;//事务的回顾点

commit;

表的查询 DML

select 语句:

select 列,函数,子查询

from 表1,表2,子查询 或者 from 表1 inner join 表2 on 条件.

where 条件,子查询

group by 分组列,函数

having 条件,子查询

order by 排序

执行顺序:

(7)select (8)distinct

(1)from [left_table]

(3) join

(2)on

(4)where

(5)group by

(6)having

(9)order by

基本查询

查看用户 show user;

查看当前用户创建的所有表的信息 select * from tab;

给列取别名

统计每个部门的人数

select deptno,count(1) as 人数 from emp group by deptno;

as可省略

查询数据字典信息

select * from v$nls_parameters;

修改日期格式

alter session set NLS_DATE_FORMAT=’yyyy-mm-dd’;

between and 查询

select * from emp where sal>=3000 and sal<=5000;

select * from emp where sal between 3000 and 5000; //包含边界

7.去掉重复行 distinct

8. concat(”,”) 连接字符串

select ‘您的名字:’ || ename ‘a’ 名字 from emp;

字符串连接用||符号而不是+

select concat(‘您的名字’,ename) 名字 from emp

9. 模糊查询 like

oracle 关键字,表名,列名不区分大小写,但是表的记录大小写区分

select * from emp where ename like ‘A%’;

select * from emp where ename like ‘%/%%’escape ‘/’;

10. null值的判断

select * from emp where comm is not null;

11. desc 查看对象的定义信息

desc dept; 查看表

desc procedure_name;查看存储过程

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台