A. 學生表:S(學號,姓名,性別,出生日期,院系) 選課成績表:SC(學號,課程號,成績)
學號 未指定吧
SELECT 學生表.學號,姓名 FROM S,SC WHERE S.學號=SC.學號 AND 成績>=85
B. 如何把"選課成績"表中的"學生編號"和"課程編號"設置為組合主鍵
case 'f':printf("friday\n");break;
case 'm':printf("monday\n");break;
case 't':printf("please input second letter\n");
if((letter=getch())=='u')
printf("tuesday\n");
else if ((letter=getch())=='h')
printf("thursday\n");
else printf("data error\n");
break;
case 'w':printf("wednesday\n");break;
default: printf("data error\n");
C. 有一個「學生-課程」資料庫,資料庫中包括三個表:
1、創建「學生-課程」資料庫:將數據文件和日誌文件都存放在D盤自已學號的目錄下。其中數據文件和日誌文件初始大小都為1MB,自動增長率都為10%。
create database MyDB
on(
name='Student-SC',
filename='d:\自己學號\Student-SC.mdf',
size=1,filegrowth=10%)
log on
(name='Student-SClog',
filename='d:\自己學號\Student-SClog.ldf',
size=1,filegrowth=10%)
go
2、在「學生-課程」資料庫創建「學生」表,它由學號Sno、姓名Sname、性別Ssex、年齡Sage、所在系Sdept五個屬性組成,其中學號設為主鍵約束,性別設置檢查性約束。
use Student-SC
create table Student
(Sno char(5) primary key,
Sname varchar(20),
Ssex varchar(2),
Sage tinyint,
Sdept varchar(30),
check(Ssex in('男','女')))
go
3、查詢「學生」表中全體學生的學號與姓名
select Sno,Sname from Student
4、查詢年齡在20至23歲之間的學生的姓名、所在系和年齡
select Ssex,Sdept,Sage from Student where Sage between 20 and 23
5、 查所有姓劉的學生的姓名、學號和性別
select Sname,Sno,Ssex from Student where Sname like '劉%'
6、 查詢「學生選課」表中成績最高和成績最低的記錄,要求顯示學號(Sno)、課程號(Cno)、成績(Grade)三個屬性
select Sno,Cno,Grade from SC group by Sno,Cno having max(Grade) or min(Grade)
7、使用內部聯接查詢並顯示所有選修課程的同學的學號(Sno)、姓名(Sname)、性別(Ssex)、年齡(Sage)、所在系(Sdept)、課程號(Cno)、成績(Grade)屬性
select SC.Sno,Student.Sname,Student.Ssex,Student.Sage,Student.Sdept,SC.Cno,SC.Grade from SC inner join Student on SC.Sno=Student.Sno
8、向「學生」表中插入如下記錄:學號:』04160』、姓名:』王燕』、性別 :』女』、年齡:22、所在系: 』計算機科學系』
insert into Student values('04160','王燕','女',22,'計算機科學系')
9、將計算機科學系全體學生的成績置零
update SC set Grade=0 where exists(select Sno,Sdept from Student where Student.Sno=SC.Sno and Student.Sdept='計算機科學系')
10、在「學生」表中,刪除學號為』04160』同學的記錄
delete from Student where Sno='04160'
D. 不能建立參照完整性
你的那兩張表之所以不能建立參照完整性的原因,其實錯誤提示已經告訴你了。
現在我進一步說明一下:
首先學生表與選課成績表通過「學生編號」建立參照完整性關系是完全可以的。它們之間不能建立參照完整性關系是因為這兩張表在建立關系前已經輸入了數據,選課成績表中學生編號欄位的某些「學生編號」並不存在於學生表中,資料庫引擎在建立參照完整性檢測出了這些孤立的「學生編號」因而提示錯誤。
解決辦法:先將選課成績表中存在的那些孤立數據刪除,然後即可為該兩張表建立參照完整性關系了。
建議運行下列SQL操作查詢刪除選課成績表中的孤立記錄。
DELETE * FROM 選課成績表 WHERE 學生編號 NOT IN ( SELECT 學生編號 FROM 學生表)
E. 從學生表和選課成績統計並顯示每個學生學號,姓名,各科成績之和用sol編碼怎麼
從學生表和選課成績統計並顯示每個學生學號,姓名,各科成績之和用sol編碼殖後期,勤開機,促進水產養殖對象生長
F. SQL語句編寫問題統計選課的學生人數; 將選修課程號為3的學生成績加10分
SelectCount(學生學號)
From表
Update表Set成績+10
Where選修課程號=3
Select學號,姓名,年齡
From表
Where姓名Like'_仁%'
Select學號,姓名,成績
From表
Where選修課='DB'
And成績>90
Order成績desc
--下次提問麻煩給表可以嗎?
G. 7、 以學生表和成績表為數據源,建立名為「未選課學生查詢」的嵌套查詢,查詢出學生的學號和姓名。所謂未
以下的sql語句可以參考一下:
select 學號,姓名
from 學生表
where 學號 not in ( select distinct 學號 from 成績表 )
H. 跪求大神幫幫忙!!!有一個【學生選修課】資料庫,資料庫中包括三個表,學生表,課程表,成績表
//自己把中文替換成英文欄位名 我用的sql server資料庫
select 學號、姓名、性別、年齡、所在系 from 學生 order by 年齡 desc, 學號 asc
select 學號,姓名 from 學生 where 姓名 in( select 姓名 from 學生 group by 姓名 having count(*)>1 )
update 成績 set 成績=0 where CNO=1
如果/不是除法的話 只是字元串 (除法暫時有問題)下班了 明天再來寫
select C.課程號,D.課程名,D.成績 from COURSE C,(
select CONVERT(VARCHAR(50),A.排名)+'/'+CONVERT(VARCHAR(50),B.ZS) as '排名/人數',a.學號,a.課程名,a.成績 FROM (
select ROW_NUMBER() over(partition BY 課程名 order by 成績 desc) as 排名 ,* from GRADE where 學號='1') A,
(SELECT COUNT(*) as zs,課程名
FROM GRADE group by 課程名 ) B where a.課程名=b.課程名) D WHERE C.課程名=D.課程名
I. 關於學生,課程,選課三張表的sql查詢
select 選課.學號,姓名,AVG(成績)'平均分',COUNT(選課.課程號)'選課門數' from 學生,課程,選課 where 學生.學號=選課.學號 and 課程.課程號=選課.課程號 group by 選課.學號,姓名 HAVING COUNT(選課.課程號)>4 ORDER BY AVG(成績) DESC
--------------------------------------
CREATE VIEW 查詢 AS
select top 100 選課.學號,姓名,AVG(成績)'平均分',COUNT(選課.課程號)'選課門數' from 學生,課程,選課 where 學生.學號=選課.學號 and 課程.課程號=選課.課程號 group by 選課.學號,姓名 HAVING COUNT(選課.課程號)>4 ORDER BY AVG(成績) DESC
其中DESC是降序排列,ASC是升序排列,默認是升序
ORDER BY AVG(成績)也可以寫成ORDER BY 平均分,因為已經指定了別名
「CREATE VIEW 查詢」中的「查詢」是新表名, 如果有「ORDER BY AVG(成績) DESC 」這句,則須有「top」,否則出錯「除非同時指定了 TOP,否則 ORDER BY 子句在視圖、內嵌函數、派生表和子查詢中無效。」
J. 資料庫中現有學生表,選課表,成績表,怎麼刪除大於18歲學生的所有選課信息
假設這3個表的結構如下:
學生表(學號,姓名,年齡,出生日期)
選課表(學號,課程號,課程名稱)
成績表(學號,課程號,成績)
以上述表結構為前提,T-SQL語句如下:
delete 成績表 where 學號 in (select 學號 from 學生表 where 年齡>18)
delete 選課表 where 學號 in (select 學號 from 學生表 where 年齡>18)
如果學生表中沒有『年齡』欄位,只有『出生日期』欄位的話,T-SQL語句如下:
delete 成績表 where 學號 in (select 學號 from 學生表 where datediff(yy,出生日期,getdate())>18)
delete 選課表 where 學號 in (select 學號 from 學生表 where datediff(yy,出生日期,getdate())>18)