码迷,mamicode.com
首页 > 数据库 > 详细

oracle基础操作(1)

时间:2015-05-10 18:48:50      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

以前只是简单用程序操作数据,现在才发现自己没有系统的学习过,所以想在这里记录一下自己在数据库方面遇到的问题,会参考查询网络上一些资料,现在看的是韩顺平oracle视频的笔记;

一、关于oracle系统的一些常用操作

1、oracle安装时会自动生成sys和system用户,sys是超级用户,具有最高权限,具有sysdba角色,有创建数据库的权限,默认密码是:change_on_install;system是管理操作员,具有sysoper角色,没有创建数据库的权限默认密码是:manager;

2、desc 表名;查看表结构时:使用Command window(命令窗口),不是SQL Window

3、常用关于表查询

select table_name from user_tables; //当前用户的表

select table_name from all_tables; //所有用户的表
select table_name from dba_tables; //包括系统表(需要用户权限)
select * from user_tab_columns where table_name=‘表名‘

4、set timing on;(命令窗口)打开显示操作时间的开关

5、sql*plus常用命令:

conn 用户名/密码 [as sysdba/sysoper] 对应的是disc
psssw 修改用户密码,需要用SYS/SYSTEM登陆
show user 显示当前用户

6、用户管理

创建用户:create user 用户名 identified by 密码; (密码以字母开头)
给自己修改密码:password 用户名;
给别人修改(有dba权限):alter user 用户名 identified by 新密码
删除用户:drop user 用户名 【cascade】(用户创建了表时,带cascade参数-级联删除该用户的所有对象)

7、权限

oracle的权限分为系统权限和对象权限:
系统权限:用户对数据库的相关权限(角色)
grant connect to scott with admin option;(system给scott用户connect角色)
对象权限:用户对其他用户的数据对象操作的权限(select,insert,update,delete,all)
grant select on emp to scott;(赋给scott用户查询emp的对象权限)
grant all on emp to scott;(赋给scott用户查询,修改,删除,添加emp的对象权限)
revoke select on emp from scott;(撤销scott用户对emp表的select对象权限)

8、给用户解锁:

alter user scott account unlock;

二、简单使用查询

(1)distinct 取消查询结果的重复行,distinct紧跟在selectt之后
(2)使用连接字符串(||)
select ename || ‘ is a ‘ || job from emp
(3)查询中,别名需要使用“”号圈中文,英文用‘’
(4)查询时,若列里有一个分组函数,其他的都必须是分组函数,否则就出错
select ename, max(sal) from emp;
分组查询时,分组字段可以和分组函数一起出现在查询列里
SELECT AVG(sal), MAX(sal), deptno FROM emp GROUP by deptno;
分组函数只能出现在选择列表、 having、 order by 子句中(不能出现在 where中)

三、连接查询:

Book表:BookId,BookName,StudentId
Student表:StudentId,StudentName

(1)默认查询:select * from book b,student s where b.studentid=s.studentid

内连接:select * from book b inner join student s on b.studentid=s.studentid

(2)左外连接:select * from book b left join student s on b.studentid=s.studentid
以Book表的b.StudentId为基准,遍历Student表中与之匹配的s.StudentId:若b.StudentId含有s.StudentId匹配项,则
进行拼接,然后遍历Student表的下一条s.StudentId,当查询完毕则进入下一条b.StudentId。若b.StudentId没有相应
s.StudentId匹配项时,则显示左表的项,拼接右表的项显示为NULL。

select * from book b left join student s on b.studentid=s.studentid where b.studentid=s.studentid

select * from book b,student s where b.studentid=s.studentid

(3)union用于合并多个select语句的结果,要求select查询的列相同(自动取消重复行);
union all不取消重复行

 

oracle基础操作(1)

标签:

原文地址:http://www.cnblogs.com/xyl-share-happy/p/4492523.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!