oracle入门

一、安装

二、启动服务:

a)OracleServiceORCL

b)OracleOraDb11g_home2TNSListener

三、用户管理

a)sys: 超级管理员,权限最大

b)system: 管理员

c)scott: 实例账户,密码:tiger

d)登录用户:

i.conn system/Manager1 as sysdba

e)

f)分配权限:grant权限名to 用户名;

g)权限:connect, resource, dba

h)撤销权限:revoke权限名from 用户名;

i)修饰用户密码:alter user 用户名identified by 新密码;

j)锁定用户:alter user 用户名account lock;

k)解锁用户:alter user 用户名account unlock;

l)删除用户:drop user 用户名[cascade];

四、表空间

a)

b)

五、灾难处理

a)使用sysdba身份强行登录

i.conn system/Manager1 as sysdba;

b)排错,强行启动数据库

i.alter database open;

c)离线删除

i.alter database datafile 'f:\etc.mdf' offline drop;

d)重启启动数据库

i.alter database open;

e)删除表空间

i.drop tablespace etc_space;

六、数据类型

a)字符型:能够存储字符

i.char: 固定长度,1-2000字节

ii.varchar2(长度) :可变长度1-4000字节

iii.long: 可变长度2g

b)数值型:不区分小数和整数

i.number(总长度,小数位)

1.number(4,1)-999.9 – 999.9

2.number(5,2) -999.99 999.99

c)日期型:能够存储日期时间

i.data: 精确到秒

ii.timestamp: 精确到秒后六位

d)二进制:

i.RAW: 2000字节

ii.Long RAW: 2g

e)大对象:

i.Lob(large object) : 4g

ii.Clob: 文本大对象4g

iii.Blob: 二进制文件,4g

iv.Bfile: 外部文件大对象,外部文件的引用指针无限大

i.drop table 表名;

八、数据管理

a)添加:

i.insert into 表名values(值必须和表中的每个字段匹配)

ii.insert into 表名(字段名…) values(值…)

b)删除:

i.delete from 表名where 条件

c)修改:

i.update 表名set 字段名=值, 字段名=值…. Where 条件

d)查询:

i.select * from 表名;

ii.select 字段名1, 字段名2,…字段名n from 表名where 条件

e)查询是否为空:is null / is not null

f)模糊查询:like _一个字符%任意个字符

g)in: 是否与目标集合相等not in: 与in相反

h)between…and 在…之间

i.select ename,sal from emp where sal between 2000 and 4000

--查询emp表中所有的姓名和工资

select ename,sal from emp;

--查询佣金为空的员工姓名及工资

select ename,sal,comm from emp where comm is not null;

--查询姓名以字母'S'开头的员工(模糊查询)

SELECT*from emp where ename like 'S%'

--查询姓名第二个字母'O'的员工(模糊查询)

SELECT*from emp where ename like '_O%'

--查询姓名最后一个字母'T'的员工(模糊查询)

SELECT*from emp where ename like '%T'

--查询姓名有5个字符,最后一个字母'T'的员工(模糊查询)

SELECT*from emp where ename like '____T'

select*from emp where sal like '%3%'

select*from emp where sal like '3___'

--查询工资大于3000的所有员工信息

select*from emp where sal>3000

--查询所有的经理和办事的详细资料

select*from emp where job='MANAGER' or job='CLERK'

select*from emp where job in('MANAGER' , 'CLERK')

--查询工资是800,1500,5000的员工姓名,工资,

select ename,sal from emp where sal=800 or sal=1500 or sal=5000

select ename,sal from emp where sal not in(800,1500,3000,2250,1680,5000) --按参加工作时间从早到晚显示员工信息

select*from emp order by hiredate

--查询工资在2000--4000之间的员工姓名及工资

select ename,sal from emp where sal>=2000 and sal<=4000

select ename,sal from emp where sal between 2000 and 4000

第二天:

1.序列:

a)

b)

1 选择部门30中的所有员工

select*from emp where deptno=30;

2 列出所有办事员(CLERK)的姓名、编号和部门编号

select ename,empno,deptno from emp where job='CLERK'

3 找出佣金(COMM)高于薪金(SAL)的员工

select*from emp where comm>sal;

4 找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK),

既不是经理又不是办事员但其薪金(SAL)大于或等于2000的所有员工的详细资料select*from emp where(deptno=10 and job='MANAGER')or(deptno=20 and job='CLERK')or(job!='MANAGER' and job<>'CLERK' and sal>=2000)

5 找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料select*from emp where deptno=10 and job='MANAGER' or deptno=20 and

job='CLERK'

6 找出不收取佣金或收取佣金低于100的员工

select*from emp where comm is null or comm<100

7 列出薪金比“SMITH”多的所有员工信息

select*from emp where sal>(select sal from emp where ename='SMITH')

8 列出与“SCOTT”从事相同工作的所有员工

select*from emp where job=(select job from emp where ename='SCOTT')

9 列出薪金高于部门30 中所有员工的平均薪金的所有员工的姓名和薪金

select ename,sal from emp where sal>(select avg(sal)from emp where deptno=30) 10 显示部门20的员工人数

select count(empno)from emp where deptno=20;

11 列出所有员工的年工资,按照年薪从低到高排序

select sal*12 s from emp order by s;

12 查询工资高于公司平均工资的所有员工

select ename,sal from emp where sal>(select avg(sal)from emp);

1.约束

a)主键:唯一,非空,primary key

b)非空:not null

c)检查:check

d)默认值:在没有添加数据时,将自动添加默认值default

e)唯一:unique

2.函数的分类:

a)单值函数:有且只有一个返回值

i.字符函数:处理字符串

ii.数学函数:处理数值

iii.日期函数:处理日期时间

iv.转换函数:类型的转换

v.混合函数:特定功能

3.分组函数:类似聚合函数sum, avg, max, min count

i.问题1:显示部门30中所有员工的工资总和

1.Select sum(sal) from emp where deptno=30;

ii.问题2:显示部门30中的工资平均

1.Select avg(sal) from emp where deptno=30;

iii.问题3:显示工资高于3000的员工个数

1.Select count(empno) from emp where sal>3000;

iv.问题4:显示工资最低的员工信息

1.Select * from emp where sal=(select min(sal) from emp);

4.字符函数

i.问题1:查询员工姓名和工作,中间使用”-”连接起来

1.函数:concat(字符串1,字符串2)

a)select concat(concat(ename,'-'),job)from emp;

2.扩展:使用字符串连接符“||”

a)select ename||'-'||job from emp;

ii.问题2:截取员工姓名的前3个字符和字符4及以后的内容显示

1.函数:字符串截取函数:substr(待处理的字符串,截取的起始位置,截几个)

2.注意:Oracle中的字符串下标从1开始

a)select substr(ename,1,3),substr(ename,4)from emp;

iii.问题4:显示员工姓名包含字母’T’的员工信息

1.函数:字符定位函数instr(待处理的字符串,要查询的字符,起始位置,第n次出现)

2.返回值:字母所在的位置,如果没有返回0

a)select ename from emp where instr(ename,'T',1,1)<>0;

3.扩展:查询字母’T’在员工姓名中第一次和第二次出现的位置

a)select ename,instr(ename,'T',1,1), instr(ename,'T',1,2)from emp;

iv.问题6:将用户姓名小写显示

1.函数:字符串小写转换lower(字符串) / upper

a)select lower(ename),upper(ename)from emp;

v.问题7: 将工作种类首字母大写显示

1.函数:首字母大写函数initcap(字符串)

a)select initcap(job)from emp;

vi.问题8:将用户姓名中的’T’替换成’O’显示

1.函数:替换函数:replace(待处理的字符串,要查找的字符串,要替换的字符串)

a)select ename,replace(ename,'T','O')from emp;

vii.显示姓名只有5个字母的员工信息

1.长度函数:length(字符串)

a)返回值:该字符串的长度

b)select ename from emp where length(ename)=5;

5.日期、时间函数

a)问题1:查询当前系统时间

i.时间函数:sysdate

ii.select sysdate from dual;

iii.dual:是一张无意义的表,专门用于函数的测试

b)查询12年前参加工作的员工

i.函数:月份差函数months_between(时间1,时间2)

ii.select ename,hiredate from emp where months_between(sysdate,hiredate)>=144;

c)查询在当月倒数第三天入职的员工信息

i.函数:last_day(时间)

1.select ename,hiredate from emp where

last_day(hiredate)-2=hiredate;

d)查询每个员工的工作天数

i.规则:Oracle中的时间相减得到的是两个时间的天数差

1.select ename,sysdate-hiredate||'天' from emp;

e)月份添加

i.add_months(待处理的时间,添加月份的数量)

1.select hiredate, add_months(hiredate,3)from emp;

6.转换函数

a)

1.insert into test_date values('22-12月-2012');

ii.解决方案2:使用to_date(要添加的日期,格式);

iii.insert into test_date values(to_date('2013-03-12 13:42:11','yyyy-mm-dd hh24:mi:ss'));

iv.问题2:按照年月日、时分秒、星期几等信息显示系统时间

v.to_char(时间,格式)

vi.select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss day d ddd') from dual;

7.混合函数:

a)替空函数:nvl(字段名称,替换的值)

b)select sal+nvl(comm,0)from emp;

8.数值函数

a)问题1:按每月30计算员工的每日工资,要求结果四舍五入到小数点后2位

b)函数:round(数值,数度)

i.select sal/30,round(sal/30,2)from emp;

c)问题2:计算每个员工已经工作了多少个月,要求忽略小数部分

i.取整:trunc(时间);

ii.select ename,trunc(months_between(sysdate,hiredate))from emp;

d)ceil(数值) 向上取,得到一个整数

e)floor(数值) 向下取,得到一个整数

f)power(m,n) : m的n次方select power(2,3) 8

g)abs(数值) 绝对值

9.

一、多表查询

a)等连接

i.问题:显示员工的姓名,及其所在部门的名称

ii.分析:ename—emp dname – dept

iii.关系:emp(deptno) dept(deptno)

iv.select e.ename, d.dname from emp e,dept d where e.deptno=d.deptno;

b)外连接

i.问题:查询所有部门名称和对应的员工姓名,若该部门没有员工,则只

显示部门名称

ii.分析:部门名称dept-dname 员工姓名emp-ename

iii.select d.deptno,d.dname,e.ename from emp e,dept d where

e.deptno(+)=d.deptno;

iv.注意:Oracle中使用(+) 表示外连接,可以理解(+)所在字段的对侧为主要显示信息,对侧表示以=分开左右两部分

c)自连接

i.问题:显示员工姓名及其上级员工姓名

ii.分析:员工姓名emp-ename 上级姓名emp-ename

iii.select e1.ename,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno(+);

d)子查询

i.问题:查询工资高于公司平均工资的所有员工信息

1.select ename,sal from emp where sal>(select avg(sal)from emp);

二、集合,用于查询

a)并集:

i.

b)交集:

i.

c)差集:

i.

三、

a)用户:user

i.在建立其他对象之前,首先创建的是用户对象,它是其他对象的宿主,

建立、删除和维护用户

ii.

iii.

1.alter user 用户名identified by 新密码;

iv.锁定用户,需要管理员执行

1.Alter user 用户名account lock;

v.解锁用户,需要管理员执行

1.Alter user 用户名account unlock;

vi.授权,需要管理员执行connect, resource, dba

1.grant 权限名1,权限名2…. To 用户名;

vii.撤销权限,需要管理员执行

1.Revoke 权限名from 用户名;

viii.删除用户,需要管理员执行

1.Drop user 用户名[cascade];

b)表:table

i.

ii.查看表结构

1.desc 表名;

iii.添加新字段,address, telephone

iv.语法:alter table 表名add(字段名称类型)

1.alter table student add(address varchar2(20));

2.alter table student add(telepnone varchar2(20));

v.删除address字段

vi.语法:alter table 表名drop column 字段名;

1.alter table student drop column address;

vii.修改字段telepnone的类型为8位数字

1.注意:在修改字段类型之前需要原字段的内容清空

2.语法:alter table 列名modify(字段名,新类型)

3.alter table student modify(telepnone number(8))

viii.给表改名字

1.语法:rename 源名to 新名;

2.Rename student to stu;

ix.删除表

1.drop table 表名;

c)

第三天:

回顾:

1.分组函数:sum, avg, max, min, count

2.字符函数:

a)concat(字符串1,字符串2) ||

b)substr(字符串, 起始位置,截取的个数) 下标从1开始

c)instr(字符串,要查找的字符串,起始位置,第几次出现)

d)lower() / upper / initcap

e)replace(字符串,需要修改的字符串,修改成什么)

f)length(字符串)

3.日期函数:

a)sysdate 系统时间

b)months_between(时间1,时间2) 月份差

c)last_day(时间)

d)add_months(时间,添加月份)

4.数值函数

a)round四舍五入/ trunc整数截取/ ceil 向上取ceil(12.1) →13

/floor 向下取floor(12.9) →12

5.转换函数

a)insert into t1 values(’23-10月-2011’);

b)values(to_date(‘2011-12-22’,’yyyy-mm-dd’))

c)select to_char(sysdate, ‘yyyy-mm-dd hh24:mi:ss’) from dual;

6.替空函数

a)nvl(字段名,替换的值)

b)select ename, nvl(comm,0) from emp;

7.多表查询

a)等连接

b)外连接

c)自连接

i.select e1.ename,e2.ename from emp e1, emp e2 where

e1.mgr=e2.empno(+)

d)子查询

8.集合

a)并集(union/union all)

i.union会消除查询结果中重复的记录,union all 不会消除重复

b)交集

c)差集

数据库对象

1.约束

a)作用:保证数据的完整性、正确性,减少数据的冗余

b)两种方式:

i.

ii.

1.添加主键约束

2.

3.

4.

5.

6.alter table 表名add constraint 约束名称check(约束条件)

a)alter table books add constraint CK_p check(price>=0);

7.添加唯一约束

8.alter table 表名add unique(字段名称);

a)alter table books add unique(bname);

9.添加外键约束

10.alter table 主表add constraint 约束名称foreign key(外键字段名)

references 主键表(主键字段名)

a)alter table books add constraint FK_kid foreign key(kid)

references kinds(kid);

11.删除约束

a)alter table student drop constraint FK_kid;

2.序列

a)作用:实现某字段的,一般是主键的自增长

b)语法:

i.create sequence 对象名; 表示该字段从1开始每次增长1

ii.create sequence 对象名start with 起始值increment by 增长量;

iii.例如:合建一个序列对象,从10开始,每次增长10

1.Create sequence seq_dno start with 10 increment by 10;

c)如何访问序列中的值

i.对象名.nextval

ii.对象名.currval Current Value

d)注意:多张表可以共享同一个序列对象,建议一张表使用一个序列

e)删除序列:drop sequence 序列名;

3.视图:

a)是一张虚拟的表,在数据库中本身不存在的数据表,只存在于内存中

b)作用:

i.简化SQL的查询语句

ii.提高数据库查询的安全性

c)语法:create or replace view 视图名称as 复杂的SQL语句

d)注意:用户必须拥有足够的权限来创建视图

i.select * from emp; //不安全

ii.select * from v_1;

e)删除视图:drop view 视图名;

4.同义词,需要足够的权限

a)作用:通过给表起别名的机制,能够提高查询的效率及安全性

b)语法:

i.create synonym 别名for 原表名;

ii.

c)

i.drop [public] synonym 别名;

5.索引

a)作用:提高查询速度

b)语法:create index 索引名on 表名(字段名);

c)规则:

i.只要涉及到了添加索引的字段就有可能被提速

ii.Oracle为每张数据表的主键自动添加了一个索引

iii.不带where条件的SQL语句不会被提速

iv.有where条件中有函数的字段不被提速

v.在where条件中有参与运算的字段不提速

vi.尽量少用in, not in, null, is null, like 等关键字

vii.查询语句,优先考虑子查询,其次考虑集合查询

viii.where条件中限制性强的条件要写在where子句的末尾

ix.多表查询时,返回最少行的表名及条件写在最后。

1.Select 表1, 表2, where 条件1 and 条件2;

x.对于联合索引,当where子句中有任何一个字段都提高查询效率

6.PL/SQL

a)PL: Procedure Language 过程语言,拥有大量的结构化语句,if ,for

b)SQL:Struct Query Language 结构化查询语言,用于执行CRUD操作

insert,select,update,delete

c)

d)

i.变量必须先定义后使用,标识符不区分大小写

ii.数据类型:

iii.第一种声明方式:

1.使用数据库中的字段类型来定义程序的变量

2.

iv.第二种声明方式:

1.使用属性来定义类型,将表中字段的类型引用过来

2.

v.

1.使用行属性引用类型,使用该类型可以存储数据表中的一行数据

2.

vi.

1.第一种方式,可以在变量声明的同时赋初始值

a)eno number(4):=10;

2.

3.

4.

a)例如:将emp表中的编号为7369的员工姓名存储到变量en中,

5.

a)dbms_output.put_line(输出的内容); //带换行的输出

b)dbms_output.put(输出的内容); //不带换行

c)Oracle默认情况下是关闭输出显示的,set serveroutput on;

d)

6.For

a)

b)

c)

d)

e)

f)

第四天:

1.

2.

3.

4.异常处理

a)使用when…then 方式,可以处理特定异常,和通用异常

i.

b)

i.When others then

c)自定义异常

i.

5.游标

a)隐式游标:Oracle有且仅有一个隐式游标,用于接收并处理数据,用户无

法控制。

b)显式游标

i.

ii.

iii.

iv.

v.

declare

--声明一个动态游标类型

type cur is ref cursor;

--声明一个动态游标

mycur cur;

--声明两个行级变量

erow emp%rowtype;

drow dept%rowtype;

begin

open mycur for select*from emp;

loop

fetch mycur into erow;

exit when mycur%notfound;

dbms_output.put_line(erow.ename);

end loop;

dbms_output.put_line('------------------------------------------');

close mycur;

--读取dept表的内容

open mycur for select*from dept;

loop

fetch mycur into drow;

exit when mycur%notfound;

dbms_output.put_line(drow.dname);

end loop;

--关闭游标

close mycur;

end;

6.存储过程

a)

b)

1.exec 存储过程名(参数列表);

c)

1.案例:编写存储过程,用于接收用户输入的员工编号,显示员工的

ii.

iii.

7.

a)

b)

8.

a)

数据库及Oracle基础知识培训自学教材试题_V1 0

Oracle初级试题 一、选择题(20% 不定项每题2分) 1.对于Oracle用户方案下,根据模式/映像,请选出不属于模式的对象(D) A.表B.索引C.视图D.约束 2.在客户端配置哪个文件,可以使客户端访问oracle server?(A) A.tnsnames.ora B.sqlnet.ora C.listener.ora D.init.ora 3.搜索列中的数据,但只记得部分字符串,通常可以用以下哪种运算?(C) A.in B.between C.like D.exists 4.如从表中删除了一条记录,以下哪个语句可以保存数据库中的改变?(B) A.savepoint B.commit C.rollback D.update 5.下面关于视图的说法,请选出正确的(ABCD) A.一个视图可以创建为只读 B.一个视图可以用来连接两张或更多的表而被创建 C.在视图中不能含有order by子句 D.在视图中不能含有group by子句 6.在select语句中包含了where子句,请问group by子句可以放在哪里?(D) A.where子句前面 B.from子句前面 C.order by子句后面 D.where子句后面 7.关于having子句,以下说法正确的是:(C) A.having与where相同 B.having用于单行条件查询 C.having用于已分组的条件查询 D.having子句必须紧跟在where子句后面使用 8.能够在外部表上进行的操作有:(A) A.select B.update C.insert D.delete 9.在更改索引的操作(alter index)中,以下哪些子句可以定期优化索引?(AC) A.rename B.coalesce C.rebuild D.deallocate unused 10.请选出能够产生锁的操作:(AB) A.select … for update B.commit C.rollback D.lock table 二、填充题(20% 每空4分) 1.数据库最常用的DML操作有SELECT、UPDATE 、DELETE 和INSERT 等(要求写出操作命令)。 2.假设有两个数据N1和N2,请用函数实现如下算法:当N1>N2时,返回“大于”; 当N1=N2时,返回“等于”;当N1N2 then Return ‘大于’;

数据库基本知识(自己整理,初学者可以看一下,基于某MySql)

数据库

1常见数据库 1.1MySql : 甲骨文 1.2Oracle: 甲骨文 1.3SQL Server: 微软 1.4Sybase: 赛尔斯 1.5DB2: IBM 2MySql基础知识 2.1关系结构数据模型数据库 2.2SQL(Structured Query Language)结构化查询语言2.2.1DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等 操作数据库 CREATE DATABASE [IF NOT EXISTS]mydb1 USE mydb1 DROP DATABASE [IF NOT EXISTS] mydb1

ALTER DATABASE mydb1 CHARACTER SET utf8 操作表 插入表 CREATE TABLE stu( sid CHAR(6), sname VARCHAR(20), age INT, gender VARCHAR(10) ); 更改表 ALTER TABLE t_user ADD (student varcher(20)) ALTER TABLE t_user MODIFY gender CHAR(20) ALTER TABLE t_user CHANGE gender VARCHER(20) ALTER TABLE t_user REMANE genderTO genders ALTER TABLE t_user DROP gender 删除表 DROP TABLE t_user 2.2.2DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据) 插入数据 INSERT INTO t_user VALUES() INSERT INTO 表名 VALUES(值1,值2,…)

Oracle数据库基本知识点

1、数据库基本语句 (1)表结构处理 创建一个表:cteate table 表名(列1 类型,列2 类型); 修改表的名字 alter table 旧表名 rename to 新表名 查看表结构 desc 表名(cmd) 添加一个字段 alter table 表名 add(列类型); 修改字段类型 alter table 表名 modify(列类型); 删除一个字段 alter table 表名 drop column列名; 删除表 drop table 表名 修改列名 alter table 表名 rename column 旧列名 to 新列名; (2)表数据处理 增加数据:insert into 表名 values(所有列的值); insert into 表名(列)values(对应的值); 更新语句:update 表 set 列=新的值,…[where 条件] 删除数据:delete from 表名 where 条件 删除所有数据,不会影响表结构,不会记录日志, 数据不能恢复--》删除很快: truncate table 表名 删除所有数据,包括表结构一并删除: drop table 表名 去除重复的显示:select distinct 列 from 表名 日期类型:to_date(字符串1,字符串2)字符串1是日期的字 符串,字符串2是格式 to_date('1990-1-1','yyyy-mm-dd')-->返回日期的 类型是1990-1-1 (3)查询语句 1)内连接 select a.*,b.* from a inner join b on a.id=b.parent_id

Oracle基础知识大全,

课程目标: 1. 了解数据库系统在项目开发中的地位 2. 了解目前主流数据库系统 3. 熟练掌握查询命令 4. 熟练掌握数据操作方式 5. 熟练使用数据库内置函数 6. 掌握pl/sql程序设计语法结构 7. 掌握视图 8. 掌握存储过程 9. 掌握用户自定义函数 10. 掌握触发器 了解: 1.数据库组件: 1.1 实施应用集群 1.2 Oracle OLAP 1.3 数据挖掘 1.4 应用程序接口 1.5 网络组件 1.6 SQL Plus 1.7 企业管理器OEM

2. 几个版本间的差异: 2.1 增加了服务器参数文件SPFILE 2.2 使用了OMF免去了手工管理数据库文件的繁琐 2.3 支持多种数据库块大小 2.4 会话可以自动调整PGA的大小 2.5 引入了列表分区 课程内容: 1. 操作数据之前的准备工作: 1.1. 要保证有一个数据库: 1.2. 要保证创建一个表空间 create tablespace hbjr datafile 'E:\dbs\hbjr.dbf' size 100M; 1.3. 要创建一个用户,用户默认的表空间就是你创建的表空间 create user hbjr identified by orcl default tablespace hbjr; //授权限: grant dba to hbjr; 1.4. 用户/密码登录:

2. 表名/列字段名起名规范: 2.1 使用常规字母和数字 2.2 长度不要超过30 2.3 表名/列名不能重复 2.4 不能使用oracle的保留字 3. 数据类型 3.1 char:定长,存储单位--字节(bite) 3.2 varchar2:变长,存储单位--字节 3.3 nchar:定长,存储单位--字符 3.4 nvarchar2:变长,存储单位--字符 3.5 date:日期类型,7个字节,存储着--世纪,年,月,日,时,分,秒 3.6 timestamp:日期类型,11个字节,存储着--世纪,年,月,日,时,分,秒,毫秒 3.7 number:数据类型(数值类型) 3.8 clob:大字段类型,适合存储纯文本信息(例如:*.txt 文件)

数据库基础知识试题

数据库基础知识试题 部门____________ 姓名__________ 日期_________ 得分__________ 一、不定项选择题(每题分,共30分) 1.DELETE语句用来删除表中的数据,一次可以删除( )。D A .一行 B.多行 C.一行和多行 D.多行 2.数据库文件中主数据文件扩展名和次数据库文件扩展名分别为( )。C A. .mdf .ldf B. .ldf .mdf C. .mdf .ndf D. .ndf .mdf 3.视图是从一个或多个表中或视图中导出的()。A A 表 B 查询 C 报表 D 数据 4.下列运算符中表示任意字符的是( )。B A. * B. % C. LIKE 5.()是SQL Server中最重要的管理工具。A A.企业管理器 B.查询分析器 C.服务管理器 D.事件探察器 6.()不是用来查询、添加、修改和删除数据库中数据的语句。D A、SELECT B、INSERT C、UPDATE D、DROP 7.在oracle中下列哪个表名是不允许的()。D A、abc$ B、abc C、abc_ D、_abc 8.使用SQL命令将教师表teacher中工资salary字段的值增加500,应该使用的命 令是()。D A、Replace salary with salary+500 B、Update teacher salary with salary+500 C、Update set salary with salary+500 D、Update teacher set salary=salary+500 9.表的两种相关约束是()。C

Oracle11g数据库基础教程-参考答案资料

第1章Oracle 11g数据库安装与配置 1.简答题 (1) 企业版数据库服务器包含所有的数据库组件,主要针对高端的应用环境,适用于安全性和性能要求较高的联机事务处理(OLTP)、查询密集型的数据仓库和要求较高的Internet应用程序:标准版数据库服务器提供大部分核心的数据库功能和特性,适合于工作组或部门级的应用程序:个人版数据库服务器只提供基本数据库管理功能和特性,适合单用户的开发环境,为用户提供开发测试平台。 (2) 常用数据库类型包括事务处理类、数据仓库类以通用类型。其中事务处理类型主要针对 具有大量并发用户连接,并且用户主要执行简单事务处理的应用环境。事务处理数据库的典型应用有银行系统数据库、Internet电子商务数据库、证券交易系统数据库等。对于需要较 高的可用性和事务处理性能、存在大量用户并行访问相同数据以及需要较高恢复性能的数据 库环境,事务处理类型的配置可以提供最佳性能;数据仓库类型的数据库主要针对有大量的 对某个主题进行复杂查询的应用环境。数据仓库的典型应用有客户订单研究、支持呼叫、销售预测、采购模式以及其他战略性业务问题的历史数据研究。对于需要对大量数据进行快速 访问,以及复杂查询的数据库环境,数据仓库类型配置是最佳选择;通用类型配置的数据库是事务处理数据库与数据仓库配置的折衷方案。既可以支持大量并发用户的事务处理,又可以快速对大量历史数据进行复杂的数据扫描和处理。 (3) 数据库名可以由字母、数字、下划线(_)、#和美元符号($)组成,且必须以字母开头,长度不超过30个字符。在单机环境中,可以不设置域名,域名长度不能超过128个字符。Oracle服务标识符(SID)是一个Oracle实例的唯一名称标识,长度不能超过12个字符。(4) OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务,是数据库启 动的基础,只有该服务启动,Oracle数据库才能正常启动。(必须启动) OracleOraDb11g_home1TNSListener:监听器服务,该服务只有在远程访问数据库时 才需要(无论远程计算机还是本地计算机,凡是通过Oracle Net网络协议连接数据 库都属于远程访问)。(必须启动) OracleOraDb11g_home1ConfigurationManager:配置Oracle启动时的参数的服务。(非必须启动) OracleOraDb11g_home1ClrAgent:提供对.NET支持的Oracle数据库扩展服务。(非必须启动) OracleJobSchedulerORCL:数据库作业调度服务。(非必须启动) OracleDBConsoleorcl:Oracle控制台服务,即企业管理器服务。只有该服务启动了, 才可以使用Web方式的企业管理器管理数据库。(非必须启动) OracleVssWriterORCL:是Oracle对VSS提供支持的服务。(非必须启动) OracleMTSRecoveryService:是允许数据库充当一个微软事务服务器、COM/COM+对象和分布式环境下的事务资源管理器的服务。

ORACLE数据库基础知识1

第一部分 Oracle数据库概念与原理 一、Oracle数据库概念 1. 数据库 数据库是一套解决信息管理问题的工具,是数据文件及处理这些数据文件的程序的集合。一个数据库系统必须实现在多用户环境下可靠地管理大量的数据,使得很多用户在并发处理时获得相同的结果,而且必须具有处理数据的高效性、可靠性、安全性和容错性,同时提供简便易用的客户端用户操作过程和应用接入。 2. Oracle数据库 Oracle数据库是采用数据库进程和应用程序分进程处理的Client/Server结构的关系型数据库,采用大型数据库的磁盘空间管理形式,支持大量用户同时操作相同的数据,实现高度可靠性、高度的安全性、高效率和在线备份机制。Oracle数据库适合于各种不同的硬件环境和不同的操作系统,且具有接口方便和控制容易的特性,并支持多点实时复制。 二、Oracle数据库原理 1. Oracle数据库的基本任务 (1)录入数据; (2)存储数据; (3)查询、处理数据

2. Oracle数据库的组成结构 Oracle按照应用情况可以分为核心数据(DATA)、操作系统(Operation System)、数据库服务器部分(Oracle Server)、Oracle SQL Server程序、Oracle工具(包括SQL*PLUS和很多像Developer 2000、designer 2000等工具)以及Oracle的各种应用。 按照Oracle的对象组成结构来看,Oracle数据库由以下几部分组成: ⑴实例(Instance):Oracle实例是一组有自己的系统全局区和与其相关数据库文件的Oracle服务器进程,每个实例都有自己的SID(系统识别符)。 ⑵对象(Object):由应用程序中的SQL语句引用的表空间、用户、表、视图、索引、权限、DBA(数据库管理员)等。 ⑶程序:也是Oracle数据库的过程,主要包括客户过程(client processes),根据用户的要求向服务器过程提出需求信息的请求;服务器过程server processes),接收用户过程发出的请求,并根据请求与数据库通信,完成对数据库中数据的处理。 ⑷文件:包括数据文件(Datafile),存放所有数据库有关的数据。 日志文件(Log File),也称重演日志文件(Redo Logs File)或事务记录文件(Trasaction Log File),记录针对数据库进行的修改操作或各种事务,节省数据库直接操作数据文件的时间和次数,提高处理效率。 控制文件(Control File),存放与Oracle数据库所有文件均相关的关键信息,Oracle数据库通过控制文件保持数据的一致性,以及恢复数据时使用哪些重演日志。 每个数据库至少应该有两个以上的控制文件和日志文件备份。 ⑸内存结构 Oracle的内存结构SGA主要是一个通信器,它是一块存放系统信息的内存区域,使得通信过程尽量能够在内存中处理, 达到快速度、高效率。所有用户进程和服务器进程都能够访问这个内存结构。SGA区主要分为四块: ① Data Buffer Cache(数据高速缓冲区)中存放着Oracle最近使用过的数据库数据块,当用户一次访问数据时,用户进程从物理磁盘中读取数据后将其放在这个高速缓冲区,下一次或其他用户访问时从缓冲区读取,Oracle数据库根据数据被访问的频度和缓冲区的物理大小通过相应的HASH算法将经常访问的数据保留,而去除不经常访问的数据块。 ② Dictionary Cache(Row Cache,字典高速缓冲区)用于保存数据字典中的行,数据字典中存放Oracle系统管理时需要的所有信息,这些信息包括:访问Oracle数据库的用户以及他们访问哪些数据库对象和这些对象所放的位置等。 ③ Redo Log Cache(Transaction Log Cache,即重演日志缓冲区),任何需要事务在写入到重演日志之前首先放到缓冲区中,然后定期将其写入到重演日志。 ④ Share SQL Pool(共享SQL池)相当于程序高速缓冲区,所有用户的经过语法分析的、准备执行的SQL语句都放在此共享池中。 3. Oracle数据库的数据处理流程

Oracle11g数据库基础教程-参考答案

Oracle11g数据库基础教程 参考答案

第1章Oracle 11g数据库安装与配置1.简答题 (1) 企业版数据库服务器包含所有的数据库组件,主要针对高端的应用环境,适用于安全性和性能要求较高的联机事务处理(OLTP)、查询密集型的数据仓库和要求较高的Internet应用程序:标准版数据库服务器提供大部分核心的数据库功能和特性,适合于工作组或部门级的应用程序:个人版数据库服务器只提供基本数据库管理功能和特性,适合单用户的开发环境,为用户提供开发测试平台。 (2) 常用数据库类型包括事务处理类、数据仓库类以通用类型。其中事务处理类型主要针对具有大量并发用户连接,并且用户主要执行简单事务处理的应用环境。事务处理数据库的典型应用有银行系统数据库、Internet电子商务数据库、证券交易系统数据库等。对于需要较高的可用性和事务处理性能、存在大量用户并行访问相同数据以及需要较高恢复性能的数据库环境,事务处理类型的配置可以提供最佳性能;数据仓库类型的数据库主要针对有大量的对某个主题进行复杂查询的应用环境。数据仓库的典型应用有客户订单研究、支持呼叫、销售预测、采购模式以及其他战略性业务问题的历史数据研究。对于需要对大量数据进行快速访问,以及复杂查询的数据库环境,数据仓库类型配置是最佳选择;通用类型配置的数据库是事务处理数据库与数据仓库配置的折衷方案。既可以支持大量并发用户的事务处理,又可以快速对大量历史数据进行复杂的数据扫描和处理。 (3) 数据库名可以由字母、数字、下划线(_)、#和美元符号($)组成,且必须以字母开头,长度不超过30个字符。在单机环境中,可以不设置域名,域名长度不能超过128个字符。Oracle服务标识符(SID)是一个Oracle实例的唯一名称标识,长度不能超过12个字符。(4) ● OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务,是数据库启 动的基础,只有该服务启动,Oracle数据库才能正常启动。(必须启动) ● OracleOraDb11g_home1TNSListener:监听器服务,该服务只有在远程访问数据库时 才需要(无论远程计算机还是本地计算机,凡是通过Oracle Net网络协议连接数据库都属于远程访问)。(必须启动) ● OracleOraDb11g_home1ConfigurationManager:配置Oracle启动时的参数的服务。(非 必须启动) ● OracleOraDb11g_home1ClrAgent:提供对.NET支持的Oracle数据库扩展服务。(非 必须启动) ● OracleJobSchedulerORCL:数据库作业调度服务。(非必须启动) ● OracleDBConsoleorcl:Oracle控制台服务,即企业管理器服务。只有该服务启动了, 才可以使用Web方式的企业管理器管理数据库。(非必须启动) ● OracleVssWriterORCL:是Oracle对VSS提供支持的服务。(非必须启动) ● OracleMTSRecoveryService:是允许数据库充当一个微软事务服务器、COM/COM+ 对象和分布式环境下的事务资源管理器的服务。

Oracle数据库基础知识(华为内部培训资料)

课程IL001100 ORACLE数据库基础知识 ISSUE1.0 开心Java整理

目录 课程说明 (1) 课程介绍 (1) 课程目标 (1) 相关资料 (1) 第1章ORACLE数据库概述 (2) 1.1 产品概述 (2) 1.1.1 产品简介 (2) 1.1.2 基本概念 (3) 1.2 ORACLE系统结构 (4) 1.2.2 ORACLE物理结构 (4) 1.2.3 系统全局区 (6) 1.2.4 进程 (8) 1.3 存储管理 (9) 1.3.2 逻辑结构 (10) 1.3.3 表(Table) (14) 1.3.4 视图(View) (18) 1.3.5 索引(Index) (18) 1.3.6 同义词(Synonym) (19) 1.3.7 序列(Sequence) (19) 1.3.8 数据库链(Database Link) (19) 第2章管理ORACLE数据库 (21) 2.1 基本概念 (21) 2.1.1 数据字典 (21) 2.1.2 事务管理 (23) 2.1.3 数据库管理员(DBA) (24) 2.1.4 ORACLE的四种状态 (25) 2.2 SQL*Plus方式的ORACLE数据库启动和关闭 (26) 2.2.1 启动数据库 (26) 2.2.2 关闭数据库 (26) 2.3 svrmgrl方式的ORACLE数据库启动和关闭 (28) 2.3.1 启动数据库 (28) 2.3.2 关闭数据库 (30) 2.4 应用开发工具(SQL * Plus) (31) 2.4.1 SQL (32) 2.4.2 PL/SQL (33)

oracle11g教程从入门到精通

韩顺平—玩转oracle视频教程笔记一: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基本操作语句(适合初学者)

1. select * from table_name where rownum>begin and rownum< end 2.sql = "select * from table" con.prepareCall("SELECT * FROM(SELECT A.*, rownum r FROM("+sql+") A WHERE rownum <= "+intPage*intPageSize+") B WHERE r > "+(intPage-1) *intPageSize); 今天想查询一下Oracle数据库下所有的表名或某个用户下的所有表,半天没想起来.还是在网上找到了答案. select table_name from all_tables;//所有的表明 select table_name from user_all_tables;//用户的所有的表 一下是转贴的sql语句的帖子. select * from user_objects; //查询所有的表 select * from dba_tables; //查询所有的表 select * from all_tables; //查询所有的表 select * from user_users //查出一个用户 select * from all_users //查询所有用户 select * from dba_users //查询所有用户 select name,dbid from v$database; //查询数据库名和它的ID select * from https://www.360docs.net/doc/6418774886.html,er_tab_columns; //查询表名,并显示列名 describe 表名//查询表结构 select * from https://www.360docs.net/doc/6418774886.html,er_tab_columns where table_name=表名//查询指定表名的字段 2: 查询数据库参数 show parameter db;

oracle入门

一、安装 二、启动服务: a)OracleServiceORCL b)OracleOraDb11g_home2TNSListener 三、用户管理 a)sys: 超级管理员,权限最大 b)system: 管理员 c)scott: 实例账户,密码:tiger d)登录用户: i.conn system/Manager1 as sysdba e) f)分配权限:grant权限名to 用户名; g)权限:connect, resource, dba h)撤销权限:revoke权限名from 用户名; i)修饰用户密码:alter user 用户名identified by 新密码; j)锁定用户:alter user 用户名account lock; k)解锁用户:alter user 用户名account unlock; l)删除用户:drop user 用户名[cascade]; 四、表空间 a) b) 五、灾难处理 a)使用sysdba身份强行登录 i.conn system/Manager1 as sysdba; b)排错,强行启动数据库 i.alter database open; c)离线删除 i.alter database datafile 'f:\etc.mdf' offline drop; d)重启启动数据库 i.alter database open; e)删除表空间 i.drop tablespace etc_space; 六、数据类型 a)字符型:能够存储字符 i.char: 固定长度,1-2000字节 ii.varchar2(长度) :可变长度1-4000字节 iii.long: 可变长度2g b)数值型:不区分小数和整数

完整版oracle基本操作语句适合初学者

1. select * from table_name where rownum>begin and rownum< end 2.sql = "select * from table" con.prepareCall("SELECT * FROM(SELECT A.*, rownum r FROM("+sql+") A WHERE rownum <= "+intPage*intPageSize+") B WHERE r > "+(intPage-1) *intPageSize); 今天想查询一下 Oracle 数据库下所有的表名或某个用户下的所有表 ,半天没想起来 .还是 在网上找到了答案 . select table_name from all_tables;// 所有的表明 select table_name from user_all_tables;// 用户的所有的表 select * from https://www.360docs.net/doc/6418774886.html,er_tab_columns; // 查询表名 ,并显示列名 describe 表名 //查询表结构 select * from https://www.360docs.net/doc/6418774886.html,er_tab_columns where table_name= 表名 // 查询指定表名的字段 2: 查询数据库参数 show parameter db; 3:查询数据库的实例名 一下是转贴的 sql 语句的帖子 . select * from user_objects; select * from dba_tables; select * from all_tables; select * from user_users select * from all_users select * from dba_users select name,dbid from v$database; //查询所有的表 //查询所有的表 //查询所有的表 //查出一个用户 //查询所有用户 //查询所有用户 // 查询数据库名和它的 ID

oracle数据库基础教程期末考试简答与实践小抄

(1)第十章模式对象重点 数据是描述事物的符号,是数据库中存储的基本对象。在计算机中,用记录的形式来描述数据。数据与数据的解释即数据的语义是紧密结合的。数据库是指按一定的数据模型组织、描述和存储的数据的集合。数据库管理系统是位于操作系统与用户之间的一层数据管理软件。数据库系统是指数据库、数据库管理系统与计算机系统的结合。通常,在不引起混淆的情况下将数据库系统简称为数据库。 (2)数据库管理系统的主要功能包括:数据定义、数据操纵、数据库运行与控制、数据库建立与维护、数据字典定义以及数据通信等。数据库管理系统的内部分多个层次,由应用层、语言定义及其翻译处理层、数据存取层、数据存储层、操作系统以及数据库组成。 (3)数据库系统由数据库、操作系统、数据库管理系统、开发工具、应用系统、数据库管理员以及数据库用户组成。 (4)概念模型是用简单、清晰、用户易于理解的概念来描述现实世界具体事物及事物之间的关系。它是现实世界到信息世界的抽象,是数据库设计人员进行数据库设计的工具,与具体的数据库管理系统无关。组织数据模型是从数据组织方式的角度来描述信息,它决定了数据在数据库中的组织结构。 (5)关系数据库的完整性约束包括三类:实体完整性、参照完整性和用户定义完整性。实体完整性:是指关系中必须定义主键,以惟一的确定一个元组。主键由一个或多个属性构成,其取值惟一且不能为空(NULL)。参照完整性:在关系模型中,通过外键来表示表之间的联系。参照完整性是指一个表中的外键的取值必须是参照表中主键存在的值或为空(NULL)。例如,学生信息表中“班号”属性为外键,其取值必须是班级信息表中“班号”属性的某一个值或为空。用户定义完整性:是指用户根据特定应用情况,设定一些约束,反映某一具体应用所涉及的数据必须满足的语义要求。例如,“性别”属性的域为“男、女”。 (6) (7) Oracle数据库体系结构由物理存储结构、逻辑存储结构和实例组成。其中物理存储结构描述了操作系统层次数据的存储与管理,包括数据文件、日志文件、重做日志文件等组成。逻辑结构描述了数据库内部数据的组织与管理,由表空间、段、区、块组成。实例是数据库运行的软件结构,由内存结构和后台进程组成。数据库运行过程中,用户的操作在内存区中进行,最终通过后台进行转化为对数据库的操作。

ORACLE数据库基础知识

一、选择行 1. 简单的SELECT 语句 SELECT 字段名1 [AS] '字段名1 解释' FROM table; 2. 处理NULL NVL函数可把NULL转换成其它类型的符号 编程技巧: NVL函数在多条件模糊查询的时候比较有用 NVL函数可返回多种数据类型: 返回日期 NVL(start_date,'2002-02-01') 返回字符串 NVL(title,'no title') 返回数字 NVL(salary,1000) 3. 使用SQL*PLUS(1) SQL> desc table; 显示表结构 SQL> select * from tab; 查看用户下所有的表 SQL> set pause on; 可以使大量结果集在用户按“Enter”(回车)后翻页SQL> set pagesize 100; 设定SQL语句返回结果集一页的行数100, 默认值是14 SQL> set linesize 100; 设定SQL语句返回结果集一行的宽度100, 默认值是80 4. SQL*PLUS里规定字段的显示格式 规定数字的显示格式 SQL>column 字段名 format 99999999999; SQL>column 字段名 format 999,999,999,999; SQL>column 字段名 format a数字 [word_wrapped]; 规定long字符的显示宽度 SQL>set long 200; 规定字段名的显示内容 SQL> column 字段名 heading '字段名显示内容'; SQL> set heading off; 查询时不显示字段名称 规定字段的对齐方向 SQL> column 字段名 justify [left | right | center]; 清除字段的格式 SQL> column 字段名 clear; 5. SQL*PLUS里规定字段的显示格式例子 SQL> column last_name heading 'Employee|Name' format a15; SQL> column salary justify right format $99,999.99; SQL> column start_date format a10 null 'Not Hired'; 说明:如果start_date为null, 显示字符串'Not Hired' 6. 判断题(T/F) (1). SQL command are always held in sql buffer. [T] (2). SQL*PLUS command assit with query data. [T] 5 J2EE @ zxw SQL*PLUS命令只控制SELECT结果集的显示格式及控制文件.只有SQL命令能访

Oracle数据库入门笔试试题及参考答案

《数据库入门》试题 姓名: 一、简答题(共40分,每小题10分) 1、如何理解空值(null)?空值在参与运算时有什么特点? 2、简述参照完整性约束。 3、简述Oracle客户端tnsnames.ora文件的作用。 4、简述事务及其性质。 二、运算题(共60分,每小题5分) 针对课本图1.2中的关系模式,用SQL完成下列操作。 1、查询姓张的病人姓名和出生年份。 select xm,substr(to_char(sysdate,'yyyy.mm.dd'),1,4) from dw.per_natl where xm like '张%'; 注意:题目要求查询出生年份,不是出生日期。 2、查询女病人的平均年龄。 update dw.per_natl a set nl=(select to_number(substr(to_char(sysdate,'yyyy.mm.dd'),1,4)) - to_number(substr(to_char(csrq,'yyyy.mm.dd'),1,4)) from dw.per_natl b where a.grbm=b.grbm); select avg(nl) from dw.per_natl where xb='2'; 考虑下列SQL: select avg(nvl(nl,0)) from dw.per_natl where xb='2';

3、查询发生过费用的病人总人数。 select count(distinct grbm) from dw.patient_script_genl; 此处必须使用distinct 4、查询2000年以后出生的病人姓名。 select xm from dw.per_natl where substr(to_char(sysdate,'yyyy.mm.dd'),1,4)>'2000'; 5、查询没有被使用过的医疗项目编码和名称。 select ylxmbm,ylxmmc from dw.medi_item where ylxmbm not in (select ylxmbm from dw.patient_script_detl); 6、查询与自己的科室负责人同名的医师的编码和姓名。select a.ysbm,a.xm from dw.doctor a,dw.doctor b where a.ysbm=b.ksfzr and a.xm=b.xm; 7、查询未结算费用凭单的总金额、自付金额和报销金额。select fyid,zje,zfje,bxje from dw.patient_script_genl where jshid is null; 8、查询使用医疗项目数目最多的费用凭单编码。 select fyid from dw.patient_script_detl group by fyid having count(ylxmbm)>=all(select count(ylxmbm) from dw.patient_script_detl group by fyid); 9、查询被所有的住院病人都使用的药品编码。 insert into dw.patient_script_detl(fyid,sxh,ylxmbm)

Oracle基础知识学习笔记(自己整理的)

基本概念: 数据:描述事物的符号; 数据库:数据存放的地方,数据库是由数据和数据库对象组成的;数据库管理系统(DBMS):用于管理数据的计算机软件,使用户能方便的定义和操纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和数据库恢复。 关系数据库(RDB):基于关系模型的数据库。 ORACLE数据库的体系结构是由一个实例和若干个数据库文件组成。 SQL语句分为: 数据定义语句(DDL):create、drop、alter、truncate(不能回滚) 数据操作语句(DML):insert、select、update、delete、merge 数据控制语句(DCL):grant、revoke 事物控制语句:commit、rollback、savepoint

ORACLE数据库的核心组件: 数据字典(DD) 动态性能表(DPT) 触发器 PL/SQL包 用户与角色:角色是一些权限的集合,分为dba、connect、resource、exp_full_database、imp_full_database。用户分为sys、system。 用户权限包括两种:是指执行某一SQL语句或访问另一用户对象的权限。它分为系统权限和对象权限。(Dba_roles/dba_roles_privs/dba_sys_privs/dba_tab_pri vs/dba_col_privs/role_role_privs/role_sys_privs/role_ta b_privs) 创建用户:Create user username identified by password; 修改用户:Alter user username identified by newpassword; 创建角色:Create role rolename identified by password; 修改角色:Alter role rolename identified by new password; ORACLE数据库的物理结构: 1.数据文件:用于存放所有的数据库数据,若干个数据文件组成表空间;它包括系统数 据(数据字典)、用户数据(表、索引、簇等)、undo数据等。当建立数据库或表空间时,数据文件是通过DATAFILE选项制定的。一个或多个数据文件在物理上组成一个表空间。(v$datafile、v$datafile_header)

oracle10g教程从入门到精通综述

问题:能否按照中国人习惯的方式年—月—日添加日期。 系统函数 sys_context 1)terminal:当前会话客户所对应的终端的标示符 2)lanuage: 语言 3)db_name:当前数据库名称 4)nls_date_format:当前会话客户所对应的日期格式 5)session_user:当前会话客户所对应的数据库用户名 6)current_schema:当前会话客户所对应的默认方案名 7)host:返回数据库所在主机的名称 通过该函数,可以查询一些重要信息,比如你正在使用哪个数据库? select sys_context('USERENV','db_name') from dual; 注意:USERENV是固定的,不能改的,db_name可以换成其它,比如select sys_context('USERENV','lanuage') from dual;又比如select sys_context('USERENV','current_schema') from dual; 十:数据库管理,表的逻辑备份与恢复 数据库管理员 介绍 每个oracle数据库应该至少有一个数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库可能需要多个dba分担不同的管理职责。那么一个数据库管理员的主要工作是什么呢: 职责 1.安装和升级oracle数据库 2.建库,表空间,表,视图,索引… 3.制定并实施备份和恢复计划 4.数据库权限管理,调优,故障排除 5.对于高级dba,要求能参与项目开发,会编写sql语句、存储过程、触发器、规则、约束、包 管理数据库的用户主要是sys和system (sys好像是董事长,system好像是总经理,董事长比总经理大,但是通常是总经理干事) 在前面我们已经提到这两个用户,区别主要是: 1.最重要的区别,存储的数据的重要性不同 sys:所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper角色或权限,是oracle权限最高的用户。 system:用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有dba,sysdba角色或系统权限。 看图:

相关文档
最新文档