mysql查詢語句練習

來源:互聯網
上載者:User

標籤:

來源:http://blog.sina.com.cn/s/blog_767d65530101861c.html

 

 Sutdent表的定義

欄位名

欄位描述

資料類型

主鍵

外鍵

非空

唯一

自增

Id

學號

INT(10)

Name

姓名

VARCHAR(20)

Sex

性別

VARCHAR(4)

Birth

出生年份

YEAR

Department

院系

VARCHAR(20)

Address

家庭住址

VARCHAR(50)

 

Score表的定義

欄位名

欄位描述

資料類型

主鍵

外鍵

非空

唯一

自增

Id

編號

INT(10)

Stu_id

學號

INT(10)

C_name

課程名

VARCHAR(20)

Grade

分數

INT(10)

 

1.建立student和score表

CREATE  TABLE  student (

id  INT(10)  NOT NULL  UNIQUE  PRIMARY KEY  ,

name  VARCHAR(20)  NOT NULL ,

sex  VARCHAR(4)  ,

birth  YEAR,

department  VARCHAR(20) ,

address  VARCHAR(50) 

);

建立score表。SQL代碼如下:

CREATE  TABLE  score (

id  INT(10)  NOT NULL  UNIQUE  PRIMARY KEY  AUTO_INCREMENT ,

stu_id  INT(10)  NOT NULL ,

c_name  VARCHAR(20) ,

grade  INT(10)

);

2.為student表和score表增加記錄

向student表插入記錄的INSERT語句如下:

INSERT INTO student VALUES( 901,‘張老大‘, ‘男‘,1985,‘電腦系‘, ‘北京市海澱區‘);

INSERT INTO student VALUES( 902,‘張老二‘, ‘男‘,1986,‘中文系‘, ‘北京市昌平區‘);

INSERT INTO student VALUES( 903,‘張三‘, ‘女‘,1990,‘中文系‘, ‘湖南省永州市‘);

INSERT INTO student VALUES( 904,‘李四‘, ‘男‘,1990,‘英語系‘, ‘遼寧省阜新市‘);

INSERT INTO student VALUES( 905,‘王五‘, ‘女‘,1991,‘英語系‘, ‘福建省廈門市‘);

INSERT INTO student VALUES( 906,‘王六‘, ‘男‘,1988,‘電腦系‘, ‘湖南省衡陽市‘);

向score表插入記錄的INSERT語句如下:

INSERT INTO score VALUES(NULL,901, ‘電腦‘,98);

INSERT INTO score VALUES(NULL,901, ‘英語‘, 80);

INSERT INTO score VALUES(NULL,902, ‘電腦‘,65);

INSERT INTO score VALUES(NULL,902, ‘中文‘,88);

INSERT INTO score VALUES(NULL,903, ‘中文‘,95);

INSERT INTO score VALUES(NULL,904, ‘電腦‘,70);

INSERT INTO score VALUES(NULL,904, ‘英語‘,92);

INSERT INTO score VALUES(NULL,905, ‘英語‘,94);

INSERT INTO score VALUES(NULL,906, ‘電腦‘,90);

INSERT INTO score VALUES(NULL,906, ‘英語‘,85);

 

 

DEMO:

1.查詢student表的所有記錄

select * from student;

2.查詢student表的第2條到4條記錄

select * from student LIMIT 1,3;

3.從student表查詢所有學生的學號(id)、姓名(name)和院系(department)的資訊

select id,name,department from student;

4.從student表中查詢電腦系和英語系的學生的資訊

select * from student

where department =‘電腦系‘ or department=‘英語系‘;

select * from student

where department in (‘電腦系‘,‘英語系‘);

5.從student表中查詢年齡18~22歲的學生資訊

select * from student

where 2013-birth BETWEEN 18 and 22;

6.從student表中查詢每個院系有多少人 

select department,count(id)

from student

GROUP BY department;

7.從score表中查詢每個科目的最高分

select c_name,MAX(grade) from score GROUP BY c_name;

8.查詢李四的考試科目(c_name)和考試成績(grade)

select c_name,grade from score

where stu_id =(

 SELECT id from student where name =‘李四‘

);

9.用串連的方式查詢所有學生的資訊和考試資訊

SELECT s.id,s.name,s.sex,s.birth,s.department,s.address,sc.c_name,sc.grade

from student s,score sc

where s.id = sc.stu_id;

10.計算每個學生的總成績

select stu_id,SUM(grade) from score GROUP BY stu_id;

11.計算每個考試科目的平均成績

select c_name,AVG(grade) from score GROUP BY c_name;

12.查詢電腦成績低於95的學生資訊

select * from student s

WHERE s.id in(

 SELECT stu_id from score where c_name=‘電腦‘ and grade<95

);

13.查詢同時參加電腦和英語考試的學生的資訊

select * from student s

WHERE s.id IN (

 SELECT stu_id from score

 where c_name=‘電腦‘ AND stu_id IN (

  select stu_id from score WHERE c_name =‘英語‘

 )

);

select s.* from student s,score s1,score s2

where s.id = s1.stu_id

and s1.c_name=‘電腦‘

and s.id = s2.stu_id

AND s2.c_name=‘英語‘;

14.將電腦考試成績按從高到低進行排序

select s.name,sc.grade from student s,score sc

where s.id = sc.stu_id

and sc.c_name =‘電腦‘

ORDER BY sc.grade desc;

15.從student表和score表中查詢出學生的學號,然後合并查詢結果

select s.id from student s

union select stu_id from score;

16.查詢姓張或者姓王的同學的姓名、院系和考試科目及成績

select s.name,s.department,sc.c_name,sc.grade from student s,score sc

where s.id = sc.stu_id

and s.name LIKE ‘張%‘ or s.name Like ‘王%‘;

17.查詢都是湖南的學生的姓名、年齡、院系和考試科目及成績

select s.name,s.department,sc.c_name,sc.grade from student s,score sc

where s.id = sc.stu_id

and s.address Like ‘湖南%‘;

mysql查詢語句練習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.