oracle学习(2)

PS:一开始用 以为Oracle和mysql一样有show tables和databases这种命令的,是我想多了....

//创建表
create table userinfo
(id number(6,0),
username varchar2(20),
userpwd varchar2(20),
email varchar2(30),
regdate date);

//查看表
desc userinfo;

//添加字段
alter table userinfo add remarks varchar2(500);

//修改字段
alter table userinfo modify remarks varchar2(400);
alter table userinfo modify userpwd number(6,0);

//删除字段
alter table userinfo drop column remarks;

//修改字段名
alter table userinfo rename column email to new_email;

//修改表名
rename userinfo to new_userinfo;

//删除表
truncate table new_userinfo;

drop table new_userinfo;

truncate命令是对表的截断,只删除表的内容,速度较快;

drop是删除整张表结构;

//向表中所有字段添加值
insert into userinfo values(1,'xxx','123','[email protected]',sysdate);
//sysdate即系统时间

//向表中部分字段添加值
insert into userinfo(id,username,userpwd) values(1,'xxx','123','[email protected]',sysdate);
//建表时复制表数据
create table userinfo_new1 as select*from userinfo;

//建表时复制部分表数据
create table userinfo_new2 as select id,username from userinfo;

//添加数据时复制表数据
insert into userinfo_new1 select * from userino;
//修改数据(无条件更新将所有都改变)
update userinfo set username='111',userpwd='111';

update userinfo set userpwd='111' where username='xx';

//删除数据
delete from userinfo;//无条件删除
delete from userinfo where username='yyy';//有条件删除

修改表时添加非空约束 alter table table_name modify column_name datatype not null;

修改表时去除非空约束 alter table table_name modify column_name datatype null;

主键约束(数据字典为user_constraints)

建表时在字段后面加上primary key

联合主键语句 constraint pk_id_username primary key(id,username)   //pk_id_username 是主键的名字

在修改表时添加主键约束 alter table table_name add constraint pk_id_username primary key(id,username)

修改约束名字alter table table_name rename constraint pk_id_username to new_name

禁用|启用约束alter table table_name disable | enable  constraint pk_id_username

删除约束alter table table_name drop constraint pk_id_username

外键约束

//主表
create table typeinfo
(typeid varchar2(20) primary key,
typename varchar(20));

//从表1
create table userinfo_f1
(id varchar2(20) primary key,
username varchar2(20),
typeid_new varchar2(20) references typeinfo(typeid));

//从表2级联删除
create table userinfo_f2
(id varchar2(20) primary key,
username varchar2(20),
typeid_new varchar2(20),
constraint fk_typeid_new foreign key(typeid_new) references typeinfo(typeid) on delete cascade);

//修改表时添加外键约束
add constraint 约束名 foreign key(主键名) references 表名(主键名) on delete cascade;

//禁用|启用|删除外键约束
disable|enable|drop constraint 约束名

主键约束和唯一约束的区别:

  • 主键约束只有一个,唯一约束可有多个;
  • 主键约束非空空,唯一约束可为空;

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章