设为首页 收藏本站
查看: 936|回复: 0

[经验分享] Oracle 10g数据库管理、应用与开发(二)

[复制链接]
YunVN网友  发表于 2016-8-16 06:47:14 |阅读模式
三、安装成功后进入DOS
界面操作



   

在进行以下操作时,
需启动oracle
服务。

A
、进入sql
界面:开始→运行→cmd
:输入sqlplus
回车,提示输入正确的用户名和密码。

B
、开始→所有程序→
oracle
的开始菜单选项→运行sql
命令→直接采用conn
用户名/
密码 进入。

用户名默认的是 sys
,system


输入正确的用户名及密码即可进入界面。


四、密码修改


当忘记密码时,
可以采用sqlplus sys/aaa as sysdba;
以数据库管理员的身份登录.
如果在本机登录密码可以随意输入。

修改密码:

//
修改system
用户的密码是system


  

alter user system identified by system;
alter user identified by 都是关键字。
五、切换用户操作


 
 
A
、先退出,再登陆。

  
   
exit;
退出。

 
    
1
、登录命令 sqlplus system/system
直接登录

 
    
2
、sqlplus


    
--
提示输入用户名

    
--
提示输入密码

B
、也可以不退出直接在sql
→操作中采用 conn scott/tiger 
conn/
用户名/
密码切换用户

注意:登录的时候没有分号结束。

六、Oracle
中的表是按照用户进行分类的



  
sys
超级用户(
权限最高)


  
system
数据库管理员(
执行大部分管理操作)


七、简单入门命令





select * from tabs;---查询当前用户下有哪些表(多查询出系统表);
select table_name from user_tables; ---查询当前用户下的所有表的名称;
desc 表名 ---查看表有哪些列(表的结构) 



  


  


  
八、创建用户命令


  


A
、连接到用户:SQL> conn system/root


B
、创建用户:SQL> create user scott identified by tiger;


C
、切换用户:SQL> conn scott/tiger    
//
用户切换失败

Not logged on

  
 

备注:出现用户没有session
权限的提示,应当分配session
权限。

  
  


九、分配权限


grant
权限名 to
用户名;



SQL> conn system/root;//第一步切换到管理员
SQL> grant create session to scott; //为用户受权
Grant succeeded//受权成功
备注:当受权成功后,scott
就可以登录,
但是登录后,
当用户创建表时,
也会出现权限不足.
然在oracle
中是通过用户的角色来给用户分配权限的。

十、角色(
一个角色包含多个权限)



  


1
、创建用户(切换到system
管理员中 以system
管理员进行登录)

1)
、Create user
用户名 identified by
密码;(
不能是全数字)


2)
、grant create session,create table,resource to
用户名;//
给用2
、户分配权限

  
3)
、start
目录(D:\emp.sql);
//
注意该文件不能放在桌面 为什么呢(
目录中不能包含空格否则会出现如下错误:


SQL> start C:\a a a\emp.sql;
Error reading file

 
)

3
、完成操作案例:


SQL> conn system/red; //切换到system用户
Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0
Connected as system
SQL> create user redarmychen identified by redarmy; //创建用户并为用户设置密码为redarmy
User created
SQL>  grant connect,resource to redarmychen; //给用户授权 connect,resource
Grant succeeded
SQL> conn redarmychen/redarmy; //切换到新创建的用户中来
Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0
Connected as redarmychen
SQL> start D:\emp.sql;  //导入外部sql文件的方式
SQL> select * from tabs; //查询该用户下面的所有表
SQL> select table_name from user_tables; //查询该用户下的所有的表的名称
TABLE_NAME
------------------------------
PRODUCT
ORDERS
ORDERITEM
TMP
PAGES
STUDENT
COURSE
SC
TEST
DEPT
EMP
SALGRADE
USERS
13 rows selected
SQL> desc product //查看商品表的结构
Name    Type       Nullable Default Comments
----------- ------------ -------- ------- --------
PRODUCTID NUMBER(6)                           
PRODUCTNAME VARCHAR2(30)                           
PRICE     NUMBER(10,2)
1)、SQL Plus常见的命令:
conn切换连接用户
desc显示表结构
host执行操作系统命令
start执行文件系统SQL语句
exit退出
col格式化输出
/执行最近一条SQL或新定义过程
startup启动数据库实例 (DBA)
shutdown关闭数据库实例 (DBA)
2)、采用start命令导入并执行数据库库脚本文件:
SQL> start D:/emp.sql
/ :执行最近一条SQL 例如:

 
十二、Oracle
内置数据类型介绍



   

数据是信息数字表现形式,
信息的加工处理是以大量的结构化数据为载体进行的,
数据库管理系统的核心是数据库,
数据库的主要对象是表,
表是结构化数据存储的地方。

  
Oracle
系统也提供了大量的数据类型主要包括两大类:


1


用户自定义的数据类型

2


内置的数据类型

A
、字符型

字符数据类型可以用于声明包含了多个字母数字数据的字段。

1)
、固定长度的字符类型

char:
用于存储固定长度的字符,
一旦声明长度固定(
不论你存储的实际大小,
但是大小绝对不能大于声明的长度)
长度不足时,
采用空格补充。1B
的默认大小,
最大尺寸为2000B


Nchar
与char
的解析是一样的不过,ncarh
存储的是Unicode
字符数据。

2)
、可变长度的字符类型

varchar2
与char
类似,
但是它是用于存储可变的字符串,
而char
用于存储固定的字符串。

Nvarchar
与varchar
解析是一样的,
不过nvarchar
用于存储的数据位双字节的数据。

B
、日期型

 
 
date
短日期格式(1990-10-10)


 
 
Timestamp
长日期格式(1990-10-10 10:10:10)


C
、数字型

Number(2),
代表:声明一个2
位数字的整数。

Number(3,2)
代表:声明为3
数字位,
并且小数后有2
位。

D
、文本型 


LOB
数据类型

Blob
:可以存储图像,
音频文件及视频等文件。

Clob
:字符格式的大型对象,oracle
数据
unicode

格式的编码

Bfile
:用于存储二进制格式的文件。

E
、rowid
伪劣类型:用于在oracle
内部保存表中的每条记录的物理地址。

十三、SQL
基本查询



   
SQL
是structured Query Language(
结构化查询语言)
的缩写。可以使用sql
语句建立或删除数据库的对象,
插入,
修改和更新数据库中的数据,并且可以对数据库执行各种日常管理的操作。它是所有关系数据库管理系统的标准语言.
换句话说使用sql
可以对所有的关系数据库进行操作。

  
SQL
按照功能分类:

1


数据库定义语句   



DDL
(Data Definition Language
):
用于创建、修改、删除数据库对象。

2


数据库操作语句

DML
(Data Manipulation Language
)用于:查询,添加修改或删除存在数据库对象中的数据。

3


数据库控制语句DCL


DCL(Data Control Language)
用于控制访问数据库中特定对象的用户、grant revoke


Oracle
系统中经过对Sql
语言扩展被称为PL/SQL
语言。

A
、基本的sql
语句:

SELECT
*|{[DISTINCT] column|expression [alias],...}

FROM  
table;


SQL> select * from emp;//查询所有的字段信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp;//查询所有
SQL> select empno from emp;//查询部分字段
SQL> select empno "员工编号" from emp;//采用别名查询
SQL> select empno as "员工编号" from emp;//采用别名查询 等效于上面的效果
SQL> select distinct(hiredate) from emp;//查询所有员工的入职日期并且去掉重复的日期
SQL> select sal+comm from emp;//注意:包含空值的数学表达式求出的结果为空值
SQL> select empno||ename from emp;//||连接符 把empno与ename作为一个字段显示
SQL> select empno||ename  as "员工编号和员工姓名" from emp;//效果同上
SQL> select '员工的编号是'||empno from emp;//字符的链接
SQL> select '姓名为'||ename||'员工,所在的部门是:'||deptno as "新列" from emp;//字段的链接包号字符连接
SQL> select distinct(deptno) from emp;//查询去掉重复行的员工部门编号

 
B
、条件查询

SELECT
*|{[DISTINCT] column|expression [alias],...}

FROM  
table [WHERE 
condition(s)];

Condition(s)
要使用到比较运算符常用的比较运算符如下:

 


操作符





说明





=






等于











大于




>=






大于等于











小于




<=






小于等于




<> 






不等于


等效于
!=





其它操作





And





逻辑与




Or





逻辑或




Not





逻辑否




Between

起始值
and

结束值




使用
BETWEEN

运算来显示在一个区间内的值,包含
(

起始结束值
)





In

:使用
IN

运算显示列表中的值。
In(,,,)

相当于一个集合
,

只要出现集合中匹配的就显示




Like




使用
LIKE

运算选择类似的值




选择条件可以包含字符或数字:


%

代表零个或多个字符
(

任意个字符
)






_

代表一个字符。






Escape




  


回避特殊符号的:使用转义符。例如:将
[%]

转为
[\%]


[_]

转为
[\_]

,然后再加上
[ESCAPE ‘\’]

即可





Null

:使用
IS (NOT) NULL

判断空值。






C
、SQL
语句实例


//查询部门号为10的员工信息  部门为整数类型
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno=10;
//查询职位号为MANAGER的员工信息  岗位的类型为字符类型
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where job='MANAGER';
//查询部门号为10并且员工的职位为MANAGER的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where job='MANAGER' and deptno=10;
注意:



     字符和日期要包含在单引号中。




     字符大小写敏感,日期格式敏感。 




     默认的日期格式是 DD-MON-RR



//查询部门号大于10的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno>10;
//查询薪水大于等于3000的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>=3000;
//查询薪水不等于3000的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal<>3000;
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal !=3000;
//查询薪水大于2000并且小于3000的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>2000 and sal<3000;
//查询薪水大于等于2000并且小于等于3000的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal between 1600 and 3000;
//等效于
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>=1600 and sal<=3000;
//查询部门号位10,20的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno in(10,20);
//注意:相当于如下操作:
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno =10 or deptno=20;
//查询员工名称以S开头的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like 'S%';
//查询员工名称以S结尾的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%S';
//查询员工名称第三个字符为N的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '__N%';
//查询员工名称中含有N的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%N%';
//查询员工名称中倒数第二个字符为%的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%\%_'escape'\';
//查询员工名称总含有%的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%\%%'escape'\';
//查询奖金为null的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where comm is null;
//查询奖金非null的员工信息
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where comm is not null;

  运算符优先级

 



优先级





说明





1




算术运算




2




连接符




3




比较符




4




Is not null like not in




5




Not between




6




not




7




and




8




or




备注:可以采用括号改变优先级



  



 

  
 

  
 
 
  
  
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-258283-1-1.html 上篇帖子: Oracle数据库event事件与dump文件介绍 下篇帖子: 研究Oracle 延迟块清除(defered block cleanout)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表