SQL语句整理

来源:互联网 发布:知乎 收缩毛孔 编辑:程序博客网 时间:2024/05/08 12:44

字段描述增、删、改

添加字段的语法:

alter table tablename add (column datatype [default value][null/not null],….);

删除字段

alter table tablename drop (column);

修改字段

alter table tablename modify (column datatype [default value][null/not null],….);

//修改数据表列的类型
无数据时:ALTER TABLE INV.TRAN_INV_BILL MODIFY SERIALNO VARCHAR2(36)

有数据时:1、INV.TRAN_INV_BILL 表 2、进行修改列 SERIALNO 3、TEMP_ROWNAME临时列

ALTER TABLE INV.TRAN_INV_BILL RENAME COLUMN SERIALNO TO TEMP_ROWNAME;
ALTER TABLE INV.TRAN_INV_BILL ADD SERIALNO VARCHAR2(36);
UPDATE INV.TRAN_INV_BILL SET SERIALNO = CAST(TEMP_ROWNAME AS VARCHAR2(36));

ALTER TABLE INV.TRAN_INV_BILL DROP COLUMN TEMP_ROWNAME  

修改表名称语法: 

alter table cux.cux_xxx RENAME TO cux_xxx1;

修改表名称语法: 

           alter table cux.cux_xxx RENAME TO cux_xxx1;
添加主键(联合主键):

           constraint PK_tab PRIMARY key (ID1,ID2)  --主键(建表语句中写)
           alter table tab add constraint pk_tab2 primary key (id1,id2);--建好表后写

新增表修改表名称语法: alter table cux.cux_xxx RENAME TO cux_xxx1;

修改表名称语法: 

alter table cux.cux_xxx RENAME TO cux_xxx1;
create table 新表 as select * from 旧表 where rownum < 1; 

SQL执行顺序:

1. 先where 后select
2. 先where 再group 再having 后select
3. 先where 再group 再having 再select 后order
4. 先join  再where 后select

序列问题

Oracle中一般将自增sequence重置为初始1时,都是删除再重建,这种方式有很多弊端,依赖它的函数和
存储过程将失效,需要重新编译。
不过还有种巧妙的方式,不用删除,利用步长参数,先查出sequence的nextval,记住,把递增改为负的
这个值(反过来走),然后再改回来。
假设需要修改的序列名:seq_name*/
1、selectseq_name.nextval from dual; //假设得到结果5656
2、 alter sequenceseq_name increment by -5655; //注意是-(n-1)
3、 selectseq_name.nextval from dual;//再查一遍,走一下,重置为1了
4、  alter sequenceseq_name increment by 1;//还原
//可以写个存储过程,以下是完整的存储过程,然后调用传参即可: 
create or replace procedure seq_reset(v_seqname varchar2) as n number(10);
tsql varchar2(100);
 begin
 execute immediate 'select '||v_seqname||'.nextval from dual' into n;
  n:=-(n-1);
  tsql:='alter sequence '||v_seqname||' increment by '|| n;
  execute immediate tsql;
 execute immediate 'select '||v_seqname||'.nextval from dual' into n;
  tsql:='alter sequence '||v_seqname||' increment by 1';
 execute immediate tsql;
end seq_reset;

获取表从XX条到NN条的数据

查询时加rownum字段(update可以直接当过滤条件使用,查询不可以当过滤条件用)

SELECT t1.* FROM (SELECT rownum row_num, t.*
FROM (SELECT * FROM cux.temp_cux_inv_profitloss t
ORDER BY t.serialno) t) t1
WHERE t1.row_num > XX AND t1.row_num <= NN;

修改表名称语法: alter tablecux.cux_xxx RENAME TO cux_xxx1;


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 白衣服变脏变黄怎么办用英文怎么说 经常宅在家里不爱出去玩怎么办 在家里呆不住老想着往外跑怎么办 新商盟网上订烟登录密码忘了怎么办 在拼多多购物质量有问题怎么办 美图手机总弹出一键加速广告怎么办 手机看小说总是喜欢弹出广告怎么办 美团外卖商家注册门头不合格怎么办 手机一打网页就自动弹出广告怎么办 美团预定的宾馆不可取消怎么办 公积金注册时的号码忘了怎么办 苹果7基带坏了修不好怎么办 苹果手机玩终结者2卡怎么办 支付宝转账转到邮箱忘记邮箱怎么办 朋友转账到我的邮箱支付宝怎么办 苹果账号密码和手机号码忘了怎么办 网上购物付款后商家不发货怎么办 夏商国际商城买到假货怎么办 重庆时时彩突然冻结账户资金怎么办 微信安全中心打不开是白色的怎么办 在淘宝买东西说好返现不给返怎么办 联通斐讯路由器返现被骗了怎么办 消费分期后退款分期账单还在怎么办 新房装修物业电梯用不了费用怎么办 在京东拼购没有拼成已付款的怎么办 微信上买东西发的货不一样怎么办 微信买东西收到货不付款怎么办 京东商品店家待出库不发货怎么办 微信二维码付款多付了怎么办 微信二维码付款付错了怎么办 身份证被移动公司拉黑了怎么办 微店申请退款卖家不同意怎么办 淘宝退货快递把我名字填错了怎么办 刚申请淘宝店信用为零怎么办 淘宝买家已付款卖家不做皮单怎么办 淘宝店铺被屏蔽7天后该怎么办 香信得登录密码忘了怎么办 苹果手机迅雷下载不了的资源怎么办 快手官方私信你的作品违规了怎么办 顺丰生鲜速配食物坏了怎么办 半年汽车没有年检 交警抓到怎么办