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;
分享到:
相关推荐
本文将介绍Oracle数据库的一些基本操作,包括服务的管理和SQL Plus的使用,以及如何创建、查询、插入、更新、删除数据,以及表的导入和导出。 首先,确保Oracle服务正在运行。在Windows系统中,可以通过“控制面板...
通过深入学习并实践这个"Oracle入门教材合集",你不仅能够掌握Oracle数据库的基本操作,还能建立起对数据库管理系统的整体理解,为进一步深入学习Oracle的高级特性和成为专业的DBA奠定坚实基础。记得理论结合实践,...
"Oracle入门及提高"的讲义涵盖了多个关键主题,帮助初学者和有经验的用户深化对Oracle的理解。 首先,我们从基础开始,"01-安装Oracle软件及创建数据库.ppt"讲解了如何在不同操作系统上安装Oracle软件,并详细阐述...
首先,Oracle入门阶段,你需要理解数据库的基本概念,如数据库是什么,为什么需要数据库,以及Oracle数据库与其他数据库系统的区别。Oracle使用SQL(结构化查询语言)进行数据操作,因此你需要熟悉SQL的基本语法,...
掌握这些基本操作对于任何想要在Oracle环境中工作的人员都是至关重要的。理解权限的概念和管理方式能够帮助构建安全、高效的数据库环境,避免数据泄露和误操作。随着经验的积累,你将能够熟练地应对更复杂的数据库...
总的来说,"Oracle入门很简单03"的视频课程可能会涵盖这些基础知识,并以实践操作的方式帮助初学者快速掌握Oracle的基本操作。通过这样的学习,即使没有数据库背景的人也能逐渐理解并运用Oracle进行数据管理和开发...
《Oracle 入门心得》这本书可能是为了帮助初学者理解和掌握Oracle数据库的基础知识和操作技巧而编写的。下面将根据标题和描述,深入探讨Oracle数据库的一些核心概念和关键知识点。 1. **Oracle数据库基础**:Oracle...
2. SQL简介:学习SQL(结构化查询语言),它是与数据库交互的基础,包括SELECT、INSERT、UPDATE、DELETE等基本操作。 3. 数据类型:熟悉Oracle支持的数据类型,如NUMBER、VARCHAR2、DATE等,以及它们的使用场景。 4....
理解这些基本操作对于后续的数据库管理至关重要。 三、SQL基础 SQL(结构化查询语言)是用于管理和处理数据库的标准语言。学习Oracle,你需要掌握如何使用SQL进行数据查询、插入、更新和删除操作,以及如何创建、...
文档《oracle数据库从入门到精通.pdf》详细地介绍了Oracle数据库的基础知识和高级操作,使得学习者能够从基础的表空间创建到存储过程的编写,以及游标的应用等高级特性有深入理解和掌握。 首先,文档指出了创建表...
本文将深入探讨Oracle的基础知识,包括Oracle认证、用户管理和基本命令的使用。 首先,Oracle认证是衡量数据库管理员(DBA)技能的标准之一,对于想要在Oracle领域深化的人来说,获得Oracle认证是一个重要的里程碑...
Oracle入门教程是一套专为初学者设计的28本完整教程集合,旨在帮助读者逐步掌握Oracle数据库的基础知识和操作技能。Oracle,作为全球最广泛使用的数据库管理系统之一,其功能强大,适用范围广泛,从中小型企业到大型...
在了解了 Oracle 的基本概念和安装步骤后,让我们深入了解 Oracle 的一些基本概念。数据库是 Oracle 的物理存储单元,它包括数据文件(ORA 或者 DBF)、控制文件、联机日志、参数文件等。实例是一个 Oracle 实例...
数据表是存储数据的基本单元,学习如何创建、修改和删除数据表是Oracle入门的关键。使用SQL DDL(数据定义语言)语句,如CREATE TABLE、ALTER TABLE和DROP TABLE,可以实现这些操作。同时,理解索引的概念和用途,...
总的来说,Oracle入门需要掌握的基本知识点包括:Oracle数据库的基础概念、安装配置流程、SQL语法和PL/SQL编程,以及常用的数据库管理工具。通过不断实践和学习,你将能够熟练地运用Oracle解决实际问题,为你的IT...
学习Oracle首先要掌握SQL的基本操作,如创建表、插入数据、查询数据、更新数据和删除数据等。 3. **PL/SQL编程**:PL/SQL是Oracle特有的过程化语言,它扩展了SQL的功能,允许编写复杂的存储过程、函数、触发器等。`...
总的来说,Oracle入门并不复杂,关键在于理解数据类型的基本概念和常用函数的用法。通过实践和练习,你可以快速掌握这些技能,并在Oracle数据库的世界中稳步前进。在后续的学习中,你还将接触到更多的数据库概念,如...