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中断开
相关推荐
实践2和实践3部分,文档介绍了Oracle数据库基本命令和数据库操作的知识,包括创建表、索引、视图、存储过程等数据库对象,以及进行数据查询、更新、插入和删除的基本操作。这些操作是构建和维护关系型数据库不可或缺...
本教程针对初学者,将深入讲解Oracle 10g的基础知识,包括安装、卸载、基本操作、配置与管理等方面。 一、Oracle 10g 安装 Oracle 10g 的安装过程涉及多个步骤,首先要确定系统满足硬件和软件需求,例如操作系统...
虽然Oracle 10g和11g都属于Oracle公司的产品线,并且在很多基本特性上相似,但它们之间也存在一些重要的区别: - **安全性增强**:Oracle 11g在安全性方面做了更多的改进,如透明数据加密、数据库活动监视等功能,...
在Linux上安装Oracle 10g是一个涉及多步骤的过程,不仅需要对Linux操作系统有深入的了解,还需要掌握Oracle数据库的相关知识。本文介绍了安装Linux操作系统、配置系统以满足Oracle数据库要求、安装Oracle数据库软件...
Oracle10G数据库操作DLL文件是Oracle公司为开发者提供的一个重要的组件,主要用于在C#等.NET环境中与Oracle数据库进行交互。这个DLL文件,即`Oracle.DataAccess.dll`,包含了Oracle Data Provider for .NET (ODP.NET...
本资料“Oracle 10g入门与提高”是一份PPT教程,旨在帮助初学者掌握Oracle 10g的基础知识,并进一步提升其在实际操作中的技能。 一、Oracle 10g基础 Oracle 10g包含了许多关键特性,如数据仓库优化、网格计算支持、...
1. **启动安装程序**:插入Oracle 10g安装光盘后,如果没有自动启动安装程序,可以通过双击光盘中的`setup.exe`来启动安装。 2. **选择安装类型**:根据实际需求选择合适的安装类型(企业版、标准版、个人版或定制...
在了解 Oracle 10g 的基本信息后,我们可以对其进行深入的讨论。下面我们将从 Oracle 10g 的架构、特点、安装、配置、安全性和优化等方面进行探讨。 架构 Oracle 10g 的架构主要包括服务器进程、数据库实例和存储...
在IBM的AIX操作系统上,Oracle 10g 可以利用高可用性集群多处理技术(High Availability Cluster Multiprocessing, HACMP)来提升系统的稳定性和可用性。 HACMP 是一种集群解决方案,它允许在多个物理服务器之间...
综上所述,Oracle 10g客户端绿色免安装版提供了一个全面的工具集,使得开发者和DBA无需完整安装即可进行数据库操作。它包括了数据库连接、查询、网络通信等关键组件,并且附带了一个简单易用的数据表查看工具,便于...
在Oracle 10g中,表空间是数据存储的基本单位,用于组织和管理数据库对象。表空间由一个或多个数据文件组成,每个数据文件包含物理存储的数据块。此外,Oracle 10g引入了自动存储管理(ASM),简化了存储管理和性能...
通过学习Oracle 10g操作手册和PowerDesigner教程,不仅能够掌握数据库的基本操作,还能深入了解数据类型的应用,以及如何用PowerDesigner进行高效的数据库设计和管理。这将为你的数据库管理工作提供坚实的基础。
### Oracle10g 关键知识点解析 #### 一、Oracle Database 10g 概述 - **版本信息**:Oracle Database 10g 是 Oracle 公司在 2004 年发布的一个数据库管理系统版本,其中的 "g" 字母代表 "grid"(网格),强调了该...
Oracle 10g 安装配置是一个复杂的过程,需要了解 Oracle 应用服务器 10g 的基本概念和安装要求。下面将从硬件要求、软件要求、数据库安装和客户端配置等方面详细介绍 Oracle 10g 安装配置的整个过程。 硬件要求 ...
5. **Instant Client**:Oracle10G客户端中的轻量级版本,包含最基本的连接和查询功能,适合那些只需要偶尔连接数据库或者资源有限的环境。 6. **JDBC驱动**:Java Database Connectivity驱动,使得Java应用程序...
通过本教程的学习,读者将能够掌握Oracle 10g的基本操作和管理技巧,为进一步深入学习和应用Oracle数据库系统奠定坚实基础。同时,由于数据库技术的快速发展,建议读者结合实际项目经验,持续关注Oracle的新技术和...