sql語句總結

AlfFuentes 8年前發布 | 35K 次閱讀 SQL

來自: http://blog.csdn.net/u013628152/article/details/42569231

1: 查詢數據庫 dbName 有多少張表

select count(*) from information_schema.tables where table_schema='dbName’;

如果是SQL Server數據庫的話:

select name from dbo.sysobjects where  OBJECTPROPERTY(id, N'IsUserTable') = 1 //查詢所有表名


select count(name) from dbo.sysobjects where  OBJECTPROPERTY(id, N'IsUserTable') = 1  //查詢一共有多少張表

2: 根據某個字段合并表

select id,name,sum(operate) from test group by name;

執行結果:

3: 用一條 SQL  語句 查詢出每門課都大于 80  分的學生姓名

select name from table group by name having min(fenshu)>80

4: 刪除除了自動編號不同 ,  其他都相同的學生冗余信息

delete tablename where  自動編號  not in(select min(  自動編號 ) from tablename group by  學號 ,  姓名 ,  課程編號 ,  課程名稱 ,  分數 )

學生表 如下 :
自動編號     學號     姓名 課程編號 課程名稱 分數
1        2005001  張三  0001       數學     69
2        2005002  李四  0001       數學     89
3        2005001  張三  0001       數學     69

5:如何截斷表

截斷表的意思是:(1)將表中數據全部清空(2)重新添加數據的話,id還從1開始。相當于重建表。

truncate   user;  截斷用戶表

如果表中有外鍵的話,只不能執行 truncate了。可以采用下面的語句:

SET FOREIGN_KEY_CHECKS=0;
TRUNCATE TABLE   user ;
SET FOREIGN_KEY_CHECKS=1;

SET FOREIGN_KEY_CHECKS=0;的意思是取消外鍵。

SET FOREIGN_KEY_CHECKS=1;的意思是恢復外鍵。

6:查看數據庫字段的屬性( Collation字符編碼 )

show full columns from user;

7:查看字符集的長度

show character set

8:left join和inner join

請參考 left join和inner join舉例

9:查詢分組,并統計分組下的粉絲

select  

(select count(*) from wx_fan f  where f. wxAccountId = 2 and f.wxGroupId = g.wxGroupId) as  num ,

g.*  

from  wx_group g  

where g.accountId = 2 

</div>

10:查詢某個表中重復的字段

select * from wx_users 

where cellphone in 

(select cellphone from wx_users group by cellphone having COUNT(*)>1)

11: unique唯一性

ALTER TABLE wx_fan ADD unique(openid);

</div> </div> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

 本文由用戶 AlfFuentes 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!