基本語法(增,刪,改,查) 1、新增 --1.1 增長數據的語法(增) insert into 表名 (列名,列名,...) values (值,值,...) --1.2 簡化的增長數據的語法 insert into 表名 values (值,值,...) ---注:此時值必須和表中列名對應,而且不能省略值 --1.3 一次插入多行數據(增) insert into 代表 select 值,值,... --不須要小括號,此時輸入的default是無效的,必須手動填默認值 union --表示用於組合先後兩條插入語句 select 值,值,... --1.4 將現有表中的數據添加到已存在的表中(新表以前存在)(增) insert into 已存在新表名 (列名,列名) select 列名,列名, from 現有表名 --1.5 將現有表中的數據添加到新表中(新表以前不存在)(增) select 列名,列名,... into 新表 from 原表 2、更新數據 --2.1 更新數據(改) update 表名 set 列名=更新值,列名=更新值 where 更新條件(可省略,意思是知足這個條件後執行更新) --2.2 更新的數據來源於其餘表 UPDATE a SET a.要更新的列名=b.更新的值 from tbA a LEFT JOIN tbB b ON a.ID=b.FID -- WHERE A.Process=6 --2.3 更新的數據來源於本表的其餘行 屬性不一樣的值 UPDATE a SET a.Money=a.Money+b.Money from dbo.tb_InExpen a LEFT JOIN tb_InExpen b ON a.ManifestID=b.ManifestID WHERE A.Abstract=6 AND B.Abstract=9 3、刪除數據 --3.1 刪除數據(刪) delete from 表名 where 條件表達式 --若是知足此條件就能夠傷處 --3.2 刪除數據(刪) truncate table 表名 --標的結構,列,約束,索引等不會被改動
--3.3 刪除表數據 關聯條件 DELETE FROM LEFT JOIN DELETE A FROM A LEFT JOIN B ON A.ID =B.ID LEFT JOIN C ON C.ID=B.IDD WHERE B.ID=ID OR C.ID=ID
4、查詢數據 --4.1 查詢一個表的全部數據(查) select * from 表名 --4.2 篩選符合條件的全部數據(查) selcet * from 表名 where 條件 --4.3 查詢某些列或者列的數據(查) select 列名,列名 from 表名 where 條件 --4.4 在查詢中使用別名(查) a). select 列名 as 別名, 列名 as 別名 from 表名 where 條件 b). select 別名=列名,別名=列名 from 表名 where 條件 --4.5 查詢爲空(不爲空)的數據(查) select 列名 from 表名 where 列名 is null(爲空) where 列名 is not null(不爲空) --4.6 查詢中使用常量(查) select 列名,列名,'常量' as 別名 from 表名 --4.7 查詢返回限制的行數(查) select top 行數 * from 表名 select top 行數 percent * from 表名(按百分比查詢) --4.8 排序 ORDER BY DESC/ASC 降序/升序 默認爲 Asc 升序 select * from 表名 order by 列名 (asc/desc) --無篩選條件的升序排列,asc能夠省略,默認爲升序 5、經常使用函數字符串 --5.1 查找指定字符的位置 select 列名,charindex('字符',列名,起始位置)(as 別名) from 表名 --5.2 replace 替換 select 列名,replace(列名,'字符','替換成的') from 表名 --5.3 .stuff 插入替換 select 列名,stuff(列名,起始下標,修改長度,'替換成的') from 表名 --5.4 長度 Len SELECT Len(字段名) FROM 表名 --中文和英文字符 都是一個長度 --5.4 截取字符串 SUBSTRING('要截取的字符',截取開始位置,截取結束位置) --5.5 拼接字符 變量字符類型 DECLARE @str varchar(50) SET @str='若是變量是字符類型' DECLARE @ExccSql varchar(1000) SET @ExccSql='SELECT '''+@str+''' ' EXEC (@ExccSql) --5.6 拼接字符 變量數字類型 DECLARE @i int SET @i=5201314 DECLARE @ExccSql varchar(1000) --SET @ExccSql='SELECT '''+@i+''' ' --錯誤 SET @ExccSql='SELECT '+cast(@i as varchar(10)) EXEC (@ExccSql) SELECT SUBSTRING('ABCDEFGHIJKLMN',1,2) --結果爲 AB 得出結論SQL下標從一開始 --常見錯數 /* 1.對象名不存在 a.數據庫選擇錯誤 b.表名或者列名錯誤 2.不能爲表'列名'中的標識插入顯示值 出錯緣由:不能爲標識列插入值 3.列名或所提供值的數目與表定義不匹配 出錯緣由:列的個數和值的個數不匹配 4.不能在對象'表名'中插入重複鍵 出錯緣由:主鍵值重複 5.約束"FK...."衝突,發生於"數據庫名",表"表名",列名 出錯緣由:外鏈引用的數據不存在 6.將截斷字符串二進制數據 出錯緣由:超出設置長度 7.約束"CK...."衝突,發生於"數據庫名"表"表名",列名 出錯緣由:數據違背了檢查約束 8.***附近有錯誤 出錯緣由:語法錯誤或者是符號錯誤 */
--六 約束 --6.1 建立完表之後添加多列 惟一約束 UNIQUE ALTER TABLE YFCarryover ADD CONSTRAINT uc_salvType UNIQUE (psid,salvType)
--修改自增列 標識種子 DECLARE @MaxID INT SET @MaxID=(SELECT MAX(ID) FROM cc1) DBCC CHECKIDENT(cc1, RESEED,@MaxID )