`

Oracle安装的一些事项-初步认识Oracle

阅读更多
安装数据库
关闭防火墙
断开网络连接

数据库安装好后需要注意的配置文件位置

Enterprise Manager Database Control URL - (orcl) :http://lyfy-20110626RI:1158/em
数据库配置文件已经安装到E:\oracle\product\10.2.0,同时其他选定的安装组件也已经安装到 E:\oracle\product\10.2.0\db_1.iSQL*Plus URL 为:http://Localhost:5560/isqlplusiSQL*Plus DBA URL 为:http://Localhost:5560/isqlplus/dba
选中“带样本方案的数据库"安装到最后

oracle的卸载

1 执行卸载
2 删除残留文件 如果无法删除则进入安全模式删除
3 删除注册表信息

监听服务,最经常使用的服务,容易出错.

错误一:注册表优化软件 删除了监听服务的注册表
监听服务的注册项

错误二:网络环境发生改变
比较常见的是更改计算机名(我的电脑-属性-计算机名)
此时需要修改网络配置文件
listener.ora 和 tnsnames.ora 配置文件的计算机名称
之后可能还要用到网络名称的注册  oracle net manager

数据库操作SQL语句

DML                  Data manipulation language  检索和修改
DCL                   Data Control language            定义数据库权限
DDL                   Data definition language        定义数据的结构 创建 修改 删除数据库对象

查询语法

SELECT [DISTINCT] *| 字段[别名] [,字段[别名]]
FROM 表名[别名]
[WHERE 条件(s)]
[ORDER BY 字段 [ASC|DESC] [,字段[ASC|DESC]]…]];
;

数据库函数
单行函数
字符函数

对字符串操作的函数
UPPER(字符串 | 列); 变大写
LOWER(字符串 | 列); 变小写
ININCAP(字符串 | 列); 开头字母大写
LENGTH(字符串 | 列); 给出字符串长度
REPLACE(字符串 | 列); 进行替换
SUBSTR(字符串 | 列 ,开始点 [,结束点));

日期函数

SYSDATE 当前日期

LAST_DAY(日期);
NEXT_DAY{日期,星期数};
ADD_MONTHS(日期,数字);
MONTHS_BETWEEN(日期1,日期2);

数字函数
ROUND 四舍五入
TRUNC 舍弃指定位置的内容
MOD   取模 取余数

转换函数
TO_CHAR
TO_DATE
TO_NUMBER

ORACLE 表操作

创建表格

CREATE TABLE 表名 (
名              类型                   默认值,
名              类型                   默认值,
名              类型                   默认值
);

复制表格

CREATE TABLE  新表名AS 子语句;

CREATE TABLE BOOKINFO2 AS SELECT * FROM BOOKINFO WHERE XXX
若想只复制格式不复制数据 可以在where后加上一个不可能的条件

重命名

RENAME 旧表名 TO 新表名;

表的删除

DELETE; 命令删除的数据可以 ROLLBACK回来
若想不能回滚 使用 TRUNCATE TABLE 名称;


表中数据的操作 DML manipulation

增加数据

INSERT INTO 表名称 [(字段1, 字段2..)], VALUES [ (值1, 值2,…)];
数据类型 数字 123 字符串 要是用 “”括起来 日期 是用已有的格式 或者用 TO_DATE函数


修改数据

UPDATE 表名称 SET 更新内容1 = 更新值1, … [WHERE 更新条件(S)];

删除数据

DELETE表名称 [WHERE删除条件(s)];

回收站 闪回技术

查看回收站

SHOW RECYCLEBIN;
闪回
FLASHBACK TABLE表名 BEFORE DROP;

完全删除

PURGE TABLE 表名;

清空回收站
PURGE RECYCLEBIN;
删除时命令后加purge 可以彻底删除

修改表
增加字段

ALTER语句

ALTER TABLE 表名称 ADD ( 列名称 数据类型 [DEFAULT 默认值],
                                                        列名称 数据类型 [DEFAULT 默认值],…
                                                                 );
修改格式

ALTER TABLE 表名称 MODIFY ( 列名称 数据类型 [DEFAULT 默认值],
                                                        列名称 数据类型 [DEFAULT 默认值],…
                                                                 );


Oracle中没有自增数字,要实现自增功能,需要用到序列功能
先创建表格
再创建序列
把序列应用到表格中


  首先,你要有一张表!

  CREATE TABLE example(

  ID Number(4) NOT NULL PRIMARY KEY,

  NAME VARCHAR(25),

  PHONE VARCHAR(10),

  ADDRESS VARCHAR(50) );

  然后,你需要一个自定义的sequence

  CREATE SEQUENCE emp_sequence

  INCREMENT BY 1 -- 每次加几个

  START WITH 1 -- 从1开始计数

  NOMAXVALUE -- 不设置最大值

  NOCYCLE -- 一直累加,不循环

NOCACHE -- 不建缓冲区


  一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL

  CURRVAL=返回sequence的当前值

  NEXTVAL=增加sequence的值,然后返回sequence值


创建触发器的SQL语法

  DELIMITER |
  CREATE TRIGGER `<databaseName>`.`<triggerName>`
  < [ BEFORE | AFTER ] > < [ INSERT | UPDATE | DELETE ] >
  ON <tableName>
  FOR EACH ROW
  BEGIN
  --do something
  END |


如何查找、删除表中重复的记录

方法原理:
1、Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,
rowid确定了每条记录是在ORACLE中的哪一个数据文件、块、行上。
2、在重复的记录中,可能所有列的内容都相同,但rowid不会相同,所以只要确定出重复记录中
那些具有最大rowid的就可以了,其余全部删除。
实现方法:
SQL》 create table a (
2 bm char(4), --编码
3 mc varchar2(20) --名称
4 )
5 /
表已建立。
SQL》 insert into a values(‘1111’,‘1111’);
SQL》 insert into a values(‘1112’,‘1111’);
SQL》 insert into a values(‘1113’,‘1111’);
SQL》 insert into a values(‘1114’,‘1111’);
SQL》 insert into a select * from a;
插入4个记录。
SQL》 commit;
完全提交。
SQL》 select rowid,bm,mc from a;
ROWID BM MC
------------------ ---- -------
000000D5.0000.0002 1111 1111
000000D5.0001.0002 1112 1111
000000D5.0002.0002 1113 1111
000000D5.0003.0002 1114 1111
000000D5.0004.0002 1111 1111
000000D5.0005.0002 1112 1111
000000D5.0006.0002 1113 1111
000000D5.0007.0002 1114 1111
查询到8记录。
查出重复记录
SQL》 select rowid,bm,mc from a where a.rowid!=(select max(rowid) from a b where a.bm=b.bm and a.mc=b.mc);
ROWID BM MC
------------------ ---- --------------------
000000D5.0000.0002 1111 1111
000000D5.0001.0002 1112 1111
000000D5.0002.0002 1113 1111
000000D5.0003.0002 1114 1111
删除重复记录
SQL》 delete from a a where a.rowid!=(select max(rowid) from a b where a.bm=b.bm and a.mc=b.mc);
删除4个记录。
SQL》 select rowid,bm,mc from a;
ROWID BM MC
------------------ ---- --------------------
000000D5.0004.0002 1111 1111
000000D5.0005.0002 1112 1111
000000D5.0006.0002 1113 1111
000000D5.0007.0002 1114 1111
desc table;检查表结构
select * from tab where tabtype=‘TABLE’;显示当前用户下的所有表。
select count(*) from table;显示此表的数据行数;
spool c:\tony.txt;日记路径
spool off;关闭记录后可以看到日记文件里的内容。
Alter add alter modify alter drop
alter table stu add(classid number(2));添加字段
alter table stu modify(xm varchar2(12));修改字段的长度
alter table stu drop column sal;
drop table stu;
rename student to stu;
alter table student drop column sal; alter table stu add(salary number(7,2));
insert into stu values(‘A001’,‘张三’,‘男’,‘01-5月-05’,10);
insert into stu(xh,xm,sex) values (‘A003’,‘JOHN’,‘女’);
insert into student(xh,xm,sex,birthday) values (‘A004’,‘MARTIN’,‘男’,null);
修改
Update
UPDATE STU SET SEX=’女’ where xh=’A001’;
Update student set set classid=20 where birthday is null;
Delete from stu; drop table student; delete from stu where xh=’A001’;
update stu set sex=‘女’ where xh=‘A001’;
update student set sex=‘男’,birthday=‘1980-04-01’where xh=‘A001’;
update student set classid=20 where birthday is null;
delete from stu;drop table student;delete from stu where xh=‘A001’;
truncate table stu
truncate table stu;删除表中的所有记录,表结构还在不写日记无法找回记录
select * from stu;
select * from student where classid like ‘1%’;
select * from student where xh like ‘%A%’;
select * from student where xh like ‘A%’;
select * from student where xh like ‘%A’;
select * from student where xh = ‘A%’;
select * from student order by birthday;
select * from student order by birthday desc,xh asc; --按birthday 降序 按xh升序(asc/默认)  order by 排序 desc 降序 asc 升序
select * from student where sex=‘女’ or birthday=‘1999-02-01’;
select * from student where sex=‘女’ and birthday=‘1999-02-01’;
select * from student where salary 》 20 and xh 《》 ‘B002’; (!=)
oracle
函数的学习
单行函数 返回值只有一个
分组函数 返回值是多条记录
group by
sum
avg
select sysdate from dual;dual哑元素 没有表需要查询的时候
select xm||‘-----’||classid from stu;
select 1+1 from dual;
select job,next_date,next_sec,failures,broken from user_jobs;
show parameter job_queue_processes;
alter system set job_queue_processes=5;
select owner,object_name from dba_objects where object_type=‘DATABASE LINK’;
select * from dual@gis3; 判断是否创建
select object_name,object_type
from user_objects
order by object_type; --用户所拥有的对象
select object_name,object_type
from user_objects
WHERE object_type=‘TABLE’; --用户所拥有的表
另外一种方法
select table_name from user_tables;
select object_name,object_type
from user_objects
WHERE object_type=‘INDEX’; --用户所拥有的索引
INSERT INTO Store_Information (store_name, Sales, Date)
SELECT store_name,Sales, Date
FROM Sales_Information
WHERE to_char(date,‘yyyy’)=1998;
exp/imp help=y 显示exp/imp命令下的参数
imp tony/gisinfo file=tony.dmp log=loga show=y full=y
if--then--end if的使用if v_test=1 then begin 。..。. end; end if;
while--loop--end loop的使用if v_test=1 then begin 。..。..。.end;end if;
CASE的使用
update jzqld1 set bcrq=case
when id like ‘3%’ then ‘09010102’
when id like ‘4%’ then ‘09010204’
else ‘09010805’
end;
删除用户drop user tony/create user tony
showdown abort; startup;
希望在scott用户下能看到mk用户中test表的数据???
connect mk/m123
grant select on test to scott; //授权scott能select
connect scott/tiger
select * from mk.test;
create synonym mtest for mk.test; //为表建立的
//可以为任何对象建立同义词
select * from mtest; //相当于select * from mk.test;
位图索引
create bitmap index ind_aa on emp(job);
create index ind_dept on dept(dname,loc);
//联合索引 分次序的
create index ind_dept1 on dept(loc,dname);
show parameter db_name数据库名
DBA要及时查看数据库中数据文件的状态(如被误删除),根据实际情况决定如何进行处理,检查数据文件的状态的SQL如下:
select file_name,status from dba_data_files;
如果数据文件的STATUS列不是AVAILABLE,那么就要采取相应的措施,如对该数据文件进行恢复操作,
或重建该数据文件所在的表空间。
//给用户授予权限
grant connect,dba,resource to testserver_user;
//创建用户并指定表空间
create user ORACLE8I identified by ORACLE8I
default tablespace ORACLE8I
temporary tablespace test_temp ;
//创建数据表空间
create tablespace oracle8i
logging
datafile ‘E:\oracle\product\10.2.0\oradata\testserver\test_data01.dbf’
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
//创建临时表空间
create temporary tablespace test_temp
tempfile ‘E:\oracle\product\10.2.0\oradata\testserver\test_temp01.dbf’
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
表锁 : lock table emp in exclusive mode;
对emp表加的表锁
一般不使用表锁;
alter table aa move tablespace bb
分享到:
评论

相关推荐

    Oracle快速入门之Oracle初步体验.pptx

    本教程“Oracle快速入门之Oracle初步体验”旨在帮助初学者快速掌握Oracle的基础知识和使用技巧。 首先,了解数据库使用人员的不同层次至关重要。一般用户需要掌握基本的数据库概念和SQL语言;应用开发人员则需要更...

    Oracle Programmer's Hand Book - Beginner.CHM

    Oracle 体系概述:本章主要介绍 Oracle 的安装、配置、体系结构的初步认识。通过阅读本章内容,你可以自己安装并配置数据库,搭建自己的 Oracle 开发环境。并能处理一些常见的 Oracle 问题。 Oracle 开发概述:本章...

    oracle初学者指南7-8

    通过深入学习和实践Oracle的第7-8章内容,初学者可以建立起对Oracle数据库系统的初步认识,为进一步的数据库管理和开发工作奠定坚实基础。在实际操作中,结合理论知识和动手实践,你将逐渐熟悉Oracle的特性和操作,...

    Oracle经典教程1——走进Oracle

    通过本章的学习,读者应该能够对Oracle有一个初步的认识,并掌握安装和管理Oracle数据库的基本技能。 ### SQL数据操作和查询 #### SQL简介 SQL(Structured Query Language,结构化查询语言)是一种用于管理和...

    Oracle1.pdf

    Oracle是世界上最广泛使用的数据库管理系统之一,它属于关系型数据库管理...通过以上学习,我们对Oracle数据库有了初步的认识,掌握了基本的查询和数据操作技巧,这将为我们进一步深入学习Oracle数据库提供坚实的基础。

    Oracle入门——oracle的基础入门知识,适合初学者。

    这有助于他们建立起对数据库管理系统的初步认识,为进一步学习更高级的Oracle功能,如存储过程、触发器、索引优化、备份恢复等打下基础。通过逐步深入学习,初学者可以掌握如何创建和管理用户、配置数据库实例、确保...

    Oracle+9i基础教程(第2版)pdf

    通过这三章的学习,读者可以建立起对Oracle 9i数据库的初步认识,了解数据库的基础操作,并具备编写简单SQL语句的能力。后续章节可能会继续深入探讨PL/SQL编程、事务处理、并发控制、备份恢复、性能优化等高级主题,...

    oracle concepts

    同时,文档中也涵盖了Oracle数据库提供的许多高级特性,比如分区、数据泵、高级复制和并行处理等,这些都是Oracle数据库在处理大规模数据时的利器,可以让初学者对Oracle数据库的高级功能有一个初步的认识。...

    实验指导书《大型数据库(Oracle)》

    通过这个实验,学生不仅掌握了Oracle数据库的基本安装和验证,还对数据库管理系统有了初步认识,为后续深入学习Oracle数据库的高级特性打下了坚实基础。在实际工作中,这些技能对于数据库的设计、开发和维护至关重要...

    《循序渐进Oracle》第一章完整版下载

    通过阅读《循序渐进Oracle》第一章,读者可以对Oracle数据库有一个宏观的认识,并掌握基本的安装、操作和管理技能。附带的`.chm`文件是Windows帮助文档格式,通常包含书籍的详细内容;`.htm`可能是阅读器的下载链接...

    Oracle数据库实验

    通过一系列的实验与实践,学生可以对Oracle数据库有更深入的认识,包括其安装、配置、安全管理、表结构设计、SQL与PL/SQL编程等多个方面。这些知识和技能对于学生未来的就业和继续深造有着重要的实用价值。

    ORACLE OAF入门学习教程

    ORACLE OAF入门学习教程主要涉及Oracle公司提供的...以上知识点对于希望入门学习Oracle Application Framework的开发人员来说非常有价值,通过这些内容,可以建立起对OAF框架的初步认识,并在实践中进一步深化和扩展。

    ORACLE 数据库入门.ppt

    了解这些基本概念和流程,可以帮助初学者建立起对Oracle数据库的初步认识,为进一步深入学习和实践打下坚实基础。在实际操作中,还需要掌握SQL语法、表和索引的创建、权限管理、性能优化等相关知识。随着经验的积累...

    新手入门_Oracle 10G服务器安装图解.rar

    学习Oracle 10G的安装不仅是技术上的提升,也是对数据库管理流程的初步认识。理解每个步骤背后的原理和目的,将有助于你在未来处理更复杂的数据库问题。记得在实践中不断探索和学习,Oracle数据库的世界充满了挑战与...

    张立国oracle数据库教程

    在这里,读者将了解到数据库是如何存储、组织和检索数据的,并对Oracle数据库系统有一个初步的认识。 第二章“Oracle数据库入门”则引导读者进入Oracle的世界,介绍如何安装和配置Oracle环境,创建并连接到数据库...

    Oracle数据库知识点总结 Oracle数据库架构与组件学习攻略

    了解Oracle数据库的起源、发展以及其在企业级应用中的地位和作用,有助于形成对Oracle数据库的初步认识。可以通过查阅Oracle数据库的官方文档、相关书籍或在线教程来深入学习。 二、Oracle数据库架构与组件 重点详细...

Global site tag (gtag.js) - Google Analytics