Oracle数据库学习笔记

常见的数据库

小型数据库 access(微软)

中型数据库 mysql(瑞典MySql AB) sql server(美微软)informix(美IBM)

大型数据库 sybase(美sybase) oracle(美oracle) db2(美IBM)

Oracle基本操作

一、Oracle数据库基本命令

1.SQL->show user; 显示用户 2.SQL->connscott/tiger;用户连接 3.SQL->disc; 断开连接 4.SQL->passw; 修改密码 5. SQL->exit; 退出 6.SQL->start D:test.sql; 运行D盘下test.sql脚本7.SQL->edit D:test.sql; 编辑D盘下test.sql脚本

8. SQL->spool D:test.sql;

SQL->select * from emp;

SQL->spool off;

二、Oracle管理用户

1.创建用户(以DBA身份)

SQL->create user name identified bypassword(以字母开头)

注意:新建用户默认是没有任何权限的,需要DBA赋予权限(1、系统权限:对数据库的相关权限;2、对象权限:用户对其他用户数据对象(表、视图等)操作的权限)

2. grant赋予用户权限

SQL->grant connect tousername;(把角色connect赋予username(dba 、resource))

SQL->grant select on emp tousername;(emp表的用户scott或sys、system把select权限赋予username)

username 用户可以进行select操作了,SQL->select * fromscott.emp;(查询emp表的内容)

SQL->grant select on emp tousername;(把全部权限赋予)

3.revoke回收用户权限

SQL->revoke select on emp from username;(scott收回用户username对用户scott表emp的select权限(必须是scott赋予username的权限))

4.权限的传递

对象权限:SQL->grant select on emp to username withgrant option;

系统权限:SQL->grant select on emp to username withadmin option;

5.给用户修改密码

SQL->password username;(password scott;sys修改scott密码)

SQL->password;(scott修改自己密码)

6.使用profile管理用户口令

账户锁定

SQL->create profile lockname limitfailed_login_attempts 3 password_lock_time2;(以dba身份)创建配置文件,名字为lockname。

SQL->alter user username profile lockname;

账户解锁: SQL->alter user username accountunlock;

删除profile :SQL->drop profile lockname;

Oracle表的管理

一、表和列的命名规则

· 必须以字母开头

· 不能使用oracle的保留字

· 只能使用A-Z,a-z,0-9,$,#等

· 长度限制为30个字符内

二、oracle的数据类型

1.字符型

char() 定长 特点:查询速度快,效率高 ;浪费空间 最大:char(2000)

varchar2()可变长度 特点:节省空间,效率低 最大varvhar(4000)

clob()字符型大对象 最大4G

2.数字类型

number 可以表示整数和小数

number(5,2)一个小数有5位有效数,2位小数-999.99~999,99

number(5)一个5位整数-99999~99999

3.日期类型

date 包含年月日时分秒

图片类型

blob 二进制数据 可以存放图片、声音

三、表的操作

1.创建表

SQL> create table student (

2 sID number(4),

3 sName varchar2(20),

4 sSex char(2),

5 sBirthday date,

6 sPay number(7,2) 区别于sql server 无逗号。

7 );

Table created

SQL> create table class(

2 cId number(2),

3 cName varchar2(20)

4 );

Table created

2.修改表

添加字段 SQL> alter table student add (cIdnumber(2));

删除某个字段

SQL> alter table student drop column cId;

Table altered

查看表结构 SQL> desc student;

修改字段长度 SQL> alter table student modify (cIdnumber(5);

删除表 SQL> drop table student;

修改表名字 SQL>rename student to stu;

3.添加数据

SQL>insert into studentvalues(1,'小明','男','11-5月-2011',12345.1,12);

1 row inserted

日期格式默认为DD-MON-YY 天-月份-年

可以修改默认日期格式

SQL> alter session set nls_date_format='yyyy-mm-dd';

Session altered

修改一个字段

SQL>update student set sSex='男' wheresId='2';

1 row updated

添加空值

SQL> insert into student (sId,sname,sbirthday)values (4,'小明',NULL);

1 row inserted

查询时注意:SQL> select * from student where sBirthdayis null;

删除数据 SQL>delete fromstudent;删除所有记录,表结构还在,如果再删除之前设置回滚点还可以回滚。

回滚操作

SQL>savepoint a;

SQL>delete from student;

SQL>rollback to a;

· SQL>drop table student;删除表结构和数据

· SQL>delete from student where sId=1;删一条记录

· SQL>truncate tablestudent;删除所有记录,表结构还在,速度快对于大型表适用

oracle 表的基本查询

SQL> set timing on;显示执行时间

SQL> desc dept; 查看表结构

一、单表查询

取消重复行

SQL> select distinct deptno ,job from emp;

NULL处理

SQL>select sal+nvl(comm,0) fromemp;当comm为null时变为0

SQL Server中为select sal+isnull(comm,0) from emp;

where子句

SQL>select ename,hiredate from emp wherehiredate>'1-1月-1989';

like语句

SQL>select ename,sal from emp where ename like'S%';

%:零个或多个字符

_:任意单个字符

逻辑操作符 or and

order by 子句

SQL>select * from emp order by sal;默认为升序

SQL>select * from emp order by sal asc;升序

SQL>select * from emp order by sal desc;降序

使用列的别名排序

SQL>select ename,(sal+nvl(comm,0))*12 as "年薪"from emp order by "年薪" desc;

Oracle复杂查询

max(),min(),avg(),sum(),count()

group by用于对查询结果分组统计

having子句用于限制分组显示结果

SQL>select avg(sal),max(sal),deptno from empgroup by deptno having avg(sal)>2000 order byavg(sal) asc;

二、多表查询

1.笛卡尔积

SQL>select e.ename,e.sal,d.dname from emp e,deptd where e.deptno=d.deptno;

2.自连接

自连接指在同一张表的连接查询

SQL>select worker.ename,boss.ename from empworker,emp boss where worker.mgr=boss.empno;

3.子查询(嵌套查询)

嵌入在其他sql语句中的select语句。

单行子查询

SQL>select * from emp where deptno=(select depnofrom emp where ename='SMITH');

多行子查询

Oracle数据库学习笔记

SQL>select * from emp where job in (selectdistinct job from emp where deptno = 10 );

多行子查询中使用all

SQL>select ename,sal,deptno from emp wheresal>all (select sal from emp where deptno=30);

等价

SQL>select ename,sal,deptno from emp wheresal>(select max(sal) from emp where deptno=30);

多行子查询中使用any

SQL>select ename,sal,deptno from emp wheresal>any (select sal from emp where deptno=30);

等价

SQL>select ename,sal,deptno from emp wheresal>(select min(sal) from emp where deptno=30);

多列子查询

SQL>select ename,sal from emp where(deptno,job)=(select deptno,job from emp where ename='SMITH');

SQL>select a2.ename,a2.sal,a2.deptno,a1.mysalfrom emp a2,(select deptno,avg(sal) mysal from emp group by deptno)a1 where a2.deptno=a1.deptno anda2.sal>a1.mysal;

注意表取别名是不加as,列可以。

SQL> select a2.ename,a2.sal,a2.deptno,a1.mysalfrom emp a2 join (select deptno,avg(sal) as mysal from emp group bydeptno) a1 on a2.deptno= a1.deptno wherea2.sal>a1.mysal ;

4.分页查询

SQL> select * from (select a.*,rownum rn from(select * from emp) a where rownum<=10 ) wherern>=6;

SQL> select * from (select a.*,rownum rn from(select ename,sal from emp order by sal) a whererownum<=10 ) where rn>=6;

5.查询结果创建新表

SQL>create table mytable (id,ename,sal) as selectempno,ename,sal from emp;

合并查询

集合操作符union

union all

intersect

minus 差集

6.创建新的数据库

数据库配置助手Database Configuration Assistant

  

爱华网本文地址 » http://www.413yy.cn/a/25101017/338865.html

更多阅读

oracle数据库基础使用方法 精 oracle数据库基础教程

oracle数据库基础使用方法 精——简介ORACLE 数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的

中小学教师职业道德规范学习笔记

中小学教师职业道德规范学习笔记一、依法执教。学习和宣传马列主义、毛泽东思想和邓--同志建设有中国特色社会主义理论,拥护党的基本路线,全面贯彻国家教育方针,自觉遵守《教师法》等法律法规,在教育教学中同党和国家的方针政策保持一

伤寒学习笔记(下

伤寒学习笔记---14,桂枝用量问题?学习仲景药法,涉及用量问题。深入考证,固然不必,简单了解,实属必要。仅以桂枝为例,整理如下:基本资料:《现代中医药应用与研究大系》1985年版,简称《大系》。药法:凡例里说:“将其折合今之用量---,并结合笔者临床

关于闪光灯TTL的学习笔记

关于闪光灯TTL的学习笔记(转)俺注:一直对加闪光灯的拍摄比较疑惑,要知道并不是加开个闪光就一了百了的。特别是现在的专业闪灯,有好几种模式,都需要配合相机的测光使用。今天无意之间看到一篇解疑的文章,赶紧收集下来仔细学习。想学习下闪

Oracle数据库HA架构方案介绍 oracle数据库架构设计

摘要:Oracle数据库在各类应用系统中负责存储平台所有的用户数据,数据库的可靠性及安全性直接影响平台的安全运行,目前采用的Oracle Replication方式来实现的数据库高可靠性已经显示出了弊端,本文介绍并分析了目前比较流行的几种数据库

声明:《Oracle数据库学习笔记》为网友朕可是太高冷分享!如侵犯到您的合法权益请联系我们删除