1、管理工具-服务)3. 运行oracle的universal installer(开始-程序-oracle installatioin products-universal installer)删除所有的oracle产品4. 卸载程序执行完毕后,oracle并不能别干净的清除,这时候还需要手动的将文件清除。5. 修改注册表regedit ,将HKEY_CLASS_ROOT-删除所有以ORACLE或者ORAL开头的注册表项6. 将HKEY_LOCAL_MACHINESOFTWARE下ORACLE注册表项删除 7. 将HKEY_LOCAL_MACHINESYSTEMCurrentControlSet
2、Service下的以Oracle开头的注册表项 8. 删除HKEY_CURRENT_USERSOFTWARE下的oracle注册表项然后退出注册表9. 重启计算机10. 删除 c:Program FilesOracle目录 11. 删除所有硬盘上 ORACLE_BASE(一般为c:oracle)目录sysman:如何查看服务名:1. 查看位置C:oracleproduct10.2.0db_1NETWORKADMIN2. 修改tnsnames.oraEDU_SUSHE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOS
3、T = 172.16.10.210)(PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = orcl)用户名:hibernate 密码1234563. 目录介绍v Function :函数库v Procedures:过程v Triggers:触发器v Tables:表 【CRUD操作 C:Create R:Read U:Update D:Delete】v View:视图,虚拟表【多个表之间的一个结果集】v Sequence:序列v Users:用户 【测试用户:scott 密码:tiger】针对用户进行解锁操作:alter user SCOTT acco
4、unt lock;锁定账户alter user SCOTT account unlock;解锁账户作业:编写tnsnames.ora,实现连接 172.16.10.210数据库服务器,访问boss表中数据,有多少行有多少列。使用工具 PLSQL Develop。3、开发工具1.命令行Cmd进入DOS界面-sqlplus scott/tigeredu 访问外部数据库服务器sqlplus scott/tiger 访问本地数据库服务器2.SQL PLUS3.SQL Develop4、SQL语句介绍SQL语句是关系数据库最基本的操作语言。基本上不同的数据库厂商支持的SQL大部分都相似,但有些特殊的存在
5、着不同【MySQL、Oracle 分页】。SQL:结构化查询语言Structured Query LanguageSQL语句包括数据查询语言select、数据操作语言DML(insert、update、delete)【作用级别是在表中行数据上】,事务控制语言(commit提交、rollback回滚),数据定义语言DDL(create创建、alter修改、drop删除)【作用级别在表、视图、用户等】,数据控制语言DCL(grant授权、revoke回收)。DML:Data Manipulation Language【使用场所最多】 DDL:Data definition languageDCL:
6、Data Control Languagev 创建用户【默认使用scott】create user 120; 创建用户identified by 1 指定密码grant connect to 允许用户连接至数据库grant resource to 允许用户使用数据库中存储空间grant unlimited tablespace to 允许用户不受表空间的限制用户在Oracle中又叫一个方案Schema。也就是用户下面可以有专门的表、视图、存储过程、函数等。修改:alter user identified by 修改密码删除:drop user “120”扩展:如何访问别的用户下的表:selec
7、t * from hibernate.boss t但是实现跨用户访问,有时无法访问到表中数据,处理方式-提高访问权限:grant select, insert on BOSS to 赋予查询、插入Boss表的权限给用户120v 创建表create table student -创建表( id number(10) not null, -ID name varchar2(50), -姓名 sex number(1) - 性别)添加列:alter table student add age number(3) ;删除列:alter table student drop column age;列重命
8、名:alter table student rename column age to age1;修改列的数据类型或者长度:alter table student modify age1 number(10);删除表:drop table student;Truncate table student;数据类型:包括:字符、数值、时间日期、LOB、RAW字符数据类型:VARCHAR2()、char()、nvarchar()当使用长度固定的字符数据类型时,采用char,其长度为1-2000个字节。VARCHAR2和nvarchar支持可变长度。其长度为1-4000个字节数值类型:number,可以存
9、储整数、浮点数、实数,精度可以高达38位。其格式 number(p,s) p:表示精度 s:表示小数点位数【s可以忽略】日期类型:date、timestampLOB:大对象数据类型,可以存储高达4GB的非结构化数据。包括CLOB(存储大量的字符数据),BLOB(存储较大的二进制对象,例如图像、视频等)。RAW:存储二进制数据。5、数据操作语言v 插入1.insert into student(id,name,sex,age1) values(1000,姚明,1,35)往student表中四个字段添加数据。2.insert into student values(1000,不用定义往数据库中哪个
10、字段填充数据,student表中任何字段都会插入新值3.insert into student(id) values(1001)对固定的某一列添加新值。4.添加大量数据insert into student select * from student t注意:PLSQL中要求选中某一段SQL语句然后选择执行,此时执行的就是选中的SQL语句。v 更新1.更新全部的字段数据update student set name =姚小明2.更新某一行的列的数据姚大明 where id = 1000;3.更新某一行中多列数据,age1=80 where id = 1000;v 删除1.删除指定条件数据行【f
11、rom可省略】delete from student where id = 1000;2.删除所有数据行delete from student 3.直接截断整个表数据,使用truncatetruncate table student 效率比delete高6、数据查询语言Select是用于检索数据库中表数据。基本结构:Select from 表名其中*号表示匹配所有的列,alias给列指定别名。v 基本查询1检索所有的列select * from dept;2检索特定的列select ename,job,sal from emp;3指定别名SELECT Ename “?” , Job, Sal
12、FROM Emp;SELECT Ename as ? , Job, Sal FROM Emp;as? , t.job ?, Sal FROM Emp t;4检索日期列select t.ename ,t.hiredate from emp t; -?F6?select t.ename ,to_char(t.hiredate,yyyy/mm/dd) ? from emp t; to_char(?5取消重复行distinctselect distinct t.mgr , t.deptno from emp t;6使用算数表达式算术表达式有加减乘除,其中乘除优先级要高。如果要执行加减运算,则采用括号进
13、行处理。select t.ename 姓名,t.job 职位,t.sal*12 年薪,t.sal+m 月薪7处理nullnull?0.?public class Emp private String empNo; private String ename; private String job; private Float sal;将薪水字段设置为包装类类型,原因是因为如果没有对薪水字段设置值,那么添加到数据中的数据就是0.String sql = insert into emp(empno,ename,sal) values (+emp.getEmpNo()+,+emp.getEname()
14、+,+emp.getSal()+ )select 1+null*1 from dual; 测试结果均为空那么去处理空情况,需要使用函数 使用函数nvl函数nvl(exp1,exp2):表示如果exp1为null,那么值返回exp2.如果exp1不为null,那么值返回exp1.【注意:SQL语句中不分大小写】select t.Ename ,t.sal ,m,t.sal+nvl(m,0) 使用nvl2函数Nvl2(exp1,exp2,exp3):如果exp1为空,那么值采用exp3.如果exp1不为空,那么采用exp2对应的值。,nvl2(t.sal+m,t.sal+m,t.sal) alter
15、 table sale modify NAME default alter table sale add sex number(1) default 1 not null;-添加sex列默认值为1alter table sale add times date default sysdate not null;-提供默认时间点8连接字符串JAVA?+,?|?select 姓名:|t.ename| 他的薪水为:|t.sal 介绍concat(AB错误情况:1.没有足够的值情况insert into sale values(2001069,2001064); 错误2.单引号、双引号情况3.单词写错4
16、.修改date类型的值,文字与字符串格式不匹配问题update sale t set t.times = to_date(2013-04-28 11:24:51yyyy-MM-dd hh:mi:ss) where t.id = 2001069v Where条件过滤where?and?or?not?=!= 或者= 大于等于 大于= to_date(1982-01-01yyyy-MM-ddSELECT * FROM Emp t where to_char(t.hiredate,) yyyy-MM-dd hh24: 指定24小时制 指定12小时制 Where?between andBetween a
17、nd ?between?select * from emp t where t.sal between 3000 and 5000Like?select * from emp t where t.ename like %AM%模糊查询统配符有两种:%和_其中%号表示匹配0个或者多个字符。_下划线表示匹配一个字符。_AM%但是在处理过程中,如果有字符刚好为通配符,那么如何处理?使用关键字escape。%s_% escape s表示escape指定的字符其后面的通配符当成普通字符使用。in?900?3000?select * from emp t where t.sal in (900,3000)
18、select * from emp t where t.sal not in (900,3000)null,?true,?false?select * from emp t where m is null当与null进行比较时,不要使用等于或者不等于。select * from emp t where m is not null1.查询薪金在800到1600之间的员工信息2 查询员工SMITH,ALLEN,JAMES的信息3.查询员工编号为7369和7876的员工信息4.查询姓名以S开头的员工信息5.查询姓名的第二个字符为L的员工信息6.查询姓名包含ME的员工信息7.选择在部门30中员工的所有
19、信息 8.列出职位为(MANAGER)的员工的编号,姓名 9.找出奖金高于工资的员工 10.找出每个员工奖金和工资的总和and or nottrue -and如果条件有一个为true,那么返回true -or如果条件为false,使用not转变为true -not优先级not最高,其次为and,再然后为or。示例1:查询部门编号为20,职位为经理的个人信息。select * from emp t where t.deptno = 20 and lower(t.job) = manager示例2:查询工资高于2500,或者岗位为经理的个人信息。select * from emp t where
20、t.sal 2500 or lower(t.job) = true?orSQL?SELECT *FROM Loginuser tWHERE t.Username = admin AND t.Password = OR 1 = oracle?order by?desc?asc?select * from emp t order by t.sal select * from emp t order by t.sal descselect t.ename,nvl(t.sal+m,t.sal) 薪水 from emp t order by 薪水select t.ename,nvl(t.sal+m,t.
21、sal) 薪水 from emp t order by 22表示薪水所在查询的列的位置。使用多列排序。示例:按照工资升序,按照奖金降序排列。select * from emp t order by t.sal asc,m desc;注意优先级,先执行order by前面的排序条件,执行完之后再去执行后面的条件排序。1. 找出部门10中的经理(MANAGER)和部门20中的普通员工(CLERK) 2. 找出部门10中既不是经理也不是普通员工,而且工资大于等于2000的员工 3. 找出有奖金的员工的不同工作 4. 找出没有奖金或者奖金低于500的员工 5. 显示雇员姓名,根据其服务年限,将最老的雇
22、员排在最前面6. 查询工资高于800,或者岗位是manager的员工,并且姓名首字母为S开头的员工信息7. 查询岗位不是分析师(ANALYST)和经理(MANAGER)的所有员工v 数据分组group by?group by,?Max:Min:Avg:Sum:Count:select max(t.sal) ,min(t.sal) from Emp tselect avg(t.sal) select sum(t.sal) select count(*) from Emp t ?select count(distinct t.sal) from emp t Group by:SELECT t.Deptno, SUM(t.Sal) 月值, AVG(t.Sal) 平均值, MAX(t.Sal) 最高值, MIN(t.Sal) 最小值 FROM Emp t GR
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1