MYSQL的简单查询
1.創建學生成績(xscj)數據庫,在數據庫中創建student、course、score、teachers四張數據表。
create database xscj; use xscj; CREATE TABLE student ( s_no bigint(11) UNSIGNED NOT NULL AUTO_INCREMENT unique key comment'學生學號', s_name VARCHAR(50)NOT NULL comment'學生姓名', s_sex VARCHAR(2) comment'性別', s_bir date comment'出生日期', phone VARCHAR(13) unique key comment'電話', email VARCHAR(50) unique key comment'電子郵箱', PRIMARY KEY(s_no) ); CREATE TABLE score ( s_no bigint(11) UNSIGNED NOT NULL comment'學生學號' , c_no VARCHAR(13) NOT NULL DEFAULT ' ' comment'課程編號', daily float comment'平時成績', final float comment'結業成績', primary key(s_no,c_no) ); CREATE TABLE course ( c_no CHAR(13) NOT NULL DEFAULT ' ' comment'課程編號', c_name VARCHAR(50) NULL comment'課程名稱', t_no CHAR(10) NOT NULL DEFAULT ' ' comment'教師編號', hour float null comment'學分' , week int(2) null comment'教學周', semeste int(1) null comment'開課學期', PRIMARY KEY(t_no,c_no) ); CREATE TABLE teacher ( t_no char(30)NOT NULL COMMENT '教師號', t_name varchar(30)NOT NULL COMMENT '教師姓名', major char(30) NULL COMMENT '專業', prof char(30) NULL COMMENT '職稱', department char(30) COMMENT'院系部門', PRIMARY KEY(t_no) );2.插入數據
INSERTINTO `student` VALUES('18122221320', '張凱', '男', '2001/5/6', '13245678547', '36451@qq.com'),('18122221321', '趙峰', '男', '1999/5/4', '13945678548', 'ABTHE@SOHU.COM'),('18122221322', '王偉', '男', '2003/8/9', '13245678549', '45SSEEE@163.COM'),('18122221323', '李成', '男', '2001/9/12', '13245678550', '78962@qq.com'),('18122221324', '趙曉月', '女', '2002/12/4', '13545678551', '3232459@qq.com'),('18122221325', '王俊鑫', '男', '2003/4/7', '13845678552', '8989456@qq.com'),('18137221506', '王楓', '男', '2001/10/5', '13645678553', 'WSWS4875@SOHU.COM'),('18137221507', '李浩', '男', '2000/11/23', '13888128558', '46SSEEE@163.COM'),('18137221508', '孫琳', '女', '2002/5/1', '13522078555', '124578@qq.com'),('19112100070', '陳晨', '男', '2003/4/8', '13243271256', '457822SW@SOHU.COM'),('19112100071', '吳司', '男', '1999/12/4', '13244673357', 'JEUD@163.COM'),('19112100072', '李珊', '女', '1998/12/25', '13955089958', '78451@qq.com'),('19112100073', '錢峰', '男', '2000/4/1', '13945322359', 'BBBTIH@SOHU.COM'),('19112100074', '張雯', '女', '2000/12/3', '13545612360', 'SSSMOU@163.COM'); INSERTINTO `score` VALUES('18122221320', 'c08123', '85', '95'),('18122221320', 'a01564', '88', '93'),('18122221320', 'C06108', '92', '90'),('18122221321', 'c08123', '85', '94'),('18122221321', 'C06108', '70', '82'),('18122221322', 'c08123', '60', '64'),('18122221322', 'a01327', '53', '50'),('18122221322', 'a01564', '64', '50'),('18122221323', 'a01564', '88', '84'),('18122221323', 'C05103', '85', '86'),('18122221324', 'c08123', '77', '81'),('18122221324', 'C05103', '95', '86'),('18122221325', 'C05103', '88', '92'); INSERTINTO `course` VALUES('c08123', '數據庫技術', 't07019', '4', '16', '4'),('c08123', '數據庫技術', 't03117', '4', '16', '4'),('C06108', '數據結構', 't07019', '4', '16', '3'),('C06108', '數據結構', 't01247', '4', '16', '3'),('C05103', '計算機原理', 't01247', '4', '16', '2'),('C05103', '計算機原理', 't03117', '4', '16', '2'),('a01327', '高等數學', 't00458', '4', '16', '2'),('a01327', '高等數學', 't00578', '4', '16', '2'),('a01564', '馬克思原理', 't04410', '2', '12', '1'),('a01564', '馬克思原理', 't04115', '2', '12', '1'); INSERTINTO `teacher` VALUES('t01247', '程瑞', '軟件工程', '副教授', '計算機學院'),('t07019', '劉澤', '軟件工程', '講師', '軟件學院'),('t04213', '汪凌靈', '網絡技術', '副教授', '計算機學院'),('t04115', '劉珊', '哲學', '講師', '人文學院'),('t00458', '李澤峰', '數學', '助教', '基礎課程學院'),('t00578', '張倫', '數學', '講師', '基礎課程學院'),('t02145', '王樂', '英語', '助教', '基礎課程學院'),('t04410', '王偉', '哲學', '副教授', '人文學院'),('t03117', '孫艷', '軟件工程', '講師', '軟件學院');3.實驗操作過程
(1)、select...from...where基本子句的使用。
①在student表中查詢出生日期在2003年以前的學生的學號、姓名、電話和年齡;
select s_no,s_name,phone,s_bir FROM student where s_bir<20030101;②在score表中查詢結業成績高于90分的學生的學號和課程號,并按照學號排序;
select s_no,c_no FROM score where final>90 order by s_no ASC;③查詢學號分別為18122221324、18137221508和19112100072學生的課程號、平時成績和結業成績;
select s_no,c_no,daily,final FROM score where s_no=18122221324 AND 18137221508 AND 19112100071;?④查詢選修課程號為c08123的學生的學號和結業成績,并且要求平時成績在85~100分;
select s_no,final FROM score where c_no='c08123' AND daily>= 85 AND daily<=100;⑤在 student表中顯示所有姓趙的學生的姓名、生日和電子郵件;
select s_name,s_bir,email FROM student where s_name LIKE '趙%';⑥在 score表中顯示結業成績高于90分的學生的學號、課程號和結業成績;
select s_no,c_no,final FROM score where final>=90;⑦查詢計算機學院專業為“軟件工程”或“網絡技術”的教師的教師號、姓名和職稱。
select t_no,t_name,prof FROM teacher where department='計算機學院' AND(major='軟件工程'||major='網絡技術');4. 排序、分組和限定記錄的查詢
①在student表中輸出在“2002-12-4”年前出生的的學生的學號、姓名、出生日期和電話,并按照“出生日期”的降序排列。
select s_no,s_name,s_bir,phone FROM student where s_bir<20021202 order by s_bir DESC;②在score表中查詢總評成績大于85分的學生的學號、課程號和總評成績,并先按照課程號的升序、再按照總評成績的降序排列。總評成績計算公式如下:總評成績=daily*0.2+final*0.8;
select s_no,c_no,daily*0.2+final*0.8 FROM score where daily*0.2+final*0.8>85 order by daily*0.2+final*0.8 DESC;③利用 group by子句對 score表數據分組,顯示每個學生的學號和平均總評成績??傇u成績計算公式如下:總評成績=daily*0.3+final*0.7;
select s_no,AVG(daily*0.3+final*0.7),daily*0.3+final*0.7 FROM score where s_no group by s_no ;④使用group by關鍵字對score表中的c_no字段進行分組查詢。可以查看每門課程平時成績的平均分和總分。
select s_no,c_no,AVG(daily),sum(daily) FROM score group by c_no;⑤查詢選課在2門以上且各門課程結業成績均高于85分的學生的學號及其總成績,查詢結果按總成績降序列出;總成績=sum( daily*0.3+final*0.7)。
select s_no,sum(daily*0.3+final*0.7) FROM score where final>85 group by s_no HAVING count(c_no>2);
⑥查詢 score表中結業成績 final高于90分的成績,按照平時成績 daily進行升序排列,從編號1開始,查詢3條記錄。
select * FROM score where final>90 order by daily ASC LIMIT 1,3;3.聚合函數的應用
①查詢score表中學生的總結業成績大于275分的學生學號、總結業成績及平均結業成績;
select s_no,AVG(final),SUM(final) FROM score group by s_no HAVING SUM(final)>275;?②查詢選修課程號為c05103的學生的結業成績最高分、最低分及之間相差的分數;
select c_no,MAX(final),MIN(final),MAX(final)-MIN(final)FROM score where c_no='c05103';③查詢 score表中每個學生的平時成績和結業成績的平均分、總分。
select s_no,AVG(daily),AVG(final),SUM(daily),SUM(final) FROM score group by s_no ;?
總結
以上是生活随笔為你收集整理的MYSQL的简单查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机电脑显卡基础知识,基础电脑显卡知识
- 下一篇: 终端定制行业分销初步设计