Sql Server 基礎文法
-- 查看資料表
select * from Student
-- 使用Sql查詢資料
--1、查詢表中所有類容
Select * From TableName
--2、查詢表中指定欄位類容
Select ColumnName,…, From TableName
Select stuName,stuNo,stuSex From stuInfo
--3、帶Where條件的查詢
Select *|ColumnName From TableName Where condition
select * From stuInfo where stuSex='女'
--4、帶排序的查詢(Order By ColumnName)
-- 文法: Select *|ColumnName From TableName Order By ColumnName Desc|Asc
Select * From stuInfo Order By stuAge,stuSeat desc
-- 5、選擇指定數量的記錄,通常配合order By使用
-- 文法: Select Top num *|ColumnName From TableName
-- 文法: Select Top num *|ColumnName From TableName Order By Desc|Asc
Select Top 2 * From stuInfo Order By stuAge Desc
-- 6、分組查詢 Group By
-- 分組查詢中包含的列必須包含在彙總函式或 GROUP BY 子句中
Select * From stuInfo
Select stuSex, Max(stuAge) As '平均年齡' From stuInfo Group By stuSex
--7、對分組後的結果進行過濾
-- having(相當於Where)
Select * From stuInfo
Select stuSex, Avg(stuAge) As '平均年齡' From stuInfo Group By stuSex having Avg(stuAge)>20
--8、Group By 配合 Where 使用
Select * From stuInfo
Select stuSex, Avg(stuAge) As '平均年齡' From stuInfo where stuAge > 18 Group By stuSex having Avg(stuAge)>20
-----------------------------------------------------------
--使用Sql插入資料
--1、不指定列插入資料
文法:Insert Into TableName Values(值列表)
Insert Into stuInfo Values('小八','S25311','男',24,'北京')
Select * from stuInfo
-- 2、指定列名對資料插入
--文法:Insert Into TableName(列名列表) Values(值列表)
--注意:列名列表順序可自己指定,但值列表的順序應該和列名列表相同。
Insert Into stuInfo(stuName,stuNo,stuSex,stuAddress,stuAge) Values('小九','S25312','男','上海',25)
select * from stuInfo
--3、一次插入多條記錄
--1) Insert Into TableName(列名類表) Select…From 插入到現存的表中
--注意:列名的資料類型,個數必須相同
Insert Into stuInfoCopy(stuName,stuNo,stuSex,stuAge,stuSeat,stuAddress)
Select * From stuInfo
Select * From stuInfoCopy
--3、一次插入多條記錄
--2) Select 列名列表 Into 新表名 From SourceTable 插入到現存的表中
--注意:列名的資料類型,個數必須相同,新表必須不存在
Select Identity(int,1,1) As 'ID',stuName,stuNo,stuSex,stuAge,stuAddress
Into #temp
From stuInfo
select * from #temp
--3、一次插入多行記錄
--3)使用Union合并資料行
Insert #temp(stuName,stuNo,stuSex,stuAge,stuAddress)
Select '寶貝','S25318','男',22,'湖北' Union
Select '寶貝2','S25318','女',23,'湖南'
select * from #temp
--4、更改資料
--文法: Update TableName Set ColumnName=值 where Condititon
Update #temp Set stuName = '寶貝3' Where stuName = '寶貝'
Select * from #temp
--5刪除資料
-- 文法: Delete From TableName Where Condition
Delete From #temp Where Id=8
Select * From #temp
--5刪除資料
--文法: Truncate Table TableName(在刪除表中所有資料時,比Delete效率高,但不能
--刪除包含外鍵約束的表
Truncate Table stuMarks
-- Where 條件種類
--1、ColumnName Between 低值 And 高值
Select * from stuInfo Where stuAge Between 20 And 25
--2、And Or Not(與,或,非)
--3、In(值列表)
Select * from stuInfo Where stuAge IN (21,25)
--4、Like(模糊查詢)
-- % 表示任意數量字元 _ 一個字元 [] 一個範圍 [^]不在某個範圍
Select * from stuInfo Where stuName like '小%'