1樓:匿名使用者
給我每個表的結構和關聯關聯,我給你做,保證99.99999%滿分
sql,用select查詢資料查詢全部男學生的學號和姓名 10
2樓:匿名使用者
select sno,sname from s where ssesx='男'
下面的你沒貼出詳細的表結構,沒人幫你了
歡迎採納我
3樓:不懂就來百
你至少把表結構貼上來啊,不然大神也寫不出來呀。
請幫忙寫出下列sql語句的步驟: 1.查詢成績表的所有成績 2.查詢學生的學號,姓名和年齡 (接著在下面)
4樓:楓啦啦
你表的欄位和表的關係都沒給....
只能認為表裡面有所有的欄位了...
1 select * from 成績表
2 select 學號,姓名,年齡 from 學生資訊表
3 select 學號,姓名,課程名,成績 from 選課表
4 select * from 學生資訊表 where 姓名 like '張%'
5 select top 4 * from 學生資訊表 where 學號 like '9952%'
6 select count(*) as 男生人數 from 學生資訊表 where 性別='男'
7 select * form 學生資訊表 where 性別='女' and 黨員='是'
8 select 學號 from 成績表 where 成績》80 and 成績<90
9 select 學號,姓名 from 成績表 where 成績<60
ps:這題,如果姓名不在成績表中的話應該是:
select 學號,姓名 from 成績表,學生資訊表 where 成績表.學號=學生資訊表.學號 and 成績表.成績<60
10 select 學號,姓名,性別 from 學生資訊表 order by 學號 desc
這裡我把"學生表"寫成"學生資訊表",是為了看著更清楚
如果要改的話,自己看著改
5樓:匿名使用者
1,select * from 成績表
2,select 學好,姓名,年齡 from 學生表
資料庫sql語句中 查詢選修了全部課程的學生的學號和姓名 理解
6樓:匿名使用者
這思路是用了個雙重否定來求解的。因為sql中沒有全稱量詞,於是要把題目轉換成等價的存在量詞表達形式。即根據(∀x)p≡¬∃(¬p)來轉化為雙重否定的表達。
同時由於「學生x選修課程y 」
之間是不定的,需要使用兩個exist。
於是「選修了全部課程的學生」等價於「不存在(有他沒選的課的)學生」
使用了兩次not exists來實現雙重否定。
先查詢在課程裡查詢「沒有學生選的課程」,第一次否定,
然後再在學生裡查詢「沒有屬於上面情況的學生」的名字,第二次否定;
結合起來,就是 「沒有(沒選的課程)的學生」了。
好了,從裡到外寫出來,就是
select sname from student where not exists(
select * from course where not exists(
select * from sc where sno=student.sno and **o=course.**o
))這個只不過是逆向思維來解決問題的方法。舉一反三,比如要查「被全部學生都選的課程名」
則是求「不存在有學生沒選它的課程」
select **ame from course where not exists(
select * from student where not exists(
select * from sc where sno=student.sno and **o=course.**o
))再如,查「所有人都沒選修的課程」,這個雖然是單次否定了,但仍需要兩個存在量詞表述。
等價於查詢「不存在有學生選了它的課程」。
select **ame from course where not exists (
select * from student where exists (
select * from sc where **o=course.**o and sno=student.sno))
7樓:風嘯無名
沒有資料庫難以具體說明,總的來說,就是一個多表查詢包括學生基本資訊表、課程資訊表、成績表等,學號為主鍵,查詢姓名和課程、分數等資訊,總分用sum算。
1 。 exists 子查詢找到的提交
not exists 子查詢中 找不到的提交說明:不要去翻譯為存在和不存在,把腦袋搞暈。
2 。 建立程式迴圈的概念,這是一個動態的查詢過程。如 for迴圈 。
3 。 exists執行的流程exists首先執行外層查詢,再執行記憶體查詢,與in相反。 流程為首先取出外層中的第一元組, 再執行內層查詢,將外層表的第一元組代入,若內層查詢為真,即有結果時。
返回外層表中的第一元 組,接著取出第二元組,執行相同的演算法。一直到掃描完外層整表 。
8樓:月光雪松
樓主彆著急!
為好理解我們先從這條sql語句所要實現的功能入手。
功能:查出選修了全部課程的學資訊。那麼sql在查詢資料的時候的遍歷每一個學生資訊。判斷該學生是否滿足條件。
1 如果存在這麼一條course記錄a(暫命名為a), 則不選擇該學生。否則該學生就被查詢出來
2 那麼記錄a,是怎麼查出來的呢?a查出的條件是:不存在sc記錄b,只要不存在b,就可查出a
3 那麼b記錄是什麼?b記錄是選課資訊表,根據學號和課程號可查出記錄b
如果b為空(該學生有沒有選的課程)也就是不存在,則a就有一條記錄,根據規則2可知:因為有a,所以該學生資訊將不被輸出。
如果在sc中每一個課程編號和該學生編號為條件都能夠查出一條記錄b(也就是該學生選修了全部課程),所以a記錄不存在,則輸出該學生的資訊。
也就是在選課表中,如果學生選了全部課程(也就是滿足select * from sc where sno= student.sno and **o= course.**o)始終存在,當然,課程編號是任意的)。
那麼就輸出該學生的資訊。你不要為理解這條sql而忘記了它本身是要做什麼.
帶著sql的目的(要實現的功能)去理解就好了。
9樓:雨夜的緣分
1,select * from sc where sno= student.sno and **o= course.**o
在sc表中查詢符合sno= student.sno and **o= course.**o這兩個條件的所有資料,
2,select * from course where not exists (select * from sc where sno= student.sno and **o= course.**o);這句的意思是在course表中查詢不滿足1,中的所有資料
3,select sname from student where not exists (select * from course where not exists (select * from sc where sno= student.sno and **o= course.**o));
這整句的意思就是查詢student表中所有不滿足2,資料,就是選修了全部課程的學生了
只所以會有這麼多查詢,可能sno= student.sno and **o= course.**o這兩個條件是是sc表查詢的條件分散在另外兩個表中,引用了雙重否定,也就是肯定的意思,達到可以讓student.
sno ,course.**o,在sc表中作為條件的目的
夠詳細吧!!!!
用sql語言實現在學生表和成績表中多表查詢男生的學號,姓名,性別,課程號及成績,並將查詢結果存到表
10樓:匿名使用者
select 學生表.學號,學生表.姓名,學生表.性別,成績表.課程號,成績表.成績
into cx --這個就是將查詢結果存到cx表中from 學生表,成績表 where 學生表.學號=成績表.學號 and 性別='男'
表名你自己替換一下,其實就是個簡單的連線查詢,將兩個表的學號作為關聯欄位
11樓:葶子_寶貝
---要求cx表包含:學號,姓名,性別,課程號,成績幾個欄位insert cx
select 學生表.學號,姓名,性別,課程號,成績from 學生表,成績表
where 學生表.學號=成績表.學號 and 性別='男'
查詢學生的學號,姓名,平均成績,要求只顯示平均分在80分以
根據你的描述應該會有三張表,把這三張表用select from查詢出來截圖看一下,那樣寫出來的問題就少點,你這樣提供資訊不怎麼全,重新補充一下問題吧,大致就是按照學號分組,求個平均成績,排序一下就可以。sno表示的是平均成績?group by 是分組 order by是排序 select sno f...
sql,查詢每門課程最高分的學生的學號,課程號,成績。再一張表裡
1 首先在開啟的sql中,檢視market資料庫中 商來自哪些州的哪些城市,如下圖所示。2 接著檢視market資料庫 商的完整資訊,如下圖所示。3 然後檢視market資料庫中,商來自哪些國家 去除重複國家 4 然後在stu資料庫中對學生情況表進行學號 姓名 性別 專業和入學成績的查詢,結果按入學...
寫出查詢沒有選課的學生的所有資訊的SQL語句,要求用in子句
第一句中 制裡表示這個form裡的資料是提交到insert.asp頁面處理 insert.asp?action 這個action是個變數名稱 insert 第二句中 action 這是個變數名稱 request.querystring action 這裡即是第一句中的變數名稱 結果即是 action...