oraclez之基础增删查改

来源:互联网 发布:兴文排课软件 编辑:程序博客网 时间:2024/05/21 07:56

DDL:

--创建表
create table infos(
stuid varchar2(7) not null,--学号
stuname varchar2(10) not null,--姓名
gender varchar2(2) not null,--性别
age number(2) not null,--年龄
seat number(2)not null,--座号
enrolldate date,--入学时间
stuaddress varchar2(50) default'地址不详',--住址
calssno varchar2(4) not null --班号
)

create table scores(
 id number,
 team varchar2(2),           --学期 S1或S2
 stuid varchar2(7) not null,--学号
 examno varchar2(7) not null,--考号
 writtenscore number(4,1) not null,--笔试成绩
 labscore number(4,1) not null--机试成绩
)


--修改表

--1.增加约束
alter table infos add constraint pk_infos primary key(stuid)--主键约束
alter table infos add constraint ck_infos_gender check(gender='男' or gender='女')--检查约束

alter table scores add constraint fk_scores_infos_stuid foreign key(stuid) references infos(stuid)
--2.增加列
alter table infos add(des varchar2(100))
--3.修改列名
alter table infos rename column gender to sex
--4.修改表名
rename infos to tb_infos
--5.修改表字段类型
alter table infos modify(stuid varchar2(100))


--删除表操作

--1.删除表
drop table infos
--2.删除约束
drop table infos drop constraint pk_infos
--3.删除表中一列
alter table infos set unused column calssno
--4.删除表中所有数据
truncate table infos--它与delete区别是:delete 命令是DML命令,删除后可以通过日志文件恢复truncate是DDL命令删除后不可恢复,truncate速度更快,但更危险。

DML
--数据插入,即增加

insert into infos values('1','张三','男',14,2,to_date('2009-8-9 06:30:10','YYYY-MM-DD HH24:MI:SS'),'西安','1001')--使用todate函数插入日期
insert into infos values('2','李四','男',21,3,to_date('2009-9-9 06:30:10','YYYY-MM-DD HH24:MI:SS'),'福建','1001')
insert into infos values('3','王五','男',23,4,to_date('2009-10-9 06:30:10','YYYY-MM-DD HH24:MI:SS'),'武汉','1001')
insert into infos values('4','赵六','女',12,5,to_date('2009-11-9 06:30:10','YYYY-MM-DD HH24:MI:SS'),'南昌','1001')
insert into infos values('5','aa','女',12,6,sysdate,default,'1001')--sysdate为系统时间 defalut 为默认值

insert into infos select * from infos1--向表中插入结果集

insert into infos select '6','bb','女',12,7,sysdate,'aa','1001' from dual--向表中插入常量结果集

rollback--回滚
commit --提交

--根据结果集创建表
create table infos1 as select * from infos where stuid between 1 and 2
select * from infos1

--复制表结构 使条件不成立即可
create table infos2 as select * from infos where 1=2
select * from infos2


--修改数据
update infos set calssno='1111' where stuid='1'
--删除数据
delete infos where stuname='bb'
--简单查询
select * from infos
select * from infos order by stuid desc --按照studi降序排列