SQL 筆記彙總

2022-03-11 21:18:20 字數 4552 閱讀 3308

基本語法(增,刪,改,查)

一、新增

--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.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=

6and b.abstract=

9三、刪除資料

--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.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

notnull

(不為空)

--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.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

@iint

set@i

=5201314

declare

@exccsql

varchar(1000)--

set @exccsql='select '''+@i+''' ' --錯誤

set@exccsql='

select '+

cast(@i

asvarchar(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

addconstraint uc_salvtype unique (psid,salvtype)

--

修改自增列 標識種子

declare

@maxid

intset

@maxid

=(select

max(id) from

cc1)

dbcc checkident(cc1, reseed,@maxid )

sql月度彙總 sql月份彙總查詢語句

sql月份彙總查詢語句 select 鉛筆 as 月份 sum case month 日期 when 1 then 鉛筆 else 0 end as 1月 sum case month 日期 when 2 then 鉛筆 else 0 end as 2月 sum case month 日期 when...

SQL語句彙總

檢視oracle伺服器端字符集 select from nls database parameters 檢視oracle客戶端字符集 select from nls instance parameters 全庫匯出資料 exp 使用者名稱 密碼 遠端的ip 埠 例項 file 存放的位置 檔名稱.d...

SQL語句彙總

sql語句彙總 一 資料庫 1.建立資料庫 create database name 2.檢視資料庫 show databases 3.選擇資料庫 use name 4.刪除資料庫庫 drop database name 二 表 1.建立表 create table name 屬性名 資料型別 屬性...