表管理
表管理
创建和维护
表名和列的命名规则
必须以字符开头
长度不能超过30个字符
不能使用Oracle的保留字
只能使用如下字符A-Z,z-z,0-9,$,#
数据类型
字符型
Char 定长 最大2000字符。 根据字段创建长度存储数据自动补齐空格,查询速度快
Varchar(20) 变长 最大4000字符。 节省空间
clob (character large objiect) 字符型大对象 最大4G
数字型
Number 范围 -10的38次方-10的38次方 可以表示证书也可以表示小数
Number(5,2) 5位数,两位小数 范围 -999.99-999.99
日期类型
Data 年月日和时分秒
Timestamp Oracle 对date数据类型的扩展
图片类型
Blob 二进制数据 可以存放图片/声音 4G
1、建表
create table student
(xh number(4),--学号
Xm varchar(20),--姓名
Sex char(2),
Birthday date,
Sal number(7,2)
);
表空间:
2、修改表
增加字段(且添加注释)
alter table TSL_SES_Session add TARGET_TABLENAME varchar2(30) default null;
comment on column TSL_SES_Session.TARGET_TABLENAME is '目标表名';
修改字段长度
alter table BO_HOSP_CERT modify (PRO_TYPE_CD varchar2(3) );
修改表名
方法一:
alter table 旧表名 rename to 新表名;
方法二:
rename 旧表名 to 新表名; ###只能修改自己Schema下的表
删除字段
alter table TSL_SES_Session drop (TargetTabName );
3、添加数据
oracle添加数据时只能是’31-12月-2018’
orale默认的日期格式 ‘DD-MON-YY’ 月-日-年
可以修改Oracle 日期字段格式alter session set nls_date_format=’yyyy-mm-dd’
4、删除数据
Delete 删除记录,表结构还在,写日志,可以恢复的,速度慢
Truncate 删除表中所有数据,表结构还在,不写日志,无法找回删除的记录,速度快
savepoint aa;--删除前先保存还原点
Delete from BO_HOSP_CERT;
Rollback to aa;--回滚
基本查询
命令行 查看表的结构
desc TSL_SES_Session;
查看查询数据的时间
Set timing on;
Nvl处理null值
Nvl(string,0)
Date类型查询
select *from bb_tsl_conf_info where cre_date>'12-10月-2017'
查看表信息
SELECT num_rows,table_name FROM TABS order by num_rows desc;//查询当前用户库中记录最大的表
SELECT * FROM user_tab_cols WHERE table_name='BB_CONFIG_BUSINESS'
复杂查询
笛卡尔积:夺标查询的条件是至少不能少于表的个手术-1、
All操作符
Select name,sal,dept, from emp where sal>all(select sal from emp where deptno=30)
多列子查询
Select *from emp where (deptno,job)=(select deptno,job from emp where ename=’SMITH’)
分页查询
Oracle分页一共有三种方式
1、rownum方式
用查询结果常见一张新表
Create table mytable(id,name,sal) as select empno,ename,sal from emp;
Oracle数据库的创建
使用Oracle提供的向导工具创建,数据库配置助手
自增列
1、声明一个序列
create sequence SB_LOG_DATA_EXTR_rec_id
minvalue 1
maxvalue 999999999999
start with 1
increment by 1
nocache;
2、获取序列
select SB_LOG_DATA_EXTR_rec_id.NEXTVAL as id from dual
查看当前用户下所有的表
select tname from tab where tabtype='TABLE';
系统表和视图
select * from user_tables --关系表
select * from user_all_tables --表(user_all_tables是user_tables与user_object_tables的集合)
select * from user_tab_columns --表列
select * from user_tab_comments --表的注释
select * from user_col_comments --表和视图的列的注释