`
zhouxianglh
  • 浏览: 267402 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle 10G 基本操作(1)

阅读更多
 
C:Documents and SettingsAdministrator>sqlplus

SQL*Plus: Release 9.0.1.0.1 - Production on 星期一 2月 16 17:26:46 2009

(c) Copyright 2001 Oracle Corporation.  All rights reserved.

请输入用户名:  /as sysdba

连接到:
Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production
With the Partitioning option
JServer Release 9.0.1.1.1 - Production

SQL> -- Oracle 10g 学了一个星期,把学的拿出来总结一下,有错误的地方请指正
SQL> spool 'e:/log.txt'
SP2-0332: 无法创建假脱机文件。
SQL> --初学 Oracle 10g 小节一下
SQL> --Oracle 的结构就不多说了。在Oracle 中有DDL(数据定义语句),DML(数据操作语句),DCL(数据控制语句),TCL(事务控制语句)
SQL> --当前 sysdba 用户 ,我要用 scott 用户登陆,默认密码:tiger
SQL> --scott 第一次登陆不上,要解锁  alter user scott unlock;  , alter user scott lock;  是上锁 它们是哪种语句?
SQL> --首先要有一个表空间
SQL> create tableSpace good
  2  dataFile 'd:/good.dbf'
  3  size 1m
  4  autoExtend on;

表空间已创建。

SQL> --创建一个用户
SQL> create user myGood
  2  identified by hope
  3  default tableSpace good;

用户已创建

SQL> --表空间似乎有问题,要怎么修改?
SQL> alter dataBase dataFile 'D:/Good.dbf'
  2  reSize 4m;

数据库已更改。

SQL> --别的不多说了,现在要进表空间了

SQL> conn myGood/hope
ERROR:
ORA-01045: user MYGOOD lacks CREATE SESSION privilege; logon denied


警告: 您不再连接到 ORACLE。
SQL> --为什么进不去?忘了授权,再来!
SQL> conn /as sysdba
已连接。

SQL> grant connect to myGood;

授权成功。

SQL> grant reSource to myGood;

授权成功。

SQL> grant dba to myGood;

授权成功。

SQL> --第一个是登录权,第二个是使用表空间权,第三个是数据管理员权,不对!过头了!再来!
SQL> revoke dba from myGood;

撤销成功。

SQL> --前4条是DCL语句,开始的问题想到了?
SQL> conn myGood/hope;
已连接。
SQL> --创建,删除数据库的对象,修改数据对象的属性,都是DDL 语句如:create ,drop ,alter 。系统默认提交
SQL> --10g中才有的  alter table [表名] modify((字段)(类型))  修改字段操作
SQL> --number((p),(s))数据类型
SQL> create table table1
  2  (
  3  userNum number(5),
  4  userNum2 number(9,4)
  5  );
create table table1
*
ERROR 位于第 1 行:
ORA-01950: 表空间'GOOD'中无权限


SQL> conn /as sysdba
已连接。
SQL> grant reSource to myGood;

授权成功。

SQL> conn myGood/hope;
已连接。
SQL> create table table1
  2  (
  3  userNum number(6),
  4  userNum2 number(9,4)
  5  );

表已创建。

SQL> --这个 Good 表空间 scott 是不可使用的
SQL> grant select on table1 to scott;
授权成功。

SQL> grant all on table1 to scott;

授权成功。

SQL> revoke all on table1 from scott;

撤销成功。
SQL> -- select ,insert ,update ,delete 都是 DML(数据操作语言) ,它们由用户手动提交或是在退出时系统自动提交
SQL>
SQL> insert into table1 values(123456789,123);
insert into table1 values(123456789,123)
                          *
ERROR 位于第 1 行:
ORA-01438: 值大于此列指定的允许精确度


SQL> insert into table1 values(123.123, 123.1234567);

已创建 1 行。

SQL> insert into table1 values(123 , 123.1123456);

已创建 1 行。

SQL> select * from table1;

   USERNUM   USERNUM2
---------- ----------
       123   123.1235
       123   123.1123

SQL> --想起什么了?为什么这样?
SQL> --提交属于 TCL(事务控制语言) Oracle 是大家的,如果不提交,系统的锁机制(以后慢慢说)会锁住,大家都用不了(喂!里面的,不要霸住侧所,我忍不住了....)
SQL> commit;

提交完成。

SQL> --还有savePoint ,roolBack
SQL> savePoint p1;

保存点已创建。

SQL> insert into table1 values (144 , 544);

已创建 1 行。

SQL> select * from table1;

   USERNUM   USERNUM2
---------- ----------
       123   123.1235
       123   123.1123
       144        544

SQL> rollBack to p1;

回退已完成。

SQL> --提交后就不可以回退了
SQL>
SQL> sleect * from table1;
SP2-0734: 未知的命令开头 "sleect * f..." - 忽略了剩余的行。
SQL> select * from table1;

   USERNUM   USERNUM2
---------- ----------
       123   123.1235
       123   123.1123

SQL> --char , varchar , varchar2 ,nvarchar , nvarchar2
SQL> create table table2
  2  (
  3  userInfo char(4),
  4  userInfo2 varchar(4),
  5  userInfo3 varchar2(4),
  6  userInfo4 nvarchar2(4)
  7  );

表已创建。

SQL> insert into table2 values('abcd','dbca','efga','asfa');

已创建 1 行。

SQL> --这是10g 在 9i 里这会有错, nvarchar 和 nvarchar2 在插入时要加 N 如 N'小猴子'
SQL> --date
SQL> create table table3
  2  (
  3  userDate date
  4  );

表已创建。

SQL> select sysdate from dual;

SYSDATE
----------
16-2月 -09

SQL> --时间是这样写的
SQL> insert into table3 values('28-2月 -88');

已创建 1 行。

SQL> select * from table3;

USERDATE
----------
28-2月 -88

SQL> --好丑!不要,不要....
SQL> alter session set nls_date_format = 'YYYY-MM-DD';

会话已更改。

SQL> select * from table3;

USERDATE
----------
1988-02-28

SQL> insert into table3 values('5-7月 -88');
insert into table3 values('5-7月 -88')
                          *
ERROR 位于第 1 行:
ORA-01861: 文字与格式字符串不匹配


SQL> insert into table3 values('1988-7-5');

已创建 1 行。

SQL> --这里也改了呀,不过下次打开就又恢复了。
SQL> --还有招...嘿嘿....
SQL> insert into table3 values(to_date('2009@16@2','YYYY@dd@MM'));

已创建 1 行。

SQL> select * from table3;

USERDATE
----------
1988-02-28
1988-07-05
2009-02-16

SQL> select to_char(sysDate , 'YYYY**MM**DD') from table3;

TO_CHAR(SYSD
------------
1988**02**28
1988**07**05
2009**02**16

SQL> conn scott/tiger;
已连接。
SQL> --伪表和伪列  。在 Oracle 中为了遵守 T-SQL 的标准 有了 dual 表即 表.
SQL> select sysDate from dual;

SYSDATE
----------
2009-02-16
SQL> -- scott 下有哪些表?
SQL> select table_name from user_tables;

TABLE_NAME
------------------------------
BONUS
DEPT
EMP
SALGRADE

SQL> --看看表 emp
SQL> desc emp;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- -------------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(10)
 JOB                                                VARCHAR2(9)
 MGR                                                NUMBER(4)
 HIREDATE                                           DATE
 SAL                                                NUMBER(7,2)
 COMM                                               NUMBER(7,2)
 DEPTNO                                             NUMBER(2)


SQL> --rowID 记录数据行在硬盘上唯一的标识  rowNum 记录查询结果的序号.它们是伪列
SQL> select rowID,rowNum , Ename from emp where rowNum < 4;

ROWID                  ROWNUM ENAME
------------------ ---------- ----------
AAAH14AABAAAO+HAAA          1 SMITH
AAAH14AABAAAO+HAAB          2 ALLEN
AAAH14AABAAAO+HAAC          3 WARD

SQL> select rowID,rowNum , Ename from emp where rowNum > 2;

未选定行

SQL> select rowID,rowNum , Ename from emp where rowNum < 4 order by ename;

ROWID                  ROWNUM ENAME
------------------ ---------- ----------
AAAH14AABAAAO+HAAB          2 ALLEN
AAAH14AABAAAO+HAAA          1 SMITH
AAAH14AABAAAO+HAAC          3 WARD

SQL> --伪列 rowNum 是在查询结果出来后加上的,在 order by 之前。所以 rowNum > 2 出错.
SQL> select row_number()
  2  over( partition by job order by empNo ) myIndex,
  3  job,eName ,sal from emp;

   MYINDEX JOB       ENAME             SAL
---------- --------- ---------- ----------
         1 ANALYST   SCOTT            3000
         2 ANALYST   FORD             3000
         1 CLERK     SMITH             800
         2 CLERK     ADAMS            1100
         3 CLERK     JAMES             950
         4 CLERK     MILLER           1300
         1 MANAGER   JONES            2975
         2 MANAGER   BLAKE            2850
         3 MANAGER   CLARK            2450

已选择9行。


SQL> --常用它分页
SQL> select * from
  2  ( select row_number() over ( order by empNo ) myIndex ,job,eName from emp )
  3  where myIndex between 6 and 10;

   MYINDEX JOB       ENAME
---------- --------- ----------
         6 MANAGER   BLAKE
         7 MANAGER   CLARK
         8 ANALYST   SCOTT
         9 PRESIDENT KING
        10 SALESMAN  TURNER


SQL> --类似的有 rank(存在相同值时给出相同序号,空出预留序号) ,dense_rank(存在相同值时给出相同序号,但不空出预留序号)
SQL> --SQL2005 中也有类似操作,以后再聊!886.
SQL> --我的理想是:成为超级程序员!希望能和大家一起多多交流,学习进步。
SQL> --邮箱:zhouxianglh@gmail.com 。欢迎来信。
SQL> exit
从Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production
With the Partitioning option
JServer Release 9.0.1.1.1 - Production中断开
分享到:
评论

相关推荐

    oracle10g 安装操作实用手册

    实践2和实践3部分,文档介绍了Oracle数据库基本命令和数据库操作的知识,包括创建表、索引、视图、存储过程等数据库对象,以及进行数据查询、更新、插入和删除的基本操作。这些操作是构建和维护关系型数据库不可或缺...

    Oracle 10g 基础教程ppt

    本教程针对初学者,将深入讲解Oracle 10g的基础知识,包括安装、卸载、基本操作、配置与管理等方面。 一、Oracle 10g 安装 Oracle 10g 的安装过程涉及多个步骤,首先要确定系统满足硬件和软件需求,例如操作系统...

    Linux下Oracle 10g安装

    在Linux上安装Oracle 10g是一个涉及多步骤的过程,不仅需要对Linux操作系统有深入的了解,还需要掌握Oracle数据库的相关知识。本文介绍了安装Linux操作系统、配置系统以满足Oracle数据库要求、安装Oracle数据库软件...

    oracle 11g ,10g软件资源 百度云下载

    虽然Oracle 10g和11g都属于Oracle公司的产品线,并且在很多基本特性上相似,但它们之间也存在一些重要的区别: - **安全性增强**:Oracle 11g在安全性方面做了更多的改进,如透明数据加密、数据库活动监视等功能,...

    Oracle10G数据库操作DLL文件

    Oracle10G数据库操作DLL文件是Oracle公司为开发者提供的一个重要的组件,主要用于在C#等.NET环境中与Oracle数据库进行交互。这个DLL文件,即`Oracle.DataAccess.dll`,包含了Oracle Data Provider for .NET (ODP.NET...

    Oracle 10g入门与提高

    本资料“Oracle 10g入门与提高”是一份PPT教程,旨在帮助初学者掌握Oracle 10g的基础知识,并进一步提升其在实际操作中的技能。 一、Oracle 10g基础 Oracle 10g包含了许多关键特性,如数据仓库优化、网格计算支持、...

    Oracle10g 在windows上的安装

    1. **启动安装程序**:插入Oracle 10g安装光盘后,如果没有自动启动安装程序,可以通过双击光盘中的`setup.exe`来启动安装。 2. **选择安装类型**:根据实际需求选择合适的安装类型(企业版、标准版、个人版或定制...

    oracle 10g 下载地址大全

    在了解 Oracle 10g 的基本信息后,我们可以对其进行深入的讨论。下面我们将从 Oracle 10g 的架构、特点、安装、配置、安全性和优化等方面进行探讨。 架构 Oracle 10g 的架构主要包括服务器进程、数据库实例和存储...

    oracle,Oracle10g,Oracle10g

    在IBM的AIX操作系统上,Oracle 10g 可以利用高可用性集群多处理技术(High Availability Cluster Multiprocessing, HACMP)来提升系统的稳定性和可用性。 HACMP 是一种集群解决方案,它允许在多个物理服务器之间...

    oracle 10g 客户端 绿色免安装版

    综上所述,Oracle 10g客户端绿色免安装版提供了一个全面的工具集,使得开发者和DBA无需完整安装即可进行数据库操作。它包括了数据库连接、查询、网络通信等关键组件,并且附带了一个简单易用的数据表查看工具,便于...

    Oracle 10g 联机文档

    在Oracle 10g中,表空间是数据存储的基本单位,用于组织和管理数据库对象。表空间由一个或多个数据文件组成,每个数据文件包含物理存储的数据块。此外,Oracle 10g引入了自动存储管理(ASM),简化了存储管理和性能...

    Oracle 10g 操作手册 Oracle数据类型精解

    通过学习Oracle 10g操作手册和PowerDesigner教程,不仅能够掌握数据库的基本操作,还能深入了解数据类型的应用,以及如何用PowerDesigner进行高效的数据库设计和管理。这将为你的数据库管理工作提供坚实的基础。

    oracle10g 文档

    ### Oracle10g 关键知识点解析 #### 一、Oracle Database 10g 概述 - **版本信息**:Oracle Database 10g 是 Oracle 公司在 2004 年发布的一个数据库管理系统版本,其中的 "g" 字母代表 "grid"(网格),强调了该...

    Oracle 10g 安装配置

    Oracle 10g 安装配置是一个复杂的过程,需要了解 Oracle 应用服务器 10g 的基本概念和安装要求。下面将从硬件要求、软件要求、数据库安装和客户端配置等方面详细介绍 Oracle 10g 安装配置的整个过程。 硬件要求 ...

    Oracle10G_Client

    5. **Instant Client**:Oracle10G客户端中的轻量级版本,包含最基本的连接和查询功能,适合那些只需要偶尔连接数据库或者资源有限的环境。 6. **JDBC驱动**:Java Database Connectivity驱动,使得Java应用程序...

    Oracle 10g简明教程

    通过本教程的学习,读者将能够掌握Oracle 10g的基本操作和管理技巧,为进一步深入学习和应用Oracle数据库系统奠定坚实基础。同时,由于数据库技术的快速发展,建议读者结合实际项目经验,持续关注Oracle的新技术和...

Global site tag (gtag.js) - Google Analytics