sql經典問題集全

2021-06-28 20:44:38 字數 1328 閱讀 8332

1.

用一條sql語句 查詢出每門課都大於80分的學生姓名

name   kecheng   fenshu 

張三語文

81張三數學

75李四語文

76李四數學

90王五語文

81王五數學

100王五英語90

a: select distinct name from table  where  name not in (

select distinct name from table where fenshu<=80

)distinct出現相同的排除,只挑選出一列

2.學生表 如下

:自動編號學號姓名 課程編號 課程名稱 分數

1        2005001  

張三0001      數學

692        2005002  李四0001      數學

893        2005001  張三0001      數學

69刪除除了自動編號不同,其他都相同的學生冗餘資訊

a: delete tablename where 

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

3.乙個叫department的表,裡面只有乙個欄位name,一共有4條紀錄,分別是a,b,c,d,對應四個球對,現在四個球對進行比賽,用一條sql語句顯示所有可能的比賽組合.

你先按你自己的想法做一下,看結果有我的這個簡單嗎?

答:select a.name, b.name 

from team a, team b 

where a.name < b.name

把乙個表分成兩個表來思考

4.請用sql語句實現:從testdb資料表中查詢出所有月份的發生額都比101科目相應月份的發生額高的科目。請注意:testdb中有很多科目,都有1-12月份的發生額。

accid:科目**,occmonth:發生額月份,debitoccur:發生額。

資料庫名:jcyaudit,資料集:select * from testdb

答:select a.*

from testdb a 

,(select occmonth,max(debitoccur) debit101ccur from testdb where accid='101' group by occmonth) b

where a.occmonth=b.occmonth and a.debitoccur>b.debit101ccur

一表多用,先查詢出對比條件,把對比條件作為乙個新錶

經典演算法 半數集問題

半數集問題 問題描述 給定乙個自然數n,由n開始可以依次產生半數集set n 中的數如下。1 n set n 2 在n的左邊加上乙個自然數,但該自然數不能超過最近新增的數的一半 3 按此規則進行處理,直到不能再新增自然數為止。例如,set 6 半數集set 6 中有6個元素。程式設計任務 對於給定的...

經典SQL問題 行轉列《轉》

20人收藏此文章,我要收藏 贊0 學校裡面記錄成績,每個人的選課不一樣,而且以後會新增課程,所以不需要把所有課程當作列。資料庫grade裡面資料如下圖,假定每個人姓名都不一樣,作為主鍵。本文以mysql為基礎,其他資料庫會有些許語法不同。資料庫資料 處理後效果 下面介紹三種方法 方法一 1 2345...

經典全排列演算法

public class permutation system.out.println else public void swap string array,int m,int n public static void main string args 測試資料 permutation permut...