资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
ORACLE学习手记*查询导航:1.如何删除oracle 的用户,释放表空间.*Oracel安装篇:1、 oracle安装在FAT 格式的硬盘分区上的根目录下面。中文目录oracle不能正常安装和使用。若是安装在NTFS格式的硬盘分区上,则可能会出现使用权限的问题。需要在oracle安装目录下面的ora92这个文件夹的属性中选中管理员用户(第二个),设置其读取和录入的权限一次。2、 oracle的系统全局数据库名:oracle是以表空间来管理数据库的,全局名仅仅是一个系统标识。Oracle使用之SQL*PLUS:使用oracle中Application Development中的SQL*PLUS 工具。登录名:scott/tiger (scott在oracle公司中负责数据开发工作,tiger是他的猫的名字)alter session set NLS_date_format=YYYY-MM-DD; 此行语句用来改变数据库中时间数据的格式修改成”YYYY-MM-DD”格式。Oracle 知识片段:收回授予的权限:Revoke insert,update,delete on user.tableName from username;一、Oracle视频教学1-3 课:一次执行多条SQL语句:使用绑定量:insert into emp (EMPNO,ENAME,SAL) values (&emp_no,&myname,&sal);再根据SQL PLUS 的提示来操作。1、事务,提交和回滚事务:当一个SQL语句被执行的时候,一个事务就被开启了。事务是一连串的SQL 语句。提交:当用户运行commit;之后,事务才被执行,事务终止。注意:在SQLPLUS中,执行一连串的SQL 语句,这个时候,数据只是被存储到了oracle数据库中的“临时缓冲区”,如果不执行commit而关闭SQLPLUS的话,那么,所有的操作,插入、删除、更新等。都不会被真的对数据有实际的操作。回滚:需要在提交之前回滚,提交了就不能回滚。回滚,也会结束一个事务。可以设置回滚断点:Savepoint pointName; 创建一个名字为pointName的回滚点。Rollback to pointName;回滚到当前名称对应的回滚点。Rollback ; 回滚到事务发生之前的状态。2、SELECT 语句中的算术表达式:Select sal,12*sal from emp where job=manager;语句将返回职位是manger的月薪和年薪。3、SELECT语句中使用别名:select sal my_sal from emp;select sal as my_sal from emp;select sal “my_sal” from emp;4、SELECT语句中字符串之间的连接select ename| is a |job from emp;可以连接普通的字符,可以连接数据库中列名。5、SELECT语句中限制重复的行select distinct deptno from emp;此语句查找滤去了部门编号相同的行。6、其他几种常用的查询select * from emp where deptno in(10,90,22);查找部门编号(deptno)在10, 90,22这个集合中的行信息。select * from emp where sal between 10 and 1000;查找工资(sal)在10到1000 之间的行信息。使用order by 排序 此不赘述。Comment U1: 在 oracle中默认是将字符转换成大写来存放在数据库中的,如果想要显示或者得到小写,最好是使用这样的函数。Comment U2: 该函数不需要带有括号,在 oracle中如果一个函数没有任何参数,则该函数可以不用带括号。Comment U3: 在 oracle中 select关键字一定要和 from关键字搭配才不会出现语法错误。但是获取当前时间却不能从某一个特定名字的表中获取,所以系统提供了一个名义表dual二、Oracle视频教学4-5 课:函数:函数分为:单行函数、多行函数。1、字符函数:字符函数分为 转换函数 和 字符操纵函数。字符转换函数:LOWER()( 将字符转换成小写) UPPER()(将字符转换成大写)INITCAP()(将一个单词的首字母转换成大写)字符操纵函数:CONCAT(Good,Morning)(将两个字符串链接)SUBSTR(GoodMorning,1,3)(去子串函数)LENGTH()(返回字符串的长度 )INSTR()(取得某一个字符在这个字符串上的位置的INT值)LPAD()(将一个字符串按照某一种格式来显示,5位的字符按照10 位来显示,使用该函数参数中的字符来填充剩下的字符的空格)2、Number函数:ROUND()返回四舍五入的值。ROUND(34.395,2)34.40TRUNC()截取小数。TRUNC(34.395,2)34.39MOD()求余函数。MOD(1600,300)1003、日期型函数:Oracle中默认格式:世纪、年、月、日、时、分、秒Oracle中默认的日期格式:DD-MON-YY获取当前系统日期的函数:SYSDATEselect ename,(SYSDATE-hiredate)/7 WEEKS from emp该语句返回雇员的姓名和受雇的星期数。select sysdate from dual;此语返回当前系统时间。select trunc(months_between(sysdate,hirdate)/12,0) from emp;此语返回emp表中各个雇员的受雇年数,并且去除了小数部分,保留了年数。Comment U4: DECODE函数判别第一个参数(该参数可以是一个表达式,也可以是一个字段或者一个值) ,如果这个值和 JOB1匹配,则返回sal*1.1 如果和三个值都不匹配,则返回 SAL。后面的 SAL_NOW 是显示标识列名4、数据类型的转换函数:数据类型转换分为:隐式转换 和 显式转换隐式转换:Oracle在 数值型(number) 字符型(varchar/varchar2);日期型(date) 字符型(varchar/varchar2)之间发生运算的时候,是可以进行隐式转换的。显式转换:数值- 字符 TO_CHAR函数。字符- 数值 TO_NUMBER函数。日期- 字符 TO_CHAR函数。字符- 日期 TO_DATE函数。注意:在向EMP表中添加一个日期型的数据类型的时候,当当前用户的session 中的日期格式不一样的时候,SQLPLUS报错说:“文字和格式字符串不匹配 ”。解决办法一:将当前会话中的日期格式改掉。解决办法二:使用 to_date(1992-12-12,YYYY-MM-DD); 来搞定。5、空值转换函数NVLNVL(AGE,12);此语表示,判别AGE这个字段是不是空值,如果是则以12 代替之。6、条件函数 DECODE函数Select job,sal,DECODE(job,job1,sal*1.1,job2,sal*1.2,job3,sal*1.3,sal) SAL_NOW from emp;7、存储和获取当前的SQL操作语句Save d:empsql.txt;Get d:empsql.txt; run使用get命令是加载这个文件中的 SQL语句,需要通过RUN命令来运行。还可以通过”: D:empsql.txt;就是加载并且运行这个文件中的SQL语句。8、针对某一个表对某一个用户授权:Grant select on table_name to username;9、访问其他用户的表Select * from username.table_name;三、Oracle视频教学 6-7-8-9 课:Oracle数据库锁以及表分区:1、数据库锁多个用户对Oracle的同一个共享资源访问或者操作。会产生冲突。由此,引进了数据库锁。Oracel一般服务器模式:使得每一个用户链接到oracle上,都会在oracle数据库服务器的内存区域开辟一块用于保存用户的会话。该会话用于保持客户端和oracle数据库服务器的通信。Oracle的另外一种模式:共享服务器模式:多个用户链接到数据库服务器上的时候,如果他们访问的内容相同,oracle数据库会将这个内容放在oracle的共享资源区域,而不必为每一个链接都开辟内存。这样节省了oracle的内存消耗,但是也带来了一个问题,就是共享安全的问题。小贴士:在SQLPLUS中,链接上了以后,会有这样的一个提示符: SQL。修改这样的提示符使用:Set sqlprompt shown 就可以将提示符修改成: shown了。查看当前用户的用户名:show user1.1、数据库锁的级别:表级锁、行级锁。1.2、使用锁和解除锁:行级锁:当用户使用insert 或者 update 语句的时候。Oracle就自动为该行上了锁了。当用户查询select时候,不希望在查询的过程中数据被修改。可以使用select.for update of+列名。 语句在表的一行或者多行放上排他锁,不允许其他用户更新,但是允许其他用户查询,也允许其他用户对其他没有配置行级锁的行进行操作。select * from test for update wait 12;对test表中各行配置排他锁,其他用户也上锁,在12M之后,仍然不能上锁成功,提示错误信息。表级锁:有三种模式:共享、共享更新、怕他。共享锁:lock table tablename in share mode;手动锁定表。仅仅将表中的数据进行锁定。所有的用户都有对表上锁的权限。A用户给表上了共享锁,则其他用户只能拥有查询的权限。如果大家都对表进行了共享锁的锁定,那么,大家就都只有查询的权限了。 (各用户均可以同时对表进行上锁操作。)共享更新锁:lock table talename in share mode;排他锁:同一时间,之允许一个用户对表进行排他锁。一个用户对表上了排他锁,其他用户在其解锁之前,只有查询的权限。解锁:使用commit或者rollback2、数据库表Oracle中数据库表有三种形态:规则表(对规则表中数据进行分区,构成了分区表)、索引组织表、簇。2.1、表的创建已经表结构的维护创建一张表:Create table tablename (file1 int not null, file2 varchar(29) not null,file3 varchar(39) not nullfile4 date default to_date(1992-10-10,YYYY-MM-DD) );/表创建完成向已有的表中增加一个字段:Alter table tablename add (filename,varchar(20);删除已存在的表中的某一个字段:Alter table tablename drop cloumn filename;更改已存在的表中的某一个字段的数据类型:Alter table tablename modify(filename,varchar(.);当某一个表中有一列是没有意义的或者我们以后不用了的,我们可以删除。然而在很多时候,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号