SQL 基礎語句練習題(查詢)

SQL 基礎語句練習題(查詢)

查詢語句練習題
1.建表
create table student(
id int(10) primary key not null auto_increment,
name varchar(20) not null,
sex varchar(4),
birth year,
department varchar(20) not null,
address varchar(50)
)default charset=utf8;

create table score(
id int(10) primary key not null auto_increment,
stu_id int(10) not null,
c_name varchar(20),
grade int(10)
)default charset=utf8;

2.插入數據
insert into student values(901,‘張老大’,‘男’,1990,‘計算機系’,‘北京市海淀區’);
insert into student (name,sex,birth,department,address) values
(‘張老二’,‘男’,1991,‘中文系’,‘北京市昌平區’),
(‘張三’,‘女’,1995,‘中文系’,‘湖南省永州市’),
(‘李四’,‘男’,1995,‘英語系’,‘遼寧省阜新市’),
(‘王五’,‘女’,1996,‘英語系’,‘福建省廈門市’),
(‘王六’,‘男’,1993,‘計算機系’,‘湖南省衡陽市’);

insert into score values(NULL,901,‘計算機’,98);
insert into score (stu_id,c_name,grade) values
(901,‘英語’,80),
(902,‘計算機’,65),
(902,‘中文’,88),
(903,‘中文’,95),
(904,‘計算機’,70),
(904,‘英語’,92),
(905,‘英語’,94),
(906,‘計算機’,90),
(906,‘英語’,85);

3.查詢student表的所有記錄
select * from student;

4.查詢student表的第2條到第4條記錄
select * from student limit 1,3;

5.從student表查詢所有學生的學號、姓名和院系信息
select id,name,department from student;

6.從student表中查詢計算機系和英語系的學生的信息
select *
from student
where department in (‘計算機系’,‘英語系’);

7.從student表中查詢年齡18~22歲的學生信息
select *
from student
where 2018-birth between 18 and 22;

8.從student表中查詢每個院系有多少人
select department,count(department)
from student
group by department;

9.從score表中查詢每個科目的最高分
select c_name,max(grade)
from score
group by c_name;

10.查詢李四的考試科目和考試成績
select c_name,grade
from score
where stu_id in (select id from student where name=‘李四’);

11.用連接的方式查詢所有學生的信息和考試信息
select a.*,b.c_name,b.grade
from student a,score b
where a.id=b.stu_id
order by a.id;

12.計算每個學生的總成績
select stu_id,count(c_name),sum(grade)
from score
group by stu_id;

13.計算每個考試科目的平均成績
select c_name,avg(grade)
from score
group by c_name;

14.查詢計算機成績低於95的學生信息
select *
from student
where id in (select stu_id from score where c_name=‘計算機’ and grade<95);

15.查詢同時參加計算機和英語考試的學生的信息
select *
from student
where id in (select a.stu_id from score a,score b where a.stu_id=b.stu_id and a.c_name=‘計算機’ and b.c_name=‘英語’);

16.將計算機考試成績按從高到低排序
select stu_id,grade
from score
where c_name=‘計算機’
order by grade desc;

17.從student表和score表中查詢出學生的學號,然後合併查詢結果
select id from student
union
select stu_id from score;

18.查詢姓張或者姓王的同學的姓名、院系和考試科目及成績
select a.name,a.department,b.c_name,b.grade
from student a,score b
where a.id=b.stu_id and a.name regexp ‘1’;
題意 張、王必須爲姓,即以其中之一開頭

19.查詢都是湖南的學生的姓名、年齡、院系和考試科目及成績
select a.name,2018-a.birth as age,a.department,b.c_name,b.grade


  1. 張王 ↩︎

發佈了14 篇原創文章 · 獲贊 21 · 訪問量 993
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章