A. sql查詢2門以上課程成績不低於80分的學生的學號、以及不低於85分的課程的門數。
您好:
您這個需求有點復雜,時間緣故沒有測試。
如果有異常,請聯系我,我回家重新給您看看。
以下是SQL代碼
SELECT Student.sno,(SELECT COUNT(*) FROM grade g WHERE g.sno=Student.sno AND grade>=85 )
FROM Student
LEFT JOIN Score ON Score.sno=Student.sno
LEFT JOIN Course ON Course.cno=Score.cno
WHERE grade>=80
GROUP BY Student.sno
HAVING COUNT(*)>2
B. 用sql語言輸入,查找成績在70到80分之間的學生的學習情況
我先假定你有一個資料庫,表名叫student_score,成績是score,學習情況是study(如果不只一個欄位你自行添加吧)
select study from student_score where score > 70 and score < 80;
C. 用一條sql語句查詢出「每門」課程都大於80分的學生姓名
首先需要進行分析:
要查詢出每門課程都大於80分的學生姓名,因為一個學生有多門課程,所以會出現下面三種情況。
第一可能所有課程都大於80分。
第二可能有些課程大於80分,另外一些課程少於80分。
第三也可能所有課程都小於80分。
那麼我們要查找出所有大於80分的課程的學生姓名,我們可以反向思考,找出課程小於80分(可以找出有一些課程小於80分,所有課程小於80分的學生)的學生姓名再排除這些學生剩餘的就是所有課程都大於80分的學生姓名了。
分析完成後,進入數據圖形化管理界面創建表並插入數據
--創建表aa
create table aa(
name varchar(10),
kecheng varchar(10),
fengshu int
)
--插入數據到表aa中
insert into aa values('張三','語文',81)
insert into aa values('張三','數學',75)
insert into aa values('李四','語文',76)
insert into aa values('李四','數學',90)
insert into aa values('王五','語文',81)
insert into aa values('王五','數學',100)
insert into aa values('王五','英語',90)
用一條SQL語句查詢出每門課都大於80分的學生姓名
select distinct name from aa where name not in (select distinct name from aa where fengshu<=80)
結果如下圖:
(3)sql不低於80分的學生擴展閱讀:
除了用distinct還可以用not in 或者 not exists 實現
//not in
SELECT DISTINCT A.name FROM Student A WHERE A.name not in(SELECT Distinct S.name FROM Student S WHERE S.score <80);
//not exists
SELECT DISTINCT A.name From Student A where not exists (SELECT 1 From Student S Where S.score <80 AND S.name =A.name);
結果與前面正文一樣。
D. sql語句列出成績在80分到100分之間的學生名單
select * from 學生表 where 學生表主鍵id in (select 學生表學生id from 成績表 where 成績欄位 between 80 and 100)
或
select * from 學生表 where 學生表主鍵id in (select 學生表學生id from 成績表 where 成績欄位>=80 and 成績欄位<=100)
E. 如何用sql語句查出學生表成績小於60為不及格60-80為良好80-90為優秀
select name,case when 成績<60 then 不及格 when 成績>=60 and 成績<80 then 良好 when 成績>=0 and 成績<90 then 優秀 end as 成績情況 ,from 表名。
注意,在輸入sql語句的時候,要在英文環境下輸入。否則可能會出現代碼不識別。
F. sql設計存儲過程查詢成績單科不低於80分,平均分排班級前十名並且獲得過獎學金的學生
select * from 學生基本信息表 a where not exists(select 1 from 學生成績表 where 學號=a.學號 and 成績<=80);
select top 10 學號,姓名,avg(成績) from 學生基本信息表 a ,學生成績表 b
where exists(select 1 from 獎懲表 where 學號=a.學號)
order by avg(成績) desc
G. 如何在SQL server中查詢成績大於80的學生記錄集
HAVING語句通常與GROUP BY語句聯合使用,用來過濾由GROUP BY語句返回的記錄集。
HAVING語句的存在彌補了WHERE關鍵字不能與聚合函數聯合使用的不足。
語法:
SELECT column1, column2, ... column_n, aggregate_function (expression)
FROM tables
WHERE predicates
GROUP BY column1, column2, ... column_n
HAVING condition1 ... condition_n;
同樣使用本文中的學生表格,如果想查詢平均分高於80分的學生記錄可以這樣寫:
SELECT id, COUNT(course) as numcourse, AVG(score) as avgscore
FROM student
GROUP BY id
HAVING AVG(score)>=80;
在這里,如果用WHERE代替HAVING就會出錯。
數據操縱
數據操縱語言是完成數據操作的命令,一般分為兩種類型的數據操縱。
1、數據檢索(常稱為查詢):尋找所需的具體數據。
2、數據修改:插入、刪除和更新數據。
數據操縱語言一般由 INSERT(插入)、 DELETE(刪除)、 UPDATE(更新)、 SELECT(檢索,又稱查詢)等組成。由於 SELECT經常使用,所以一般將它稱為查詢(檢索)語言並單獨出現。