单表⽆条件和有条件查询的SQL语句话不多说,直接上实验4 简单查询—单表⽆条件和有条件查询的SQL语句------------
(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 null;
(15) 查询所有姓“刘”的学⽣信息。
SELECT * FROM students WHERE sname LIKE '刘%';
(16) 查询⽣源地不是“⼭东”省的学⽣信息。
SELECT * FROM students WHERE bplace not LIKE '%⼭东%';
(17) 查询成绩为79分、89分或69分的记录。sql语句查询不包含
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;
五、观察与思考
1、LIKE的通配符有哪些?分别代表什么含义?
答:①% 有零个或更多个字符组成的任意字符串
②_ 任意单个字符
③[ ] ⽤于指定范围,例如[A ~ F],表⽰A ~ F范围内的任何单个字符[ ^ ] 表⽰指定范围之外的,例如[ ^A ~ F ],表⽰A ~ F 范围以外的任何单个字符。
2、知道学⽣的出⽣⽇期,如何求出其年龄?
答:YEAR(NOW())-YEAR(出⽣⽇期)
3、IS能⽤“=”来代替吗?如何周全地考虑“空数据”的情况?
答:不可以,is是⽤来判断null的,=是⽤来⽐较值的。给个默认值。
4、关键字ALL和DISTINCT有什么不同的含义?关键字ALL是否可以省略不写?
答:ALL表⽰所有的字段,查有重复的2条,2条都显⽰。DISTINCT表⽰如果有重复的,只取⼀条(过滤)。可以省略,但是在UNION⼦句⾥建议不要省略。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。