表管理

管理

创建和维护

表名和列的命名规则

必须以字符开头

长度不能超过30个字符

不能使用Oracle的保留字

只能使用如下字符A-Z,z-z,0-9,$,#

数据类型

字符型

Char 定长 最大2000字符。 根据字段创建长度存储数据自动补齐空格,查询速度快

Varchar(20) 变长 最大4000字符。 节省空间

clob character large objiect) 字符型大对象 最大4G

数字型

Number 范围 -1038次方-1038次方 可以表示证书也可以表示小数

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               --表和视图的列的注释

猜你喜欢

转载自www.cnblogs.com/rongxiaoya/p/10306172.html
今日推荐