nosql是文档的方式

数据表:dml操作
是整个学期的基础,
《java核心技术精讲》之中,通过java程序讲解了数据表的 映射
表示对数据的统计。
表是由字段组合而成的。

字段:
对于定义表示字符串的数据,不超过200字,都使用varchar2,不过其他数据库,mysql,就使用varchar。
number(n),表示的是整数,也可以用int来代替
number(n,m)表示小数,也可以用float代替。而表示时间一般用date,只包含日期,但是不包含时间,而是用time包含时间,不包含日期,只有timestamp才包含时间和日期、毫秒
如果表示 大文本的数据那么就使用clob操作,比如存放一部红楼梦,最多可以保存4g的文字大小。
如果保存二进制的文件,是使用blob,也可以保持4g的图片、音乐、电影等,但是一般来讲,很少有人去直接使用它。
个人建议,常用类型,varchar2、number、date、clob

表的创建属于DDL。语法:create table 用户 名()

 

复制表:
create table myemp as select * from emp

 

复制表结构
select * from emp where 1=2;
create table empee as select * from emp where 1=2;


复制表的查询结果:
select d.deptno,count(e.empno)
from emp e , dept d
where e.deptno(+)=d.deptno
group by d.deptno
order by d.deptno

create table emppp as 
select d.deptno, d.dname , ,d.loc ,count(e.empno) 
from emp e , dept d
where e.deptno(+)=d.deptno
group by d.deptno,d.dname ,d.loc
order by d.deptno

 

数据库重命名:
数据字典都是以”v$“开头(oracle数据管理员用到),也有静态数据字典。
user_*
all_*
dba_*

select * from user_tables

 

改数据表名:
RENAME myemp TO EMPBB;
select * from EMPBB
rollback
此时,当发生任何的 DDL操作的时候对于事务都会自动提交。所以回滚不了。

 

截断表:
truncate table EMPBB
表一旦被截断之后,所占用的全部资源都将释放掉了。

 

删除表:
是一个非常重要的概念。
如果要删除表,就用”drop table 表“
drop table EMPBB
drop table empee
删了表,也会遗留下残余。
select * from tab
为什么呢,这说到闪回。

 

闪回技术?(flashback)
只能通过备份文件来恢复。oracle10g开始为了解决误删除表的时候不是立刻删除,而是将表暂时放到回收站。

 

查看有什么表在回收站
select object_name, original_name from recyclebin

 

把误删的表恢复
flashback table myemp to before drop;
select * from myemp

 

这样才真的删除表
drop table myemp purge

 

在回收站里删除表
purge table empbb

 

清空回收站:
purge recyclebin

 

修改表结构:
修改表结构=程序人的噩梦

-- 删除表
drop table menber;

--创建表
create table menber (
mid number,
name varchar2(10) default '无名氏'
)
--增加数据
insert into menber (mid , name ) values (1 , '李兴华' );
insert into menber (mid , name ) values (2 , '李华' );
--提交
commit;

 

select * from menber

以后再工作之中,也会编写数据库脚本,而且组成部分:删除、创建、测试数据、事务提交。

增加默认值

 

为表增加字段类型

select * from menber

 

增加年龄,没有设置默认值

ALTER TABLE menber add( age number(3) )
alter table menber add(sex varchar2(10) default '')
alter table menber add(photo varchar2(10) default 'dfsjkdf')

alter table menber modify( name varchar2(30))
alter table menber modify( sex varchar2(10) default '')

 

表中的列删除:
alter table menber drop column photo

 

将表中字段设置为无用列:
alter table menber set unused (sex)

 

一下一执行,就剩下一个id列
alter table menber set unused column name;

 

删除无用列:
alter table menber drop unused columns

修改操作作为sql语法,工作中少操作。

 

添加注释
注释是为了可读,
comment on table menber

 

-- 删除表
drop table menber purge;

--创建表
create table menber (
mid number,
name varchar2(10) default '无名氏',
age number(3),
brithday date 
)

 

 

select * from user_tab_comments where table_name='MENBER'
在oracle中提供一个”user_tab_columns“数据字典

comment on table menber is'用于记录参加活动的成员信息'


为mid添加注释,为列添加注释
comment on column menber.mid is'用于记录参加活动的编号'

 

查看列的注释
select * from user_col_comments where table_name='MENBER'

 

一般开发之中,都会提供相应的设计文档,文档中一般都会提供这类的解释信息

设置可见/不可见字段
在oracle12c之前,是不支持的。

 

drop table mytab purge;
create table mytab(
mid number,
name varchar2(30) 
)
insert into mytab values(1)

alter table mytab modify(name invisible)

select * 
from user_tab_columns
where table_name='MYTAB'

 



如果要将不可见的列,变为可见。
alter table mytab modify( name visible)