`
leaf-stop
  • 浏览: 26593 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

Oracle的入门及一些基本操作

阅读更多
Oracle数据库的一些基础操作:


SQL:结构化查询语言,所有的数据库基本都支持标准的SQL语言

DDL:数据定义语言  用户,表空间,表
create  创建
alter 修改
drop 删除


DML:数据操作语言 对表数据的操作
insert into 插入
update 修改数据
delete 删除数据
select 查询数据


TCL:事物控制语言
savepoint 保存点名;  //设置保存点
rollback  保存点名; //回滚到指定的保存点
commit ;//提交事物

DCL:数据控制语言

--创建表
create table student(
userNum number(10),
userName varchar2(20),
userSex char(2)
)

--修改表结构
alter table student modify(userSex char(4));

--查看表结构
desc student;

--sysdate 数据库的当前系统时间

--插入数据到student表
insert into 表名(字段名,字段名...) values (值1,值2...);
如果不写字段名,values的值就是按照创建表的时候的字段顺序给所有字段赋值
insert into 表名 values (所有字段的值);

--查询表中的数据
select 字段名,字段名... from 表名;
--*表示所有的字段
select * from 表名;

--修改语句
update 表名 set 字段=新值,字段=新值 where 字段=值;
update student set usersex='女' where username='王五';

--删除语句
delete from 表名 where 字段=值;
delete from student where usernum=1;

//快速清空所有的数据
truncate table student;

--创建表空间
create tablespace scottSpace datafile 'scottfile';

--克隆表(带数据)
create table empbak as select * from emp;
克隆表结构(不带数据)
create table empbak as select * from emp where 1=2;

--事物:做一件事情所需要的一系列完整的操作
rollback 回滚到最后一次的事物提交点
commit 提交事物,当关闭Oracle客户端的时候,会自动提交
savepoint 设置保存点
rollback to 保存点

--数据控制语言
grant 授权语句

--从结果集中去掉重复的数据 distinct

SELECT * FROM EMP WHERE ENAME LIKE 'M%' ; --模糊查询 % _
SELECT * FROM EMP WHERE ENAME LIKE '____' ; --查询名字为4个字符的数据
SELECT * FROM EMP WHERE ENAME LIKE '%M%'--名字中含有M的数据
SELECT * FROM EMP WHERE ENAME LIKE '%M'; --名字以M结尾的数据
SELECT * FROM EMP WHERE SAL>ANY(2000,3000,4000);--比任意的一个都大即可
SELECT * FROM EMP WHERE SAL>ALL(2000,3000,4000);--比所有的都大才行
SELECT * FROM NEWER_T WHERE BD IS NOT NULL ;--不为空的数据

--对数据进行排序  order by

--------------------------------------------------------------------------
--单行函数
日期函数
--15个月后是什么时候
select add_months(sysdate,15) from dual;

字符函数

将首字母大写:select initcap('hello') from dual;
将大写转成小写:select lower(ename) from emp;

upper('') 将小写转成大写
Ltrim('abc123','abc') 如果参数二中任意一个字符出现在参数一

的左边,就去掉
Rtrim('abc123','123')如果参数二中任意一个字符出现在参数一的

右边,就去掉
Translate('abca','a','b');如果参数二在参数一中出现,就用参

数三代替
replace('','','')如果参数二在参数一中出现,就用参数三代替
instr('abcd','c') 获得参数二在参数一种出现的位置
substr('abcdef',3,2);从第3个字符开始,截取2个字符
Concat('abc','def') 连接两个字符串
CHR(97) 获得数字对应的字符
ASCII('A') 获得字符对应ASCII码
Lpad('abc',10,'*')如果abc不够10位,就在abc的左边加上*
Rpad('abc',10,'*')如果abc不够10位,就在abc的右边加上*
length('') 获得字符串的长度
trim('abcabc','a') 去掉参数一左右两边出现的参数二
decode()


数字函数
abs()绝对值

转换函数
to_char(date,'YYYY-MM-DD');//将日期类型转成字符类型
to_date('2015-10-12','YYYY-MM-DD');//将字符串类型转成日期类


to_number('1234');//将数字字符串转成数字


计算员工的月收入 =月工资+奖金
NVL 函数 :将null值转化成指定的值
select sal,comm,sal+nvl(comm,0) from emp;

NVL2 函数 如果有奖金,就在原奖金的基础上+200,如果没有奖金,就发300的奖金
select ename,comm 原奖金,nvl2(comm,comm+200,300) 应发奖金 from emp;

NULLIF 函数  如果奖金是300,就变为null
select ename,comm,nullif(comm,300) from emp;

--分组函数
COUNT 函数 统计数据
select count(empno) from emp where deptno=10;

统计本月应发的总工资
SUM 函数  求和
select sum(sal) from emp;

计算平均工资
AVG 函数  求平均值
select avg(sal) from emp;

MAX函数 求最大值
获得最高工资
select max(sal) from emp;

MIN函数 求最小值
获得最低工资
select min(sal) from emp;

分组函数不能和单行函数,字段同时使用

--分组语句  group by
select 字段名 as 别名,字段名 as 别名 from 表名 as 别名 where 条件 group by 

having 条件;

统计每个部门每个月发出的工资总和
select deptno,sum(sal) from emp group by deptno;

--分组之前的条件用where语句,
--分组之后的条件用having语句

求出每个经理手下员工的平均工资在2500以上的经理编号及平均工资
select ename,avg(sal) from emp group by mgr having avg(sal)>2500;

分析函数
Row_number:得到连续的数字
Rank   :相同的值排位相同,随后跳跃
Dense_Rank:相同的值排位相同,随后接着往后排
---------------------------------------------------------------------------
操作符
算术操作符   + - * / 
比较操作符    = !=  >  < >= <=
between...and  in   any  all  link
逻辑操作符 and  or  not
连接操作符
union 合并两个查询的结果,去掉重复数据
union all 合并两个查询的结果,保留重复数据
intersect 取两个结果集的交集
minus: 取在第一个结果集中出现但在第二个结果集中没有出现过的数据

--------------------------------------------------------------------
连接查询 分为内连接和外连接

--内连接  INNER JION  ON  只显示两个表中都有的数据

--外连接:左外连接/右外连接/全连接(左右外连接)

--左连接:以左表为主,会显示左表中的所有数据,如果在右表中没有出现这个数据

,则用null代替

--全连接:会显示两个表中的所有数据,如果在另外一张表中没有这个数据,则用

null代替
--------------------------------------------------------------------
定义外键的语法
constraints 外键名称 foreign key(外键字段) references 被引用的表(被

引用字段) on delete cascade;


定义一个私有同义词:
create synonym abc for scott.emp;

删除私有同义词
drop synonym emp;

定义共有同义词
create public synonym emp for scott.emp;
-------------------------------------------------------------
索引:对数据直接定位的
索引是建立在某一个或某几个字段上的
索引的作用就是为了提高查询性能
减少磁盘的IO
索引时由Oralce自动维护的

创建索引
//标准索引
create index aa on emp(ename);
select * from emp where ename="SMITH";

//唯一性索引
create unique index bb on student(sname);


//组合索引
create index cc on student(sname,saddress);

//唯一性组合索引(两个字段的值不能同时相同)
create index cc on student(sname,saddress);

主键会自动的添加唯一性索引
索引并不是越多越好,只需要对经常检索的字段建立索引
-------------------------------------------------------------------
序列:可以产生唯一的,连续的数字的对象
create sequence seq_aa
start with 1   -- 开始数字
increment by 1  --每次增量
maxvalue 200 --最大值
minvalue 1 --最小值
nocycle --当达到最大值的时候就不在生成
cache 10 --缓存10个数字

如何使用索引
查看该索引目前的值
select seq_aa.currvalue from dual;

//将索引先后移动
select seq_aa.nextvalue from dual;
-------------------------------------------------------------------------
视图:相当于一张‘虚拟表’
     是用来显示一张表或多张表的查询的数据的
可以通过视图修改或删除基表的数据
//带检查的视图
create or replace view abc as select empno,ename,job,sal from emp

where ename='SMITH'  with check option CONSTRAINT ename;
在通过这个视图来更新或删除数据的时候,必须要满足where 后的条件,才

有效

创建只读视图
create or replace view abc as select empno,ename,job,sal+nvl

(comm,0) from emp  with read only;
10
1
分享到:
评论

相关推荐

    oracle数据库基本操作入门

    oracle操作入门(SQL Plus;由于时间有限,下面文档可能有不完善之处,欢迎指出):

    Oracle 从入门到精通(视频实战版)

    全书以oracle 11g为例,分为4篇,循序渐进地讲述了oracle 11g的基本语法和基本操作,从数据库的安装开始逐步介绍与数据库交互的语句以及管理数据库中的文件、备份与恢复数据库等操作。在数据库应用篇中,还结合.net...

    Oracle数据库入门基本操作

    Oracle的一些基本的操作小技巧,内容包括用户管理等等。。。

    ORACLE数据库入门.pdf

    ORACLE数据库入门.pdf 基本的链接、权限、及其他基本命令操作

    Oracle 从入门到精通视频教程(11G版本)(ppt)

    能够使用Oracle 11g的基本条件 在Windows 2003上安装Oracle 11g 移除Oracle 11g 第3章-熟悉数据库 什么是数据库 范式,设计关系型数据库的准则 绘制E-R图设计数据库 第4章-SQL基础 SQL-数据库沟通的语言...

    Oracle11g从入门到精通2

    第6章 Oracle的基本操作 6.1 Oracle的启动与关闭 6.1.1 启动Oracle数据库 6.1.2 关闭Oracle数据库 6.2 表的创建与改进 6.2.1 表的基本概念 6.2.2 表结构设计 6.2.3 表的创建 6.2.4 修改表结构 6.3...

    oracle基础入门.pdf

    课程目标: 了解甲骨文公司; ...会进行数据库的基本操作(建立表空间、建立用户、数据的导入导出); 目录: 学习方法及甲骨文简介; oracle体系结构; oracle的安装; oracle基本管理;

    Oracle BIEE 入门基本操作视频教程

    BIEE 提供了许多种报表输出的样式:包括常用的表、数据透视表、各种图表,还有一些不常用的如计量表、叙述静态文本等样式。 视频教程

    oracle从入门到经通PPT

    全书以Oracle 11g为例,分为4篇,循序渐进地讲述了Oracle 11g的基本语法和基本操作,从数据库的安装开始逐步介绍与数据库交互的语句以及管理数据库中的文件、备份与恢复数据库等操作。在数据库应用篇中,还结合.NET...

    oracle基本语法-增删改查-新手入门

    oracle基本操作,常用语法

    Oracle数据库入门教程

    Oracle数据库按装,用户创建,视图,查询等基本操作教程

    ORACLE 数据库入门

    ORACLE 数据库入门,介绍了ORACLE数据库基本操作

    oracle9i入门手册

    介绍了Oracle9i 数据库的基本概念、基础知识、基本操作,及数据库晋级管理等。

    oracle ERP 基本操作手册

    文档介绍了Oracle ERP的基本操作,适合入门级用户使用

    Oracle11g从入门到精通

    第6章 Oracle的基本操作 6.1 Oracle的启动与关闭 6.1.1 启动Oracle数据库 6.1.2 关闭Oracle数据库 6.2 表的创建与改进 6.2.1 表的基本概念 6.2.2 表结构设计 6.2.3 表的创建 6.2.4 修改表结构 6.3 索引 ...

    oracle从入门到精通

    7、连接操作符: || ...................................................................................................................10 8、文本字符串 ................................................

    Oracle 11g 从入门到精通

    第6章 Oracle的基本操作 第7章 Oracle数据库管理操作 第8章 数据库用户管理 第9章 数据库空间管理 第10章 备份与恢复机制 第11章 控制文件及日志文件的管理 第13章 Oracle数据库的安全管理 第14章 留言板系统...

    Oracle 11g 从入门到删库手册

    Oracle 11g 从入门到精通手册,适用于初学Oracle的初学,里面详细介绍Oracle语法基本操作。

    Oracle 傻瓜手册-入门到精通

    Oracle入门到精通的傻瓜手册。本手册介绍Oracle配置的基本方法,描述的是“所然”而不是“所以然”。全部操作以命令行方式出现,不涉及GUI(只有白刃战才是真正的战斗)。鉴于大家对Windows已经十分熟悉,同时为了...

    Oracle_PL-SQL入门教程(经典)

    数据库操作入门教程——SQL基本语句学习

Global site tag (gtag.js) - Google Analytics