转研JAVA程序辕 2016-12-01 22:33
Oracle数据类型
数值类型(NUMBER):表示数字类型
语法:NUMBER(p,s) 其中p表示数字的有效位数,s表示小数位数
有效位数:左往右第一个不为0的数开始 (包括小数位)
如:salary number(6,2)表示有效位数是6位,小数位数是2位
最大值9999.99
如果要表示整数时,小数位数参数不写或写0 即(5)、(5,0)
字符类型(CHAR和VARCHAR2)
CHAR:表示固定长度的字符类型,定义为CHAR(N)形式
N表示占用的字节数,最大长度是2000字节
如:name CHAR(20),表示name列中最多可以存储20个字节的字符串,并且占用的空间是固定的20字节
VARCHAR2:表示长度可变的字符类型,定义格式为VARCHAR2(N),
N表示最多可占用的字节数,最大长度是4000字节
如:position VARCHAR2(30) 表示position列中最多可存储长度为30个字节长度的字符串,根据其中保存的数据长度,占用的空间是变化的
日期类型(DATE):用于定义日期和时间的数据,长度是7字节
注意:Oracle中默认的日期格式是 DD-MON-YY(简写的月份)
eg:30-11月-16 输入时需要加单引号
TIMESTAMP与DATE类似,区别在于时区,精确到毫秒
修改日期的默认格式
语法:
alter session set nls_date_format=‘yyyy-mm-dd’ 只在当前界面有效
其他类型
CLOB(Character Large Object) 字符型大对象,最大能存储4G字符
BLOB(Binary Large Object) 二进制数据可以存放图片声音 最大能存储4G字符
查看表格:
查看当前用户下所有的表格:
select table_name from user_tables;
查看表结构
Desc 表名;
查询数据表中的内容
select * from 表名;
创建表格:
create table tableName(
colunmn dateType,
colunmn dateType,
colunmn dateType
);
注:每个列名占一行,列名与列名直接逗号隔开
向表中插入数据:
insert into tablename(字段名,字段名,字段名)values(内容,内容,内容);
如果全部列都插入内容:
insert into tablename values(内容,内容,内容);
注:没有内容的列,可以使用NULL填充。
设置格式
SET LINESIZE200;设置行缓存,默认值为80
SHOW LINESIZE; 查看行缓存
SET PAGESIZE20; 设置页显示行数,默认是14
SHOW PAGESIZE; 查看页显示行数
将表格内容格式化显示:
column 字段名 format 占位符 (用来设置字段所占长度)
数组类型采用9作为占用符(9999/9999.99),字符型以a字符长度表示 (a10)
删除表格:
drop table name;
修改表名:
RENAME old_name TOnew_name;
增加列:
ALTER TABLE的ADD语句实现
ALTER TABLEtable_nameADD(columnName date Type); (列名,列类型)
注:列只能增加在最后,不能插入到现有的列中。
删除列:
ALTER TABLE 的DROP语句实现
ALTER TABLEtable_name DROP(columnName);
注:列中有数据也可以删除,需要删除此字段占据的长度和数据,并释放在数据块中占据的空间,如果表数据比较大,删除字段时间可能较长
修改列:
建表之后,可以改变表中列的数据类型,长度,默认值,修改仅对修改以后插入的数据有效,
如果把列的长度由大改到小,有可能不成功
ALTER TABLEtable_nameMODIFY(columnName,dateType);
insert语句:给数据表中增加数据
insert into table_name(colunname…)values(values…);
注意:执行DML操作后,需要再执行COMMIT(提交)语句,才能确认此操作
DATE 如果插入日期类型,需要考虑日期的格式,
日期默认格式:'dd-mon-yy'
UPDATE语句:更新表中的记录
语法:
UPDATE table_name SET columnName=value,columnName=value......;
修改多列以逗号隔开
注意:如果没有WHERE子句,则表示修改全表中的数据
DELETE删除表中的记录
语法:DELETE[FROM] table_name WHERE condition;
[]为可有可无 如果不带where 表示删除所有,有where只删除符合条件的
在DDL语句中的TRUNCATE语句,同样有删除表数据的作用
TRUNCATE和DELETE的区别:
DELETE可以按条件选择性删除,是DML语句,可以回退(回收站)
TRUNCATE删除全表表数据,是DBL语句,立即生效不可回退(彻底清除)
如果删除全表数据,且数据流大 TRUNCATE效率高