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进阶,