1.删除表:drop table student---删除表
2.添加列:alter table student add name varcahr2(20)---添加列
alter table TB_BGT_TZPS add zhnqgd_status number(1) default 0;---先在表里手动添加字段,然后查看sql
3.删除列:alter table student drop column name-----删除列
4.增加列和默认值:alter table TB_GFZZ_SALARY modify cnbt NUMBER(19,2) default 0
5. 主键约束:alter table student add constraint pk_sno primary key(sno)---添加主键约束,t添加主键pk_sno,主键所在的列是sno。一个一个执行,如果想一起执行就要用分号
6.外键约束:alter table score add constraint fk_sno foreign key(sno) references student(sno)---给成绩表加外键约束,因此fk_sno这个字段是成绩表的,第一个sno也是成绩表的。参考学生表的sno(主键)
7.检查约束:alter table student add constraint ck_sage chenk(sage>=20 add sage<=40)---给学生表添加约束ck_sage,约束类型的检查约束,约束的字段是sage
8.修改列:alter table student3 modify sex char(2)---发现student3的sex字段char(1)太小,修改成char(2)
9.添加缺省值:select empid,name,tax,paydate,nvl(ceshi,'添加新字段的缺省值') from tax---nvl添加缺省值,在添加记录的时候就会显示这个了
10.修改表的名字:alter table wage rename to xiugai_wage----修改表名字
11.创建 索引:CREATE INDEX idx_test4_name ON test_tab (name );
12.创建索引:ALTER TABLE table_name ADD INDEX index_name (column_list)
13.ALTER TABLE table_name MODIFY 要修改的字段名字 NULL;---允许该列的值为空
14.alter table tp_menu disable constraint FK_TP_MENU_REFERENCE_TP_MENU cascade;---让tp_menu表的约束条件失去效果
15.alter table tp_menu enable constraint FK_TP_MENU_REFERENCE_TP_MENU;---让外键在有效果
16.解锁oralce用户: ALTER USER username ACCOUNT UNLOCK;
17.锁定用户:ALTER USER username ACCOUNT LOCK;
18.修改用户权限:grant alter user to username;
19.唯一约束:alter table tb_realpay_ref_proc add constraint un_realpay_id unique(realpay_id)
20.将索引对应的字段换一下,换了之后在plsql里立马查看sql就能发现是怎么写的:其实表面是换个字段,后台sql则是先删除在创建(我想把当前索引字段pay_id换成realpay_id)
drop index INDX_PAY_ID;
create unique index INDX_PAY_ID on TB_REALPAY_INFO (realpay_id)
tablespace FTYTH
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
21.删除索引、创建索引
drop sequence seq_tb_realpay_info;
create sequence seq_tb_realpay_info
minvalue 1
maxvalue 9999999999999999999999999999
start with 22
increment by 1
cache 20;
22.修改索引:现在的索引号太大,我要把他变小
思路:
第一步:缓存变成0,自动增长变成-1.
第二步:写匿名函数处理初始值
第三步:在把自动增长变成1.
alter sequence seq_tb_realpay_info NOCACHE ;
alter sequence seq_tb_realpay_info INCREMENT BY -1;
-- alter sequence SEQ_TB_REALPAY_INFO increment by -1 nocache;--代替上面的两句话
declare
seq number(6) := 1;
begin
loop
select seq_tb_realpay_info.nextval into seq from dual;
if seq=2 then
exit;
end if;
end loop;
end;
alter sequence seq_tb_realpay_info INCREMENT BY 1;