首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > Oracle培训笔记20060407
【标  题】:Oracle培训笔记20060407
【关键字】:Oracle,20060407
【来  源】:http://blog.csdn.net/sunjavaduke/archive/2007/03/01/1518206.aspx

Oracle培训笔记20060407

5.把自己的数据放入表中
 Inset into 表名 values(值的列表)
查看表的列:
 desc 表名
数字值:999.99
字符串值:'string'
date: date 'yyyy-mm-dd'
eg.
 insert into students values(100001,'甘十九妹',178,date '1970-01-01');
 select * from students;
插入动作必须进行提交
命令:commit;
如果建立时长度不够,可以更改
命令:
 alter table 表名字 modify 列名 新数据类型(new宽度)
  alter table students modify stu_id number(13);
更改数字显示方式:
 col 标题 format 999999999999999
注:有时候标题是列名,有时候不一定是
更改字符串格式的的显示方式:
 col  stu_name format A(长度)
增加列:
 alter table 表名字 ADD 新列名 数据类型(宽度);
给STUDENTS增加一个列,身份证号码。
 alter table students add stu_idNO number(18);
修改列名:
 alter table 表名字 rename column 旧列名 to 新列名;
删除一个列名:
 alter table 表名字 drop column 列名;
删除表:
 drop table 表名字;
删除帐户:
 drop user 帐户 CASCADE;

数据的更新:
 update 表名 set 列名1=值1,...,列名N=值N
  WHERE 条件;
删除数据:
 DELETE [FROM] 表明 [WHERE 条件];
注:WHERE 条件确定删除哪些数据
入门部分结束。
ORACLE中的语言分类:
DDL:数据定义语言
 负责创建、删除、修改对象的命令(ORACLE中有很多种对象)
 CREATE ALTER DROP GRANT REVOKE(收回授权) RENAME TRUNCATE.............
 写完即提交,不需要自己提交
DML:数据操作语言
 负责修改表中的数据,其他对象中的数据不能用DML修改
 INSERT UPDATE DELETE.......
TCL:TRANSACTIN CONTROL LANGUAGE
 提交,回滚,设置事务....
会话控制语句
 SESSION:会话
 ALTER SESSION SET ...=....
 ALTER SESSION SET NLS_LANGUAGE='SIMPLIFIED CHINESE';
修改系统的语言。
当=号后的值为有空格时,需要加引号

系统控制语句:
 ALTER SYSTEM SET...=....
 ALTER SYSTEM ENABLE RESTRICTED SESSION;//将数据库设置为限制模式
 ALTER SYSTEM CHECKPOINT;//设置检查点

标准数据类型:
Character strings:
 CHARACTER:定长的字符串  ENAME CHARACTER(10)
 CHARACTER VARYING:变长的字符串  ENAME CHARACTER VARYING(10) 张三 占6个字节,其中两个汉字占两个字节,系统自动增加4个
 CHARACTER LARGE OBJECT:大对象,大到4个G
 NATIONAL CHARACTER
 NATIONAL CHARACTER VARYING,
 NATIONAL CHARACTER LARGE OBJECT
 一个数据库可以有两个字符集设置:CHARACTERSET(兼容ASCII)
 SELECT * FROM EMP WHERE ENAME='张三';
 NATIONAL CHARACTERSET(不兼容ASCII)
 UNICODE(兼容ASCII和不兼容ASCII)
Binary strings:
 BINARY LARGE OBJECT(n):不对存放的数据进行翻译解释
Numbers:
 NUMERIC
 DECIMAL
 INTEGER
 SMALLINT
 FLOAT
 REAL
 DOUBLE PRECISION
Datetimes and intervals:
 DATE
 TIME WITHOUT TIME ZONE,
 TIMESTAMP WITHOUT TIME ZONE
 TIME WITH TIME ZONE
 TIMESTAMP WITH TIME ZONE.
 year-month INTERVAL,
 day-time INTERVAL
ORACLE不支持Boolean Types 和 Bit strings.

Oracle SQL 内部数据类型:
VARCHAR2,NVARCHAR2:变长字符串
NUMBER:数字(变长),最大可以达到21个字节 100的N幂*数字*符号
12400000000000000000000000000000
12312313545645646789769464564654
其实是上面占用的位数少,不用存储那么多的信息,即一样长度,但是占用空间不同
NUMBER(P,S):P是精度,数字中连续的可以存在非0数字的数位的综合
  S是标度,小书店后的位数目
NUMBER(5,2):99999.99最大的数字
NUMBER(5)=NUMBER(5,0)=99999
NUMBER(2,3):0.099为最大数字
NUMBER(3,-1):9990为最大数字
NUMBER(3,-2):99900为最大数字

练习:如果一个列,用来存放0.01-0.99之间的数值
      如果一个列,用来存放整千1000,2000,....9000。
Number(2,2)
number(1,-3)
LONG:长整形
ROWID
DATE
二进制类型:
RAW  LONG RAW
CHAR, NCHAR:定长的字符串
User-defined type (object type, VARRAY, Nested Table)
REF
CLOB, NCLOB BLOB BFILE:文本大对象
TIMESTAMP
TIMESTAMP WITH TIME ZONE
INTERVAL YEAR TO MONTH      
INTERVAL DAY TO SECOND
UROWID
TIMESTAMP WITH LOCAL TIME ZONE

select * from 表名
投影:(PROJECTION)过滤列
SELECT {列名|表达式|函数} 列表 FROM 表名
不可以是比较表达式或者逻辑表达式
 查询每个职工的编号,姓名和工资
 查询每个职工的编号,姓名和年工资(假设表中用的是月工资)
select empno,ename,sal*12 from emp;
 查询每个职工的编号,姓名和总收入(工资与分成的和)
select empno,ename,sal+comm from emp;
NULL值:无意义的,未初始化的,无效的,不可操作的
空值代入算术运算中,结果总是空
可以使用NVL(a,b):函数作用,如果a是NULL,则返回b,否则返回a
select empno,ename,sal+NVL(comm,0) from emp;

选择(selection):行过滤
SELECT ...
FROM ...
WHERE 条件
条件::=比较表达式或者比较表达式为运算数的逻辑表达式
select *
from emp
where sal>1000 and sal<2000
 查询职务是MANAGER或者SALESMAN的职工信息
select * from emp where job='MANAGER' or job='SALESMAN';
 查询工资膏腴1000的CLERK的信息
SELECT * FROM EMP WHERE SAL>1000 AND JOB='CLERK';
 查询谁在1982年之后参加工作
select * from emp where hiredate>= date '1982-01-01'
语法的关键字及标志符(select..... emp.... sal...)都是不区分大小写的
但是表中字符串的值是区分大小写的(MANAGER.....),用单引号括起来

 查询谁在1982年之后(不包含)参加工作
    select * from emp
    where hiredate>=date '1983-01-01'
    /
 查询职务是MANAGER或者SALESMAN的职工中,谁的工资大于2000
   select * from emp
   where (job='MANAGER' or job='SALESMAN')
   and sal>2000
   /
优先级为NOT>AND>OR
>  < >=  <= <> (!= ^=) =
between ...and....
val between a and b  <===> val>=a and val<=b
in(A1,A2,...An)
val in(A1,A2,...An)  <====>val=A1 or val=A2 or ....val=An
like
%  忽略任意多个任意字符
_  忽略一个任意字符
select * from emp where ename like 'A%';
select * from emp where ename like '_A%';

 查询谁的名字中含有字符串AR
select * from emp where ename like '%AR%';
 查询谁的名字中有A和R
select * from emp where ename like '%A%'
   and ename like '%R%';
 查询谁的名字中的倒数第二个字符是E
select * from emp where ename like '%E_';

select * from 参数表 where like 'SYSTEM/%%' escape '/';
ESCAPE一次用一个,想转移多个用多个ESCAPE
conn / as sysdba
查询V$PARAMETER可以获得参数的名字和值,查询哪些参数是以log_开头的
 select * from V$PARAMETER where name like 'log/_%' escape '/'
查询V$PARAMETER可以获得参数的名字和值,查询哪些参数有两个以上下划线
 select * from V$PARAMETER where name like '%/_%/_%' escape '/'
查询V$PARAMETER可以获得参数的名字和值,查询哪些参数有两个下划线 
 select * from V$PARAMETER where name like '%/_%/_%' escape '/'
   and not name like '%/_%/_%/_%' escape '/';
select *
1 from emo
2 where ....
这时可以使用分号或者/来结束命令语句。 

Oracle培训笔记20060408:【上一篇】
Oracle培训笔记20060406:【下一篇】
【相关文章】
  • Oracle培训笔记20060408
  • Oracle培训笔记20060409
  • Oracle培训笔记20060410
  • Oracle培训笔记20060412
  • Oracle培训笔记20060413
  • Oracle培训笔记20060415
  • Oracle培训笔记20060414
  • Oracle培训笔记20060416
  • Oracle MD5加密的存储过程的实现
  • Oracle与SQL Server的数据同步方法。
  • 【随机文章】
  • 揭开Foxmail 5.0秘密新功能
  • Linux下访问U盘
  • 红旗软件集成全新重量级平台迁移工具MoveOver
  • 破解足彩大师5.0 算法分析
  • IT从业人员必看的10个论坛
  • Eclipse下Hibernate的开发(二)利用Hbm映射文件开发
  • xstream对xmlnode的属性(attribute)解析的问题。
  • 《浮点仿真库的实现与VC6浮点库反汇编分析》之八 异常处理
  • 如何写出好的代码!
  • Linux内核驱动模块编程指南--最简单的内核模块
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.