`
zhyt710
  • 浏览: 205699 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle一步接一步(1)--基础入门

阅读更多

1. 下载并安装oracle10。

    (1)一路默认安装,设置好自己的密码。安装完成要运行database configration assistant图形工具创建数据库。有的是默认安装完就运行,如果默认不运行,自己在开始菜单中找到该选项运行(在windows下时)


2. 登录同机sqlplus客户端。

    (1)打开命令行控制台,在其中输入sqlplus 命令。

    (2)系统会提示输入登陆用户名和密码,一次输入。如用户名:SYSTEM 密码:yourpwd。

             当出现 SQL> (在dos控制台下)时,表示登陆成功。

 

3.创建一个用户。

    (1)在登陆sqlplu后,输入:create user somename identified by pwd;

            即创建了一个用户名为somename,密码为 pwd 的用户

    (2)为用户授予权限:  grant create session to somename ; // 授予 somename 连接数据的权限

             或为用户授予角色:grant dba to somename;

    (3)修改用户密码:alter user somename identified by otherpwd;

    (4)删除用户:drop user somename;

    (5)显示用户所拥有的表:select table_name from dba_tables where owner='somename';

    (6)显示所有用户:select username from dba_users;

 

4.查看当前登陆相关信息

     (1)查看当前登录数据库

                     show parameter db_name; select name from v$database;

     (2)查看当前sid和servicename

                     select sid from v$mystat where rownum <=1;

                     show parameter service

     (3) 查看数据库中的所有表 select * from tab;

     (4)查看当前数据库版本 select * from product_component_version

 

5.新建表以及数据操作同标准sql在这里不再赘述。

     (1)但是oracle很多地方还是很让人恶心的,比如设定主键自动增长机制。需要用的sequence和trigger,即序列和触发器。这要比起mysql的auto_increment和sql server的identity(1,1)的方便性比较,简直就是十分值得抱怨的事情。好了,现在说怎么实现orcale建表主键的自动增长的例子

      a)建立表  create table xtest(id int not null primary key, name varchar(20));

      b)建立序列

create sequence xtest_seq
minvalue 1
maxvalue 999999999
start with 1
increment by 1
cache 20;

       c)建立触发器

create or replace trigger xtest_trigger before
insert on xtest for each row when(new.id is null)
begin
select xtest_seq.nextval into :new.id from dual;
end;
/

分析原理:主键自动增长是用sequence来完成的,这需要我们在插入的时候指定用哪个sequence来给予值。于是就需要触发器来做这些事情。触发器类似与存储过程,但负责监听。比如上面的触发器监听xtest表的插入事件。当然,我们也可以不用触发器,直接insert into xtest(id, name) values(xtest_seq.nextval, 'johntor');了事。但是谁又会喜欢去写如此的sql语句呢!

   (2)显示表设计

                 desc 表名

这个mysql也有,不用多说。全称命令是describe。

   (3)显示已经建立的sequence

                 select * from user_sequences;

可以有where语句如   where sequence_name = 'YOUR_SEQ_NAME'

   (4)关于删除表

我们都会知道用sql如:drop table tablename;   ok,执行后,数据库提示你执行成功了,但是在查询一下你的所有表select * from tab;会发现,多了一个类似“ BIN$YkN4S58dTPC/vBboMCNh0A==$0”名字的表 。奇怪吗,其实也不,自己在第一时间想到的就是oracle为了安全起见,让你恢复表数据用 的,事实也的确如此。

        a)我们用flashback table "BIN$YkN4S58dTPC/vBboMCNh0A==$0" to before drop;命令乐意恢复我们刚才删除的表。也就是说,我们用的删除语句把一个结构相同而其重命名的表放进了回收站。

        b)drop table tablename purge; 可以绕过回收站,直接删除。这样就不能恢复了。

        c)执行 purge recyclebin; 命令可清空当前用户的回收站。执行purge table tablename; 命令可以清除回收站内指定的表。记住这里的tablename不是那个很长的字符串,而是自己原来删除前表的是进名字。

 

6.关于表空间

(1)查询现有表空间情况的sql语句如下:

      select 
      total.tablespace_name tsname, 
      count(free.bytes) nfrags, 
      nvl(max(free.bytes)/1024,0) mxfrag, 
      total.bytes/1024 totsiz, 
      nvl(sum(free.bytes)/1024,0) avasiz, 
      (1-nvl(sum(free.bytes),0)/total.bytes)*100 pctusd 
  from 
      dba_data_files total, 
      dba_free_space free 
  where 
      total.tablespace_name = free.tablespace_name(+) 
  group by 
      total.tablespace_name, 
      total.bytes;

 当然可以用一句话来看都有什么表空间 select tablespace_name from dba_data_files;

(2)表空间的概念:一个数据库从逻辑上来说是由一个或多个表空间所组成,表空间是数据库中物理编组的数据仓库。每一个表空间是由段所组成,一个表空间存放一个或多个数据库的物理文件。一个数据库中的数据被逻辑地存储在表空间上。

更直观一点说,表空间就是由一个或几个数据文件构成的逻辑存储单元。

(3)创建表空间:

create tablespace data01
datafile 'C:/data/data01.dbf' size 500M
uniform size 128k; #默认为64k

 (4)删除表空间:drop tablespace data01 including contents and datafiles;

 (5)修改表空间大小:alter database datafile 'C:/data/data01.dbf' resize 100M;

 (6)移动表到另一个表空间:alter table ztest move tablespace data01;

         上面ztest为表的名字data01为表空间的名字

 (7)显示属于一个表空间的所有内容信息以及所有者:

select distinct owner,segment_name, segment_type 
from dba_extents
where tablespace_name='DATA01';

  (8)显示一个表属于哪个表空间:select tablespace_name from tabs where table_name = 'ZTEST';

通过上面关于表空间的一些讲述,我们就会想到在建表的时候,就为表直接指定表空间了,如下:

                          create table zztest(id int) tablespace USERS;

下面是我没有测试过的,但应该没有什么问题的技巧:

      a)给表空间添加数据文件:alter tablespace date01 add datafile d:/data/date02.dbf size 50m;

      b)设置数据文件自动扩展:

    alter database datafile d:/data/date02.dbf autoextend on next 10m maxsize 500m;

 

分享到:
评论

相关推荐

    Oracle入门教程.三思笔记.一步一步学Oracle

    2012.9.Oracle三思笔记合集,供大家下载学习。压缩包里共32个PDF或DOC文件,都是整理版的,非常好阅读,谁下谁知道。 [三思笔记]drbd入门与应用.pdf [三思笔记]Linux5版本安装...[三思笔记]一步一步学Streams.pdf

    Oracle入门PPT1

    总的来说,Oracle入门PPT1是为初学者提供的一份基础教程,涵盖了从基本的网络连接概念到实际的数据库连接方法,为深入学习Oracle数据库打下了坚实的基础。通过理解和实践这些内容,可以更好地掌握Oracle数据库的使用...

    ORACLE 快速入门文档

    ORACLE 快速入门文档 作为一名 IT 行业大师,我将为您详细解释 Oracle 快速入门文档中的知识点。 首先,让我们从 Oracle 的基本概念开始。Oracle 是美国 Oracle 公司(甲骨文)提供的一组软件产品,以分布式数据库...

    大数据技术分享 Oracle DataGuard基础入门教程 一步一步学DataGuard 共100页.pdf

    ### 大数据技术分享 Oracle DataGuard基础入门教程 #### 一、Oracle DataGuard简介与应用场景 **Oracle DataGuard**是Oracle数据库的一项高级复制技术,它能够实现数据在主数据库(Primary Database)和辅助数据库...

    php连接oracle数据库的方法(测试成功)

    接下来是连接Oracle数据库的具体步骤: 1. 首先需要安装Apache和PHP环境。 2. 然后安装Oracle Instant Client,这是一个轻量级的Oracle客户端,提供了连接Oracle数据库所需的基本组件。 3. 在php.ini文件中启用oci8...

    一步一步学RMAN进入rman[1].zip

    最后,"[三思笔记]一步一步学RMAN(05)-rman基础知识补充(1).doc" 可能会涉及一些RMAN的高级特性,比如自动备份、备份集和映像副本的区别、RMAN的通道管理、以及如何利用RMAN进行数据库的性能分析和维护。 总的来说...

    oracle基础、优化必备9本经典书籍及PDF下载地址

    3. 《涂抹 Oracle 三思笔记之一步一步学 Oracle》 这是一本适合初学者的基础教程,详细介绍了Oracle的基本概念和操作,即使是已经有一定基础的读者也能从中获取新的见解,加深对Oracle数据库的理解。 4. 《基于成本...

    三思oracle一步一步学oracle

    非常好的oracle入门书籍,看完您就入门。 资源比较大,分次上传。

    oracle数据库 oracle初学者入门

    对于初学者来说,掌握Oracle数据库的基础知识是踏入IT行业的关键一步。以下是一些关于Oracle数据库入门的重要知识点: 1. **Oracle简介**:Oracle数据库是由美国Oracle公司开发的,它提供了强大的数据管理能力,...

    Ubuntu 16.04安装Oracle 11gR2入门教程图文详解

    本教程提供了一步一步的指导,旨在帮助用户在Ubuntu 16.04系统上安装Oracle 11gR2数据库。由于安装过程中可能遇到各种问题,建议在实际操作前详细阅读Oracle官方的安装文档,并准备好解决各种可能出现的问题。此外,...

    一步一步学RMAN(写给初级入门者)

    ### 一步一步学RMAN(写给初级入门者) #### RMAN简介 RMAN(Recovery Manager)是Oracle数据库管理系统提供的一款强大的数据备份与恢复工具。它不仅能够支持各种类型的备份需求,还能有效处理数据库级别的灾难恢复...

    oracle入门

    ### Oracle 入门知识点详解 ...学习Oracle的基础知识对于从事IT行业的人员来说是非常重要的一步,它不仅能够帮助我们更好地理解和使用这一强大的数据库系统,还能为后续深入学习和研究打下坚实的基础。

    JDBC和ODBC连接Oracle数据库/连接txt/Access/Excel入门简洁源码及存储过程调用

    在IT领域,数据库连接是应用程序与数据交互的基础。本资源主要涵盖了使用JDBC(Java Database Connectivity)和ODBC(Open Database Connectivity)连接Oracle数据库的方法,同时也涉及到如何处理文本、Access和...

    超详细Oracle教程

    - **SUN与Oracle合并背景**:2009年,Oracle宣布以74亿美元收购SUN Microsystems,此举被视为Oracle迈向云计算的重要一步。 - **云计算核心价值**:随着云计算在企业中的应用日益重要,数据成为核心资产。SUN在高...

    oracle入门很简单—视图

    在学习和使用Oracle的过程中,掌握视图的相关知识是非常关键的一步。视图不仅能够提高数据查询的效率,还能增强数据的安全性和隔离性。通过创建和使用视图,你可以根据业务需求定制数据的展现方式,使得数据库管理和...

    oracle从入门到精通

    总而言之,“Oracle从入门到精通”将带你走过Oracle数据库的每一步,从基础理论到实际操作,再到高级主题,助你在数据库管理领域建立起坚实的知识体系。通过深入学习和实践,你将能够熟练掌握Oracle数据库的使用,...

    Oracle 9I 入门.rar 教程

    了解Oracle数据库的基本概念也是入门的重要一步。数据库由多个实体组成,包括表、索引、视图、存储过程等。表是数据的主要容器,而索引可以加速数据检索。视图是虚拟表,它可以根据需要从一个或多个表中选择数据。...

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

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

Global site tag (gtag.js) - Google Analytics