oracle学习笔记(一)---oracle的简介、入门、scott的介绍

Oracle学习笔记(一)

首先推荐基本书籍: 《Oracle实用教程》、《深入浅出Oracle》

目前主流数据库包括
● 微软: sql server 和 access
● 瑞典MySQL: AB公司 mysql
● ibm公司: db2
● 美国Sybase公司: Sybase
● ibm公司: informix
● 美国oracle公司: oracle

关于DBA认证等级:

oca(oracle初级认证)

ocp(oracle专家级认证)

ocm(oracle大师级认证)


Oracle安装会自动的生成sys用户和system用户: 

(1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install 。
(2)system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager 。
(3)一般讲,对数据库维护,使用system用户登录就可以啦。
也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。

system用户的默认密码:manager

scott用户的默认密码:tiger


oracle的一般常用命令:

1.linesize 说明:设置显示行的宽度,默认是80个字符
show linesize
set linesize 90
2.pagesize说明:设置每页显示的行数目,默认是14 

3.conn 

用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper 

4.disc
说明: 该命令用来断开与当前数据库的连接
5.psssw
说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
6.show user
说明: 显示当前用户名
7.exit
说明: 该命令会断开与数据库的连接,同时会退出sql*plus

创建用户:在oracle中要创建一个新的用户使用 create user 语句,一般是具有dba(数据库管理员)的权限才能使用。
基本语法:create user 用户名 identified by 密码
给用户修改密码:如果给自己修改密码可以直接使用
基本语法:password 用户名
如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限
基本语法:alter user 用户名 identified by 新密码
给用户授权:创建的新用户是没有任何权限的,甚至连登录的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令 revoke。
基本语法: grant 权限/角色 to 用户

oracle数据库启动流程

oracle启动流程-windows下

1) lsnrctl start (启动监听)
2) oradim –startup –sid 数据库实例名
oracle启动流程-linux下
1) lsnctl start (启动监听)
2) sqlplus sys/change_on_install as sysdba (以sysdba 身份登录,在oracle10g后可以这样写)
sqlplus /nolog
conn sys/change_on_install as sysdba
3) startup

连接我自己的oracle数据库:

SQL> show user;
USER 为 " 显示自己当前使用的用户 "
SQL> conn system/0108;
已连接。
SQL> grant connect to creep;
授权成功。
SQL> conn creep/0108;
已连接。

关于授权的例子:

*希望xiaoming用户可以去查询scott的emp表
  grant select on emp to xiaoming
* 希望xiaoming用户可以去修改scott的emp表
  grant update on emp to xiaoming
* 希望xiaoming用户可以去修改/删除,查询,添加scott的emp表
  grant all on emp to xiaoming
* scott希望收回xiaoming对emp表的查询权限
  revoke select on emp from xiaoming


丢失管理员密码怎么办?
恢复办法:把原有密码文件删除,生成一个新的密码文件。
恢复步骤如下:
① 搜索名为 PWD 数据库实例名 .ora 文件
② 删除该文件,为预防万一,建议大家备份
③ 生成新的密码文件,在dos控制台下输入命令:
orapwd file=原来密码文件的全路径\密码文件名.ora password=新密码 entries=10;//entries:允许几个特权用户
密码文件名 一定要和原来的密码文件名一样。


关于oracle的scott表简单介绍各个字段:
emp:雇员表
clerk  普员工
salesman 销售
manager  经理
analyst 分析师
president  总裁
mgr  上级的编号
hiredate 入职时间
sal 月工资
comm 奖金
deptno 部门
dept:部门表
deptno 部门编号
accounting 财务部
research  研发部
operations 业务部
loc 部门所在地点
salgrade:工资级别
grade    级别
losal    最低工资
hisal    最高工资

number(5,2)
表示一个小数有5位有效数,2位小数 。范围 -999.99~999.99
number(5) <=> number(5,0)
表示一个五位整数,范围 -99999~99999。

sql 函数的使用
日期函数:sysdate: 该函数返回系统时间
(1)add_months(d,n)
(2)last_day(d):返回指定日期所在月份的最后一天
默认情况下日期格式是dd-mon-yy 即7-10月-14
系统 函数: sys_context
(1) terminal :当前会话客户所对应的终端的标识符
(2) lanuage: 语言
(3) db_name: 当前数据库名称
(4) nls_date_format:当前会话客户所对应的日期格式
(5) session_user: 当前会话客户所对应的数据库用户名
(6) current_schema: 当前会话客户所对应的默认方案名?
(7) host: 返回数据库所在主机的名称。

建立一个保存点(回滚点)
savepoint a --->相当于建立一个保存点a
rollback to a ---> 相当于回到操作a时 的内容

查询为空的内容时:is null
查询不为空时:is not null


修改Tomcat的端口号:
在Tomcat的安装目录下找到一个conf目录-----在找到server.xml文件-----打开文件,找到port关键字  8080 ------修改成另一个端口号即可

Clear 清屏命令

数据分组 ——max,min, avg, sum, count

问题:如何显示所有员工中最高工资和最低工资?
SELECT MAX(sal),min(sal) FROM emp; 
问题:如何显示所有员工中最高工资和最低工资?
SELECT MAX(sal),min(sal) FROM emp;
问题:查找已经入职8个月多的员工
SQL> select * from emp where sysdate>=add_months(hiredate,8);
问题:显示满10年服务年限的员工的姓名和受雇日期。
SQL> select ename, hiredate from emp wheresysdate>=add_months(hiredate,12*10);
问题:对于每个员工,显示其加入公司的天数。
SQL> select floor(sysdate-hiredate) "入职天数",enamefrom emp; 
或者
SQL> select trunc(sysdate-hiredate) "入职天数",enamefrom emp;
问题:找出各月倒数第3天受雇的所有员工。
SQL> select hiredate,ename from emp where last_day(hiredate)-2=hiredate; 
问题:显示薪水的时候,把本地货币单位加在前面
SQL> select ename, to_char(hiredate, 'yyyy-mm-dd hh24:mi:ss'),to_char(sal,'L99999.99') from emp;
问题:显示1980年入职的所有员工
SQL> select * from emp where to_char(hiredate, 'yyyy')=1980; 
select sys_context('USERENV','db_name') from dual; 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值