最近正在自學數(shù)據庫原理與編程跋炕,覺得SQL Server上手非常舒適赖晶,于是寫了這篇簡書,希望對學習數(shù)據庫的朋友們有所幫助??
基本命令
內容包含:
select
insert
update
delete
為列辐烂,表起別名
select * from UserInfo as ui
為UserInfo起別名為ui,當然as可以省略.注意遏插,一旦取別名之后,調用表的列時纠修,必須用別名來調用胳嘲。
select查詢
查詢某些列
-- 查詢某些列
select UserName , UserPwd
from UserInfo
查詢前n部分數(shù)據:
-
top n 列名
: 表示查詢前n行 -
top n percent 列名
: 表示查看前百分之N的數(shù)據
select top 2 *
from UserInfo
排序查詢:
- 語法:
order by 列名 asc|desc
select * from StudentInfo
-- 當前面的排序條件,數(shù)據是滿足相同的條件扣草,此時可以提供多種排序方式
order by cId desc,sId asc
上述步驟會先從cId開始排序了牛,如果所有的cId都相同,則會再根據sId排序辰妙。
條件查詢:
- 語法:
where
-
添加細節(jié) :
-
between .. and ...
: 區(qū)間之間 -
in(n1,n2)
: 符合n1或者n2條件鹰祸,非連續(xù) - 邏輯運算符 :
and | or | not
-
-
添加細節(jié) :
select * from ClassInfo
-- sId 在1-5之間的
where sId between 1 ans 5
-- sId不在1或者3, 使用 not 和 in
where sId not in(1,3)
-- 邏輯運算符條件
where sId=1 or sId-3
-- 查找編號在3-5的1班學生
where sId between 3 and 5 and cId=1
注意:使用
between ... and ...
需要連續(xù)區(qū)間。
注意 between的
and
會尋找sql語句中離它最近的密浑。
模糊查詢
- 語法 :
like % _ [] ^
-
%
: 表示零到多個任意字符 -
_
: 表示一個任意字符 -
[]
: 表示范圍內的一個字符 -
^
: 非蛙婴,寫在[]
之前表示不在范圍內
-
-- 查詢班級姓張的同學
select * from ClassInfo
where sName like '張%'
-- 電話號碼第二位為0-4
where sPhone like '1[^579]'
連接查詢
當需要的結果從多張表中取得時,使用連接查詢
-- 查詢學生姓名及所在班級名稱
-- StudentInfo
-- ClassInfo
-- 關系:StudentInfo.cid =>ClassInfo.cid
select UserInfo.UserName , classInfo.cTitle
from UserInfo
inner join ClassInfo on StudentInfo.cid=ClassInfo.cid
-- 當然也可以多個表聯(lián)結尔破,只需要在后面繼續(xù)添加join語句即可
on
后面寫入連接查詢的條件
- 連接關鍵字:
join
左右表:在
join
左邊的表為左表街图。
兩種主要的連接方式 | |
---|---|
內聯(lián)結:inner join
|
如果查詢的內容嚴格對應,則為內聯(lián)結 |
外聯(lián)結 | |
左外聯(lián)結:left outer join
|
左表特有的數(shù)據懒构,右邊沒有餐济,依舊可以查詢出來,顯示值為NULL
|
右外聯(lián)結:right outer join
| |
完全外聯(lián)結:full outer join
|
左右兩表公有的,左表和右表特有的痴脾,三者均表示出來 |
insert插入
select * from UserInfo
-- md5加密
insert UserInfo(UserName,UserPwd)
values('1','2')
如果所有列按照默認順序賦值颤介,則可以使用如下方式
insert UserInfo
values('小孫','password')
- 只為某些列進行賦值
insert UserInfo(UserName)
values('小杰')
- 一次增寫入多個數(shù)據
使用逗號隔開各個數(shù)據
select * from UserInfo
insert into UserInfo
values('小紅'),('小菊'),('小巴')
update修改
語法:
update 表名
set 列名1=值1,列名2=值2,...
where ...
where : 為指定行進行修改列
將值設置為空
update 表名 set 列名=null
delete刪除
語法:
delete from 表名
where ...
其中
from
寫不寫都可以滚朵。當刪除一個列的數(shù)據冤灾,如果設置了~Id為唯一標識,則Id的計數(shù)器會在刪除的最后一條數(shù)據的Id的基礎上辕近,繼續(xù)自增韵吨,即如果刪到了第15條,則此時insert
插入后移宅,這條數(shù)據的Id將從16開始計數(shù)归粉。
清空 : truncate table 表名
-- 清空
truncate table UserInfo
這個命令既是將表內容刪除了,也會同時將表的內容進行重置漏峰,即計數(shù)器將會從1開始糠悼。
消除重復行:
- 語法 :
distinct
select distinct cId from StudentInfo
本文作者: Freyr_sau(弗雷)
注明:文章為作者一字一句敲出來,整理實在不容易浅乔,希望各位轉載寫明出處,覺得有幫助的還請多多分享點贊??
須知:未經允許倔喂,不得轉載