常用SQL_数据库查询总结1
生活随笔
收集整理的這篇文章主要介紹了
常用SQL_数据库查询总结1
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
常用SQL_數(shù)據(jù)庫查詢總結(jié)1
- 一、增刪改查
- 1、增(創(chuàng)建表、復(fù)制表、創(chuàng)建視圖、創(chuàng)建存儲過程)
- 2、刪(刪除表,刪除行數(shù)據(jù),清空表數(shù)據(jù))
- 3、改(改行數(shù)據(jù),改表結(jié)構(gòu),增加行數(shù)據(jù))
- 4、查
- 二、其他常用sql語句
- 1、insert和 select 結(jié)合實(shí)現(xiàn)“插入某字段在數(shù)據(jù)庫中的最大值+1”
- 2、使用正則過濾查詢結(jié)果(Oracle)
- 3、讀取XML格式文件,openxml方法
- 5、日期類型
- 6、字符串(替換)
SQLSERVER環(huán)境
一、增刪改查
簡單根據(jù)語句的作用,分類整理一下。
1、增(創(chuàng)建表、復(fù)制表、創(chuàng)建視圖、創(chuàng)建存儲過程)
--創(chuàng)建表CREATE TABLE TEST(ID varchar (50) NOT NULL,NAME varchar (50) NULL) ;--復(fù)制表 與Oracle一致--復(fù)制表結(jié)構(gòu)和數(shù)據(jù)CREATE TABLE USER4COPY AS SELECT * FROM USER;--復(fù)制表結(jié)構(gòu)CREATE TABLE USER4COPY AS SELECT * FROM USER WHERE 1 = 2;--創(chuàng)建視圖 --判斷是否存在IF EXISTS (SELECT * FROM SYSOBJECTS WHERE NAME = 'VW_TEST')DROP VIEW VW_TEST --存在的話刪除GOCREATE VIEW VW_TEST AS SELECT * FROM TEST1 --創(chuàng)建存儲過程IF (EXISTS (SELECT * FROM SYS.OBJECTS WHERE NAME = 'GETUSER')) DROP PROC GETUSERGOCREATE PROC GETUSER@ID INT --參數(shù)ASSET NOCOUNT ON; --不返回計(jì)數(shù),提高應(yīng)用程序性能SELECT * FROM USER WHERE ID = @ID --執(zhí)行SQL語句 --調(diào)用存儲過程EXEC GETUSER 201909260001;2、刪(刪除表,刪除行數(shù)據(jù),清空表數(shù)據(jù))
drop table 表名稱 delete from 表名稱 where 列名稱 = 值 truncate table 表名稱;--清空3、改(改行數(shù)據(jù),改表結(jié)構(gòu),增加行數(shù)據(jù))
update 表名稱 set 字段='值' where 條件; alter table FSSCOASQD add gdzt varchar(2);--增加字段 alter table FSSCOASQD add hetqdzje decimal(18,6) --增加字段 insert into test1(ID,NAME,SEX,AGE) values('1','1','1','1');4、查
select * from 表名稱 where 條件; select distinct 字段名 from 表名稱 where 條件;--去除重復(fù)值 select count(*) from user_tab_cols where table_name='表名';--查詢表的列數(shù) select table_name from user_tables;--查詢所有表名稱 select * from all_tables where owner='用戶名';--查詢用戶名下所有表名稱 select owner from dba_tables where table_name='表名稱';--查詢表的所有者 select count(*), LSBMZD_BMBH FROM LSBMZD GROUP BY LSBMZD_BMBH HAVING count(*)>1;-- 查詢重復(fù)項(xiàng)及其次數(shù)SQL server select name from sysobjects where xtype='u' and name like '%wqsx%'if exists (SELECT 1 FROM sysobjects WHERE id = object_id('VM_ROYWSQCX') and type = 'V') drop view VM_ROYWSQCX;--如果存在視圖,則刪除視圖select count(1) as col_Count FROM syscolumns WHERE id = OBJECT_ID('表名');--查表列數(shù)sp_help TBTZZB ;--展示表結(jié)構(gòu) sp_columns TBTZZB ;--展示表列Oracle select t.*, t.rowid from t;--通過rowid查看行數(shù)—rowid是每一行的唯一標(biāo)識符二、其他常用sql語句
1、insert和 select 結(jié)合實(shí)現(xiàn)“插入某字段在數(shù)據(jù)庫中的最大值+1”
insert into ZZY_NBZZD(ID,ZYJE) values ('1111',(select max(ZYJE+1) from ZZY_NBZZD));2、使用正則過濾查詢結(jié)果(Oracle)
select BANKACCOUNTID from BANKACCOUNTS; select BANKACCOUNTID from BANKACCOUNTS where regexp_replace(BANKACCOUNTID,'\d','') is not null;--過濾掉純數(shù)字 select BANKACCOUNTID from BANKACCOUNTS where regexp_replace(BANKACCOUNTID,'^[-\+]?\d+(\.\d+)?$','') is not null;--過濾掉純字母 --去掉not就變成篩選出純數(shù)字和純字母了3、讀取XML格式文件,openxml方法
declare @idoc int declare @GoodsXml nvarchar(max); set @GoodsXml='<OrderItemGoods> <Goods><GoodsAttributeId>21</GoodsAttributeId><GoodsCount>2</GoodsCount><GoodsPrice>1.1</GoodsPrice><GoodsId>1</GoodsId></Goods> <Goods><GoodsId>2</GoodsId><GoodsAttributeId>22</GoodsAttributeId><GoodsCount>2</GoodsCount><GoodsPrice>1.1</GoodsPrice></Goods> <Goods><GoodsId>3</GoodsId><GoodsAttributeId>23</GoodsAttributeId><GoodsCount>2</GoodsCount><GoodsPrice>1.1</GoodsPrice></Goods> </OrderItemGoods>' exec sp_xml_preparedocument @idoc output, @GoodsXml ; selectT.GoodsId,T.GoodsAttributeId,T.GoodsCount,T.GoodsPrice from openxml(@idoc, '/OrderItemGoods/Goods',2) with (GoodsId bigint 'GoodsId',GoodsAttributeId bigint,GoodsCount int,GoodsPrice float )as T --where T.GoodsId=1 --系統(tǒng)sp_xml_removedocument刪除SQLServer服務(wù)器內(nèi)存中的XML數(shù)據(jù) exec sp_xml_removedocument @idoc ;5、日期類型
--1、日期作差(SQL server) (select DateDiff (day,'2019-9-11 11:07:00.260',getdate()))--返回date2 與date1兩個日期之間的差值 date2-date1 Year Yy yyyy 年 Quarter Qq q 季 Month Mm m 月 Day of year Dy y 一年的日數(shù) Day Dd d 日 Weekday Dw w 一周的日數(shù) Week Wk ww 周, Hour Hh h 時 Minute Mi n 分鐘 Second Ss s 秒 Millisecond Ms--2、日期轉(zhuǎn)換 CONVERT(VARCHAR(22), ROBXZT_ZTSJ, 120);--2019-07-02 16:35:03 select FORMAT(getdate(),'yyyy-MM-dd');--2019-10-116、字符串(替換)
SQL> select REPLACE('fgsgswsgs', 'fk' ,'j') from dual;--fgsgswsgs SQL> select REPLACE('fgsgswsgs', 'sg' ,'eeerrrttt') from dual;--fgeeerrrtttsweeerrrtttswahson 20191014
總結(jié)
以上是生活随笔為你收集整理的常用SQL_数据库查询总结1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。