Oracle基本增删改查操作

1.创建表和约束
  1. --学生表  
  2. create table studeng  
  3. (  
  4.        stuId varchar2(20) default '10',--default设置默认值  
  5.        age varchar2(20) not null,  
  6.        sex varchar2(2),  
  7.        fk_classid varchar2(20)  
  8. )
  1. --添加主键  
  2. alter table studeng add constraint pk_stuId primary key (stuId)
  1. --添加约束  
  2. alter table studeng add constraint ck_stuSex check(sex='男' or sex='女'
  1. --改为非必填  
  2. alter table studeng modify age null--可为空 
  1. --改为必填  
  2. alter table studeng modify sex not null--不为空  
  1. --添加外间约束  
  2. alter table studeng add constraint fk_classes_id foreign key(fk_classid) references stu_classes(classid); 
2.创建索引
oracle的索引分为5种:唯一索引,组合索引,反向键索引,位图索引,基于函数的索引
  1. CREATE INDEX 索引名 ON 表名 (列名)  
  2. TABLESPACE 表空间名;  
创建唯一索引:
  1. CREATE unique INDEX 索引名 ON 表名 (列名)  
  2. TABLESPACE 表空间名; 
创建组合索引:
  1. CREATE INDEX 索引名 ON 表名 (列1,列2)  
  2. TABLESPACE 表空间名;  
创建反向键索引:
  1. CREATE INDEX 索引名 ON 表名 (列名) reverse  
  2.   
  3. TABLESPACE 表空间名;  

3.对表的基本操作
--新增-->使用自定义日期格式插入记录,默认格式是'22-SEP-94'
INSERT INTO employee (id,name,job,birth) VALUES(1002,'LARRY','ANALYST',TO_DATE('1994-10-22','YYYY-MM-DD'));

--更新-->更新LARRY的薪水,注意如果插入数据的时候字母是大写,那么修改的时候也要大写

UPDATE employee SET salary=10 WHERE name='LARRY';

--删除

1.DELETE FROM 表名 WHERE 条件;

2.TRUNCATE TABLE 表名;

注意:

*TRUNCATE和DELETE都能把表中的数据全部删除,他们的区别是:
1、TRUNCATE是DDL命令,删除的数据不能恢复;DELETE命令是DML命令,删除后的数据可以通过日志文件恢复。
2、如果一个表中数据记录很多,TRUNCATE相对DELETE速度快。

由于TRUNCATE命令比较危险,因此在实际开发中,TRUNCATE命令慎用。

注意:DELETE数据恢复步骤

--修改

RENAME employee TO emp ;--将employee表名改成emp

ALTER TABLE employee ADD hiredate DATE DEFAULT sysdate;--为employee增加列,默认值为当前日期

ALTER TABLE employee MODIFY (job VARCHAR2(40) DEFAULT 'CLERK');--修改job列的长度为40,并设置默认值

ALTER TABLE employee DROP (manager);--删除manager列


4.修改Oracle 有数据列的数据类型

方法一:

--创建一样的临时表
create table T_BUSINESS_MODEL_TEMP as select * from  T_BUSINESS_MODEL where 1=2 ; 
--对临时表改数据类型
alter table T_BUSINESS_MODEL_TEMP modify MODEL_MONEY NUMBER(10,2);
--将原表数据赋值到最新的表中
insert into T_BUSINESS_MODEL_TEMP select * from T_BUSINESS_MODEL; 
--删掉原来的表
drop table T_BUSINESS_MODEL; 
--将临时表重新命名为原表
alter table T_BUSINESS_MODEL_TEMP rename to T_BUSINESS_MODEL;
--添加原表的约束 (主键,外键,索引)
alter table T_BUSINESS_MODEL
  add constraint PK_T_BUSINESS_MODEL primary key (ID); 

 
 
 
 

方法二:

--字段重命名
alter table PROJECT rename column NAME to NAME1;
--把字段名称改成原来的名称
alter table PROJECT add  NAME VARCHAR2(300);
--- 赋值
update PROJECT np 
set np.name=np.name1;
commit;
--删掉原来重命名的字段
alter table PROJECT drop column  NAME1;

个人觉得还是方法二比较好一些!

5.复制表数据

--复制表

create table 新表 as select * from 旧表;--表不存在的情况下,创建表并且复制数据。oralce中表不存在的情况下用此语句。
create table 新表 as select * from  旧表 where 1=2 ;--仅复制表结构

insert into 新表 select * from 旧表;--表存在的情况下,复制数据,oracle中可以用此语句复制数据
insert into 新表(value11,value12..) select value21,balue22 from 旧表;

select value11,value12... into 新表 from 旧表;--表不存在的情况下,创建表并且复制数据,在plsql中直接运行会报错,需要再块中运行。

6.数据库常用语言

在Oracle开发中,客户端把SQL语句发送给服务器,服务器对SQL语句进行编译、执行,把执行的结果返回给客户端。

Oracle SQL语句由如下命令组成:
 数据定义语言(DDL),包括CREATE(创建)命令、ALTER(修改)命令、DROP(删除)命令等。
 数据操纵语言(DML),包括INSERT(插入)命令、UPDATE(更新)命令、DELETE(删除)命令、SELECT … FOR UPDATE(查询)等。
 数据查询语言(DQL),包括基本查询语句、Order By子句、Group By子句等。
 事务控制语言(TCL),包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。
 数据控制语言(DCL),GRANT(授权)命令、REVOKE(撤销)命令。

目前主流的数据库产品(比如:SQL Server、Oracle)都支持标准的SQL语句。
数据定义语言,表的增删改操作,数据的简单查询,事务的提交和回滚,权限的授权和撤销等,Oracle与SQL Server在操作上基本一致。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值