oracle第2讲笔记2

oracle第2讲笔记2
oracle第2讲笔记2

■类(对象)与表(记录)的关系图

■创建表

基本语法

create table 表名(

列名列的数据类型,

...

)

举例说明

创建一张用户表

create table users(

id number,

name varchar2(32),

password varchar2(32),

birthday date);

■ oracle的数据类型

① char(size)

存放字符串,最大2000个字符,是定长。

举例说明

create table test1(name char(32));

这样,在name这列,最多只能存放32个字符,如果超过,就报错,如果不够’abc’,则用空格补全。

insert into test1 values(‘abc’);

create table test2(name char(4000));

② varchar2(size)

变长,最大存放4000个字符

举例说明

特别说明:如果我们的数据的长度是固定的,比如商品编号(8位),则应当使用char来存放,因为这样存放速度快,如果存放的数据长度是变化的,则使用varchar2

③ nchar(size)

1.定长

2.编码方式unicode

举例说明

create table test4(name nchar(2));

insert into test4 values(‘中国’);//ok

create table test5 (name char(2));

insert into test5 values(‘中国’);//报错

说明:一个汉字,占用nchar的一个字符空间,一个汉字,占用char的两个字符空间

3.最大字符长度2000

④ nvarchar2(size)

1.变长

2.unicode编码

3.最大字符长度4000

⑤ clob(charater large object)字符型大数据对象

1.变长

2.8Tb

⑥ blob(binary large object)二进制大数据对象

1.变长

2.最大8tb

特别说明:我们在实际开发中很少把视频,图像文件存放数据库(效率问题),实际上存放记录文件的一个路径(本地或url),然后通过io/网络来操作

如果我们要求对文件安全性,可以考虑存放数据库。

⑦ number

NUMBER[(precision [, scale])] NUMBER(p,s)

范围: 1 <= p <=38, -84 <= s <= 127

保存数据范围:1.0e-130 <= number value < 1.0e+126 (正区间)

科学计数法:1.0*10的-130

-1.0e+126

保存在机器内部的范围: 1 ~ 22 bytes

1.number可以存放整数,也可以存放小数

2.语法number(p,s)

3.举例说明

4.是变长

特别说明:如果在实际开发中,我们明确要求保留到小数点几位,则明确指定,如果没有,可以直接使用number

⑧date日期类型

1.用于表示日期(年/月/日时/分/秒)

2.案例:

create table test _1 (birthday date);

insert into test_1 values('23-9月-2013');

添加时候,使用默认格式(dd-mm-yyyy)

oracle日期的默认格式dd-mm-yyyy,如果我们希望使用自己习惯的日期格式,也可以,需要借助oracle函数

⑧ timestamp

和date的主要区别,当更新数据时,timestamp类型自动更新为当前时间。

建表的综合案例

字段字段类型

Id整形

name字符型

sex字符型

brithday日期型

fellowship小数型

resume大文本型

create table students(

Id number,

name varchar2(64);

sex char(2),

birthday date,

fellowship number(10,2),

resume clob);

■表的管理---修改表

//添加一个字段

//修改字段类型

//删除一个字段

■SELECT查询语句

查询过程我们使用三张表

第一张表

EMPNO:雇员编号E NAME:名字 JOB:职位MGR:上级编号H IREDATE:入职日期 SAL:薪水COMM:奖金 DEPTNO:部门编号

DEPTNO:部门编号 DNAME:部门名 LOC:地点

G RADE:工资级别 LOSAL:最低工资 HISAL:最高工资

基本语法:

SELECT [DISTINCT]*|{列名1,列名2...} FROM 表名[WHERE {条件}]

●S ELECT 指定查询哪些列的数据。

●COLUMN指定列名。

●*号代表查询所有列。

●F ROM指定查询哪张表。

●WHERE是条件

●DISTINCT可选,指显示结果时,是否剔除重复数据

SELECT * FROM 表名

SELECT 列名1,列名2 FROM 表名

规定:尽可能返回较少的列,不要轻易使用*

如何取消重复行?

select distinct deptno,job from emp order by deptno;

什么是重复行?返回的数据完全一样才是重复行

?查询SMITH的薪水,工作,所在部门

SELECT SAL,JOB,DEPTNO FROM EMP WHERE ENAME=’SMITH’;

特别说明:ORACLE的SQL语句不区分大小写,但是查询的内容是区分大小写。

?显示每个雇员的年工资

select sal*13+nvl(comm,0)*13 年薪 from emp;

说明:nvl函数是oracle提供的,用于处理数据null的问题,基本用法nvl(comm,0);如果comm为空null,则返回0,如果不为空,则返回本身的值||的使用

在查询时候,如果希望将多列拼接起来,作为一列返回,可以使用||

具体用法:

select ename||'是一个'||job from emp;

where子句

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

SELECT * FROM EMP WHERE SAL>3000;

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

SELECT * FROM EMP WHERE HIREDATE>’1982-1-1’;

?如何显示工资在2000到2500的员工情况

SELECT * FROM EMP WHERE SAL>-=2000 AND SAL<=2500;

select * from emp where sal between 2000 and 2500;

如何使用LIKE操作符

%表示0到多个字符

_表示任意一个字符

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

SELECT ENAME,SAL FROM EMP WHERE ENAME LIKE ‘S%’;

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

SELECT ENAME,SAL FROM EMP WHERE ENAME LIKE ‘__O%’;

在WHERE条件中使用IN

?如何显示EMPNO为123,345,800...的雇员情况

SELECT * FROM EMP WHERE EMPNO=123 OR EMPNO=345 OR EMPNO=800;

SELECT * FROM EMP WHERE EMPNO IN (123,345,800);

使用IS NULL的操作符

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

SELECT * FROM EMP WHERE MGR IS NULL;

使用逻辑操作符号

?查询工资高于500或是岗位为MANAGER的雇员,同时还要满足他们的姓名首写字母为大写的J

SELECT * FROM EMP WHERE (SAL>500 OR JOB=’MANAGER’) AND ENAME LIKE ‘J%’;

使用ORDER BY子句

ORDER BY 子句主要的用途是对结果进行排序显示

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

SELECT * FROM EMP ORDER BY SAL [DESCEND] ASCEND;

默认情况下,ORDER BY后面的字段是升序排序,如果希望降序,则DESC

?按照部门号升序而雇员的入职时间降序排列

SELECT ENAME,DEPTNO,HIREDATE FROM EMP ORDER BY DEPTNO, HIREDATE DESC;

使用列的别名排序

SELECT SAL*13+NVL(COMM,0)*13年薪 FROM EMP ORDER BY 年薪;

■表的复杂查询

数据分组-MAX,MIN,AVG,SUM,COUNT

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

SELECT MAX(SAL) FROM EMP;

SELECT MIN(SAL) FROM EMP;

SELECT MAX(SAL),MIN(SAL) FROM EMP;

?显示所有员工的平均工资和工资总和

SELECT AVG(SAL),SUM(SAL) FROM EMP;

AVG(SAL)会不会把SAL为空统计进来?

不会把SAL为NULL统计进来,因此,如果希望为NULL的值也考虑,则我们可以这样做:

SELECT SUM(SAL)/COUNT(*) FROM EMP;

?计算共有多少员工

SELECT COUNT(*) FROM EMP;

说明:COUNT(*)也可以针对一个字段进行统计,比如COUNT(COMM);

扩展要求:

?请显示工资最高的员工的名字,工作岗位

思路:

1.查询出最高工资十多少?

SELECT MAX(SAL) FROM EMP;

2.看看谁的工资有这么多?

SELECT ENAME,JOB FROM EMP WHERE SAL=( SELECT MAX(SAL) FROM EMP);

?请显示工资高于平均工资的员工信息

1.查询出平均工资是多少?

SELECT AVG(SAL) FROM EMP;

2.

SELECT ENAME,JOB,SAL FROM EMP WHERE SAL>( SELECT AVG(SAL) FROM EMP);

GROUP BY 和 HAVING子句

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

SELECT AVG(SAL),MAX(SAL),DEPTNO FROM EMP GROUP BY DEPTNO;

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

SELECT AVG(SAL),MIN(SAL),DEPTNO,JOB FROM EMP GROUP BY DEPTNO,JOB

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

思路

1.查处每个部门的平均工资

SELECT AVG(SAL),DEPTNO FROM EMP GROUP BY DEPTNO;

2.

SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO HAVING AVG(SAL)<2000;

对数据分组的总结

1分组函数只能出现在选择列表、HAVING、ORDER BY子句中,WHERE子句中不可以包含分组函数

2如果在SELECT 语句中同时包含有GROUP BY ,HAVING ,ORDER BY 那么他们的顺序是GROUP BY , HAVING , ORDER BY

3在选择列表中如果有列、表达式、和分组函数,那么选择列表中任一非分组函数的所有列都应出现在GROUP BY 子句中,否则就会出错

如SELECT DEPTNO,AVG(SAL),MAX(SAL) FROM EMP GROUP BY DEPTNO HAVING AVG(SAL)<2000; 这里DEPTNO就一定要出现在 GROUP BY 中

■自连接

比如显示’FORD’的上级.

思路:1.显示ford上级编号

select mgr from emp where ename=’FORD’;

2.显示ford上级的信息

select * from emp where empno=( select mgr from emp where ename=’FORD’); 显示员工的上级领导的姓名

思路:把emp表看作两个表,一个表是雇员表worker,一个表是boss表

select worker.ename,boss.ename from emp worker, emp boss where worker.mgr=boss.empno;

疑惑:这里我们看到KING没有显示,因为他没有上级,如果希望把没有上级的人显示出来,则需要使用外连接。

■子查询

什么是子查询?子查询是指嵌入在其它sql语句中的select语句,也叫嵌套查询①单行子查询

如何显示与SMITH同一部门的所有员工?

思路:1.SMITH在哪个部门

select deptno from emp where ename=’SMITH’;

2.显示该部门所有员工

select * from emp where deptno=( select deptno from emp where ename=’SMITH’);

②多行子查询

如何查询和部门10的工作相同的雇员的名字、岗位、工资、部门号

1.先查询10号部门有哪些职位

select job from emp where deptno=10;

2.显示信息

select ename,job,sal,deptno from emp where job in (select job from emp where deptno=10);

③all操作符

如何显示工资比部门30的所有员工的工资高的员工的姓名、工资和部门号select ename,sal,deptno from emp where sal>all(select sal from emp where deptno=30);

select ename,sal,deptno from emp where sal> (select max(sal) from emp

where deptno=30);

④any操作符

如何显示工资比部门30的任意一个员工的工资高的员工的姓名、工资和部门号select ename,sal,deptno from emp where sal>any(select sal from emp where deptno=30);

select ename,sal,deptno from emp where sal> (select min(sal) from emp where deptno=30);

⑤多列子查询

如何查询与SMITH的部门和岗位完全相同的所有雇员

1.显示smith的部门和岗位是什么

select deptno,job from emp where ename=’SMITH’;

2.显示雇员信息

select * from emp where deptno=( select deptno from emp where ename=’SMITH’) and job=( select job from emp where ename=’SMITH’); select * from emp where (deptno,job)=( select deptno,job from emp where ename=’SMITH’);

⑥在from子句中使用子查询

如何显示高于自己部门平均工资的员工的信息

1.显示部门平均工资

select avg(sal),deptno from emp group by deptno;

2.把上面结果当作一个临时表来处理,显示员工信息

select * from emp t2, (select avg(sal) myavg,deptno from emp group by deptno) t1 where t2.sal>t1.myavg and t1.deptno=t2.deptno;

select e1.* from emp e1,t1.myavg where e1.sal>(select avg(sal) myavg from emp where deptno= e1.deptno) t1

!!!这个知识点一定要掌握

查找每个部门工资最高的人的详细资料

1.先找出每个部门的最高工资

select max(sal),deptno from emp group by deptno;

2.显示详细信息

select t2.ename,t2.deptno,t2.sal,t1.mymax from emp t2,( select max(sal) mymax,deptno from emp group by deptno) t1 where t2.sal=t1.mymax and t2.deptno=t1.deptno;

显示每个部门的信息(编号,名称)和人员数量

显示每个部门的人员数量

select deptno,count(*) from emp group by deptno;

显示每个部门的信息

select t2.deptno,t2.dname,t1.mynum from dept t2,( select deptno,count(*) mynum from emp group by deptno) t1 where t2.deptno=t1.deptno(+);

+表示外连接

这里需要说明的当在from子句中使用子查询时

,该子查询会被作为一个临时表来对待,

当在from子句中使用子查询时,必须给子查询

指定别名.

■分页查询

分页查询是我们学习数据库,必须掌握的一个要点

mysql的分页查询

select * from 表名 where 条件 limit 从第几条取, 取几条

sql server:

select top 3 * from 表名 where id not in(select top 3 id from 表名 where 条件)

排除前3条,再取3条,这个案例实际上取4-6

oracle:

select t2.* from (select t1.*,rownum rn from (select * from emp)t1 where rownum<=6) t2 where rn>=4;

三层过滤:

1.第一层过滤

select * from emp where 条件 (多表查询);

2.第二层过滤

(select t1.*,rownum rn from (select * from emp)t1 where rownum<=6) 3.第三层过滤

select t2.* from (select t1.*,rownum rn from (select * from emp)t1 where rownum<=6) t2 where rn>=4;

实际上,我们可以把上面的sql语句当作一个模板来对待

6:表示取到第几条

4:表示从第几条开始取

如果我们需要针对不同的情况,分页,请在最内层进行处理,包括多表

请思考:请按照入职时间的先后顺序,查询从第7到第10个人都是谁?

select t2.* from (select t1.*,rownum rn from (select * from emp_test)t1 where rownum<=600010) t2 where rn>=600000;

看一下它的分页查询效率

模拟100w的一个表

create table emp_test as select * from emp;

自我复制

insert into emp_test select * from emp_test;

■合并查询

1)UNION

该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中重复行。

SELECT ENAME,SAL,JOB FROM EMP WHERE SAL>2500 UNION

SELECT ENAME,SAL,JOB FROM EMP WHERE JOB=‘MANAGER';

2)UNION ALL

该操作赋与UNION相似,但是它不会取消重复行,而且不会排序。

SELECT ENAME,SAL,JOB FROM EMP WHERE SAL>2500

UNION ALL SELECT ENAME,SAL,JOB FROM EMP WHERE

JOB='MANAGER';

3)INTERSECT

使用该操作符用于取得两个结果集的交集。

SELECT ENAME,SAL,JOB FROM EMP WHERE SAL>2500

INTERSECT SELECT ENAME,SAL,JOB FROM EMP WHERE

JOB='MANAGER';

4) MINUS

使用该操作符用于取得两个结果集的差集,它只会显示存在第一个集合中,而不存在第二个集合中的数据。

SELECT ENAME,SAL,JOB FROM EMP WHERE SAL>2500 MINUS

SELECT ENAME,SAL,JOB FROM EMP WHERE JOB='MANAGER';

■ORACLE的内连接和外连接

①内连接

内连接是我们用的做多一种连接,前面我们讲的都是内连接

举例:比如我们显示员工的姓名和部门名称

SELECT EMP.ENAME,DEPT.DNAME FROM EMP,DEPT WHERE EMP.DEPTNO=DEPT.DEPTNO;<====> SELECT EMP.ENAME,DEPT.DNAME FROM EMP INNER JOIN DEPT ON EMP.DEPTNO=DEPT.DEPTNO;

②外连接

分为三种,左外连,右外连,完全外连

--表STU

ID NAME

1,J ACK

2,T OM

3,K ITY

4, NONO

CREATE TABLE STU(ID NUMBER,NAME VARCHAR2(32);

INSERT INTO STU VALUES(1,’JACK’);

INSERT INTO STU VALUES(2,’TOM);

INSERT INTO STU VALUES(1,’KITY’);

INSERT INTO STU VALUES(1,’NONO’);

--表EXAM

ID GRADE

1,56

2,76

11,80

CREATE TABLE EXAM(ID NUMBER, GRADE NUMBER);

显示所有人的成绩,如果没有成绩,也要显示该人的姓名和ID号,成绩显示为空)select * from stu,exam where stu.id=exam.id;

上面我们使用的内连接,它的特点是只有两张表同时匹配,才被选中

使用左外连

SELECT STU.ID,https://www.360docs.net/doc/a611704318.html,,EXAM.GRADE FROM STU LEFT JOIN EXAM ON STU.ID=EXAM.ID;

如果STU(左表)的记录没有和EXAM任何一条记录匹配,也要被选中

怎么判断一张表是左表?如果在LEFT JOIN的左边,就是左表

select * from stu,exam where stu.id=exam.id(+);

把+写在右边,表示左外连

■右外连

(显示所有成绩,如果没有名字匹配,显示空)

SELECT STU.ID,https://www.360docs.net/doc/a611704318.html,,EXAM.GRADE FROM STU RIGHT JOIN EXAM ON STU.ID=EXAM.ID; select * from stu,exam where stu.id(+)=exam.id;(+写在左边是右外连)说明:右外连,指的是右边的表如果没有和左边的表任何一条记录匹配,也要被选中

小结:实际上,左外连和右外联是可以互为转换的

(显示所有成绩,如果没有名字匹配,显示空)

(1)SELECT STU.ID,https://www.360docs.net/doc/a611704318.html,,EXAM.GRADE FROM STU RIGHT JOIN EXAM ON STU.ID=EXAM.ID; (2)select * from stu,exam where stu.id(+)=exam.id;

(3)SELECT STU.ID,https://www.360docs.net/doc/a611704318.html,,EXAM.GRADE FROM EXAM LEFT JOIN STU ON STU.ID=EXAM.ID;

(4) select * from stu,exam where exam.id=stu.id(+);

完全外连

显示所有成绩和所有人的名字,如果相应的匹配值,则显示空)

SELECT https://www.360docs.net/doc/a611704318.html,,EXAM.GRADE,STU.ID FROM STU FULL JOIN EXAM ON STU.ID=EXAM.ID;

列出部门名称和这些部门的员工姓名,同时列出那些没有员工的部门。(要求4种写法)

SELECT EMP.ENAME,DEPT.DNAME FROM DEPT LEFT JOIN EMP ON DEPT.DEPTNO=EMP.DEPTNO; SELECT EMP.ENAME,DEPT.DNAME FROM DEPT , EMP WHERE DEPT.DEPTNO=EMP.DEPTNO(+); SELECT EMP.ENAME,DEPT.DNAME FROM EMP RIGHT JOIN DEPT ON DEPT.DEPTNO=EMP.DEPTNO; SELECT EMP.ENAME,DEPT.DNAME FROM DEPT , EMP WHERE EMP.DEPTNO(+)=DEPT.DEPTNO;

(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注册表键,删除了

oracle数据库笔记001

如果出现协议器出错,我们就用这样的命令: 先用exit跳出sqlplus,再用net start(stop) oracleserviceORCL, 我们在启动oracleserviceORCL 分配的空间我们称之为实例服务,监听服务的启动:命令LSNRCTL START Oracle服务器:oracle实例(内存sid)oracle数据库(物理数据库)多个实例对应一个数据库:ops 和ras(多个sga) 一个实例对应一个数据库:单点数据库(通常情况) 一个实例只能访问一个数据库 Oracle的 Show parameter instance name 查询实例服务 Show parameter db_name 查询查询数据库名字 Select name from v$database 查询数据库名字 Show sga 查询sga 大小 Desc v$tablespace 查询表空间 Spool D:/oracel317.txt 指定文件存放位置执行完之后就要执行spool off Spool off 输出结束 Oracle数据库存储的结构 数据库逻辑结构:实例

数据库物理存储结构:数据文件(data file)控制文件(control file)日志文件(log file)归档文件() 查询数据文件:select name,bytes from v$datafile; 启动一个数据库步骤: (1)申请一个实例 (2)读取控制文件 (3)根据控制文件提供的信息找,关联物理数据库,就能连接数据库 查询各类数据文件夹desc v$datafile ; 数据的操作: 一个表(tablespace)有多个Segment 数据段 一个段(Segment)有多个区(extent) 一个区(extent)有多个块(data block) 数据块(data block)是有多个系统块组成(OS block) 单个表对应单个数据文件 查询select file_name,tablespace 创建表空间:create tablespace testtp datafile ‘d:/testtp01.dbf’size 1m autoextend on next 1m maxsize 10m; 但表空间已存在的时候,会报表空间已存在我们需要增加一个 Alter tablespace testtp add datafile ‘h:/testtp02.dbf’size 10m

oracle笔记(3)

1.用insert语句进行行数据的迁移 Insert into 表名(列,列) select 列,列from emp where 条件 2.用update更新数据(使用子查询):希望员工scott的岗位,工资,补助与smith员工一样? update emp set (job,sal,comm)=(select job,sal,comm. From emp where ename=?SMITH?) where ename=?SCOTT?; 3.事务 (1)锁 (2)提交事务 (3)回退事务(一开始就做保存点(savepoint)) (4)事务的几个重要操作 1)设置保存点:savepoint a 2)取消部分事务:rollback to a 3)取消全部事务:rollback (5)只读事务:set transaction read only(当前用户能看到之前的操作,若其他用户进行更 新,该用户之后的操作都不能看到更新) (6)字符函数 (1)lower(char):将字符串转化为小写的格式 (2)upper(char): 将字符串转化为大写的格式 (3)length(char):返回字符串的长度 (4)substr(char,m,n):取字符串的子串,从m开始取,取n个 (5)例:以首字符大写的方式显示所有的员工的姓名: (1)完成首字母大写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母小写:select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并:select upper(substr(ename,1,1)) || lower(substr(ename,2,length(ename)-1)) from emp; (6)replace(char1,search_string,replace_string) (7)instr(char1,char2,[,n[,m]])—取子串在字符串的位置 (8)例:显示所有员工的姓名,用”我是A”替换所有”A”:select replace(ename,?A?,? 我是A?) from emp; (7)数学函数 (1)round(n,[m]):用于四舍五入 (2)trunc(n,[m]):用于截取数字 (3)mod(m,n):取模 (4)floor(n):返回<=n的最大整数 (5)ceil(n):返回>=n的最小整数 (6)例:显示在一个月为30天的情况所有员工的日薪金,忽略余数:select floor(sal/30),ename from emp; (8)日期函数 (1)sysdate (2)add_months(d,n) (3)last_day(d):返回指定日期所在月份的最后一天 例:返回在八个月前雇佣的员工(已经入职8个月多的员工):select * from emp where sysdate>add_months(hiredate,300); 例:对于每个员工,显示其加入公司的天数:select trunk(sysdate-hiredate) “入职天

ORACLE笔记

1.Oracle 工具:sqlplus Sqlplus / as sysdba Shutdown immediate(关闭数据库) Startup(启动数据库) 注意:数据库开启才可以进行操作 Select username,account_status from dba_users;(查询数据库中所有的用户名称与用户状态) Alter user scott identified by tiger account unlock;(scott用户解锁) Sqlplus scott/tiger(使用SCOTT 密码为tiger登陆ORACLE数据库) Connect scott/tiger (在SQL>中直接使用SCOTT用户连接数据库) Show all;(看所有变量) Set sqlprompt “_user>”(设置sqlplus环境下面的提示符用自身用户显示) 注意:如要变量下次重启生效必须把变量写入 /u01/app/oracle/product/10.2.0/db_1/sqlplus/admin/glogin.sql中 Host(回到系统) Help index(查看所有命令) Help+命令(类似于LINUX中的MAN,查看命令的格式与用法) Disconnect(关闭SQLPLUS工具但是不离开数据库) Describe emp(查看EMP表) Define(定义变量,常用与写脚本用) 如:DEFINE _EDITOR =”vi” (CHAR) (定义VI编辑器用于保存最后一条执行的SQL语句) Save /u01/app/oracle/aa.sql (保存SQL语句) Get /u01/app/oracle/aa.sql (调用保存的SQL语句) 2.select(select 查询语句是ORACLE中最常用的语句) DML语句包括(insert 写入,update改变,delect删除,merge两张表同步) 注意:merge常用在ETL(数据仓库)底下 DDL数据定义语句包括(create创建对象,alter修改,drop删除对象,rename改名,truncate 删除整个表) TCL事务处理语句(commit提交立刻生效,rollback回滚,savepoint保存点,savepoint(保存点) DCL权限语句(grant赋予权限,revoke(收回权限) ORACLE的表称之为堆表(keep table) SELECT (1) writing basic SQL select statemanes 1. selecting all columns SCOTT>select * from dept; SCOTT>select dname,deptno,loc from dept; Basic SELECT Statement SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;

oracle学习笔记

●PLSQL控制台输出语句 SET serveroutput ON; --打开控制台输出服务 dbms_output.put_line('values2='||var_val); --输出语句 ●PLSQL动态变量 var_str := '&input'; ●创建表空间和用户 --创建表空间 CREATE TABLESPACE "BCPBS" LOGGING DATAFILE 'D:\app\E430\oradata\orcl\BCPBS_01.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED, 'D:\app\E430\oradata\orcl\BCPBS_02.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; --建立用户 CREATE USER "BCPBS" PROFILE "DEFAULT" IDENTIFIED BY "bcpbs123" DEFAULT TABLESPACE "BCPBS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; GRANT "CONNECT" TO "BCPBS"; GRANT "DBA" TO "BCPBS"; GRANT "RESOURCE" TO "BCPBS"; ●删除表空间和用户 drop user bcpbs cascade ; drop tablespace BCPBS including contents and datafiles cascade constraints ; ●自定义函数 CREATE OR REPLACE FUNCTION fun_level_value(level_value number) RETURN number IS return_value number:=null; BEGIN CASE level_value WHEN 0 THEN return_value:='0'; WHEN 1 THEN return_value:='1'; WHEN 2 THEN return_value:='2'; WHEN 3 THEN return_value:='3'; WHEN 6 THEN return_value:='8'; ELSE

Oracle学习笔记

Oracle的四个主要用户 1.超级管理员sys/change_on_install 2.普通管理员system/manager 3.普通用户scott/tiger 4.大数据用户sh/sh 简单查询 1.查询表结构 DESC 表名 2.简单查询SELECT [DISTINCT] *|[字段 [别名]] [,字段 [别名]] … FROM 表名 [别名] (1)查询时也可以使用四则运算,如:SELECT (字段*x)+y FROM 表名 (2)可以使用“||”连接字段与字符串,如: select '工作与工资:' || job || sal 工作工资 from emp 执行结果: 3.限定查询SELECT [DISTINCT] *|[字段 [别名]] [,字段 [别名]] … FROM 表名 [别名] [WHERE 条件(s)] (1)Where字句后可以增加多个条件,最常见的条件就是最基本关系运算:>、<、>=、<=、!=(<>)、BE TWEEN…AND、LIKE、IN(指定范围)、IS NULL(为空)、AND(且)、OR(或)、NOT(非)。 (2)多个条件可以使用AND与OR连接。 例如:select * from emp where sal>1300 and sal<4000 (3)范围判断BE TWEEN…AND:BETWEEN 最小值 AND 最大值(大于等于最小值,小于等于最大值),BE TWEEN…AND 对数字、日期都可以使用!!! 例如:select * from emp where sal between 1300 and 4000 例如:select * from emp where hiredate between '01-1月-1981' and '31-12月-1981' (4)判断为空IS (NOT) NULL 例如:select * from emp where comm is null 例如:select * from emp where comm is not null 例如:select * from emp where not comm is null (5)指定范围的判断(NOT) IN 例如:select * from emp where empno in(7369,7566,7799)

Oracle数据库学习笔记

Oracle数据库学习笔记 作者:高达 第一天: DBMS--数据库管理系统: Date base Manage System 数据模型: (1)层次模型类似于“倒树”型的结构 (2)网状模型 (3)关系模型RDBMS--Relation Date base System 记录和记录之间通过属性之间的关系来进行连接,保证数据独立性,并形成数据集之间的关系。 主键:关键词--PRIMARY KEY 用于行的区分,不会重复。主键可以由两列组成,叫做组合键。主键非空。如果为空则失去实体完整性。 外键:关键词--FOREIGN KEY 外键表示两个表之间的相关联系。外键的范围不能超过主键的范围,如果超过则失去引用完整性。 完整性: 是为保证数据库中数据的正确性和一致性。 (1).实体完整性: 数据行不能存在重复,也不能为空。即PK不重复不为空。

(2).引用完整性: 指建立两个关系建立联系的主外键的约束 1.要求子表中的相关项必须在主表中存在。 2.如果建立了主表和子表的关系,则:a.子表中的相关项目的数据,在主表中必须存在;b.主表中相关项的数据更改了,则子表对应的数据项也应当随之更改;c.在删除子表之前,不能够删除主表。 (3).域完整性: 保证表中数据的合理性 check 检查 default 默认 not null 不为空 unique 唯一约束 (4).自定义完整性: 根据用户需要自己定义。除了上述关键字,可以使用触发器来编写约束。 约束:关键词--CONSTRAINT 在创建表的时候添加约束。 目的: 确保表中数据的完整型 常用约束类型: 主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空。 唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。 检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束。 默认约束(Default Constraint):某列的默认值,如我们的男性学员较多,性别默认为“男”。外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的哪列。 不为空(not null):不可以为空。

oracle-database-11g-plsql-编程实战笔记

Chap1 DML语句是select 、insert、update、delete和merge DDL语句是create、alter、drop、rename、truncate、comment DCL语句是grant、revoke TCL语句是commit、rollback和savepoint sql16个基本命令——参考书《OCA认证考试指南(IZ0-051)》清华大学出版社 《oracle database sql language reference 11g》有非遵循格式字符串依赖于格式掩码 chap2 2.1.3 关于语句中有多个单引号时处理: 1、 select'It''s a bird,no plan can''t be 'as pharse from dual; 此处两个单引号即为一个单引号 2、只能用q 再加’(语句)’ select q'(It's a bird,no plan can't be)'as pharse from dual; 均输出 PHARSE ---------------------------- It's a bird,no plan can't be 2.1.4 定义变量与申明变量的区别: 定义变量即为变量分配名称并指定数据类型;申明变量首先需要定义变量,然后为其赋值。(赋值也称为初始化) 替代变量前面要加&前缀且若替代变量为字符型时要加两个单引号如’&a’ declare lv_whom varchar2(20);/*lv-whom为申明变量,a为替代变量,a没有变量类型*/ begin lv_whom := '&a'; end; 或者 declare lv_whom varchar2(20); begin lv_whom := &a; end;但是要在输入框中字符加两个单引号 替代变量用define申明,且定义时不可以指定类型,默认为char型 ①Define x=emp; Select * from &x; /*调用要用&,此处不加单引号,解析后即为emp表*/

oracle数据库学习笔记心得

select* |字段表名 from 表名 where 布尔表达式【条件】 externalcandidate 职员相关信息 contractrecruiter 猎头公司 查看表里所有字段 describe[描述] contractrecruiter select cname,nperecentagecharge from contractrecruiter 不显示原来名字,显示现在名字【用AS】 select cname as "Recruiter Name",nperecentagecharge as "Hire Fees" from contractrecruiter 不显示原来名字,显示现在名字【可不用AS】 select cname "Recruiter Name",nperecentagecharge "Hire Fees" from contractrecruiter 【双引号是否写】 双引号是为了区分大小写 职位表 position select *from position 缺额运算:[想减] select VDESCRIPTION , nbudgetedstrength, NBUDGETEDSTRENGTH -NCURRENTSTRENGTH , NYEAR from position

select VDESCRIPTION "Potion", nbudgetedstrength "Budgeted Strength" , NBUDGETEDSTRENGTH -NCURRENTSTRENGTH "Vacancies", NYEAR "Year" from position 显示非重复运行 查询来源地的人数 describe externalcandidate 查看职员城市名字 select ccity from externalcandidate 查看职员城市名字【名字不重复,插入一个关键字:distinct】select distinct ccity,cstate from externalcandidate 运算符: 两列 select vfirstname,vlastname from externalcandidate 字段拼接 select vfirstname||vlastname from externalcandidate select vfirstname||' '||vlastname from externalcandidate 学校 describe college 查看所有学校 select *from college 查看只是加利福尼亚的学校 select * from college where cstate='California' 一个条件 select vfirstname,vlastname,dbirthdate,ntestscore from externalcandidate where dbirthdate>='01-1月-70'

Oracle笔记

数据库基本概念: 数据库:Database ,DB (数据) 数据库管理系统:(Database Management System,DBMS)oracle ,DB2,Sql_server 等 数据库系统:(Database System ,DBS) 关系型数据库:(Relationship Database ,RDB) SQL语言:(Structured Query Language,结构化查询语言) 数据建模: 要将现实世界中客观存在的事物以数据的形式存储到计算机中并进行处理,就需要对其进行分析,抽象,进而确定数据的结构以及数据间的内在联系,这一过程称为数据建模。 数据模型应满足三个方面的要求: 1,能够比较真实地模拟现实世界 2,容易为人所理解; 3,便于计算机实现。 数据模型三要素: 数据结构---描述事物的静态特性; 数据操作---描述事物的动态特性; 完整性约束----描述事物内部和事物间的约束性关系。 现实世界-------认识抽象-------->概念世界-------转换--------->机器世界 概念数据模型(Conceptual Database Model,CDM) CDM从用户的观点出发对信息进行建模,并不依赖于具体的计算机系统或某个DBMS系统,主要用于数据库的概念设计。 CDM以实体--关系(E-R)模型为基础,将现实世界中的客观对象抽象为实体和关系。 到机器世界中,CDM将被转化为特定DBMS所支持的物理数据模型(Physical Database Model ,PDM)。 CDM相关术语: 实体(Entity):客观存在并且可以相互区分开来的事物。 实体集(Entity Set):同一类实体的集合。 属性(Attribute):描述实体的特性。 关系(Relationship):实体集之间的对应关系(现实世界事物之间的相互关联)。 E-R图三要素: 实体:用矩形框表示

oracle GoldenGate学习笔记

Oracle GoldenGate测试文档1.Oracle GoldenGate介绍 GoldenGate TDM(交易数据管理)软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库同步、双活。GoldenGate TDM 软件可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,其复制过程简图如下: 如上图所示,GoldenGate TDM的数据复制过程如下: 利用捕捉进程(Capture Process)在源系统端读取Online Redo Log或Archive Log,然后进行解析,只提取其中数据的变化如增、删、改操作,并将相关信息转换为GoldenGate TDM自定义的中间格式存放在队列文件中。再利用传送进程将队列文件通过TCP/IP传送到目标系统。捕捉进程在每次读完log中的数据变化并在数据传送到目标系统后,会写检查点,记录当前完成捕捉的log位置,检查点的存在可以使捕捉进程在中止并恢复后可从检查点位置继续复制; 目标系统接受数据变化并缓存到GoldenGate TDM队列当中,队列为一系列临时存储数据变化的文件,等待投递进程读取数据; GoldenGate TDM投递进程从队列中读取数据变化并创建对应的SQL语句,通过数据库的本地接口执行,提交到数据库成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。 由此可见,GoldenGate TDM是一种基于软件的数据复制方式,它从数据库的日志解析数据的变化(数据量只有日志的四分之一左右)。GoldenGate TDM将数据变化转化为自己的格式,直接通过TCP/IP网络传输,无需依赖于数据库自身的传递方式,而且可以通过高达9:1的压缩率对数据进行压缩,可以大大降低带宽需求。在目标端,GoldenGate TDM可以通

oracle常用笔记总结

1、用dba权限的用户查看数据库都有哪些锁 select https://www.360docs.net/doc/a611704318.html,ername,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time; 2、查看有哪些对象被锁了 select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id 3、根据sid查找进程id select pro.spid from v$session ses, v$process pro where ses.sid=129 and ses.paddr=pro.addr; select ses.sid from v$session ses, v$process pro where pro.spid=129 and ses.paddr=pro.addr; 4:根据这个spid对应linux下的进程pid linux命令: ps -ef | gre | 'ora' (找到所有ora开头的进程) kill -9 (pid) 5、解决delete后表的高水位的问题 初步判断应该是之前有大量数据,后来delete了,选成高水位,用shrink 清除高水位: alter table t_mobile_client_tp_prov enable row movement; alter table t_mobile_client_tp_prov shrink space; 重新收集统计信息: begin dbms_stats.gather_table_stats(ownname=>'traffic',tabname=>'T_MOBILE_CLIENT_TP_PR end; 6、ORA-02064 distributed operation not supported

韩顺平.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

oracle笔记

Oracle笔记 一、了解oracle 二、Oracle的安装 三、启动oracle: (1)、使用oracle中自带的sql*plus工具进入oracle。 (2)、利用sqlplus和sqlplusw打开oracle。 (3)、使用sql/pl developer进入oracle. (4)、使用oracle企业管理器 四、常用sql*plus命令: (1)、连接数据库: conn (ect) 用户名/密码@网络服务名(数据库名) (as sysdba/sysoper); 例如:conn scott/tiger; (2)、退出:exit; (3)、运行sql脚本: start 脚本地址。 例如:start d:\test.sql; (4)、修改sql脚本: edit 脚本地址。 (5)、截取屏幕代码spool,例如:spool d:\demo.txt…………….spool off; (6)、创建用户(以sysoper以上权限创建):create user 用户名identified by 密码; (7)、删除用户(以sysoper以上权限删除):drop user 用户名; (8)、修改用户密码:passw(ord)或alter user 用户名identified by 密码。 (9)、显示当前用户名:show user; (11)、断开数据库连接:disc(onnect); (12)、行距与每页显示次数:set linesize(pagesize) 数目。 (13)、给予权限: grant connect(连接权限)/resource(在system中创建表权限)/dba(最高权限) to 用户名with admin(系统权限下传)/grant(对象权限下传) option ; (14)、收回权限: revoke conn(连接权限)/resource(在system中创建表权限)/dba(最高权限) from 用户名(15)、使用profile文件管理用户: 限定用户登录次数: Create profile 文件名limit failed_login_attempts 3 password_lock_time 2; Alter user 用户名profile 文件名 用户解锁: Alter user 用户名account unlock;

oracle学习笔记

1、decode函数: SELECT checkup_type, DECODE(blood_test_flag,’Y’,’Yes’,’N’,’No’,NULL,’None’,’Invalid’) FROM checkup; DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于SQL的其它函数,DECODE函数还能识别和操作空值. 其具体的语法格式如下:DECODE(input_value,value,result[,value,result…][,default_result]); 其中:input_value 试图处理的数值。DECODE函数将该数值与一系列的序偶相比较,以决定最后的返回结果value 是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应result 是一组成序偶的结果值default_result 未能与任何一序偶匹配成功时,函数返回的默认值下面的例子说明了,如何读取用户CHECKUP表SEAPARK中的BLOOD_TEST_FLAG列下的项目,作为DECODE函数的实参支持值。 2、nvl函数的用法: 如果你某个字段为空,但是你想让这个字段显示0nvl(字段名,0),就是当你选出来的时候,这个字段虽然为空,但是显示的是0,当然这个0也可以换成其他东西,如:1,2,3…… NULL指的是空值,或者非法值。 NVL (expr1, expr2)->expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致 NVL2 (expr1, expr2, expr3) ->expr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型 NULLIF (expr1, expr2) ->相等返回NULL,不等返回expr1 3、oracle的查询必须是select ... from ...成对出现: 查询单行的时候可以用dual代替,dual表在系统中只有一行; 例如:获取系统时间; select sysdate from dual 4、oracle查询结果多行用逗号拼接: SELECT WM_CONCAT(GOODSTYPENAME) FROM TB_SYS_PRODUCT_FORBIDGOODSTYPE fib LEFT JOIN TB_SYS_GOODSTYPE ty ON fib.goodstypeid=ty.goodstypeid

oracle学习笔记-plsql(1)

pl/sql(1) 上次课程内容回顾 oracle 的内部结构 创建表空间 create tablespace 表空间名字 data?le '数据文件的路径' size 数据文件的初始化的大小; 创建用户create user 用户名 identi?ed by 密码 default tablespace 表空间名字 修改用户密码 alter user 用户名 identi?ed by 密码 授权 grant connect,reource,dba to 用户名 回收权限 revoke 角色名 from 用户名 创建目录 create directory 目录名 as 文件夹路径 grant read,write on directory 目录名 to 用户 expdp/impdp 用户名/密码 directory=目录名 dump?le=导入或者导出文件的名称 schemas=要导入的用户的名称 remap_schema=导出的用户名:导入的用户名 分页 rownum 本次课程内容 pl sql 是什么 pl sql 的块 pl sql的变量和常量 pl sql的数据类型 pl sql 条件分支 pl sql 循环 pl sql 异常处理 pl sql 事务处理 本次课程内容 pl sql 是什么 sql 是什么结构化查询语言。sql 是不是编程语言?编程语言我们学过 java ,js ,c ,c# ,c++ ,python等都是编程语言,编程语言有什么特征?编程语言都可以声明变量,都有变量类型,都能写条件判断,写循环处理。编程语言有了这些特性,才可以使用编程语言写业务逻辑。有的时候,实际上我们想把业务逻辑写到数据库中,如果只用sql是不行的,因为sql没有编程语言的特征,oracle的开发者就开发出一个pl sql 来解决这个问题。pl sql就是编程语言的特征+sql语句。这样我们就可以使用pl sql在数据库中写业务逻辑了。 这样做的好处主要就是可以提高性能,完成业务逻辑的封装。 pl sql的缺点写起来比较复杂,难以调试。 pl sql 块 pl sql 是以块的方式管理代码。块分匿名块和命名块。 匿名块类似于java中main方法,主要用来来,不保存到数据库中。

_Oracle数据库_学习笔记

笔记Edi ted w ith the trial version of Foxit Advanced PDF Editor T o remove this notice, visit: w https://www.360docs.net/doc/a611704318.html,/shopping

Oracle数据库 学习笔记 常见的数据库 小型数据库access(微软) 中型数据库mysql(瑞典MySql AB) sql server(美 微软) informix(美IBM) 大型数据库sybase(美sybase) oracle(美oracle) db2(美IBM) Oracle基本操作 一、Oracle数据库基本命令: 1.SQL->show user; 显示用户 2.SQL->conn scott/tiger;用户连接 3.SQL->disc; 断开连接 4. SQL->passw; 修改密码 5. SQL->exit; 退出 6. SQL->start D:\test.sql; 运行D盘下test.sql脚本 7. SQL->edit D:\test.sql; 编辑D盘下test.sql脚本 8. SQL->spool D:\test.sql; SQL->select * from emp; SQL->spool off; 二、Oracle管理用户 1.创建用户(以DBA身份) SQL->create user name identified by password(以字母开头) 注意:新建用户默认是没有任何权限的,需要DBA赋予权限(1、系统权限:对数据库的相关权限;2、对象权限:用户对其他用户数据对象(表、视图等)操作的权限) 2. grant赋予用户权限 SQL->grant connect to username;(把角色connect赋予username(dba 、resource)) SQL->grant select on emp to username;(emp表的用户scott或sys、system把select权限赋予username) username 用户可以进行select操作了,SQL->select * from scott.emp;(查询emp表的内容) SQL->grant select on emp to username;(把全部权限赋予) 3.revoke回收用户权限 SQL->revoke select on emp from username; (scott收回用户username对用户scott表emp的select权限(必须是scott 赋予username的权限)) 4.权限的传递 对象权限:SQL->grant select on emp to username with grant option; 系统权限:SQL->grant select on emp to username with admin option; 5.给用户修改密码 SQL->password username;(password scott ;sys修改scott密码) SQL->password;(scott修改自己密码) 6.使用profile管理用户口令 账户锁定 SQL->create profile lockname limit failed_login_attempts3 password_lock_time2;(以dba身份)创建配置文件,名字为lockname。 SQL->alter user username profile lockname; 账户解锁: SQL->alter user username account unlock; 删除profile :SQL->drop profile lockname; Oracle表的管理 一、表和列的命名规则

oracle学习笔记-oracle的基本的使用

oracle的基本的使用 本次课程内容 oracle的简介和安装 oracle的服务 oralce的用户 oracle的第三方工具 pl sql developer的使用 oracle的数据类型 oracle中的sql语句 oracle的虚表 oracle中创建序列 使用java 连接oracle数据库 详细内容 oracle的简介和安装 oracle 是一个关系型数据库。常用的关系型数据库有什么?mysql ,sql server,oracle ,db2 关系型数据库指的数据库表和表之间的外键。三种数据库哪些公司开发的? db2 IBM sql server 微软 my sql oracle公司 oracle oracle 公司 三种数据库在体量上的大小的关系。 db2>oracle > sql server > my sql mysql 免费 sql server 收费的 oracle 收费的靠维护收费 版本最新 12g 11g 9i 安装的时候点以下文件,以管理员方式运行:

安装完成: 最后一步,把scott用户解锁:

oracle的服务 oracle安装好之后会在系统注册很多服务,我们只需要启动两个服务就行了。 Listener结尾的服务是oracle的监听程序,ORCL结尾的是oracle的主服务。监听程序负责监控连接orace的身份是否合法。

oracle的用户 oracle 中的用户和数据库的概念和mysql中用户和数据库的概念正好相反。注意,现在oracle中的用户对应mysql中的数据库,oracle中的数据库对应mysql中用户。oracle 默认为我们创建好的数据库名orcl。oracle 以后我们常用的用户有三个。sys system scott sys 和system 都是管理员。管理员登录数据库必须制定 as sysdba后缀。 scott 是oracle 为我们提供的测试账户。scott默认的密码是tiger 如果scott账户被锁定:

相关文档
最新文档