sql的基本查詢語句

--------------------------------------------基本經常使用查詢--------------------------------------

本身簡單練習作了個表。今天看了下hoojo大神的SQL Server T-SQL高級查詢,我如今程度只能理解基礎,因此就分享一下本身所聯繫的和理解的部分。spa

--查詢全部 
select * from [dbo].[Table]
--查詢出全部名字
select all name from [dbo].[Table]
--過濾掉重複的性別
select distinct sex from [dbo].[Table]
--統計出表中有多少條信息
select count(*) from [dbo].[Table]
--統計出表中全部名字有多少條信息
select count(name) from [dbo].[Table]
--統計出過濾掉重複性別有多少條信息
select COUNT(distinct sex) from [dbo].[Table]
--排行前5名的姓名
select top 5 name from [dbo].[Table]
--若是要知道全部信息就將name替換成*----------------------
--列重命名(三種方式空格,as,單引號) --經常使用的是空格
select id 編號 , name as 姓名 , sex '性別' from [dbo].[Table]
--表重命名(倆種方式空格,as) --經常使用的是空格
select * from [dbo].[Table] as t
select * from [dbo].[Table] t
--列運算(倆列相加)
select (id+age) 總數 from [Table]
--將倆列合併顯示在一列中用-隔開
select name +'-'+ age 我的信息 from [Table]
--where條件 (後面接列名 運算符 值)
select id 編號, name 姓名 from [Table] where id =2
select * from [Table] where id <=8
select * from [Table] where id >=2 
select * from [Table] where id !=3
select * from [Table] where id !<7 
select * from [Table] where id !>8
--將名字包含鄭竹的信息不顯示
select * from [Table] where name<>'鄭竹'
--and 和 or 用法
--and 的用法是而且(知足全部條件)
select * from [Table] where id=3 and age=14 
--or的用法是或者(知足其中一個條件)
select * from [Table] where age=13 or age=14
--between ...and...用法是倆者之間(顯示條件中倆者之間的全部信息)
select * from [Table] where id between 2 and 8
--模糊查詢(%替換全部輸入字符,_替換一個輸入字符) 關鍵字like替換運算符
select * from [Table] where name like '%'
select * from [Table] where name like '%電'
select * from [Table] where name like '_雨'
--子查詢 關鍵字in (在條件之中)
select * from [Table] where id in (2,3,4,7)
select * from [Table] where name in('錢雨','李電','鄭竹')
--not in (不在條件之中)
select * from [Table] where age not in (17,18,19)
select * from [Table] where name not in('錢雨','李電','鄭竹')
--is null (顯示條件中值爲空的信息)
select * from [Table] where age is null 
--is not null (顯示條件中值不爲空的信息)
select * from [Table] where age is not null
--order by 排序 (desc 降序,asc升序)
select * from [Table] order by age
select * from [Table] order by age desc 
select * from [Table] order by age asc
--group by 分組 
--(查詢時將一列或n列分開查詢並顯示,查詢條件一一對應後面group by)
select age from [Table] group by age
select id ,name, age from [Table] group by id,name, age
--按照年齡進行分組統計
select count(*) age from [Table] group by age
--按照性別進行分組統計
select count(*) sex from [Table] group by sex
--按照年齡和性別組合分組統計,並排序
select COUNT(*) age,sex from [Table] group by age,sex order by age
--按照性別分組,而且是id大於2的記錄最後按照性別排序
select COUNT(*) id大於2的人數, sex from [Table] where id>2 group by sex order by sex 
--查詢id大於2的數據,並完成運算後的結果進行分組和排序
select COUNT(*) id大於2的人數,(age+id) 合計數 from [Table] where id>2 group by (age+id) order by (age+id)
--group by all 
--按照年齡分組,是全部的年齡
select age from [Table] group by all age
--having 分組過濾條件
--按照年齡分組,過濾年齡爲空的數據,而且統計分組的條數和現實年齡信息
select COUNT(*) 分組的條數, age from [Table] group by age having age is not null
--按照年齡和id組合分組,過濾條件是id大於1的記錄
select id,age from [Table] group by id,age having id >1
--按照年齡分組,過濾條件是分組後的記錄條數大於等於1
select COUNT(*) 分組後的記錄條數, age from [Table] group by age having COUNT(*) >=1
--按照id和性別組合分組,過濾條件是id大於1,id的最大值大於2
select id,sex from [Table] group by id,sex having id>1 and max(id)>2

 

--------------------------------------------嵌套子查詢--------------------------------------
--子查詢就是內部查詢或者說是內部選擇,在子查詢外部的是外部查詢或者說是外部選擇。
--這個是基礎理論,我我的以爲子查詢就是中心,外部查詢就是外圍,中心查詢的語句都是基礎語句演變而來,外部查詢就是結合子查詢一塊查詢結果
--下面就是簡單的子查詢格式
select * from /* 這個就是外部查詢*/
(select id ,name ,age from [Table] where id >1) t /*內部查詢*/
where t.age >15/* 這個就是外部查詢*/
--內部查詢中運用的語句就是基本經常使用查詢語句
--外部查詢能夠包含基本經常使用查詢語句
--例如where,group by,having,count,select查詢,多個表或者視圖的from語句code

相關文章
相關標籤/搜索