Oracle学习笔记

表的基本操作:数据的增、删、改、查

语法格式:

insert into [方案名].表名 [列名] values();

[]里面的可写可不写,需要注意的是,如果列名没写,则插入记录的值的顺序要与表的列名的顺序一致。
当列名不止一个时,

insert into [方案名].表名 
(列名1,列名2,列名3,···,列名n) 
values
(1,2,3,···,值n);

如何复制一个表

1.直接复制

create table 新建的表的名字 as select * from 要复制的表的名字;

2.先创建新表,再把要复制的表的内容复制过去

//创建表
create table 表名
(
列名1 类型1()  [约束条件],
列名2 类型2()  [约束条件],
··········,
constraint 主键名 primary key(列名)
);
//复制表
insert into 新表的名字 select * from 旧表的名字;
//如果新建的表的列名的顺序与旧表的顺序不一致,则使用这条语句
insert into 新表的名字 
(列名1,列名2,···,列名n)
select 列名1,列名2,···,列名n from 旧表的名字;

当我们需要同步多张表时,发现上述语句无法执行,则需要用到merge(合并)语句。

语法格式

merge into2  //表2为需要同步的表
using1 on(2.列名1=1.列名1)  //表1为源表
when matched then 
update set2.列名2=1.列名2,表2.列名3=1.列名3  //set后面的字段不能加上on后面的字段
when not matched then
insert (列名1,列名2,列名3,···)  //如果两张表的字段名的顺序一致,insert后面的列名可省略不写
values (1.列名1,1.列名2,1.列名3,···);  //两张表的字段的顺序要一致

1.使用delete语句删除表中的记录

//删除全部记录
delete from 表名;
//删除某条记录
delete from 表名
where 条件;

2.使用truncate语句删除表中的记录

truncate table 表名;

两者的区别delete可删除指定的某条记录,也可删除全部记录,删除效率较低;truncate只能删除全部记录,效率高。

//修改一个值
update 表名或视图名
set 字段名=字段值
where 条件;
//修改同一条记录中的多个值
update 表名或视图名
set 
字段名1=字段值1,字段名2=字段值2,···,字段名n=字段值n
where 条件;

加上where条件,则是对表中指定的记录修改。

修改默认值

1.创建表时添加

create table 表名
(
列名 列的类型(长度) default[,列名n 列的类型(长度) default]
)

2.修改表时添加

alter table 表名
add
(
  列名 列的类型(长度) default[,列名n 列的类型(长度) default]
)

3.修改原有的列的默认值

alter table 表名
modify 列名 default;

查询表

//查询表中所有的字段
select * from 表名;
//查询表中指定的字段
select 列名1,列名2 from 表名;

索引

作用 :提高查询速度

创建索引

1.创建表时创建索引

create [unique∣bitmap] index [方案名.]索引名称  //unique∣bitmap为索引类型
on [方案名.]表名(列名,···,n) | cluster [方案名.]簇名
[initrans 整数]  --分配给表的事物条目的初始值
[maxtrans 整数]  --事物的最大并发数
[pctfree 整数]    --为将来更新表所保留的百分比
[pctused 整数]  --维持表的每个数据块已用空间的百分比
[tablespace 表空间名]   /*索引所属表空间*/
[storage storage_clause]       /*为索引建立存储特征*/
[nosort]  /*数据库中的行以升序保存,在创建索引时不必对行排序。*/
[reverse]  /*指定以反序索引块的字节,不包含行标识符*/

2.使用SQL developer图形化工具创建索引(略)

索引重命名
alter index 原索引名
rename to 新索引名;
删除索引
drop index 索引名;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值