当前位置:文档之家› oracle笔记(韩顺平oracle视频教学整理)

oracle笔记(韩顺平oracle视频教学整理)

oracle笔记(韩顺平oracle视频教学整理)
oracle笔记(韩顺平oracle视频教学整理)

目录

目录 (1)

2.Oracle的基本使用--基本命令 (5)

3.oracle用户管理 (7)

4.oracle表的管理(数据类型,表创建删除,数据CRUD操作) (12)

5.oracle表查询(1) (16)

6.oracle表查询(2) (19)

7.java操作oracle (27)

8.oracle中事务处理 (33)

9.oracle的函数 (37)

10.数据库管理,表的逻辑备份与恢复 (41)

11.数据字典和动态性能视图 (46)

12.数据库管理-- 管理表空间和数据文件 (49)

13.约束 (53)

14.Oracle索引、权限 (57)

15.角色 (62)

16.PL/SQL 块的结构和实例 (65)

17.pl/sql分类-- 过程,函数,包,触发器 (70)

18.定义并使用变量,复合类型 (74)

19.pl/sql的进阶--控制结构(分支,循环,控制) (78)

20.PL/SQL分页 (83)

21.例外处理 (94)

22.oracle的视图 (101)

与其它数据库比较,,安装认证,,与其它数据库比较

1.Oracle认证

Oracle安装会自动的生成sys用户和system用户:

(1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database 的权限,该用户默认的密码是change_on_install

(2)system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager

(3)一般讲,对数据库维护,使用system用户登录就可以拉

也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。

2.Oracle 的基本使用--基本命令

sql*plus 的常用命令

ν 连接命令

1.conn[ect]

用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba 或是as sysoper

2.disc[onnect]

说明: 该命令用来断开与当前数据库的连接

3.psssw[ord]

说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system 登录。

4.show user

说明: 显示当前用户名

5.exit

说明: 该命令会断开与数据库的连接,同时会退出sql*plus

ν 文件操作命令

1.start 和@

说明: 运行sql 脚本

案例: sql>@ d:\a.sql 或是sql>start d:\a.sql

2.edit

说明: 该命令可以编辑指定的sql 脚本

案例: sql>edit d:\a.sql,这样会把d:\a.sql 这个文件打开

3.sp 3.spool ool

说明: 该命令可以将sql*plus 屏幕上的内容输出到指定文件中去。 案例: sql>spool d:\b.sql 并输入 sql>spool off

ν 交互式命令

1.&

说明:可以替代变量,而该变量在执行时,需要用户输入。

select * from emp where job='&job';

2.edit

说明:该命令可以编辑指定的sql 脚本

案例:SQL>edit d:\a.sql

3.spool

说明:该命令可以将sql*plus 屏幕上的内容输出到指定文件中去。 spool d:\b.sql 并输入 spool off

ν显示和设置环境变量

概述:可以用来控制输出的各种格式,set show如果希望永久的保存相关的设置,可以去修改glogin.sql脚本

1.linesize

说明:设置显示行的宽度,默认是80个字符

show linesize

set linesize 90

2.pagesize说明:设置每页显示的行数目,默认是14

用法和linesize一样

至于其它环境参数的使用也是大同小异

3.oracle用户管理

oracle用户的管理

ν创建用户

概述:在oracle中要创建一个新的用户使用create user语句,一般是具有

dba(数据库管理员)的权限才能使用。

create user 用户名 identified by 密码; (oracle有个毛病,密码必须以字

母开头,如果以字母开头,它不会创建用户)

ν给用户修改密码

概述:如果给自己修改密码可以直接使用

password 用户名

如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限 SQL> alter user 用户名 identified by 新密码

ν删除用户

概述:一般以dba的身份去删除某个用户,如果用其它用户去删除用户则需要具有drop user的权限。

比如 drop user 用户名 【cascade】

在删除用户时,注意:

如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数cascade;

ν用户管理的综合案例

概述:创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令re v o k e。

为了给讲清楚用户的管理,这里我给大家举一个案例。

SQL> conn x iaoming/m12;

ERR O R:

O RA-01045: user XIA O MING lac k s CREATE S E SS I O N pri v ilege; logon denied

警告: 您不再连接到 O RAC L E。

SQL> show user;

U S ER为""

SQL> conn system/p;

已连接。

SQL> grant connect to x iaoming;

授权成功。

SQL> conn x iaoming/m12;

已连接。

SQL>

注意:grant connect to x iaoming;在这里,准确的讲,connect不是权限,而是角色。。 看图:

现在说下对象权限,现在要做这么件事情:

* 希望x iaoming用户可以去查询emp表

* 希望x iaoming用户可以去查询scott的emp表

grant select on emp to x iaoming

* 希望x iaoming用户可以去修改scott的emp表

grant update on emp to x iaoming

* 希望x iaoming用户可以去修改/删除,查询,添加scott的emp表

grant all on emp to x iaoming

* scott希望收回x iaoming对emp表的查询权限

re v o k e select on emp from x iaoming

//对权限的维护。

* 希望x iaoming用户可以去查询scott的emp表/还希望x iaoming可以把这个权限继续给别人。

--如果是对象权限,就加入 with grant option

grant select on emp to x iaoming with grant option

我的操作过程:

SQL> conn scott/tiger;

已连接。

SQL> grant select on scott.emp to x iaoming with grant option;

授权成功。

SQL> conn system/p;

已连接。

SQL> create user x iaohong identified by m123;

用户已创建。

SQL> grant connect to x iaohong;

授权成功。

SQL> conn x iaoming/m12;

已连接。

SQL> grant select on scott.emp to x iaohong;

授权成功。

--如果是系统权限。

system给x iaoming权限时:

grant connect to x iaoming with admin option

问题:如果scott把x iaoming对emp表的查询权限回收,那么x iaohong会怎样?答案:被回收。

下面是我的操作过程:

SQL> conn scott/tiger;

已连接。

SQL> re v o k e select on emp from x iaoming;

撤销成功。

SQL> conn x iaohong/m123;

已连接。

SQL> select * from scott.emp;

select * from scott.emp

*

第 1 行出现错误:

O RA-00942: 表或视图不存在

结果显示:小红受到诛连了。。

ν 使用profile 管理用户口令

概述:profile 是口令限制,资源限制的命令集合,当建立数据库的,oracle 会自动建立名称为default 的profile。当建立用户没有指定profile 选项,那么oracle 就会将default 分配给用户。

1.1.账户锁定账户锁定

概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba 的身份去执行该命令。

例子:指定scott 这个用户最多只能尝试3次登陆,锁定时间为2天,让我们看看怎么实现。

创建profile 文件

SQL> create profile loc k _account limit failed_login_attempts 3 password_loc k _time 2;

SQL> alter user scott profile loc k _account;

2.2.给账户给账户给账户((用户用户))解锁

SQL> alter user tea account unloc k ;

3.3.终止口令终止口令

为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba 的身份来操作。

例子:给前面创建的用户tea 创建一个profile 文件,要求该用户每隔10天要修改自己的登陆密码,宽限期为2天。看看怎么做。

SQL> create profile myprofile limit password_life_time 10

password_grace_time 2;

SQL> alter user tea profile myprofile;

口令历史

概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历

史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。

例子:

1)建立profile

SQL>create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10

password_reuse_time //指定口令可重用时间即10天后就可以重用

2)分配给某个用户

ν删除profile

概述:当不需要某个profile文件时,可以删除该文件。

SQL> drop profile password_history 【casade】

注意:文件删除后,用这个文件去约束的那些用户通通也都被释放了。。

加了casade,就会把级联的相关东西也给删除掉

4.oracle表的管理(数据类型

表创建删除,,数据CRUD操

数据类型,,表创建删除

作)

内容介绍

? 1.上节回顾

? 2.oracle的表的管理 √

? 3.基本查询√

? 4.复杂查询√

?5.oracle数据库的创建 √

期望目标

? 1.掌握oracle表的管理(创建/维护)

? 2.掌握对oracle表的各种查询技巧

? 3.学会创建新的oracle数据库

oracle的表的管理

表名和列的命名规则

?必须以字母开头

?长度不能超过30个字符

?不能使用oracle的保留字

?只能使用如下字符 A-Z,a-z,0-9,$,#等

oracle支持的数据类型ν

字符类

char 定长 最大2000个字符。

例子:char(10) ‘小韩’前四个字符放‘小韩’,后添6个空格补全 如‘小韩’

varchar2(20) 变长 最大4000个字符。

例子:v archar2(10) ‘小韩’ oracle分配四个字符。这样可以节省空间。 clob(character large object) 字符型大对象 最大4G

char 查询的速度极快浪费空间,查询比较多的数据用。

v archar 节省空间

数字型ν

number范围-10的38次方 到 10的38次方

可以表示整数,也可以表示小数

number(5,2)

表示一位小数有5位有效数,2位小数

范围:-999.99到999.99

number(5)

表示一个5位整数

范围99999到-99999

ν日期类型

date 包含年月日和时分秒 oracle默认格式 1-1月-1999

timestamp 这是oracle9i对date数据类型的扩展。可以精确到毫秒。

图片ν

blob 二进制数据 可以存放图片/声音 4G 一般来讲,在真实项目中是不会把图片和声音真的往数据库里存放,一般存放图片、视频的路径,如果安全需要比较高的话,则放入数据库。

怎样创建表

建表ν

--学生表

create table student ( ---表名

x h number(4), --学号

x m v archar2(20), --姓名

se x char(2), --性别

birthday date, --出生日期

sal number(7,2) --奖学金

);

--班级表

CREATE TAB L E class(

class I d NUMBER(2),

c N ame VARCHAR2(40)

);

修改表

添加一个字段ν

SQL>A L TER TAB L E student add (class I d NUMBER(2));

ν 修改一个字段的长度

SQL>A L TER TAB L E student M O DIFY (x m VARCHAR2(30));

ν 修改字段的类型/或是名字(不能有数据) 不建议做

SQL>A L TER TAB L E student modify (x m CHAR(30));

删除一个字段 不建议做(删了之后,顺序就变了。加就没问题,应为是加在后

面)ν

SQL>A L TER TAB L E student DR O P C OL UMN sal;

修改表的名字 很少有这种需求ν

SQL>RENAME student T O stu;

删除表ν

SQL>DR O P TAB L E student;

添加数据

所有字段都插入数据ν

IN S ERT INT O student VA L UE S ('A001', '张三', '男', '01-5月-05', 10); oracle中默认的日期格式‘dd-mon-yy’dd日子(天) mon 月份 yy 2位的

年‘09-6月-99’ 1999年6月9日

修改日期的默认格式(临时修改,数据库重启后仍为默认;如要修改需要修改注

册表)

A L TER S E SS I O N S ET N LS_DATE_F O RMAT ='yyyy-mm-dd';

修改后,可以用我们熟悉的格式添加日期类型:

IN S ERT INT O student VA L UE S ('A002', 'MIKE', '男', '1905-05-06', 10); 插入部分字段ν

IN S ERT INT O student(x h, x m, se x) VA L UE S ('A003', 'J O HN', '女');

插入空值ν

IN S ERT INT O student(x h, x m, se x, birthday) VA L UE S ('A004', 'MARTIN', '

男', null);

问题来了,如果你要查询student表里birthday为null的记录,怎么写sql 呢?

错误写法:select * from student where birthday = null;

正确写法:select * from student where birthday is null;

如果要查询birthday不为null,则应该这样写:

select * from student where birthday is not null;

修改数据

修改一个字段ν

UPDATE student S ET se x = '女' WHERE x h = 'A001';

修改多个字段ν

UPDATE student S ET se x= '男', birthday = '1984-04-01' WHERE x h = 'A001'; 修改含有null值的数据

不要用 = null 而是用 is null;

S E L ECT * FR O M student WHERE birthday I S null;

删除数据ν

DE L ETE FR O M student;

删除所有记录,表结构还在,写日志,可以恢复的,速度慢。

D elete 的数据可以恢复。

sa v epoint a; --创建保存点

DE L ETE FR O M student;

rollbac k to a; --恢复到保存点

一个有经验的DBA,在确保完成无误的情况下要定期创建还原点。

DR O P TAB L E student; --删除表的结构和数据;

delete from student WHERE x h = 'A001'; --删除一条记录;

truncate TAB L E student; --删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。

5.oracle表查询(1)

oracle表基本查询

介绍ν

在我们讲解的过程中我们利用scott用户存在的几张表(emp,dept)为大家演示如何使用select语句,select语句在软件编程中非常有用,希望大家好好的掌握。

emp 雇员表

cler k普员工

salesman 销售

manager 经理

analyst 分析师

president 总裁

mgr 上级的编号

hiredate 入职时间

sal 月工资

comm 奖金

deptno 部门

dept部门表

deptno 部门编号

accounting 财务部

research 研发部

operations 业务部

loc 部门所在地点

salgrade 工资级别

grade 级别

losal 最低工资

hisal 最高工资

简单的查询语句

查看表结构ν

DE S C emp;

查询所有列ν

S E L ECT * FR O M dept;

切忌动不动就用select *

S ET TIMING O N; 打开显示操作时间的开关,在下面显示查询时间。

CREATE TAB L E users(user I d VARCHAR2(10), u N ame VARCHAR2 (20), u P assw VARCHAR2(30));

IN S ERT INT O users VA L UE S('a0001', '啊啊啊啊',

'aaaaaaaaaaaaaaaaaaaaaaa');

--从自己复制,加大数据量 大概几万行就可以了 可以用来测试sql语句执行效率

IN S ERT INT O users (user I d,UNAME,UPA SS W) S E L ECT * FR O M users;

S E L ECT C O UNT (*) FR O M users;统计行数

查询指定列ν

S E L ECT ename, sal, job, deptno FR O M emp;

如何取消重复行DI S TINCTν

S E L ECT DI S TINCT deptno, job FR O M emp;

?查询S MITH所在部门,工作,薪水

S E L ECT deptno,job,sal FR O M emp WHERE ename = 'S MITH';

注意:oracle对内容的大小写是区分的,所以ename='S MITH'和ename='smith'是不同的

使用算术表达式 ν n v l null

问题:如何显示每个雇员的年工资?

S E L ECT sal*13+n v l(comm, 0)*13 "年薪" , ename, comm FR O M emp;

使用列的别名ν

S E L ECT ename "姓名", sal*12 A S "年收入"FR O M emp;

如何处理null值ν

使用n v l函数来处理

如何连接字符串(||)ν

S E L ECT ename || ' is a ' || job FR O M emp;

使用where子句ν

问题:如何显示工资高于3000的 员工?

S E L ECT * FR O M emp WHERE sal > 3000;

问题:如何查找1982.1.1后入职的员工?

S E L ECT ename,hiredate FR O M emp WHERE hiredate >'1-1月-1982';

问题:如何显示工资在2000到3000的员工?

S E L ECT ename,sal FR O M emp WHERE sal >=2000 AND sal <= 3000;

ν

ν 如何使用li k e操作符

%:表示0到多个字符 _:表示任意单个字符

问题:如何显示首字符为S的员工姓名和工资?

S E L ECT ename,sal FR O M emp WHERE ename li k e 'S%';

如何显示第三个字符为大写O的所有员工的姓名和工资?

S E L ECT ename,sal FR O M emp WHERE ename li k e '__O%';

在where条件中使用inν

问题:如何显示empno为7844, 7839,123,456 的雇员情况?

S E L ECT * FR O M emp WHERE empno in (7844, 7839,123,456);

使用is null的操作符ν

问题:如何显示没有上级的雇员的情况?

错误写法:select * from emp where mgr = '';

正确写法:S E L ECT * FR O M emp WHERE mgr is null;

6.oracle表查询(2)

使用逻辑操作符号ν

问题:查询工资高于500或者是岗位为MANAGER的雇员,同时还要满足他们的姓

名首字母为大写的J?

S E L ECT* FR O M emp WHERE(sal >500 or job = 'MANAGER') and ename L IKE'J%'; 使用order byν 字句 默认asc

问题:如何按照工资的从低到高的顺序显示雇员的信息?

S E L ECT * FR O M emp O RDER by sal;

问题:按照部门号升序而雇员的工资降序排列

S E L ECT * FR O M emp O RDER by deptno, sal DE S C;

使用列的别名排序ν

问题:按年薪排序

select ename, (sal+n v l(comm,0))*12 "年薪" from emp order by "年薪" asc; 别名需要使用“”号圈中,英文不需要“”号

分页查询ν

等学了子查询再说吧。。。。。。。。

C lear 清屏命令

oracle表复杂查询

说明ν

在实际应用中经常需要执行复杂的数据统计,经常需要显示多张表的数据,现在

我们给大家介绍较为复杂的select语句

ν

数据分组——ma x,min, a v g, sum, count

问题:如何显示所有员工中最高工资和最低工资?

S E L ECT MAX(sal),min(sal) FR O M emp e;

最高工资那个人是谁?

错误写法:select ename, sal from emp where sal=ma x(sal);

正确写法:select ename, sal from emp where sal=(select ma x(sal) from emp); 注意:select ename, ma x(sal) from emp;这语句执行的时候会报错,说

O RA-00937:非单组分组函数。因为ma x是分组函数,而ename不是分组函数....... 但是select min(sal), ma x(sal) from emp;这句是可以执行的。因为min和ma x

都是分组函数,就是说:如果列里面有一个分组函数,其它的都必须是分组函数,

否则就出错。这是语法规定的

问题:如何显示所有员工的平均工资和工资总和?

问题:如何计算总共有多少员工问题:如何

扩展要求:

查询最高工资员工的名字,工作岗位

S E L ECT ename, job, sal FR O M emp e where sal = (S E L ECT MAX(sal) FR O M emp); 显示工资高于平均工资的员工信息

S E L ECT * FR O M emp e where sal > (S E L ECT AVG(sal) FR O M emp);

group by 和 ha v ing子句ν

group by用于对查询的结果分组统计,

ha v ing子句用于限制分组显示结果。

问题:如何显示每个部门的平均工资和最高工资?

S E L ECT AVG(sal), MAX(sal), deptno FR O M emp GR O UP by deptno;

(注意:这里暗藏了一点,如果你要分组查询的话,分组的字段deptno一定要

出现在查询的列表里面,否则会报错。因为分组的字段都不出现的话,就没办法

分组了)

问题:显示每个部门的每种岗位的平均工资和最低工资?

S E L ECT min(sal), AVG(sal), deptno, job FR O M emp GR O UP by deptno, job;

问题:显示平均工资低于2000的部门号和它的平均工资?

S E L ECT AVG(sal), MAX(sal), deptno FR O M emp GR O UP by deptno ha v ing AVG(sal) < 2000;

对数据分组的总结ν

1 分组函数只能出现在选择列表、ha v ing、order by子句中(不能出现在where 中)

2 如果在select语句中同时包含有group by, ha v ing, order by 那么它们的

顺序是group by, ha v ing, order by

3 在选择列中如果有列、表达式和分组函数,那么这些列和表达式必须有一个出

现在group by 子句中,否则就会出错。

如S E L ECT deptno, AVG(sal), MAX(sal) FR O M emp GR O UP by deptno HAVING AVG(sal) < 2000;

这里deptno就一定要出现在group by 中

多表查询

说明ν

免费资源

免费资源 由于公众号限制,不准许插入外来链接,所以只能麻烦大家手动的复制粘贴了(ps 电脑上打开此链接,操作更方便)。此页面已不在维护,最新更新的免费资源会通过微信公众号发布并同步在菜鸟要飞网站 (https://www.doczj.com/doc/353359627.html,)。请大家及时关注本号信息。小编只能帮到这了!!119、Python基础教程视频集合2 链接:https://www.doczj.com/doc/353359627.html,/s/1mgYA5iK 密码:密码: icnh 118、黑客技术- 黑盾网安VIP 网站渗透基础类学习链接:https://www.doczj.com/doc/353359627.html,/s/1hqfIfTa 117、黑客技术- 风云网络信息安全渗透测试课程链接: https://www.doczj.com/doc/353359627.html,/s/1kTq1wV1 116、黑客技术- 半斤八两逆向培训课程(27课全)part2 链接: https://www.doczj.com/doc/353359627.html,/s/1pJDZLNl 115、黑客技术- 半斤八两逆向培训课程(27课全)part1 链接: https://www.doczj.com/doc/353359627.html,/s/1dm60A 114、黑客技术- 黑盾网安VIP 网站渗透基础类学习链接: https://www.doczj.com/doc/353359627.html,/s/1mg8Gjzy 113、黑客技术- 饭客黑客之免杀VIP教程链接: https://www.doczj.com/doc/353359627.html,/s/1pJDtNPT 112、黑客技术-Show me Why 超强脱壳教程链接:

https://www.doczj.com/doc/353359627.html,/s/1jGxoV8E 111、黑客技术-RFire 系列免杀教程链接:https://www.doczj.com/doc/353359627.html,/s/1i35y6NV 110、黑客技术-burpsuite 系列视频教程链接: https://www.doczj.com/doc/353359627.html,/s/1o6Olj9g 109、黑客技术-365免杀学习基地VIP源码免杀教程链接: https://www.doczj.com/doc/353359627.html,/s/1jG8Ksjc 108、数据结构与算法,算法导论,微积分,数学组合链接: https://www.doczj.com/doc/353359627.html,/s?__biz=MzA3ODg3OTk4OA==∣= 207452636&idx=1&sn=585b3a86d9cc976c66341fe89e86 91f8#rd 102、python就业视频教程链接: https://www.doczj.com/doc/353359627.html,/s?__biz=MzA3ODg3OTk4OA==∣= 207219220&idx=2&sn=657182abd8f6b3fd98b13609a79af 493#rd 100、HTML5 优质视频教程集锦链接:https://www.doczj.com/doc/353359627.html,/s?__biz=MzA3ODg3OTk4OA==∣= 207168402&idx=1&sn=4ff0c63af6d0d4df3abc7a88cdf43c a1#rd 98、微信公众平台开发教程链接: https://www.doczj.com/doc/353359627.html,/s?__biz=MzA3ODg3OTk4OA==∣= 207067923&idx=1&sn=de3d25f201c7b75ab01805208ef8c 265#rd 97、Android5.0新特性链接: https://www.doczj.com/doc/353359627.html,/s?__biz=MzA3ODg3OTk4OA==∣= 207035206&idx=1&sn=7c442b97a2aa6b1d140718b31e15 1e76#rd 94、html5技术课程(38课)链接:

(Oracle数据库管理)玩转实战教程学习笔记最全版

(O管理)玩转实战教程(韩顺平)学习笔记

韩顺平—玩转oracle视频教程笔记 一:Oracle认证,与其它数据库比较,安装 oracle的卸载 1.停止所有与ORACLE相关的服务。 2. 使用OUI(Oracle Universal Installer)卸载Oracle软件。 “开始”->“程序”->“Oracle-OraDb110g_home1|Oracle installation product|Universal installer. 3.删除注册表内容。运行regedit命令,删除下面内容:HKEY_LOCAL_MACHINE|SOFTWARE|ORACLE注册表键,删除此键。 HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services,删除Services键下所有以oracle为首的键。 HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services|Eventlog|Application,删除此键下所有以oracle为首的键。 HKEY_CLASSES_ROOT,删除此键下所有以Ora,Oracle,Orcl,EnumOra 为前缀的键。 HKEY_CURRENT_USER|Software| Microsoft|Windows|CurrentVersion|Explorer|MenuOrder|Start Menu|Programs,删除此键下所有以oracle为首的键。 HKEY_LOCAL_MACHINE|SOFTWARE|ODBC|ODBCINST.INI注册表键,删除了

JavaEE学习顺序

JavaEE学习顺序第一阶段:java基础 技术: 1.java语法 2.面向对象 3.常用的api 4.界面编程 5.多线程 6.文件io 7.java网络编程 视频: 张孝祥或者马士兵java视频 书籍: 《java2核心技术一二卷》 《java编程思想》研读,精读 《java模式》 第二阶段:数据库 技术: 1.oracle——主要的 2.mysql 3.sql server 视频:

韩顺平oracle视频 书籍:Oracle使用教程 深入浅出Oracle 第三阶段:web开发 技术: 1.html 2.css 3.javascript 视频: 张孝祥JavaScript视频 书籍: 张孝祥配套书籍《JavaScript网页开发》 别具光芒 孙鑫《HTML语言速成》 第四阶段:JavaEE中级 技术: 1.servet 2.jsp 3.mvc 服务器:tomcat、jboss、weblogic、websphere 视频: 韩顺平servlet—jsp视频 书籍:

oreilly公司《jsp设计》《java servlet编程》 第五阶段:JavaEE高级 技术 1.struts 2.hibernate 3.spring 视频: 美河图书《Servlet与JSP核心编程》 张小静Struts视频 孙卫琴《精通Struts基于MVC的Java.Web设计与开发》 李兴华Hibernate视频 孙卫琴《精通Java对象持久化技术详解》 第六阶段:其他流行技术 技术: Xml ajax(jquery,dw) Junit ant Ejb Enterprise JavaBeans技术2.0 Java消息服务(JMS)1.0 Java命名目录接口(JNDI)1.2 Java事务API(JTA) 1.0 JavaMail API 1.2 JavaBeans激活架构(JAF)1.0 J2EE连接器体系结构(JCA)1.0

韩顺平2011玩转oracle10g视频教学课堂笔记(完整版)

顺平j2ee系列教程--玩转oracle10g学习笔记 引言: 数据保存问题? 可使用文件保存和数据库保存。 使用文件保存数据存在几个缺点: 1、文本的安全性问题; 2、文件不利于查询和对数据的管理; 3、文件不利于存放海量数据; 4、文件在程序中控制不方便。 为解决数据保存问题,专家们设计出更加利于管理数据的东东--数据库(本质就是一个软件),它能更有效的管理数据。数据库是衡量一个程序员水平的重要指标。 数据库 1、数据库的本质就是一款软件,这个软件专门用于管理和维护数据; 2、数据存放在数据库中。 数据库服务器、数据库和表的关系 所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每个应用创建一个数据库。 为了保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。 数据库服务器、数据库和表的关系如图所示:

为什么选择oracle--性能优越 概述:目前主流数据库包括 微软: sql server和access 瑞典MySql: AB公司mysql ibm公司: db2(处理海量) 美国Sybase公司: Sybase ibm公司: informix 美国oracle公司: oracle 做项目时应当如何选择数据库? 1、标的(项目预算); 2、功能的要求; 3、并发数(多少人用); 4、安全、稳定性。 5、操作系统(unix[solaris,freeBSD,aix,hp unix]/linux/window) oracle数据库的认证 oca(oracle certified associate)初级认证 ocp(oracle certified professional)中级认证 ocm(oracle certified master)高级认证 oracle10g安装步骤: 1、安装文件 2、把10201_database_win32.zip文件copy到没有中文的路径下 3、检查服务选项,确定本机没有安装过oracle数据库,如果有则卸载 4、将压缩包解压后,双击setup.exe文件进行安装。 说明:建议大家自己建立一个文件目录,比如d:/hsporacle/oracle,然后把数据库安装到

玩转oracle-plsql定义并使用变量

I 、介绍:在编写pl/sql 程序时候,可以定义变量和常量,在pl/sql 中包括有: 标量类型( scalar ) 复合类型( composite ) 参照类型( reference ) lob ( large object ); 在编写 pl/sql 的时候,如果要使用变量,需要在定义部分定义变量; pl/sql 中定义变量和常量的语法如下: identifier [constant] datatype [ not null ] identifier : 名称; constant : 指定常量,需要指定他的初始值,而且他的值是不能够改变的; datatype :数据类型; not null ;指定变量不能为 null ; := 给变量或是常量指定初始值; default :用于指定初始值; expr :指定初始值的 pl/sql 表达式,可以是文本、其他变量、函数等; ① 定义一个变长字符串: v_ename varchar2 ( 20); ② 定义一个数: v_sal number (6,3 ); ③ 定义一个数并给定初始值: v _sal number (5,3 ):=5.4 ④ 定义一个日期类型的数据: v _hitedate date ; ⑤ 定义一个 bool 变量,不能为 null ,初始值为 false ; v_valid boolean not null default false ; ㈡、标量:使用标量 在定义好变量后就可以使用这些边玲了,这里需要说明的是 pl/sql 块为变量赋 值不同于其他编程语言,需要使用 := 符号; SQL> -- 下面以输入员工号,显示员工姓名等信息; SQL> declare 2 c_tax_rate number(3,2):=0.03; 3 -- 用户名; 4 v_name varchar2(5); 5 v_sal number(6,2); 6 v_tax_sal number(6,2); 7 begin 8 -- 执行 9 10 select ename ,sal into v_name , v_sal from emp where empno=&no; 11 -- 计算所得税‘ 标量: scalar )常用的类型: [:=|default expt]

韩顺平.2011最新版.玩转oracle视频教程(笔记)

韩顺平—玩转ora cle视频教程笔记一:Oracle认证,与其它数据库比较,安装

Oracle安装会自动的生成sys用户和system用户: (1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install (2)system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager (3)一般讲,对数据库维护,使用system用户登录就可以拉 也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。 二: Oracle的基本使用--基本命令 sql*plus的常用命令 连接命令 1.conn[ect] 用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper 2.disc[onnect] 说明: 该命令用来断开与当前数据库的连接 3.psssw[ord] 说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用 sys/system登录。 4.show user 说明: 显示当前用户名 5.exit 说明: 该命令会断开与数据库的连接,同时会退出sql*plus 文件操作命令 1.start和@ 说明: 运行sql脚本 案例: sql>@ d:\a.sql或是sql>start d:\a.sql 2.edit 说明: 该命令可以编辑指定的sql脚本 案例: sql>edit d:\a.sql,这样会把d:\a.sql这个文件打开 3.spool 说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。 案例: sql>spool d:\b.sql 并输入 sql>spool off 交互式命令 1.& 说明:可以替代变量,而该变量在执行时,需要用户输入。 select * from emp where job='&job'; 2.edit 说明:该命令可以编辑指定的sql脚本 案例:SQL>edit d:\a.sql

SQLServer2000笔记

SQLServer2000笔记(韩顺平主讲) 第一课 理论、概念、安装等略过 数字类型的数据类型的长度不是指字符个数,而是所占字节数 字符类型的数据类型的长度是指字符个数 GRANT:赋权限REVOKE:解除权限COMMIT:提交ROLLBACK:回滚

不区分大小写 select语句 --1.查询工资低于10000的同志 select * from hero where sal<10000;

--2.把工资低于10000的人的工资提高10%(update) --语法update 表名set 字段名1=?,字段名2=? where 条件 update hero set sal=sal*1.1 where sal<10000; --3.请删除性别为女的同志 delete from hero where sex='女' 小结: 增(insert)、删(delete)、改(update)、查(select) (_下划线和汉字也可以开头)

既然varchar如此智能为什么不抛弃char? 什么时候用char?确切知道所用字段的长度,譬如电话号码、身份证号等这种定长的。为什么要char? char查询时全字匹配,速度比varchar(一个一个比较)快! bit只存0和1(二进制) 为什么小数不建议用float ?用float存小数会存进去很奇怪的小数

如果非要用float,必须指定小数位数(范围1到53),否则极易产生很奇怪的数字, --推荐的小数保存类型numeric (共几位,其中小数占几位,如果不指定位数则自动表示整数) ,比如要求存放个人工资,单位元(20,2)

韩顺平老师oracle视频教程听课笔记

韩顺平老师 oracle教程笔记 1.Oracle认证,与其它数据库比较,安装 Oracle安装会自动的生成sys用户和system用户: (1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install (2)system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager (3)一般讲,对数据库维护,使用system用户登录就可以拉 也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。 2.Oracle的基本使用--基本命令 sql*plus的常用命令 连接命令 1.conn[ect] 用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper 2.disc[onnect] 说明: 该命令用来断开与当前数据库的连接 3.psssw[ord] 说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。 4.show user 说明: 显示当前用户名 5.exit 说明: 该命令会断开与数据库的连接,同时会退出sql*plus 文件操作命令 1.start和@ 说明: 运行sql脚本 案例: sql>@ d:\a.sql或是sql>start d:\a.sql 2.edit 说明: 该命令可以编辑指定的sql脚本 案例: sql>edit d:\a.sql,这样会把d:\a.sql这个文件打开 3.spool 说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。 案例: sql>spool d:\b.sql 并输入 sql>spool off 交互式命令 1.& 说明:可以替代变量,而该变量在执行时,需要用户输入。 select * from emp where job='&job'; 2.edit 说明:该命令可以编辑指定的sql脚本 案例:SQL>edit d:\a.sql 3.spool 说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去。 spool d:\b.sql 并输入 spool off 显示和设置环境变量

2010.08.09.韩顺平.玩转oralce.plsql

第一部分pl/sql初步介绍 1、期望目标 1)掌握oracle的pl/sql概念 2)掌握pl/sql编程技术(包括编写过程、函数、触发器…) 2、pl/sql的介绍-pl/sql是什么? 1)pl/sql(procedural language/sql)是oracle在标准的sql语言上的扩展。pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。 2)了解过程,函数,触发器 -过程、函数、触发器是pl/sql编写,相当于存储在oracle数据库中的对象 -过程、函数、触发器是在oracle中 -pl/sql是非常强大的数据库过程语言,使用pl/sql能够写变量,做判断;可以简化复杂度;减少网络的传销,增加程序的模块化编程,提高运行性能,使速度更加的快捷 -过程、函数可以在Java程序中调用 3、pl/sql的介绍-为什么学? 1)学习必要性 -提高应用程序的运行性能 -模块化的设计思想【分页的过程、订单的过程、转账的过程】 -减少网络传输量 -提高安全性 2)弊端 -移植性不好,例如从oracle数据库移植到DB2,则全部要重写 3)pl/sql的介绍-用什么编写pl/sql -sqlplus开发工具 -pl/sql developer开发工具 4)案例 -编写一个存储过程,该过程可以向某表中添加记录 -- 1.创建一个简单的表 create table gdsc (id int,name varchar2(20),passwd varchar(20));

-- 2.创建过程 create or replace procedure sp_gdsc_01 is begin --执行部分 insert into gdsc values(1,'陈学敏','mendychen'); end; -- replace:表示如果有sp_gdsc_01,就替换 -- 3.如何查看错误信息 show error; -- 如何调用该过程 -- 1.exec 过程名(参数值1,参数值2...); -- 2.call 过程名(参数值1,参数值2...); 第二部分基础 1、介绍 开发人员使用pl/sql编写应用模块时,不仅需要掌握sql语句的编写方法,还要掌握pl/sql 语句及语法规则。pl/sql编程可以使用变量和逻辑控制语句,从而可以编写非常有用的功能模块。比如:分页存储过程模块、订单处理存储过程模块、转账存储过程模块等。而且如果使用pl/sql编程,我们可以轻松的完成非常复杂的查询要求。 2、简单分类 |----------过程(存储过程) | |----------函数 块(编程)--------- | |----------触发器 | |----------包 3、编写规范 1)注释

韩顺平笔记

PHP是目前web编程第一语言,欢迎下载韩顺平老师最新力作PHP视频教程, 详情查看https://www.doczj.com/doc/353359627.html, hibernate的核心类和接口 ①Configuration 类 它的用处是: 1.读取hibernate.cfg.xml 2.管理对象关系映射文件 3.加载hibernate 的驱动,url ,用户.. 4.管理hibernate配置信息 ②hibernate.cfg.xml ③对象关系映射文件 ④SessionFactory (会话工厂) 1.可以缓存sql语句和数据(称为session级缓存)!! 2.是一个重量级的类,因此我们需要保证一个数据库,有一个SessionFactroy 这里我们讨论一个通过SessionFactory 获取Session的两个方法openSession() 一个getCurrentSession(); 1.openSession() 是获取一个新的session 2.getCurrentSession () 获取和当前线程绑定的session,换言之,在同一个线程中,我们获取 的session是同一session,这样可以利于事务控制 如果希望使用getCurrentSession 需要配置hibernate.cfg.xml中配置. 3.如何选择 原则: ①如果需要在同一线程中,保证使用同一个Session则,使用getCurrentSession() ②如果在一个线程中,需要使用不同的Session,则使用opentSession() 4.通过getCurrentSession() 获取的session在事务提交后,会自动关闭,通过openSession() 获取的session则必须手动关闭

韩顺平SqlHelper.java

package com.hsp.utils; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import java.sql.*; public class SqlHelper { //定义变量 private static Connection ct = null; //大多数情况下用preparedstatement替代statement private static PreparedStatement ps = null; private static ResultSet rs = null; //连接数据库的参数 private static String url = ""; private static String username = ""; private static String driver = ""; private static String passwd = ""; private static CallableStatement cs = null; public static CallableStatement getCs() { return cs; } private static Properties pp = null; private static InputStream fis = null; //加载驱动,只需要一次,用静态代码块 static { try { //从dbinfo.properties pp = new Properties(); fis=SqlHelper.class.getClassLoader().getResourceAsStream("mysql.properties"); //fis = new FileInputStream();

韩顺平linux视频学习笔记整理

Linux操作系统学习 linux的特点 优点: 1、免费的/开源的系统 2、支持多线程/多用户的系统 3、安全性好 4、对内存和文件管理优越 linux体积最少只需要内存4M,由于小所以可以做嵌入式开发 缺点: 操作相对困难 Linus于1991年至1994年将unix的微型版minis加以开发出linux 现在redhat红帽子、BSD、SUN等公司进行再发行 在windows环境下可以使用(VM等)虚拟机来运行linux 在linux运行startx命令可以进入图形操作界面 root是linux下的系统管理员 普通用户登陆后可以用su- 切换为系统管理员 关机命令 shutdown -h now 立刻进行关机 shutdown -r now 现在重新启动计算机 reboot 现在重新启动计算机 logout 注销 vi编辑器是linux下最有名的编辑器,也是学习linux必须掌握的工具,在unix下也可使用vi进行程序的开发 linux可以做java/c开发 在linux的vi编辑器内写一下简单的java程序“hello,world” 1、Vi Hello.java 2、输入i[进入到插入模式] public class hello{ public static void main(String []args){ System.out.println("hello,world"); } } 3、输入esc键[进入命令模式] 4、输入wq保存退出/q!退出但不保存 6、编译javac hello.java javac Hello.java

7、运行 java Hello [java运行的是class文件] ls命令显示当前文件 ls -l命令显示详细文件列表 如何在linux下开发c程序或是c++(cpp)程序 建立vi hello.cpp #include int main(){ printf("hello!"); return 0; } gcc hello.cpp 用gcc编译器编译出来未命名会是a.out文件 gcc -o [文件名] [源文件名] 用gcc编译器编译文件命名 /a.out 在linux下运行c程序只要输入/就可以运行 ------------------------------------------------------------ linux下的文件目录 linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层 是根目录“/”,然后在此目录下再创建其他的目录 深刻理解linux文件目录是非常重要的。 linux下的根目录中重要的目录如下是系统自动分配的 root目录、home目录、bin目录、sbin目录、mnt目录、etc目录、var目录、boot目录、usr目录、tmp目录(均为同级目录) root目录:用于存放root用户相关文件的目录 home目录:用于存放普通用户的相关文件的目录 bin目录:用于存放常用命令的目录 sbin目录:用于存放要具有一定权限才可以使用的命令的目录 mnt目录:用于默认挂载软驱、光驱的目录 etc目录:用于存放配置相关的文件的目录 var目录:用于存放经常变化的文件的目录 boot目录:用于存放系统引导文件的目录(重要) usr目录:用于存放安装的默认目录(安装文件会默认安装在usr目录里) tmp目录:用于存入临时文件的目录 cd /返回到主目录下 ls与dir功能相同显示目录名

韩顺平servlet笔记(必看完整版)

◆背景知识介绍 J2EE的13种技术 java->servlet->jsp [技术总是有一个演变过程] zip粘贴到word设置 ◆回顾一下我们现有的技术 java 基础(面向对象,集合,界面,线程,文件,网络) jdbc (java 的数据库编程) oracle / mysql / sqlserver html css javascript (web 开发) ->网页设计 xml serlvet+jsp ->java web开发[使用java技术做web开发] ◆java ee 体系的介绍 ◆servlet项目演示 ◆web 开发介绍 ①静态页面(html) ②动态页面 1.用户可以输入数据,和页面交互(注册,购物,发帖子,付款...) 2.不同时间打开页面,内容是变化. 3.目前比较流行的左动态页面的技术( servlet/jsp , php , https://www.doczj.com/doc/353359627.html, , asp, cgi ) ◆动态网页技术的比较(了解) ◆bs 和cs的比较 (1)BS:browser server 浏览器服务器

(2)cs client server 客户服务 为什么需要的web服务器/web究竟是干什么的? 模拟一个web服务器MyWebServer.java import java.io.*; import https://www.doczj.com/doc/353359627.html,.*; public class MyWebServer { public static void main(String []args) throws Exception{ ServerSocket ss=new ServerSocket(80); Socket s=ss.accept(); //提示一句话 System.out.println("在9999 上等待连接..."); OutputStream os=s.getOutputStream(); BufferedReader br=new BufferedReader(new FileReader("d:\\hello.html")); String buf=""; while((buf=br.readLine())!=null){ os.write(buf.getBytes()); } //关闭流

韩顺平linux教学视频学习笔记(第一天)

第一天 一、开山 1、Linux操作系统是开源而且免费的用于开发的操作系统。 稳定性、安全性、处理多并发 2、软件公司迫切需要熟练掌握linux的程序员。 工作方向: Linux系统管理员 Linux软件程序员:工程师(PC)和linux嵌入式开发(单片机,芯片)3、学习流程 第一阶段:vi,gcc,gdb,make,jdk,tomcat,myaql等linux基本操作 第二阶段:加厚C语言功底 第三阶段:学习unix环境高级编程《unix环境高级编程》 第四阶段:linux应用系统开发/嵌入式开发 4、推荐书籍: Linux操作命令的查询 5、内容介绍 基础部分:基础知识,常用命令,linux分区 实用部分:Samba安装与配置,linux网络环境配置,crontab使用,Shell 初步介绍 书籍:《鸟哥的Linux私房菜》、《Linux编程从入门到精通》、《linux内核完全剖析》

二、基础介绍 Linux初步介绍 1、吉祥物: 创始人来自芬兰 2、linux特点 免费的/开源 支持多线程./多用户的 安全性好 对内存和文件管理优越 缺点: 操作相对简单 Linux最小只需要4M内存——>嵌入式开发 3、支持linux的公司:IBM、Oracle、Sun、NEC 4、linux历史: 火星计划:Ken tompson(C语言设计者) +Denis完成Unix:开源、源码内核共享 Unix:aix(IBM),solaris(SUN),hp unix(HP),bsd(伯克利分校)Minix——》linux(Linus 芬兰读书)

5、第一次接触 虚拟机vm Startx 进入图形界面 Shutdown -h now 立即关机命令 Shutdown -r now 现在重启计算机=reboot Reboot 现在重启计算机 尽量少使用管理员用户root账号登陆,先利用普通用户登陆,登陆后再用su - 命令切换成管理员身份 Logout 注销 6、Vi编辑器的使用 开发java文件步骤:1、vi hello.java 2、i 【进入插入模式】 3、输入esc键【进入命令模式】 4、输入一个“:”+" wq/q!"【wq表示退出保持q!退出不保存】 5、Ls【显示文件保存情况】Ls -l【显示保存更明确】 6、编译Javac hello.java 7、运行java hello 开发C程序步骤: 1、编译gcc hello.c 或者gcc -o my1 hello.c

相关主题
文本预览
相关文档 最新文档