Oracle_DAY 03操作语句(四)
drop table mydept;
create table mydept(
id number primary key,
name varchar2(30)
);
/*子表:员工表*/
create table myemp(
id number primary key,
name varchar2(30),
fid number constraint myemp_fid_fk
references mydept(id)
);
1.先建立主表 后子表
2.插入数据 一般先插入主表
除非子表的外键使用NULL值
insert into mydept values(1,'test');
insert into myemp values(2,'taoge',1);
3.删除 数据 先删除子表 后删父表
除非你设置了级联(级联置空 级联删除)
4.删除表
先删子表 后删父表
drop table s_dept cascade constraints;
(先解除主外键关系 再删除表)
把下面的外键关系改成 表级外键约束
create table mmdept(
id number primary key,
name varchar2(30)
);
/*子表:员工表*/
create table mmemp(
id number primary key,
name varchar2(30),
fid number ,
constraint mmemp_fid_fk
foreign key(fid)
references mmdept(id)
);
级联 -----级联置空 级联删除
drop table mmdept;
drop table mmemp;
create table mmdept(
id number primary key,
name varchar2(30)
);
insert into mmdept values(1,'test');
commit;
/*子表:员工表*/
create table mmemp(
id number primary key,
name varchar2(30),
fid number ,
constraint mmemp_fid_fk
foreign key(fid)
references mmdept(id)
on delete cascade
);
insert into mmemp values(1,'zs',1);
insert into mmemp values(2,'zss',1);
insert into mmemp values(3,'zsss',1);
commit;
当主表删除数据时级联 删除子表相关的数据
create table mmemp(
id number primary key,
name varchar2(30),
fid number ,
constraint mmemp_fid_fk
foreign key(fid)
references mmdept(id)
on delete set null
);
------------------------------------------
约束:
5类约束----a b c d e
语法----表级 和列级别
not null
check
外键----级联置空 删除
------------------------------------------
数据库中dml
insert
delete
update
1.插入语句 insert
create table testdmla(
id number primary key,
fname varchar2(10),
sname char(10)
);
insert into 表名 values
(字段值1,字段值2,....);
插入值的顺序 和 desc 出现的字段顺序相同
insert into testdmla values(1,'abc','abc');
select length(fname) ,length(sname) from
testdmla;
select * from testdmla where fname='abc';
select * from testdmla where sname='abc';
select * from testdmla where fname='abc ';
select * from testdmla where sname='abc ';
定长字符串 如果数据长度不够则补空格
insert into testdmla(id,sname)
values(100,'baoge');
必须包含所有的非空字段
注册一个帐号
insert into testdmla values(10086,
'quange','chen');
insert into testdmla values(10087,
'moyan','mo');
commit; ------确认本次事务(交易)
rollback; ------取消本次事务(交易)
一般 事务谁发起 谁结束
drop table testdmla;
create table testdmla(
id number primary key,
fname varchar2(30),
sname char(30)
);
insert into testdmla select id
,first_name,last_name from s_emp;
insert into testdmla(id,fname) select id
,first_name from s_emp;
2.删除数据
delete from 表名 where 条件;
delete from testdmla where id=1;
commit;
rollback;
3.更新数据 update
update 表名 set 字段名=值
,字段名2=值 where 条件;
update testdmla set fname='who'
whe