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 約束名

主鍵約束和唯一約束的區別:

  • 主鍵約束只有一個,唯一約束可有多個;
  • 主鍵約束非空空,唯一約束可爲空;

 

 

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