SQL Server语句
SQL簡(jiǎn)介:
結(jié)構(gòu)化查詢語言,全拼 Structured Query Language
主要用于對(duì)數(shù)據(jù)庫的操作,大多數(shù)據(jù)庫遵循sql原則
SQL server使用的是sql的擴(kuò)展集T-SQL 全拼 Transact-SQL
SQL組成:
SQL由四部分組成分別為DML DDL DQL DCL
DML:數(shù)據(jù)表操作語言,用于插入(insert),修改(update),查詢(select)數(shù)據(jù)表的操作
DDL:數(shù)據(jù)庫的定義語言,建立數(shù)據(jù)庫,數(shù)據(jù)庫對(duì)象和定義其列,大部分是CREATE開頭
DQL:對(duì)于數(shù)據(jù)表盡心查詢的
DCL:用于數(shù)據(jù)庫權(quán)限,創(chuàng)建用戶名的(目前沒有接觸到)
SQL語句:(重點(diǎn))
插入語句:
//插入表的所有數(shù)據(jù),對(duì)應(yīng)關(guān)系和表中的數(shù)據(jù)一一對(duì)應(yīng)(包含類型,列名)
Insert into 表名 values(列1,列2…列n)
//插入數(shù)據(jù)到指定的列,值要對(duì)應(yīng)表名后面的列,不要和表中的順序?qū)?yīng)
Insert into 表名(列1,列2…列n) values(列1,列2…列n)
修改語句:
//修改所有列的數(shù)據(jù)–修改所有列的值,該列的值都改變
Update 表名 set 列1=值1,列2=值2…
//修改指定行查詢語句
Update 表名 set 列1=值1 ,列2 =值2 where 列=值
注:where表示條件,后邊接對(duì)于前面修改語句的條件,where后面的列一般為主鍵列,where后面的值表示要修改的值內(nèi)容
select * from where 姓名=張三 or 姓名=李四
//查詢空值
Select * from 表名 where 列名 is null
//查詢指定的行數(shù)-返回最大行數(shù),Top指定最大顯示行數(shù)
Select top 2 * from 表名
分組查詢:
//查詢每個(gè)職業(yè)的人數(shù) count()表示求該列的個(gè)數(shù)
select work,count() from 表名 group by work
//多列分組查詢–查詢每個(gè)職業(yè)不同性別的人的個(gè)數(shù)
Select work,sex,count() from 表名 group by work,sex
HAVING:表示條件語句,在where后面再進(jìn)行條件篩選
//查詢?cè)摂?shù)據(jù)庫中每個(gè)職業(yè)人數(shù)大于10的數(shù)據(jù)
Select work,count() from 表名 group by work having count()>10
注:查詢語句中,where,Group by, Having,聚合函數(shù)執(zhí)行如下:
1,where從數(shù)據(jù)源中去掉不符合條件的搜索
2, Group by手機(jī)數(shù)據(jù)到各個(gè)組中
3,HAVING去掉不符合搜索條件的組數(shù)據(jù)
模糊查詢:
//查詢姓王的,名字后面帶一個(gè)字的人名
Select * from 表名 where name like ‘王_’
//查詢姓王的,名字后面可以帶任意字符的
Select * from 表名 where name like ‘王%’
注: ‘_’表示一個(gè)字符,‘%’表示任意個(gè)字符,如果需要查詢名字中在任意位置出現(xiàn)的關(guān)鍵字,寫成’%任意字%’
查詢排序:
//從小到大排列
Select * from 表名 order by 要排序的列名 [ASC]
//從大到小
select * from 表名 order by 要排序的列名 desc
聚合函數(shù):
Sum()求和 avg()平均數(shù) max()最大值 min()最小值 count()個(gè)數(shù)
多表查詢:(注意需要兩表關(guān)聯(lián),沒有關(guān)系的兩張表一般我們不進(jìn)行查詢)
內(nèi)連接查詢:
Select * from 表1 t,表2 s where s.id=t.id
還可以寫作:
Select * from 表1 as t inner join 表2 as s on(t.id=s.id)
注:’表1 t’表示給表1取了一個(gè)別名為t,也就是說可以在我們這個(gè)查詢語句中使用t替代表1的名字,這個(gè)中間省略了as ,原語句應(yīng)該寫作 表1 as t,表2同理
select t.Title,c.CategoryName,t.Author,t.PublishDate,t.UnitPrice from Books t,Categories c where t.categoryId=c.id;
外鏈接查詢:
左外鏈接:
Select * from 表1 as t left outer join 表2 as s on s.id=t.id
右外鏈接:
Select * from 表1 as t right outer join 表2 as s on s.id=t.id
總結(jié)
以上是生活随笔為你收集整理的SQL Server语句的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [深入学习C#]利用反射给对象赋值
- 下一篇: EF中DB First模式下数据库中表结