oracle的数据结构与增删改总结
来源:互联网 发布:网络中立原则 编辑:程序博客网 时间:2024/06/05 10:57
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 可做索引的最大长度749NCHAR 根据字符集而定的固定长度字符串 最大长度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 studentdelete 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;查看存储过程
- oracle的数据结构与增删改总结
- 基本 Oracle 增删改查 --自己总结的
- oracle视图的增删改
- oracle的增删改查
- 触发器的增删改(oracle)
- 【数据结构】顺序表的增删改查
- 【数据结构】单链表的增删改查
- 数据结构JAVA数组的增删改查
- 数据结构顺序表的增删查改
- oracle的CRUD(增删改查)
- oracle三层带参数的增删改
- Oracle对字段的增删改指令
- 常用的oracle增删改查语句
- [Oracle]表的增删改查
- Oracle 表空间的 增删改查
- oracle字段,表的增删改查
- oracle的触发器增删改实例
- Oracle数据库的增删改操作介绍
- PAT-1002B 写出这个数 (20)
- CentOS7下使用yum在线安装Mysql和配置mysql
- UIFramework之事件系统实现
- unable to access 'https://github.com/caskroom/homebrew-cask/': SSLRead() return error -9806
- Ubuntu 16.04 LTS 安装搜狗拼音输入法
- oracle的数据结构与增删改总结
- IOS 获取手势点击的坐标
- sbt使用及配置
- java 启动线程三种方式
- 在回调或者是子线程后面imgaview.setVisibility(View.VISIBLE)无法显示问题
- -save-dev 与 -save的区别
- PopupWindow怎么用?
- 如何将ArrayList<String>中的值放到ListView中??
- HTTP状态码