- 1
- 0
- 约2.96千字
- 约 7页
- 2017-01-19 发布于重庆
- 举报
oracle數据库学习笔记(积累)
1、在开发环境中连接到数据库,进行基本的select查询操作;
2、熟悉plsql的使用;
3、熟悉sqlplus相关命令(登录、查询、导入导出等)
登录sqlplus:
第一:使用dos窗口登录sqlplus
Sqlplus 用户名/密码@数据库实例名
Sqlplus system/密码@数据库实例名 as sysdba
第二:使用oracle自带的一个sqlplus登录,提供界面,显得更简单一些。
显示当前用户名:show user;
创建一个用户:create user 用户名 identified by 密码;
给用户赋予登录的权限:grant connect to 用户名;(此时才可以使用这个用户来登录这个数据库。)
给其赋予dba的权限。
修改用户的密码:alter user 用户名 identified by 新密码;
查询:
Select * from t_user;
Select id from t_user;
Select name from t_user;
Select birthday from t_user;
Select id,name from t_user;
导入导出:
导出表:
(注意,导出表的exp命令不是在sqlplus下使用的,是在dos窗口下使用的命令。)
exp userid=test/sa@test tables=(qx) file=d:\e1223.dmp
exp userid=test/sa@test tables=(t_user,qx) file=f:\test.dmp
导出方案:
Exp userid=test/sa@test owner=test file=f:\test2.dmp
导出数据库:
Exp userid=test/sa@test full=y inctype=complete file=f:\all.dmp
导入表:
下面以一个例子来说明:
看下面的图,我的用户名test,密码sa,数据库实例名test,所有的表都在这里
现在我执行导出表JD的操作:exp userid=test/sa@test tables=(jd) file=f:\jd.dmp
在我的f盘下就出现了这么一个.dmp文件
现在我删除test数据库中的jd文件
现在表JD已经从数据库中删除了
下面我执行表jd的导入操作(就是把表JD导入到我们的test数据库实例中去):
imp userid=test/sa@test tables=(jd) file =f:\jd.dmp
然后重新刷新我们的数据库中的表,看到jd表被导入进来了。Ok。
导入方案:
4、数据较复杂的查询(关联查询、多表查询、子表查询等)
新建的两张表(包括已经插入的数据):dept和emp如下:
多表查询:
外连接查询:例子,查询员工表,显示员工姓名,部门名称,部门位置,即使该员工还没有部门。此时使用内连接查询时不可以的,所有使用左连接查询(查询左边表中所有的数据,无论其在右表中是否相对应的数据)
select a.empname,b.deptname,b.deptlocfrom emp a left outer join dept b
on a.deptno=b.deptno
右连接查询:(查询右边表中的所有的数据,无论其在左边表中是否有相对应的数据)查询所有的部门,显示部门名称,部门人员信息(姓名,工作)无论该部门是否有人员。现在我们新建一个部门(无名氏),该部门没有任何的人员。查询语句如下
select a.deptname,b.empname,b.jobfrom emp b right outer join dept aon a.deptno=b.deptno
全连接(左右连接) 查询两个表中所有的记录
select a.deptname,b.empname,b.jobfrom emp b full outer join dept aon a.deptno=b.deptno
上面的左右连接也可以使用+来代替,如下的查询
select a.empname,b.deptnamefrom emp a,dept bwhere b.deptno=a.deptno(+)和
select a.empname,b.deptnamefrom emp a,dept bwhere b.deptno(+)=a.deptno分别表示查询所有部门和所有人,无论该部门是否有人,或者某个人时候是某个部门的。当然,使用+不能表示full的情况。
Union的使用(查询结果的联合)
原创力文档

文档评论(0)