日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

mysql例题_mysql练习题1

發(fā)布時(shí)間:2024/10/8 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql例题_mysql练习题1 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

--為了方便做題創(chuàng)建了表--drop table if exists student;create table student(

s_id bigint,

s_name char(10),

s_birth date,

s_sex char(5));

drop table if exists course;

create table course(

c_id int,

c_name char(20),

t_id int);

drop table if exists teacher;

create table teacher(

t_id int,

t_name char(10));

drop table if exists score;

create table score(

s_id int,

c_id int,

s_score int);

insert into student values(20644101,'小明','1992-10-14','男');

insert into student values(20644102,'小紅','1990-11-15','女');

insert into student values(20644103,'小江','1993-12-16','女');

insert into student values(20644104,'小月','1994-12-17','女');

insert into student values(20644105,'小青','1996-07-14','女');

insert into student values(20644106,'小龍','1995-12-12','男');

insert into student values(20644107,'小磊','1997-12-18','男');

insert into student values(20644108,'小坤','1998-06-14','男');

insert into student values(20644109,'小強(qiáng)','1990-05-14','男');

insert into course values(01,'語文',101);

insert into course values(02,'數(shù)學(xué)',102);

insert into course values(03,'英語',103);

insert into course values(04,'體育',104);

insert into course values(05,'物理',105);

insert into course values(06,'化學(xué)',106);

insert into teacher values(101,'趙三');

insert into teacher values(102,'錢二');

insert into teacher values(103,'孫強(qiáng)');

insert into teacher values(104,'李紅');

insert into teacher values(105,'周五');

insert into teacher values(106,'鄭前');

insert into score values(20644101,01,98);

insert into score values(20644101,02,92);

insert into score values(20644101,03,96);

insert into score values(20644101,04,90);

insert into score values(20644102,01,98);

insert into score values(20644103,02,98);

insert into score values(20644104,03,98);

insert into score values(20644105,04,90);

insert into score values(20644106,05,60);

insert into score values(20644107,06,55);

insert into score values(20644108,01,45);

insert into score values(20644109,02,90);

insert into score values(20644102,03,98);

insert into score values(20644103,04,98);

insert into score values(20644104,05,98);

insert into score values(20644105,06,90);

insert into score values(20644106,01,60);

insert into score values(20644107,02,55);

insert into score values(20644108,03,45);

insert into score values(20644109,04,90);

常見的sql筆試題和面試題上

1、查詢課程編號(hào)為“001”的課程比“002”的課程成績(jī)高的所有學(xué)生的學(xué)號(hào)。

select a.s_id from

(select s_id,s_score from score where c_id=01) a

join

(select s_id,s_score from score where c_id=02) b

on a.s_id=b.s_id

where a.s_score > b.s_score

;

2、查詢平均成績(jī)大于60分的學(xué)生的學(xué)號(hào)和平均成績(jī)

select s_id

,avg(s_score)as avg_score

from score

group by s_id

having avg(s_score)>60;

3、查詢所有學(xué)生的學(xué)號(hào)、姓名、選課數(shù)、總成績(jī)

select a.s_id

,a.s_name

,b.co

,b.sum_score

from(select s_id,s_name from student) a

join (select s_id

,count(c_id) as co

,sum(s_score) as sum_score

from score

group by s_id) b

on a.s_id=b.s_id;

##簡(jiǎn)便select a.s_id,a.s_name,count(b.c_id),sum(b.s_score)

from student a

join score b

on a.s_id=b.s_id

group by a.s_id,a.s_name;

4.查詢姓“趙”的老師的個(gè)數(shù)

select count(t_id) from teacher

where t_name like '趙%';

5.查詢沒學(xué)過“趙三”老師課的學(xué)生的學(xué)號(hào)、姓名

select a.s_id

,a.s_name

from student a

where s_id not in

(select s_id from score,course,teacher

where score.c_id=course.c_id

and teacher.t_id=course.t_id

and teacher.t_name='趙三' );

6、查詢學(xué)過“趙三”老師所教的所有課的同學(xué)的學(xué)號(hào)、姓名

select a.s_id

,a.s_name

from student a

where s_id in

(select s_id from score,course,teacher

where score.c_id=course.c_id

and teacher.t_id=course.t_id

and teacher.t_name='趙三' );

7、查詢學(xué)過編號(hào)為“01”的課程并且也學(xué)過編號(hào)為“02”的課程的學(xué)生的學(xué)號(hào)、姓名

select s.s_id

,s.s_name

from student s

join

(select s_id

,c_id

from score

where c_id=01

) b

on s.s_id=b.s_id

join

(select s_id

,c_id

from score

where c_id=02) c

on s.s_id=c.s_id ;

8、查詢課程編號(hào)為“02”的總成績(jī)

select sum(s_score) from score

where c_id=02;

9、查詢所有課程成績(jī)小于60分的學(xué)生的學(xué)號(hào)、姓名

select s.s_id

,s.s_name

from student s

join

(select s_id from socre

where s_score<60) b

on s.s_id=b.s_id;

便于檢查:

select s.s_id

,s.s_name

,b.s_score

from student s

join

(select s_id

,s_score

from score

where s_score<60) b

on s.s_id=b.s_id;

10、查詢沒有學(xué)全所有課的學(xué)生的學(xué)號(hào)、姓名

select s.s_id

,s.s_name

,b.co

from student s

join

(select s_id

,count(c_id) as co

from score

group by s_id

having count(c_id)

on s.s_id=b.s_id;

11、查詢至少有一門課與學(xué)號(hào)為“1001”的學(xué)生所學(xué)課程相同的學(xué)生的學(xué)號(hào)和姓名

select s.s_id

,s.s_name

from student s

join

(select s_id from score

where c_id in (select c_id from score where s_id=20644101)) b

on s.s_id=b.s_id;

--簡(jiǎn)便寫法

select student.s_id, student.s_name

from student, score

where student.s_id = score.s_id

and c_id in (select c_id from score where s_id=20644101);

12、:查詢和“20644101”號(hào)同學(xué)所學(xué)課程完全相同的其他同學(xué)的學(xué)號(hào)

select s.s_id from student s

join

(select s_id from score

where c_id in (select c_id from score where s_id=20644101)) b

on s.s_id=b.s_id

group by s.s_id

having count(*)=(select count(*) from score where s_id=20644101);

13、把“SCORE”表中“趙三”老師教的課的成績(jī)都更改為此課程的平均成績(jī)

update score set s_score=(select c_id

,avg(s_score)

from score

where c_id in

(select c_id from course c

join

(select t_id,t_name from teacher

where t_name='趙三') t

on c.t_id=t.t_id)

group by c_id);

----趙三老師的課程

select c_id

,avg(s_score)

from score

where c_id in

(select c_id from course c

join

(select t_id,t_name from teacher

where t_name='趙三') t

on c.t_id=t.t_id)

group by c_id;

--14、查詢和“20644102”號(hào)的同學(xué)學(xué)習(xí)的課程完全相同的其他同學(xué)學(xué)號(hào)和姓名

select s_id from score where c_id in

(select c_id from score where s_id=20644102)

group by s_id

having count(*)=

(select count(*) from score where s_id=20644102);

select s.s_id

,s.s_name

from student s

join

(select s_id from score where c_id in

(select c_id from score where s_id=20644102)

group by s_id

having count(*)=

(select count(*) from score where s_id=20644102)) t

on s.s_id=t.s_id;

15、刪除學(xué)習(xí)“趙三”老師課的SC表記錄

select t_id from teacher

where t_name='趙三'

select c_id

,t_id

from course

select c_id

,s_score

from score

---delete score from course,teacherwhere course.c_id=socre.c_id

and course.t_id=teacher.t_id

and t_name='趙三';

16、向SC表中插入一些記錄這些記錄要求符合以下條件:沒有上過編號(hào)為“003”課程的學(xué)生的學(xué)號(hào)、編號(hào)為002的課程的平均成績(jī)

insert score select s_id

,(select avg(s_score) from score where s_id=20644102) avg_score

from score

where s_id not in

(select s_id from score where c_id=03);

--------------------------------------------select s_id,(select avg(s_score) from score where s_id=20644102) avg_score

from score

where s_id not in

(select s_id from score where c_id=03);

17、按平均成績(jī)從高到低顯示所有學(xué)生的“數(shù)據(jù)庫(kù)”(c_id='004')、“企業(yè)管理”(c_id='001')、“英語”(c_id='006')三門的課程成績(jī),按如下形式顯示:學(xué)生ID,數(shù)據(jù)庫(kù),企業(yè)管理,英語,有效課程數(shù),有效平均分

select s_id as '學(xué)生ID'

,(select s_score from score where score.s_id=t.s_id and c_id=02) as dbm

,(select s_score from score where score.s_id=t.s_id and c_id=03) as mang

,(select s_score from score where score.s_id=t.s_id and c_id=04) as edg

,count(*) as '有效課程數(shù)'

,avg(t.s_score) as'平局成績(jī)'

from score as t

group by s_id

order by avg(t.s_score)

;

18、查詢各科成績(jī)最高和最低的分: 以如下的形式顯示:課程ID,最高分,最低分

select c_id as '課程ID'

,max(s_score) as '最高分'

,min(s_score) as '最低分'

from score

group by c_id;

19、按各科平均成績(jī)從低到高和及格率的百分?jǐn)?shù)從高到低排列,以如下形式顯示:課程號(hào)課程名平均成績(jī)及格百分?jǐn)?shù)

---兩個(gè)字段排序處理

select s.c_id

,c.c_name

,avg( coalesce(s.s_score,0)) as avg_score

,100*sum(case when coalesce(s.s_score,0)>=60 then 1 else 0 end)/count(*) as percent

from score s

join course c

on s.c_id=c.c_id

group by s.c_id

,c.c_name

order by 100*sum(case when coalesce(s.s_score,0)>=60 then 1 else 0 end)/count(*) desc,avg( coalesce(s.s_score,0)) asc

;

20、查詢?nèi)缦抡n程平均成績(jī)和及格率的百分?jǐn)?shù)(用1行顯示),其中企業(yè)管理為001,馬克思為002,UML為003,數(shù)據(jù)庫(kù)為004

select c_id

,avg(s_score)

,sum(case when coalesce(s_score,0)>=60 then 1 else 0 end)/count(*)

from score

where c_id in (01,02,03,04)

group by c_id

;

21、查詢不同老師所教不同課程平均分從高到低顯示

select c.c_id

,t.t_id

,avg(coalesce(s.s_score,0))

from course c,teacher t ,score s

where c.t_id=t.t_id

and c.c_id=s.c_id

group by c.c_id

,t.t_id

order by avg(coalesce(s.s_score,0)) desc

;

22、查詢?nèi)缦抡n程成績(jī)第3名到第6名的學(xué)生成績(jī)單,其中企業(yè)管理為001,馬克思為002,UML為003,數(shù)據(jù)庫(kù)為004,以如下形式顯示:

select t.c_id

,t.s_score

from

(select row_number()over(partition by c_id order by s_score desc) r1

,s_score

,c_id

from score) t

where t.r1 >=3

and t.r1 <=6

group by t.c_id

,t.s_score

order by t.c_id asc,s_score desc

;

23、使用分段[100-85],[85-70],[70-60],[<60]來統(tǒng)計(jì)各科成績(jī),分別統(tǒng)計(jì)各分?jǐn)?shù)段人數(shù):課程ID和課程名稱

select c.c_id

,c.c_name

,sum(case when s.s_score between 85 and 100 then 1 else 0 end ) as [85-100]

,sum(case when s.s_score between 70 and 85 then 1 else 0 end ) as [70-85]

,sum(case when s.s_score between 60 and 70 then 1 else 0 end)as [60-70]

,sum(case when s.s_score <60 then 1 else 0 end ) as [<60]

from course c, score s

group by c.c_id

,c.c_name

;

24、查詢學(xué)生平均成績(jī)及其名次

select t.s_id

,t.r1

,avg(t.s_score) as avg_score

from

(select s_id

,s_score

,row_number()over(partition by s_id order by avg(s_score)) as r1

from score

group by s_id

,s_score) t

group by t.s_id

,t.r1

25、查詢各科成績(jī)前三名的記錄(不考慮成績(jī)并列情況)

select t.s_id

,t.r1

,t.c_id

from

(select s_id

,c_id

,row_number()over(partition by c_id order by s_score desc) as r1

from score) t

where t.r1<3

group by t.s_id

,t.r1

,t.c_id

;

26、查詢每門課程被選修的學(xué)生數(shù)

select count(s_id) as co

,c_id

from score

group by c_id

order by c_id

;

27、查詢出只選修了一門課程的全部學(xué)生的學(xué)號(hào)和姓名

select s.s_id

,s.s_name

,count(c.c_id) as co

from score c ,student s

where c.s_id=s.s_id

group by s.s_id

,s.s_name

having count(c.c_id) =1

;

select s.s_id

,s.s_name

,count(c.c_id) as co

from score c ,student s

where c.s_id=s.s_id

group by s.s_id

,s.s_name

having count(c.c_id) =2

;

28、查詢男生、女生人數(shù)

select sum(case when s_sex='女' then 1 else 0 end) as '女生人數(shù)'

,sum(case when s_sex='男' then 1 else 0 end) as '男生人數(shù)'

from student

;

29、查詢姓“小”的學(xué)生名單

select * from student

where s_name like '小%'

;

30、查詢同名同性學(xué)生名單并統(tǒng)計(jì)同名人數(shù)///查詢姓“小”的學(xué)生人數(shù)

select s_name,count(*) from student

group by s_name

having count(*)>1

;

select count(*) from student

where s_name like '小%'

;

31、1981年出生的學(xué)生名單(注:Student表中s_birth列的類型是datetime)

select * from student

where year(s_birth)=1992

;

-----mysql里面沒有datepart

select s_name

,convert(char(11),datepart(year,s_birth))as age

from student

where convert(char(11),datepart(year,s_birth))='1992'

;

------日期函數(shù)

SELECT DATE_FORMAT( deteline, "%Y-%m-%d %H" ) , COUNT( * )

FROM test

GROUP BY DATE_FORMAT( deteline, "%Y-%m-%d %H" )

;

------------注意order by和having的順序--------------32、查詢平均成績(jī)大于85的所有學(xué)生的學(xué)號(hào)、姓名和平均成績(jī)select s.s_id

,s.s_name

,avg(r.s_score)

from student s,score r

where s.s_id=r.s_id

group by s.s_id,s.s_name

having avg(r.s_score) > 85

order by avg(r.s_score) desc

;

33、查詢每門課程的平均成績(jī),結(jié)果按平均成績(jī)升序排序,平均成績(jī)相同時(shí),按課程號(hào)降序排列

select c_id

,avg(s_score)

from score

group by c_id

order by avg(s_score),c_id desc

;

34、查詢課程名稱為“數(shù)據(jù)庫(kù)”且分?jǐn)?shù)低于60的學(xué)生姓名和分?jǐn)?shù)

select s.s_name

,coalesce(r.s_score,0)

,c.c_name

from student s,score r ,course c

where s.s_id=r.s_id

and c.c_id=r.c_id

and r.s_score <60

and c.c_name='語文'

;

35、查詢所有學(xué)生的選課情況

select s.s_id

,c.c_id

,s.s_name

,c.c_name

from student s,course c,score r

where s.s_id=r.s_id

and c.c_id=r.c_id

;

37、查詢不及格的課程并按課程號(hào)從大到小排列

select s_id

, c_id

,s_score

from score

where s_score<60

group by s_id,c_id,s_score

order by c_id desc

;

38、查詢課程編號(hào)為003且課程成績(jī)?cè)?0分以上的學(xué)生的學(xué)號(hào)和姓名

select s.s_id

,s.s_name

from student s,score r

where s.s_id=r.s_id

and r.s_score>80

and c_id=03

;

39、查詢選了課程的學(xué)生人數(shù)

select count(distinct s_id) from score;

---40、查詢選修“趙三”老師所授課程的學(xué)生中成績(jī)最高的學(xué)生姓名及其成績(jī)

select s.s_name

,r.s_score

from student s, course c,teacher t,score r

where s.s_id=r.s_id

and r.c_id=c.c_id

and c.t_id=t.t_id

and t.t_name='趙三'

and r.s_score=(select max(s_score) from score where c_id=c.c_id )

;

41、查詢各個(gè)課程及相應(yīng)的選修人數(shù)

select count(distinct s_id)

,c_id

from score

group by c_id

;

--42、查詢有2門不同課程成績(jī)相同的學(xué)生的學(xué)號(hào)、課程號(hào)、學(xué)生成績(jī)

select distinct a.s_id,a.c_id,b.s_score from score a,score b

where a.s_score=b.s_score

and b.c_id<>a.c_id

;

43、查詢每門課程成績(jī)最好的前兩名

select s.s_id

,s.r1

,s.c_id

from

(select s_id

,c_id

,row_number()over(partition by c_id order by s_id) as r1

from score) s

where r1<3

;

44、統(tǒng)計(jì)每門課程的學(xué)生選修人數(shù)(超過10人的課程才統(tǒng)計(jì))。要求輸出課程號(hào)和選修人數(shù),查詢結(jié)果按人數(shù)降序排序,若人數(shù)相同,按課程號(hào)升序排序

select c_id

,count(*) as co

from score

group by c_id

having count(*) >=2

order by count(*) desc,c_id asc

;

45、查詢至少選修兩門課程的學(xué)生學(xué)號(hào)

select s_id

,count(distinct c_id) as co

from score

group by s_id

having count(distinct c_id)>=2

;

---46、查詢?nèi)繉W(xué)生都選修的課程的課程號(hào)和課程名

select c.c_id,c.c_name from course c ,score r,student s

where s.s_id=r.s_id

and c.c_id=r.c_id

and (select count(*) from student) in (select count(*) from score group by c_id)

;

select c_id ,c_name from course

where c_id in (select c_id from score group by c_id);

47、查詢沒學(xué)過“趙三”老師講授的任一門課程的學(xué)生姓名

select s_name from student

where s_id not in

(select s.s_id from score s,course c,teacher t

where s.c_id=c.c_id

and c.t_id=t.t_id

and t.t_name='趙三')

;

48、查詢兩門以上不及格課程的同學(xué)的學(xué)號(hào)及其平均成績(jī)

select t.s_id,t.avg_score

from

(select s_id,avg(score) as avg_score

from score

group by s_id) t

where t.avg_score<60

having count(*)>1

;

select s_id,avg(s_score)from score

where s_id in (select s_id from score where s_score<60 group by s_id having count(*)>1)

group by s_id;

49、檢索課程編號(hào)為“04”且分?jǐn)?shù)大于60的學(xué)生學(xué)號(hào),結(jié)果按按分?jǐn)?shù)降序排列

select s_id,s_score from score

where c_id=04

and s_score>60

order by s_score desc

;

50、刪除學(xué)生編號(hào)為“002”的課程編號(hào)為“001”的成績(jī)

delete from score

where s_id=20644102

and c_id =01

;

常見的sql筆試題和面試題下

1.SQL語言允許使用通配符進(jìn)行字符串匹配的操作,其中‘%’可以表示: C

A.零個(gè)字符

B.1個(gè)字符

C.多個(gè)字符

D.以上都是

2.通過 SQL,如何從 "Persons" 表中選取 "FirstName" 列?B

A、SELECT Persons.FirstName

B、SELECT FirstName FROM Persons

C、EXTRACT FirstName FROM Persons

3.通過 SQL,如何從 "Persons" 表中選取所有的列?C

A、SELECT [all] FROM Persons

B、SELECT Persons

C、SELECT * FROM Persons

D、SELECT *.Persons

4.通過 SQL,如何從 "Persons" 表中選取 "FirstName" 列的值等于"Peter" 的所有記錄?D

A、SELECT [all] FROM Persons WHERE FirstName='Peter'

B、SELECT * FROM Persons WHERE FirstName LIKE 'Peter'

C、SELECT [all] FROM Persons WHERE FirstName LIKE 'Peter'

D、SELECT * FROM Persons WHERE FirstName='Peter'

5通過 SQL,如何從 "Persons" 表中選取 "FirstName" 列的值以 "a" 開頭的所有記錄?A

A、SELECT * FROM Persons WHERE FirstName LIKE 'a%'

B、SELECT * FROM Persons WHERE FirstName='a'

C、SELECT * FROM Persons WHERE FirstName LIKE '%a'

D、SELECT * FROM Persons WHERE FirstName='%a%'

6請(qǐng)判斷下列說法是否正確:當(dāng)所列出的某個(gè)條件為 true 時(shí),OR 運(yùn)算符會(huì)顯示記錄。當(dāng)列出的所有條件為 true 時(shí),AND 運(yùn)算符會(huì)顯示記錄。A

A、正確

B、錯(cuò)誤C

7.通過 SQL,您如何在表 Persons 中選擇 FirstName 等于 Thomas 而 LastName 等于 Carter 的所有記錄?C

A、SELECT * FROM Persons WHERE FirstName LIKE 'Thomas' AND LastName LIKE 'Carter'

B、SELECT FirstName='Thomas', LastName='Carter' FROM Persons

C、SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'

8通過 SQL,您如何按字母順序選取 Persons 表中 LastName 介于 Adams 和 Carter 的所有記錄?A

A、SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'

B、SELECT * FROM Persons WHERE LastName>'Adams' AND LastName

C、SELECT LastName>'Adams' AND LastName

9哪條 SQL 語句可返回唯一不同的值?B

A、SELECT DIFFERENT

B、SELECT DISTINCT

C、SELECT UNIQUE

10哪個(gè) SQL 關(guān)鍵詞用于對(duì)結(jié)果集進(jìn)行排序?D

A、ORDER

B、SORT BY

C、SORT

D、ORDER BY

11通過 SQL,您如何根據(jù) "FirstName" 列降序地從 "Persons" 表返回所有記錄?B

A、SELECT * FROM Persons SORT 'FirstName' DESC

B、SELECT * FROM Persons ORDER BY FirstName DESC

C、SELECT * FROM Persons ORDER FirstName DESC

D、SELECT * FROM Persons SORT BY 'FirstName' DESC

12通過 SQL,您如何在 "Persons" 表中刪除 "FirstName" 等于 "Fred" 的紀(jì)錄?A

A、DELETE FROM Persons WHERE FirstName = 'Fred'

B、DELETE FirstName='Fred' FROM Persons

C、DELETE ROW FirstName='Fred' FROM Persons

13通過 SQL,如何返回 "Persons" 表中記錄的數(shù)目?D

A、SELECT COLUMNS() FROM Persons

B、SELECT COLUMNS(*) FROM Persons

C、SELECT COUNT() FROM Persons

D、SELECT COUNT(*) FROM Persons

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的mysql例题_mysql练习题1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。