创建教材中的三张表格,并输入相应的数据

Create table student(
Sno char(9),
Same char(20),
Ssex char(2),
Sage smallint,
Sdept char(20)
);
Create table course(
Cno char(4),
Cname char(40),
Cpno char(4),
Ccredit smallint
);
Create table sc(
Sno char(9),
Cno char(4),
Grade smallint
);
Insert into student values(‘200215121’,’李勇’,’男’,20,’cs’);
Insert into student values(‘200215122’,’刘晨’,’女’,19,’cs’);
Insert into student values(‘200215123’,’王敏’,’女’,18,’ma’);
Insert into student values(‘200515124’,’张立’,’男’,19,’is’);
Insert into course values (‘1’,’数据库’,’5’,4);
Insert into course values (‘2’,’数学’,NULL,2);
Insert into course values(‘3’,’信息系统’,’1’,4);
Insert into course values(‘4’,’操作系统’,’6’,3);
Insert into course values(‘5’,’数据结构’,’7’,4);
Insert into course values(‘6’,’数据处理’,NULL,2);
Insert into course values(‘7’,’pascal语言’,’6’,4);
Insert into sc values(‘200215121’,’1’,92);
Insert into sc values(‘200215121’,’2’,85);
Insert into sc values(‘200215121’,’3’,88);
Insert into sc values(‘200215122’,’2’,90);
Insert into sc values(‘200215122’,’3’,80);

查询语句1:

1.  列出所有不姓李的所有学生;

select *FROMStudent

where SnameNOTLIKE
'李%'

2.  列出姓“张”且全名为2个汉字的学生

select *FROMStudent

where SnameLIKE'张_'

3.  显示在1993年以后出生的学生的基本信息;

select *FROMStudent

where Sage<2015-1993

4.  查询出课程名含有“数据”字串的所有课程基本信息;

select *FromCourse

where CnameLIKE'%数据%'

5.  列出选修了‘1’课程的学生学号,按成绩的降序排列;

select SnoFROMSC

where Cno='1'ORDERBY
Grade DESC

6.  列出课程表中全部信息,按先修课的升序排列;

select *FROMCourse
ORDER BY
CpnoASC

7.  列出年龄超过平均值的所有学生名单,按年龄的降序显示;

select *FROMStudent

where Sage>(SELECTAVG(Sage)

FROM Student)ORDERBY
Sage DESC

8.  按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及院系,在结果集中列标题分别指定为“学号,姓名,性别,出生年份,院系”;

select Sno学号,Sname
姓名,Ssex性别,2014-Sage出生年月,Sdept院系

FROM StudentORDERBY 2014-SageASC

9.  按照课程号、成绩降序显示课程成绩在80-90之间的学生的学号、课程号及成绩

selectSno,Cno,GradeFROMSC

where Gradebetween 80AND 90ORDER
BY Cno
DESC,GradeDESC

10.显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为“学生总人数,平均年龄”;

select
COUNT(DISTINCTSno)学生总人数,AVG(Sage)平均年龄

FROM Student

11.显示选修的课程数大于2的各个学生的选修课程数;

select Sno学号,COUNT(Sno)选修课程数

FROM SCGROUPBYSno
HAVING COUNT(*)>2

12.显示平均成绩大于“2002151022”学生平均成绩的各个学生的学号、平均成绩;

select Sno,AVG(Grade)

from
SC

Group
by Sno

having
AVG(Grade)>(selectAVG(Grade)fromSC

where Sno='200215122')

查询语句2:

1、查询所有学生的Sname、Cname和Grade列。

SELECT Sname,Cname,Grade

FROM
Student,Course,SC

where
Student.Sno=SC.SnoandSC.Cno=Course.Cno;

2、查询所有选修“数据库”课程的同学的成绩。

SELECT Student.Sno,Sname,Cname,Grade

FROM
Student,Course,SC

where
Cname='数据库'ANDCourse.Cno=sc.CnoANDStudent.Sno=sc.Sno;

 

3、查询和“李勇”同性别的同学Sname.

SELECT x.SnameFROMStudentx

where
x.Ssex=(selectSsexFROM
Student y
WHEREy.Sname='李勇')ANDx.Sname!='李勇'

 

4、查询所有同学的基本情况和选课情况,包括未选课的同学。

/* SELECTStudent.*,SC.* FROM Student,SC where Student.Sno=sc.Sno */

SELECT Student.*,SC.*

FROM
StudentLEFT OUTERJOINSC
ON(Student.Sno=SC.Sno)

5、查询选修1号课程且成绩高于90分的同学的名字。

SELECT SnameFROMStudent,SC

WHERE
Student.Sno=sc.SnoANDCno='1'ANDGrade>90

6、查询和学号为200215121的同学相同年龄的所有学生的Sno、Sname列。

由于该题学号为200215121时,没有其他同学与他年龄相同,故实验中把学号改为200215122。查询结果包括“刘晨”自己。

SELECT x.Sno,x.SnameFROMStudent
x

where
x.Sage=(SELECTy.SageFROMStudent
y WHERE
y.Sno='200215122')

7、查询刘晨同学所有的成绩。

SELECT Sname,Cno,Grade

FROM
Student,SC

where
Student.Sname='刘晨'ANDStudent.Sno=Sc.Sno

8、查询非计算机系的不超过计算机系所有学生的年龄的学生姓名。

SELECT x.SnameFROMStudentx

WHERE
x.Sage<(SELECTMIN(y.Sage)

FROM
Studenty WHEREy.Sdept='CS')ANDx.Sdept!='CS'

查询语句3

1 、使用带IN谓词的子查询

(1)   查询与刘晨在同一个系学习的学生的学号和性名。

select Sno,SnameFROM
Student

WHERE
SdeptIN(SELECTSdept
From Student
WHERE Sname='刘晨')

AND Sname!='刘晨'

(2)   查询选修了数据库课程的学生的学号和姓名。

SELECT Sno,SnameFrom
Student

WHERE
SnoIN(SELECTSno
From SC
WHERE Cno

IN(SELECTCno
FROM Course
WHERE CnameIN('数据库')))

(3)   查询选修了1号课程和2号课程的学生的学号和姓名。

SELECT Sno,SnameFROM
Student

WHERE
SnoIN(SELECTSno
FROM SC
WHERE CnoIN('1','2'))

2 、使用带比较运算的子查询

(4)   查询比男生平均年龄小的所有学生的信息。

SELECT *FROM
Student /*因为AVG是采取舍去计数,故要加等号*/

WHERE
Sage<=(SELECTAVG(Sage)FROM
Student WHERE
Ssex='男')

(5)   查询比王敏年龄大的所有学生的信息。

SELECT *FROM
Student

WHERE
Sage>(SELECTSage
FROM Student
WHERE Sname='王敏')

3 、使用带有ANY,ALL谓词的子查询

(6)   查询其它系中比计算机系CS所有学生年龄都要小的学生姓名和年龄。

SELECT Sname,SageFROM
Student

WHERE
Sdept!='CS'

AND
Sage<=ALL(SELECTSage
FROM Student
WHERE Sdept='CS')

(7)   查询与计算机系所有学生的年龄均不同的学生学号,姓名和年龄

SELECT Sno,Sname,SageFROM
Student

WHERE Sage!=ALL(SELECTSage
FROM Student
WHERE Sdept='CS')

4 、使用带Exists谓词的子查询和相关子查询

(8)   查询选修了数据库的学生的姓名和学号

SELECT Sname,SnoFROM
Student

WHERE
EXISTS(SELECT*
FROM SC

WHERE
Student.Sno=SnoAND
Cno

IN(SELECTCno
FROM Course
WHERE Cname='数据库'))

(9)   查询没有选修数据库的学生姓名和学号

SELECT Sname,SnoFROM
Student

WHERE
NOTEXISTS(SELECT*
FROM SC

WHERE
Student.Sno=SnoAND
Cno

IN(SELECTCno
FROM Course
WHERE Cname='数据库'))

(10)查询所有选修了1号课程的学生姓名。

SELECT SnameFROM
Student

WHERE
EXISTS(SELECT *FROM
SC

WHERE
Student.Sno=SnoAND
Cno='1')

(11)查询没有人选修的课程的课程号和课程名。

SELECT Cno,CnameFROM
Course

WHERE
NOTEXISTS(SELECT*
FROM SC
WHERE Course.Cno=Cno)

数据库 简单查询 Sql Server 学生表 课程表 选课表的更多相关文章

  1. sql server 很好的基础练习 <学生表-老师表-课程表-选课表>

    表结构 --学生表tblStudent(编号StuId.姓名StuName.年龄StuAge.性别StuSex) --课程表tblCourse(课程编号CourseId.课程名称CourseName. ...

  2. SQL Server 基础之《学生表-教师表-课程表-选课表》(二)

    表结构 --学生表tblStudent(编号StuId.姓名StuName.年龄StuAge.性别StuSex) --课程表tblCourse(课程编号CourseId.课程名称CourseName. ...

  3. SQL Server 基础之《学生表-教师表-课程表-选课表》

    一.数据库表结构及数据 建表 CREATE TABLE Student ( S# INT, Sname ), Sage INT, Ssex ) ) CREATE TABLE Course ( C# I ...

  4. SQL Server 基础之《学生表-教师表-课程表-选课表》(一)

    数据库表结构及数据 建表 CREATE TABLE Student ( S# INT, Sname ), Sage INT, Ssex ) ) CREATE TABLE Course ( C# INT ...

  5. 查询Sql Server数据库对象结构

    查询Sql Server数据库对象结构 查询数据库 查询架构 查询表 查询列 查询存储过程 查询视图 1.查询某一服务器下所有数据库 select t.[name] as 数据库 from sys.d ...

  6. sql server 复制表从一个数据库到另一个数据库

    sql server 复制表从一个数据库到另一个数据库 /*不同服务器数据库之间的数据操作*/ --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQL ...

  7. 【SQL Server高可用性】数据库复制:SQL Server 2008R2中通过数据库复制,把A表的数据复制到B表

    原文:[SQL Server高可用性]数据库复制:SQL Server 2008R2中通过数据库复制,把A表的数据复制到B表 经常在论坛中看到有人问数据同步的技术,如果只是同步少量的表,那么可以考虑使 ...

  8. SQL Server 锁表、查询被锁表、解锁相关语句

    SQL Server 锁表.查询被锁表.解锁相关语句,供参考. --锁表(其它事务不能读.更新.删除) BEGIN TRAN SELECT * FROM <表名> WITH(TABLOCK ...

  9. Sql Server 判断表或数据库是否存在

    发布:thebaby   来源:脚本学堂     [大 中 小] 本文详细介绍了,在sql server中判断数据库或表是否存在的方法,有理论有实例,有需要的朋友可以参考下,一定有帮助的.原文地址:h ...

随机推荐

  1. spring集成PHPRPC及使用

    PHPRPC,它的商业版本是Hprose.这里仅记录其使用方法.其它相关内容可自行搜索. 对于开源的东西,建议大家看看其源码. 1.需要引入的jar包:phprpc_spring.jar,http:/ ...

  2. iOS项目工程添加.a文件遇到的Dsymutil Error

    将.a文件加入工程,很多教程讲的都是: 右键选择Add->Existing Files…,选择.a文件和相应的.h头文件.或者将这两个文件拖入XCode工程目录结构中,在弹出的界面中勾选Copy ...

  3. Jmeter3.0-插件管理

    本文转自推酷:http://www.tuicool.com/articles/UV7fI3V JMeter ,老牌,开源,轻量,Apache基金会的顶级项目,光是这些关键字就足以让大量用户将其纳入自己 ...

  4. 【SpringMVC学习10】SpringMVC对RESTfull的支持

    RESTful架构,就是目前流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用.RESTful架构对url进行规范,写RESTful格式的url是什么样子 ...

  5. centos安装pip Xvfb Selenium

    pip安装命令: python -V wget https://bootstrap.pypa.io/get-pip.py python get-pip.py Xvfb安装命令: yum install ...

  6. Android文章收藏

     Android集 1.Himi李华明的<Android游戏开发专栏>http://blog.csdn.net/column/details/androidgame.html2.老罗的&l ...

  7. Qt录音机

    近期做项目, 须要一个麦克风音量监听的功能: 找了好多这方面的资料, 不知道为什么 总之非常少, 在此总结一下, 发贴一枚.. \ watermark/2/text/aHR0cDovL2Jsb2cuY ...

  8. iOS SDWebImage Error Domain=NSURLErrorDomain Code=-1202 “此服务器的证书无效

    sdwebImage 加载网络图片的时候,如果使用的https证书未经过认证,或者证书有问题,会出现Error Domain=NSURLErrorDomain Code=-1202 "此服务 ...

  9. mysql 5.7 迁移数据方案

    从一台服务器迁移至其他服务器,如何选择最短的停服时间方案 方案一.凌晨3点的全备份+停服后一天的大概一天的增备 1. 拷贝前一天的全备份至新的服务器 rsync -auzrP /Data/dbbak/ ...

  10. laravel学习之路3 数据库相关

    读写分离之多个读? 有 'host' => $readHosts[array_rand($readHosts)], 上面的好像有缓存问题php artisan config:cache ] ); ...