20150814Oracle学习笔记

来源:互联网 发布:5轴加工中心软件编程 编辑:程序博客网 时间:2024/05/23 19:12

(1)数据库中数据存在的方式为表.

(2)表的一行称之为一条记录对应java类的一个对象.

(3)详细创建表命令create table table_name(field1 datatype,field2 datatype.......);

(4)Oracle常用数据类型

char(size)存放字符串最大2000个字符.是定长即存放字符串不够size则用空格补全,超过则报错.

varchar2(size)也是存放字符串,但是变长,即存放多少就占多少空间,剩余空间被回收,最大存放4000个字符;

 如果数据长度是固定的比如身份证号则使用char来存放,因为这样存取速度快.

如果数据长度是变化的,则使用varchar2.

*Unicode编码无论中文英文都算一个字符.

即1个汉字占char两个字符占nchar一个字符.

nchar(size)Unicode编码定长最大2000个字符.

nvarchar(size)2变长最大长度4000个字符.

clob(character larg object)字符型大对象,最大8tb=8*1024g.(变长)

blob二进制大对象 可以存放图片和声音最大8tb.(开发中很少将文件存放在数据库中,因为效率不高,实际应用中我们记录是文件的路径.然后通过io与网络操作.)

*如果对文件安全性有特殊需求可以考虑放入数据库.

number(p,s)p为整数位,s为小数位.可以存放整数也可以存放小数.其中1<=p<=38,-84<=s<=127,保存数据范围-1.0e-130<=number value<1.0e+126

number保存到机器范围1~22bytes(也是变长).

(5)有效位是指从左到右第一个非零数就是第一个有效位number最多可存位数是p-s个位数.(实际开发中有明确要求保留小数点位数则明确指定,如果没有直接使用number就行.)

(6)date类型用于表示时间(年/月/日/时/分/秒)

比如create table test(birthday date);Oracle日期默认格式是"dd-mm-yyyy";也可以通过函数使用其他日期格式.

(7)TIMESTAMP(n)邮戳数据类型更新数据时日期会变化其中n可选值为0~9指的是秒的小数位数.

(8)添加表字段alter table 表名 add (列名,列类型);
(9)修改表字段alter table 表名 modify(列名,新类型);
(10)删除表字段alter table 表名 drop column 字段名;
(11)更改表名rename 表名 to 新表名;
(12)删除表 drop table 表名;
(13)查看表结构desc(ribe) 表名;
*表的crud操作
(1)增insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3);如果给标的所有列都加值的话可以不带列名,例如insert into 表名 values (值.....);

(2)字符和日期类型要包含在单引号中.

(3)update操作可以用新值更新原有表行中各列, update 表名 set 列名=新值/表达式 where 列名=值;下划线处是为了寻找第几行.

(4)如果不用where则更新所有行.(一定要小心)

(5)如果修改的参数为空则不用等号用is比如update student set fellowship=10 where fellowship is null;

(6)delete from 表名 where 条件用delete语句可以删除表中的记录,切记如果不加where条件则删除所有记录,如果需要删除某一列的值则用update.另外delete语句删除的是数据而不是表本身,要删除表本身需要用drop语句.

(7)delete与update一样可能引起表的参照完整性的问题.

(8)delet语句删除的数据可以通过roolback to savepoint_name;恢复,但是要先设置好savepoint.

(9)truncate table 表名;删除表的所有数据,相比delete而言不写日志所以速度快但是数据不可找回.

(10)select查询语句

scott用户下常用的三张表emp,dept,salgrade.

基本语法select [distinct] */column_name from table_name [where 条件];(distinct可选是否过滤掉重复记录,如果查询多列.列名之间用逗号相隔.)

Oracle对字段查询时默认区分大小写.但是表名和命令不区分大小写.

select abs(列名) from 表名;(oracle查询中可以使用函数和表达式如上面的例子,作用是返回这一列的绝对值)

也可以加列的别名例如select sal*13 年薪 from emp;

nvl函数是oracle提供用来解决数据null问题,用法nvl(comm,0);如果comm为null则返回0否则分会自身值.(comm为emp表里面的奖金.)

(11)拼接||的使用,如果查询时想把多列拼接起来作为一列返回可以使用||(连接符)例如select 列名1 ||'附加内容'|| 列名2 from 表名.



0 0
原创粉丝点击