Oracle开发学习之Oracle 表的管理
程序员文章站
2022-10-31 16:38:48
oracle 表的管理
常用数据类型:
文本、二进制类型:
char(size)...
oracle 表的管理
常用数据类型: 文本、二进制类型: char(size) 定长 最大2000字符 建议数据长度固定时使用,因为固定长度比较,存取速度比varchar快 varchar2(size) 变长 最大4000字符 建议数据长度不固定时使用,因为长度不固定,变长比varchar定长更节约内存空间 nchar(size) unicode编码类型 定长 最大2000字符 nvarchar2(size) unicode编码类型 变长 最大4000字符 unicode编码类型,一个汉字占用一个字符空间;而char类型占两个字符空间 ctob(character large object) 字符型大对象 最大8tb blob(binary large object) 二进制数据 可以存放图片/音频 最大8tb 一般除非是对文件的安全性要求特别高。否则是不会直接将文件存放到数据库中,一般存放文件对应链接 数值类型: number(p, s) p 整数位(1~38); s 小数位(-84~127) 数据范围:-1.0e-130 ~ 1.0e+126 日期类型: date 默认格式:dd-mon_yyyy timestamp(n) n表示指定秒的小数位。(0~9)。取0时与date等价
timestamp(n) n表示指定秒的小数位。(0~9)。取0时与date等价
1、创建表
基本语法:
create table table_name( 列1 数据类型1, 列2 数据类型2, 列3 数据类型3 );
2、修改表
基本语法:
-- 增加字段 alter table table_nameadd (column_name datatype); -- 修改字段 alter table table_namemodify (column_name datatype); -- 删除字段 alter table table_namedrop column (column); -- 修改表名 rename table_name to newt_able_name; -- 删除表 drop table table_name;
3、表数据的操作
1. 增加
insert into table [(column [,column…])] values (value [,value…]);
数据类型相同;数据大小在范围内;values中的数据位置与列的位置对应;空值不指定或用null;字符、日期在单引号内
2. 删除
delete from table [where definition] truncate table table [where definition]
如果没有where条件,则会删除表中所有数据
删除操作针对数据行,如果想删除指定行的某一列。可以使用update语句选择行的将该字段置空删除操作只针对表中数据,不删除表本身。如果需要删除表,则使用drop table语句。
几种删除的特点:
delete:删除表中数据;不破坏表结构;保存删除记录;删除后可以回滚;执行速度较慢
truncate:删除表中数据;不破坏表结构;不保存删除记录;删除后无法恢复;执行速度较快
drop:删除表中数据;删除表结构
delete语句的回滚:
delete 语句在删除记录操作后可以使用 rollback 关键字进行回滚,即数据恢复。
但是,前提是需要使用 savepoint 关键字设置保存点。
sql> select * from students; id name age ------------------------------------ 01 zhangsan 10 sql> savepoint point01; savepoint created sql> delete from students where name='zhangsan'; 1 rows deleted sql> select * from students; id name age ------------------------------------ sql> rollback to point01; rollback complete sql> select * from students; id name age ------------------------------------ 01 zhangsan 10
3. 修改
update table set column_name1=expr1[, column_name expr2…] [where definition];
set 语句指定需要更新的列名和要更新的值(可以使用表达式,即数学函数等)
如果没有where条件,则会更新整个表
4. 查询
select [distinct] * | {column1, column2...} from table;
distinct:去除重复数据; *:
*:查询所有列 以上操作时经常用到的几点: 1. 设置列的别名时。可以直接在列名后跟别名,也可以使用列名 as 别名。别名可以不带引号,也可以带双引号,但较新版本的oracle中不允许带单引号。 2. 巧用 nvl 函数处理 null 值问题。基本用法: nvl(column, default)。意为:当column为null时,返回default,否则返回column本身。 3. 常用 || 拼接字符串。 4. to_char(data, format)。日期的格式转换。 以:5-may-2018为例。 to_char(data, 'yyyy-mm-dd') --> 2018-05-01 to_char(data, 'yyyy') --> 2018 to_char(data, 'yyyy-mm') --> 2018-05 5. like 模糊查询。 % 表示任意个字符 _ 表示一个字符 6. in(value1, value2, value3,...) 条件满足其中任意一种 7. is null 是否为空。 8. order by 对结果进行排序 desc 降序 高-->低 asc 升序 低-->高 (默认)