[SQL]幾條使用率最高的SQL語句
(本文瀏覽次數(shù): 26)
一.創(chuàng)建表(含多個字段)
Create table table_name (column_name1 datatype1,column_name2 datatype2,...)
二.刪除表格(所有記錄)
Delete table_name 刪除"表格記錄"會把操作記錄在日志中,可以通過事務(wù)回滾來恢復(fù)刪除的數(shù)據(jù)
truncate table table_name刪除"表格記錄"不可恢復(fù)
三.刪除表
drop table table_name把"表結(jié)構(gòu)"和所有記錄一起刪除掉了
四.備份表
1.備份一樣的表 select *into table_name1 from table_name2
2.備份一份空的表副本 select *into table_name1 from table_name2 where 1=2(因為 1是不可能等于2的,所以建立的表里不會有記錄)
五.常用Select操作
1.為結(jié)果集中的列指定別名(新列名)
Select column_name as newcolumnname from table_name
或:Select newcolumnname=column_name from table_name
2.消除取值重復(fù)的行
Select distinct column_name from table_name
3.限制返回行數(shù)
選取第一條記錄:select top 1* from table_name
選取前N條記錄: select top N* from table_name
選取最后一條記錄:select top 1* from table_name order by column_name desc
選取最后N條記錄:select top N* from table_name order by column_name desc
選取任意一條記錄(隨機):select top 1* from table_name order by newid()
六.修改字段值
注:下面用c1代表column_name(列名)
1.修改某一字段前幾個字符
Update table_name set c1=‘123’ + right(c1,len(c1)-3)
2.修改某一字段后幾個字符
Update table_name set c1=left(c1,len(c1)-3) +’123’
七.對數(shù)據(jù)進行統(tǒng)計
1.返回記錄的條數(shù):Select count(*) as 數(shù)目 from table_name
2.返回某列記錄的總和(數(shù)據(jù)類型需是數(shù)據(jù)類) Select sum(column_name) as 總和 from table_name
Select avg(column_name) as 平均數(shù) from table_name
Select max(column_name) as 最大 from table_name
八.常用的幾種查詢
1.交叉連接查詢(將兩個表不加約束地連接在一起,連接產(chǎn)生的結(jié)果集的記錄為兩個表中記錄的交叉乘積,
結(jié)果集的列為兩個表屬性性列的和.(使用時需兩個表的記錄條數(shù)對應(yīng))
Select *from table_name1 cross join table_name2
2.等值與非等值查詢(返回兩個表中的兩個字段中某記錄相同的所有記錄)
Select *from table_name1 inner join table_name2 on table_name1.column_name=table_name2.column.name
例如:Select *from table1 inner join table8 on 姓名=table8.aa
3.自身連接查詢(可以理解為一個表的兩個副本之間的連接)
例:查詢選修了兩門或兩門以上課程的學(xué)生姓名和課程名稱(假設(shè)有一張學(xué)生選課表table1,姓名字段名為name,課程名稱為coursename)
語句該這樣寫:select a.name,a.coursename from table1 as a join table1 as b on a.name=b.name and a.coursename!=b.coursename
九.外連接查詢(分為左外連接,右外連接和全外連接)
1.左外連接
Select *from table_name1 left outer join table_name2 on table_name1.column_name=table_name2.column_name
2.右外連接(把left 改為right就行了)
3.全外連接(觸類旁通,left 改為 full)
十.子查詢
1.帶有in運算符的子查詢
例:查詢有產(chǎn)品銷售記錄的產(chǎn)品信息
Select *from 產(chǎn)品 where 產(chǎn)品編號 in (select 產(chǎn)品編號 from 產(chǎn)品銷量)
下面舉一個稍微復(fù)雜的例子,涉及到三張表.求選修了課程名為”大學(xué)語文”的學(xué)生學(xué)號和姓名. (大學(xué)語文是課程表的屬性列,學(xué)生學(xué)號和姓名是學(xué)生表的屬性列,兩者 之間通過課程注冊表聯(lián)系起來)
Select 學(xué)號,姓名 from 學(xué)生表 where 學(xué)號 in(select 學(xué)號 from 課程注冊表 where 課程號 in (select 課程號 from 課程表 where 課程名=‘大學(xué)語 文’))
3.帶有比較運算符的子查詢,常用的比較運算符有>,>=,<,<=,<>,!=,!<,!>.
例:列出高于平均分的學(xué)生的信息(有一張表名為學(xué)生,含學(xué)號和姓名兩個屬性列,課程注冊表含學(xué)號和成績屬性列)
Select *from 學(xué)生 Where 學(xué)號 in (select 學(xué)號 From 課程注冊 Where 成績 > (select avg(成績) from 課程注冊))
實用SQL語句
1.添加新記錄
Insert into TableName(字段1,字段2,...) values(value1,value2,...)
例如:insert into Soft_info(SoftName) values(‘" + SoftNameTxtBox.Text + "‘)
2.修改任意一條記錄(如要修改多條記錄,可同時寫多條語句)
Update Table_Name set Column_Name=** where ID=***
例如:Update table8 set aa=44 where ID=1
3.刪除某條記錄:
Delete from Table_Name where 條件
例如:Delete from table8 where ID=3
4.刪除某一字段:
alter table Table_Name drop column Column_Name
例如:alter table table8 drop column cc