学习oracle笔记基础.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《学习oracle笔记基础.pdf》由会员分享,可在线阅读,更多相关《学习oracle笔记基础.pdf(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学习 oracle 笔记-基础 学习 oracle 笔记 一、Sqlplus 基本命令(3)1.conn/connect 命令(3)2.disc/disconnect(3)3.password(3)4.show user(3)5.exit(3)二、用户管理(3)1.修改密码:password 用户名(3)2.用户管理.赋权限(3)3.用户管理.收回权限(3)4.用户管理.锁定用户(4)5.用户管理.终止密码(4)6.用户管理.不可使用旧密码(4)7.用户管理.删除配置文件(4)三、表管理(5)1.表和列的命名规则:(5)2.oracle 字段类型:(5)3.创建表(5)4.修改表(6)5.插入
2、数据(6)6.修改字段值(6)7.删除数据(6)四、表查询(7)1.基本查询(7)2.复杂查询(8)3.多表查询(9)4.子查询(9)(由已知通过公式计算出中间值,再应用中间值通过公式计算出下一个中间值,直到得出结果为止,称之为子查询或嵌套查询)(9)5.分页查询(10)6.用查询结果建表(11)五、数据库管理(11)1.创建新的数据库(11)六、Oracle 函数(11)1.按特定日期格式插入带日期列的记录(11)2.使用子查询插入大量数据(11)3.使用子查询更新大量数据(11)七、Oracle 事务(11)4.设置保存点:savepoint time1(保存点名);(11)5.只读事务:
3、(12)八、SQL 函数(12)1.字符函数(12)2.数学函数(13)3.日期函数:默认日期格式 dd-mon-yy(15-3 月-87)(14)4.转换函数:用于将数据类型从一种转为另外一种(14)5.系统函数(15)九、数据库管理(15)1.数据库管理员(15)2.数据库备份与恢复(16)3.数据字典与动态性能视图(18)十、表空间、数据文件(19)1.表空间:数据库逻辑组成部分。(19)2.Oracle 中逻辑结构包括表空间、段、区、块(19)3.表空间作用:(19)4.建立表空间(可使用客户端建)(19)5.改变表空间状态(20)十一、维护 oracle 数据完整性(21)1.确保数
4、据库的数据遵从一定的商业和逻辑规则(比如岁数为正数)(21)2.可以使用约束、触发器、应用程序(过程和函数)三种方法实现(21)3.约束,包括 not null,unique,primary key,foreign key,check(21)4.显示约束信息(查询数据字典视图)(22)5.列级定义:定义列的同时定义约束(23)6.表级定义:定义完所有列后在定义约束,但是 not null 只能在列级上定义.23 十二、索引(23)1.创建索引:(23)3.缺点(23)4.显示索引信息(查询数据字典视图)(23)十三、管理权限与角色(24)1.系统权限:控制用户是否可以执行特定命令等数据库操作,
5、如建表等。(24)2.对象权限(25)3.角色(权限的打包集合,便于权限快速分配)(25)一、Sqlplus 基本命令 1.conn/connect 命令 登录进命令窗口之后,要切换用户,用以下语法 conn 用户名/密码 as sysdba/sysoper 2.disc/disconnect 3.password 4.show user 5.exit 二、用户管理 1.修改密码:password 用户名 Alter user 用户名 identifild by 新密码 2.用户管理.赋权限 Grant 角色名 to 用户名(系统权限)Grant select on emp to 用户名(对象
6、权限)3.用户管理.收回权限 Revoke select on emp from 用户名 如果是对象权限,除了把权限赋予它,还可以让它把这权限赋予给其他人,则 Grant select on emp to 用户名 with grant option 如果是系统权限,除了把权限赋予它,还可以让它把这权限赋予给其他人,则 Grant connect to 用户名 with admin option 4.用户管理.锁定用户 指定 Scott 用户每天只能尝试 3 次登录,锁定时间为 2 天,实现方法:创建配置文件 SQLcreate profile lock_account(配 置 文 件 名)li
7、mit failed_login_attempts 3(尝试次数)password_lock_time 2(锁定天数);更改用户 SQLalter user scott profile lock_account;解锁用户 SQLalter user 用户名 account unlock 5.用户管理.终止密码 让用户每隔 10 天修改密码,宽限期为 2 天 创建配置文件:SQLcreate profile myprofile limit password_life_time10 password_grace_time 2;分配配置文件:SQLalter user 用户名 profile myp
8、rofile 6.用户管理.不可使用旧密码 创建配置文件 SQLcreate profile 配置文件名 limit password_life_time10 password_grace_time 2 password_reuse_time 10;分配配置文件 SQLalter user 用户名 profile 配置文件名 7.用户管理.删除配置文件 SQLdrop profile 文件名【cascade】三、表管理 1.表和列的命名规则:1)必须以字母开头;2)不能超过 30 个字符 3)不能使用 oracle 的保留字 2.oracle 字段类型:1)字符型:a.char(定长)占空间大
9、,查询速度极快 b.varchar2(变长)节省空间 c.clob(字符型大对象)2)数字型:Number(范围达正负 10 的 38 次方),小数:number(5,2),整数:number(5)3)日期类型:1)Date 2)Timestamp(时间戳,精确度高)4)图片型 Blob(可存放图片、声音、视频)一般不把该类型的文件放入数据库中,而放在某文件夹下,然后把该路径放到 数据库中;出于安全性考虑,可把该类型的文件放入数据库中 3.创建表 SQLcreate table student(2 Xh number(4),3 Xm varchar2(20),4 Sex char(2),5 B
10、irthday date,6 Sal number(7,2)7);SQLcreate table class(2 Classid number(2),3 Cname varchar2(20)4);4.修改表 1)添加一个字段 SQL alter table student add(classid number(2);Desc 表名(查看表)2)修改字段长度 SQL alter table student modify(xm varchar2(30);3)修改字段类型/名字(不能有数据)SQL alter table student modify(xm char(30);4)删除一个字段 SQL
11、 alter table student drop column sal;5)修改表的名字 SQL rename student to stu;删除表 6)SQLdrop table student;5.插入数据 1)插入全字段:Insert into student values(A001,张三,男,01-5 月-05,10);Oracle 中日期格式默认为DD-MON-YY即31-6 月-14 修改默认格式 alter session set nls_date_format=yyyy-mm-dd;2)插入部分字段:Insert into student(xh,xm,sex)values(A
12、003,张三,男);3)插入空值:Insert into student(xh,xm,sex,birthday)values(A004,李四,男,null);6.修改字段值 1)改一个字段:Update student set sex=女 where xh=A001;2)修改多个字段:Update student set sex=男,birthday=1980-04-01where xh=A001;3)修改含有空值的记录:null 为空,不存在,不能参与+-*/等运算 7.删除数据 1)Delete from student;删除所有记录,表结构还在,写日志,可以恢复的,速度慢(SQLSave
13、point 时间点名称;SQLDelete from 表名 SQLRoolback to 时间点名称)则可恢复数据 2)Drop table student;删除表的结构和数据 3)Delete from student where xh=A001;删除一条记录 4)Truncate table student;删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快 四、表查询 1.基本查询 1)简单查询语句(select 语句不区分大小写,被查询的内容区分大小写)1)查看表结构:SQLdesc dept;2)查询所有列:select*from dept;3)查询指定列:sele
14、ct ename,sal,job,deptno from emp;4)过滤重复行:select distinct deptno,job from emp;5)使用算数表达式/别名:select sal*12 as“年薪”from emp;6)处理空值:select sal+nvl(comm,0)as“月收入”from emp;7)如何连接字符串(|):select ename|is a|job from emp;8)Where 子句:条件为数值的,有无都一样;条件为日期的,格式为01-1 月-2005 9)Like:%表示无或者任意一个或多个字符;_表示任意单个字符 Select ename,
15、sal from emp where ename like S%;Select ename,sal from emp where ename like _O%;10)Where 中使用 in:Select*from emp Where empno in(7566,7312,7329);11)查询包含 null 的记录:select*from emp where mgr is null;12)逻辑操作符:select*from emp where(sal2000 or job=MANAGER)and ename like J%13)Order by Select*from emp order b
16、y sal asc/desc;Select*from emp order by deptno,sal desc;Select ename,(sal+nvl(comm,0)*12 as“年薪”from emp order by“年 薪”;2.复杂查询 1)数值计算函数:select 后面必须为同类型的对象,不可字段与分组函数一起使 用 Max,min,avg,sum,count Select max(sal),min(sal)from emp;select ename,sal from emp where sal=(select max(sal)from emp);select avg(sal)
17、,sum(sal)from emp;select count(*)from emp;select*from emp where sal(select avg(sal)from emp);2)Group by 用于对查询结果分组统计 select deptno,avg(sal),max(sal)from emp group by deptno;按分组的字段必须出现在查询列 select deptno,job,avg(sal),max(sal)from emp group by deptno,job order by deptno;3)Having 用于过滤分组后的显示结果,条件函数,等同wher
18、e的作用,在有聚合 函数的 select 中不能用 where,而是用 having 代替 where select deptno,avg(sal)from emp group by deptno having avg(sal)2174;4)总结:A.分组函数只能出现在选择列、having、order by 子句中;B.如果 select 语句中同时包含 group by,having,order by 那么这三者的 顺序是 group by,having,order by;C.在选择列中如果有列、表达式、分组函数,那么这些列和表达式必须有一 个出现在 group by 子句中,否则会出错。3
19、.多表查询 1)select ename,sal,dept.dname from emp,dept where emp.deptno=dept.deptno;2)select ename,sal,d.dname from emp E join dept D on E.deptno=D.deptno 别名如果是字母,并且括在双引号内的,一定要大写 3)select ename,sal,S.grade from emp E join salgrade S on E.sal=S.losal and E.sals.hisal;4)select ename,sal,S.grade,D.dname,D.d
20、eptno from emp E join salgrade S on E.sal=S.losal and E.sals.hisal join dept D on E.deptno=D.deptno order by D.deptno;5)select E1.empno,E1.ename,E2.ename from emp E1 join emp E2 on E1.MGR=E2.empno;4.子查询(由已知通过公式计算出中间值,再应用中间值通过公式计算出下一个中间值,直到得出结果为止,称之为子查询或嵌套查询)单行子查询:子查询返回值是单行单列 多行子查询:子查询返回值多行单列 多列子查询:子
21、查询返回值是多列 A.单行子查询:子查询返回值是单行单列 B.多行子查询:子查询返回值多行单列 1)select*from emp where deptno=(select deptno from emp where ename=SMITH);select*from emp where job in(select job from emp where deptno=10);2)select*from emp where salall(select sal from emp where deptno=30);select*from emp where sal(select max(sal)fro
22、m emp where deptno=30);3)select*from emp where salany(select sal from emp where deptno=30);select*from emp where sal(select min(sal)from emp where deptno=30)order by sal;C.多列子查询:子查询返回值单行多列 1)select*from emp where deptno=(select deptno from emp where ename=SMITH)and job=(select job from emp where ena
23、me=SMITH)and enameSMITH;2)select*from emp where(deptno,job)=(select deptno,job from emp where ename=SMITH)and enameSMITH;3)子查询作为一个临时表联合查询 select*from emp E join(select deptno,avg(sal)as部门平均工资 from emp group by deptno)A on E.deptno=A.deptno where E.salA.部门平均工资 order by E.deptno;给【列】加别名,可以加一个 as;给【表】加
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学习 oracle 笔记 基础
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内