作业2024 3-24 (查询练习)
(1) 查询所有学生的基本信息、所有课程的基本信息和所有学生的成绩信息(用三条SQL语句)。
SELECT * FROM students; SELECT * FROM course;SELECT * FROM sc;
(2) 查询所有学生的学号、姓名、性别和出生日期。
SELECT sno,sname,ssex,bday FROM students;
(3) 查询所有课程的课程名称。
SELECT cname as 课程名称 FROM course;
(4) 查询前10门课程的课号及课程名称。
SELECT cno,cname FROM course LIMIT 0,10;
(5) 查询所有学生的姓名及年龄,要求结果中列名显示中文。
SELECT sname as 学生姓名,YEAR(NOW())-YEAR(bday) as 学生年龄 FROM students;
(6) 查询所有年龄小于20岁的女生的学号和姓名。
SELECT sno,sname,bday FROM students WHERE ssex='女' AND YEAR(NOW())-YEAR(bday)<20;
(7) 查询所有男生的信息。
SELECT * FROM students WHERE ssex='男';
(8) 查询所有任课教师的姓名(Tname)和所在系别(Tdept)。
SELECT tname,tdept FROM teachers;
(9) 查询“信息学院”的学生姓名、性别和出生日期。
SELECT sname,ssex,bday FROM students WHERE sdept='信息学院';
(10) 查询Students表中的所有系名,要求结果中系名不重复。
SELECT DISTINCT sdept FROM students;
(11) 查询“0000010”课程的课名、先修课号和学分。
SELECT cname,cpno,ccredit FROM course WHERE cno='0000010';
(12) 查询成绩在80~90分之间的选课成绩情况。
SELECT * FROM sc WHERE score>=80 and score<=90;
(13) 查询在1970年1月1日之前出生的男教师信息。
SELECT * FROM teachers WHERE YEAR(tbirthday)<1970 and tsex='男';
(14) 输出有成绩的学生学号和课号。
SELECT sno,cno FROM sc WHERE score IS not null;
(15) 查询所有姓“刘”的学生信息。
SELECT * FROM students WHERE sname LIKE '刘%';
(16) 查询生源地不是“山东”省的学生信息。
SELECT * FROM students WHERE bplace not LIKE '%山东%';
(17) 查询成绩为79分、89分或69分的记录。
SELECT * FROM sc WHERE score=79 OR score=89 OR score=69;
(18) 查询名字中含有“明”字的男生的学生姓名和班级。
SELECT sname,class FROM students WHERE ssex='男' AND sname LIKE '%明%';
(19) 查询名称以“DB_”开头的课程名称。
SELECT cname FROM course WHERE cname like 'DB%';
(20) 查询非信息学院和机电学院的学生信息。
SELECT * FROM students WHERE sdept not LIKE'%信息%' and sdept not in('信息学院','机电学院');
(21) *查询名字中第二个字是“小”或“晓”字的男生的学生姓名和地址。
select sname,bplace from students where ssex='男' and (sname like '_小%' or sname like '_晓%');
(22) 查询姓名是两个字的学生信息。
SELECT * FROM students WHERE sname LIKE'__';
(23) 查询学生表中没有联系电话的学生信息。
SELECT * FROM students WHERE phone IS null;
普通查询
SELECT //加列表名
FROM //来自哪个表
WHERE //加相关查询语句
// WHERE test BETWEEN 60 AND 70 //小的必须写在前面
// WHERE sname like '王%' // 查询 姓王的所有人 %为通配符
正则表达式
SELECT *
FROM //来自那个表
WHERE saddress REGEXP '^云' //查找开头为 云 的所有地址
WHERE saddress REGEXP '$云' //查找尾部为 云 的所有地址
查询学生人数:
SELECT COUNT(*) FROM 表名; //统计有多少行
求平均值:
SELECT AVG(列名) //最大值 MAX MIN
FROM SC
WHERE cno = '课程号'