oracle学习目标

学会安装、启动。卸载oracle
学会使用sql*plus工具;
掌握oracle用户管理
学会在oracle中编写简单的select语句




sys用户和system用户


1、sys用户是超级用户,具有sysdba角色和create和database权限,默认密码为manager
2、systrm用户有sysoper角色默认密码为change_on_install
3、维护数据库用第二种



select * from emp where (什么意思)

set linesize 设置每行显示的数字
set pagesize 设置每页显示的数目

修改密码,创建用户,删除用户,不能是自己,如果有表用户就得带参数cascade;




SIMPLIFIED CHINESE_CHINA.ZHS16GBK


查询数据库中具有某一属性值的行:select *from student where birthday = ''(where is null)【值为空】



给用户指定权限

重点理解角色的概念可分为自定义和预定义角色

权限分为系统权限,和对象权限(用户对其他用户数据对象访问的权限)
【数据对象:表,视图之类的】

grant connect to 用户名


dba 权限不要轻易授权,,,resource可以在表空间里建表


oracle的默认用户 sys system

解锁的步骤:
alter user yonghuming ;


对象权限:
select
insert
update
all
create index;

grant select on emp to 用户名;

revoke收回权限(采用级联回收)

grant select on emp to longli with grant option (对象权限)
grant select on emp to longli with admin option (系统权限)
让用户得到某一权限的同时把给权限给别人


profile 管理用户口令;

账户锁定:
规定只能输入几次,违者用户会被锁定一定时间;

创建profile文件
create profile lock_account limit 创建一个名叫 lock_account锁定文件
failed_login_attempts 3 password_lock_time 2 失败的登录尝试3次用户就锁定2天
alter user xiaoming profile lock_account;把锁定文件用于xiaoming

create profile password_history limit password_life_time 10 password_grace_time 2 接下一行)password_reuse_time 10
其中password_life_time 10 在修改密码时10天之类不能使用旧密码
分配给某个用户

删除profile

drop profile password_history[cascade]

链接命令 disc passw (show user) exit
交互命令 edit spool

显示命令 linesize pagesize
创建用户 create user 用户名 identified by 密码
修改其他用户的密码:
alter user 用户名 identified by 新密码;


目标:
我的第一个数据库实例是SYSTEM.MYORACLE
oracle 表的管理
基本查询和复杂查询
oracle数据库的创建


技能:
掌握oracle表的管理(创建/维护)
掌握对oracle表的各种查询技巧
学会创建数据库

表明以字母开头;
长度不能超过30个字符;
不能用保留字符;
只能使用字母数字和$ #

数据类型:
字符型 char 定长 最长2000 相当于c语言中的字符串char(10)就有10个字符

va

rchar2 边长 最大4000字符,可以节省空间

clob(char large objiect) 字符型大对象 最大4G

数字型 number科表示整数和小数;
number(5) 5位整数;
number(5,2)表示有五个有效数的2位小数

日期类型
date 包含年月日和时分秒
timestamp 数据拓展(一般不用)

图片类型
blob 用来保存非传统数据,如图片、声音及混合媒体等。


建表
——学生表
sql>create table STUDENT(
StuNum number(4);
StuName varchar2(20)
sex char(2)
birthday date;
spl number(7,2)---奖学金
);
添加字段:alter table student(表名) add (ClassID number(2))

修改字段的长度:alter table student modify(StuName varchar2(30))

删除字段(不常用)alter table student drop colmn sal;

修改表的名字 rename student to stu
删除表 drop table student;

向表中添加数据:
insert into student values(具体数据)【注意日期格式:月字不能少】;

修改日期格式:alter session set nls_data_format='YYYY-mm-dd';


修改字段update student set sex=‘女’(被修改的字段)【可以是一个或者多个】 where StuNum = “A001”(被查找的字段)


删除数据:只删除表中的数据delete from student
如果在删除之前写 savepoint name(设置保存点相当于备份);在进行删除。可以通过 rollback to name;回复你所删除的东西


drop table student删除标的结构和数据

truncate table student 删除数据爆流标的结构,但无法恢复,有点速度快;

delete from student where sex = ‘男’删除某一条数据;



oracle数据库的查询,,【重点学习对象】

desc dept 查看表的结构

select * from dept 查询所有列
select * from , sal, job, deptno frpm emp;查询指定列薪水,工作和部门

select distinct deptno ,job from emp;取消部门和工作相同的重复行

set timing on 打开所有操作的时间




select sal * 12 "年工资"【改变属性名】, ename from emp

学会使用nvl()函数;

查询学会使用where字句;like操作符有%,_,有点像正则表达式;与where连用
还有where in相当于for……in语句


使用order by sal(desc[从高到低]) 字句;;排序按某一属性排序



子查询学了之后才学分页;


oracle中的复杂查询:

数据分组函数-max,min,avg,sum,count;
对数据的分组统计:
group by ; having ;order by;

分组函数只能出现在选择列表或子句中;

如果select同属包含group by; having ; order by;那么他们的优先级是group by ; having ; order by;

在选择列中如果有列表达式和扥组函数,那么这些列和表达式必须有一个出现在group by子句


多表查询(用dept表和emp表为例)

查询职工的名字,薪水以及部门名称(dept表里);【笛卡尔集】
select a1.ename,a1.sal,a2.dname from emp,

dept where a1.deptno = a2.deptno;
在多表查询中规定:查询条件不得少于表的个数-1;
多表查询中有个between语句;
自连接(已学会)

子查询,嵌入在其他sql 语句的select语句,也叫嵌套查询;

再多行子查询中使用all操作符;any操作符;在from子句中使用子查询

【难点】: 当在from子句中使用自查询时,该子查询会给作为一个视图来对待,一次叫做内前视图,当在from子句中使用子查询时,必须给子查询指定别名。

oracle的分页 一共有三种方式;

NO1: rownum分页
其他两种略;


用查询的结果创建新表

合并查询union 和 union all的使用,前者相当于并集,不合并同类项
intersect 去两个结果的交集;
minus 去聊个结果的差集;


实用工具创建数据库;

dbca 【数据库配置助手】

系统权限不是级联回收;


java程序如何操作oracle数据库;
如何人在oracle中操作数据库;
oracle事务处理
spl函数的使用;


目标:

掌握oracle表对数据可操作技巧
掌握java程序中操作oracle
理解oracle事物概念;
掌握oracle各种sql函数;


to_date(写出日期,定义日期格式);

对表进行整体导入:
insert into 表名(各属性) select from emp where 条件;


用update更新数据:

update set (job,sal,comm)= (select job,sal ,comm from emp where ename="SMITH") where ename = "SCOTT";

dml语句就是增删改的语句;

comint提交数据,相当于保存数据;


oracle中的常用函数;
lower(char) :将字符串转化为小写格式;
upper(char):将字符串转化为大写格式;
length(char)返回字符串长度;(选出名字有五个字母的人的信息)
substr(char,m,n)去字符串的子串;n表示取字母的个数,m表示从第几位取(索引值+ 1);
replace(char1,serch_string,replace_string)翻译为,在某字段中找到serch_string,然后用replace_string替换

数学函数(同c语言中的数学函数):

round(number,n,[m]);四舍五入;M一般省略,,,n表示保留多少位小数
trunc(number,n)从第几位小数直接舍去;默认n为0,也可以为负数;
mod(m,n)取模;其实就是m%n的值;
floor(n);返回小于或等于n的整数;(向下取整)
cell(n);返回大于或等于n的整数(向上取整);


日期函数:
sysdate
add_month(属性,时间月);
last_day();
to_char()

数据库管理员,
数据库的逻辑备份与恢复。
阿虎句子点和动态性能视图
管理表空间和数据文件


掌握备份回复是句酷的方法
理解表空间,数据字典,性能视图

alter tablespace 表空间名 offline 使表空间处于脱机状态;

alter tablespace 表空间名 read only;使表空间处于只读状态;


drop tablespace 表空间的名字 including conten

ts and datafiles;



表空间拓展的三种方法:
1、增加数据文件alter tablespace Name add datafiles '路径' size 大小;

2、增加数据文件的大小:alter tablespace Name '路径' resize 大小;

3、设置文件的自动增长: alter tablespace 表空间名 '路径' autoextend on next 10m maxsize 500m


移动数据文件的五个步奏;(略)

表空间总结:
了解表空间和数据文件的作用;
掌握常用表空间,undo表空间和临时表空间的建立方法
了解表空间的各个状态(online,offline,read only,read write )
了解移动数据文件的原因,及使用alter tablespace 和alter datatable命令

约束:包括not null, unique, primary key, foreign key 和check
具体使用见视频21讲;外键的使用

增加约束的方法modify和add constriant两种;学会使用命令行;
删除约束:alter table 表名 drop constraint 约束名;


建立索引:

单列索引:create index 索引名 on 表名(列名);

复合索引:create index 索引名 on 表名(列名1,列名2……);


使用pl/sql分页技术;


pl/sql进阶,


相关文档
最新文档