当前位置:文档之家› oracle学习

oracle学习

小型数据库:access,foxbase中型数据库:mysql,sql server,informix大型数据库:sybase,oracle,db2该用什么数据库:1.项目的规模:a.负载量多大,用户多大b.成本c.安全性负载量小 100人,比如留言板,信息系统成本1000元内,安全性要求不高(小型)负载量5000--15000 成本在1W以内。

比如商务网站(中型)负载可以处理海量数据,sybase<oracle<db2,安全性高(大型)Oracle 认证dba认证(oca,ocp,ocm) java开发认证网络认证安装oracle(1)准备好你的oracle安装文件Oracle 安装会自动的生成sys用户和system用户(1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认密码是manager (2)System用户是管理操作员,权限也很大,具有sysoper 角色,没有create database的权限。

默认的密码是change_on_install(3)一般讲,对数据库维护,使用system用户登录就可以了命令:conn user/pwd as SYSDBA..show userpassw 修改当前密码alter user scott identfied by 1234 修改其他用户密码需要DBA权限alter user scott account unlock;start和@:@d:\a.sql 或者 start d:\a.sql 运行sql脚本edit d:\a.sql 可编辑sql脚本spool d:\b.sql 并输入 spool off可将sql*plus屏幕上的内容输出到指定文件中去show linesize;显示行的宽度默认80个字符set linesize 90 设置行宽度set pagesize 设置每页显示的行数目,默认是14和linesize用法一样创建用户概述:在oracle中要创建一个新的用户使用create user 语句,一般是具有dba(数据库管理员)的权限才能使用 create user tcg identified by 1234passw 修改当前密码alter user scott identfied by 1234 修改其他用户密码需要DBA权限删除用户概述:一般以dba的身份去删除某个用户,如果用其他用户去删除用户则需要具有drop user 用户名【cascade】在删除用户时注意如果要删除的用户,已经创建表,就需要在删除的时候带参数cascade用户管理的综合案例概述:创建的新用户是没有任何权限的,甚至连登录的数据库的权限都没有,需要为其指定相应的权限,给一个用户赋权限使用命令grant,回收权限使用命令revoke系统权限:用户对数据库的相关权限对象权限:用户对其他用户的数据对象操作的权限(select,insert,update,delete,all,create index) grant select on emp to xiaoming建表需要system赋予resource权限 grant resource to xiaoming收回权限 revoke select on scott.emp from xiaoming对权限的维护权限的传递:grant select on emp to xiaoming with grant option系统权限:grant connect to xiaohong with admin option使用profile管理用户口令概述:profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的profile 当建立用户没有指定profile选项,那oracle就会将default分配给用户。

(1)账户锁定概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba的身份执行该命令例子:指定tea这个用户最多只能尝试3次登陆,锁定时间为2天create profile lock_account limit failed_login_attempts 3 password_lock_time 2;alert user tea profile lock_account(2)给账户(用户)解锁alter user tea account unlock;(3)终止口令为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作例子:给前面创建的用户tea创建一个profile文件,要求该用户每隔十天要修改自家的登陆密码,宽限期为2天create profile myprofile limit password_life_time 10 password_grace_time 2;alert user tea profile myprofile口令历史概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可以使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle 就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。

(1)create profile password_history llimit password_life_time 10 password_grace_time 2 password_reuse_time 10password_reuse_time 10//指定口令可重用时间即10天后就可以重用(2)分配给某个用户alert user xiaoming profile password_history;删除profile概述:当不需要某个profile文件时,可以删除该文件Drop profile password_history字符型char 定长最大2000字符例子:char(10) ‘小韩’前四个字符‘小韩’,后添6个空格补全varchar2(20) 变长最大4000字符例子:varchar2(10) ‘小寒’ oracle分配四个字符,这样可以节省空间clob(character large object) 字符型大对象最大4G 数字型number 范围 -10的38次方------10的38次方可以表示整数,也可以表示小数Number(5,2)表示一个小数有5位有效数,2位小数范围-999.99--------999.99Number(5)表示一个五位整数范围 -99999------99999日期类型date 包含年月日和时分秒timestamp这是对date数据类型的扩展图片blob 二进制数据可以存放图片/声音 4G例子-----学生表create table student (xh number(4), ----学号xm varchar2(20),------姓名sex char(2), -----性别birthday date,-------出生日期sal number(7,2)----奖学金);create table class(classid number(2),cname varchar2(20));添加一个字段alter table student add (classid number(2));修改字段长度alter table student modify(xm varchar2(30));修改字段的类型/或是名字(不能有数据)alter table student modify(xm char(30));删除一个字段alter table student drop column sal;修改表的名字rename student to stu;删除表drop table student;添加数据所有字段都插入insert into student values(‘A001’,’张三’,’男’,’01-5月-05’,10);ORACLE中默认的日期格式‘DD-MON-YY’dd 日子(天) mon 月份yy 2位的年‘09-6月-99’1999年月9号改日期的默认格式alter session set nls|_date_format=‘yyyy-mm-dd’;修改后,可以用我们熟悉的格式添加日期类型:insert into student values (‘A002’,‘MIKE’,‘男’,‘1905-05-06’,10)插入部分字段insert into student(xh,xm,sex) values(‘A003’,’JOHN’,’女’);插入空值insert into student(xh,xm,sex,birthday) values (‘A004’,’MARTIN’,’男’,null)查询空select * from xxx where x is null;改一个字段update student set sex=’女’ where xh=’A001’;修改多个字段update student set sex=’男’ ,birthday=’1980-04-01’ where xh=’A001’;删除数据delete from student;删除所有记录,表结构还在,写日志,可以恢复,速度慢savepoint aa;delete from student;rollback to aa;drop table student;删除表的结构和数据delete from student where xh=’A001’;删除一条记录truncate table student;删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快介绍Select语句在软件编程中非常的有用,希望大家好好的掌握查看表结构desc dept;查询所有列select * from dept;查询指定列select ename,sal,job,deptno from emp;如何取消重复行select distinct deptno,job from emp;查询smithselect sal,job,deptno from emp where ename='SMITH';使用算数表达式显示每个雇员的年工资使用列的别名Select ename,sal*12 as ysal from emp;select sal*13+comm*13 年工资,ename from emp;使用nvl()处理空值select sal*13+nvl(comm,0)*13 年工资,ename from emp;。

相关主题