sql语句实验-给学生 下载本文

内容发布更新时间 : 2025/4/9 15:04:49星期一 下面是文章的全部内容请认真阅读。

SELECT查询语句格式:

SELECT select_list

[INTO new_table_name] FROM table_list [WHERE conditions]

[GROUP BY group_by_list] [HAVING search_conditions]

[ORDER BY order_list [ASC | DESC] ]

1.查询StudentInfo表中所有的学生的详细信息,SQL代码如下所示:

SELECT *

FROM StudentInfo

2.查询StudentInfo表中所有学生的学号、姓名、系别、专业等信息,SQL代码如下所示:

SELECT sno,sname,depart,major FROM StudentInfo

3.查询全体学生的学号、姓名及年龄信息,SQL代码如下所示:

SELECT Sno,Sname,Year(GETDATE())-Year(Birthday) FROM StudentInfo

注:YEAR(日期)函数的作用是返回日期的年份,GETDATE()函数的作用是返回系统日期和时间。

4.查询全体学生的学号、姓名及年龄信息,并且为年龄列定义别名为“Age”。SQL代码如下所示:

SELECT Sno,Sname,Year(GETDATE())-Year(Birthday) Age FROM StudentInfo

5.查询有学生选修的教学计划的教学计划号。SQL代码如下所示:

SELECT TeachTaskID FROM SC

6.查询有学生选修的教学计划的教学计划号,并去掉重复行。SQL代码如下所示: SELECT DISTINCT TeachTaskID FROM SC 注意观察以上两条语句执行结果的差别。

7.查询StudentInfo表中学号为201001903029的学生的详细信息,SQL代码如下所示: SELECT *

FROM StudentInfo

WHERE Sno='201001903029'

8.查询出生年月在1991-03-15日以后的学生的详细信息,SQL代码如下所示: SELECT *

FROM StudentInfo

where Birthday>'1991-03-15'

9.查询成绩在70-80之间的学生的学号及教务任务号等信息,SQL代码如下所示: SELECT TeachTaskID,Sno,Grade FROM SC

WHERE Grade BETWEEN 70 and 80 注意:BETWEEN 70 and 80包含70和80。

10.查询不是计算机系和服装系学生的姓名、性别和专业,SQL代码如下所示: SELECT Sname,Sex,Depart,Major FROM StudentInfo

WHERE Depart not in('计算机系','服装系')

11.查询2009-2010学年第1学期学生选课的学生号、课程号及成绩,SQL代码如下所示:

SELECT Sno,SUBSTRING(TeachTaskID ,15,6) as Cno,Grade FROM SC

WHERE TeachTaskID like ' 09-2010-1%' 注意:SQL Server 2008中SUBSTRING函数的函数原型为:

SUBSTRING ( value_expression ,start_expression , length_expression )

其作用是返回字符串value_expression中从start_expression位置开始的length_expression个字符。如果start_expression小于零,会返回错误;如果start_expression大于value_expression的长度,则返回零长度的表达式。

12.查询名字最后一个字为“娟”,且名字为三个字的学生详细信息,SQL代码如下所示:

SELECT *

FROM StudentInfo

WHERE Sname like '__娟'

注意:'__娟'中,娟前为两个下划线,中间没有空格。在SQL Server 2008中,数据类型nvarchar是按字符存储的,即nvarchar(20)能存储20个中文字符。而数据类型varchar是按字节存储的,即varchar(20)能存储20个字节长度的字符,而存储中文时1个字符占用两个字节,因此只能存储10个中文字符。在SQL Server 2008中,通配符“_”表示任意单个字符,不管单个字符是按字符存储还是按字节存储。因此表StudentInfo中Sname的数据类型为不管是nvarchar还是varchar,名字最后一个字为“娟”且名字为三个字的表示方法都是“__娟”,即娟前有两个下划线。

13.查询 CourseInfo表中没有先行课的课程号与课程名称,SQL代码如下所示:

SELECT cno,cname FROM CourseInfo

WHERE cpno is null

14.查询在计算机系的女学生的详细信息。SQL代码如下所示: SELECT * FROM StudentInfo

WHERE Depart='计算机系' and Sex='女'

15.查询是教授或者是博士的教师详细信息。SQL代码如下所示:

SELECT * FROM TeacherInfo

WHERE ProfTitle ='教授' or Degree ='博士'

16.查询在2009-2010年第2学期,选修140176课程的学生学号及成绩,查询结果按成绩降序排列。SQL代码如下所示:

SELECT Sno,Grade FROM SC

WHERE TeachTaskID like '(2009-2010-2)-140176%' ORDER BY Grade DESC 注意观察ORDER BY的作用。

17.查询计算机系学生的总人数,SQL代码如下所示: SELECT COUNT(*) as 人数 FROM StudentInfo WHERE Depart ='计算机系'

18.查询在2009-2010年第2学期,选修140176课程中的最高分,SQL代码如下所示: SELECT MAX(Grade) FROM SC

WHERE TeachTaskID like '(2009-2010-2)-140176%' 19.查询各教学计划号及相应的选课人数,SQL代码如下所示 SELECT TeachTaskID ,COUNT(Sno) as 人数 FROM SC

GROUP BY TeachTaskID 20.查询在2009-2010年第2学期选修了2门以上课程的学生学号,SQL代码如下所示: SELECT Sno FROM SC

WHERE TeachTaskID like '(2009-2010-2)%' GROUP BY Sno

HAVING COUNT(*)>=2

Insert 语句格式

INSERT [INTO] table_name [colunm_list] VALUES(data_values)

1.插入一条学生记录,具体内容如下:

(201001903066,李斯,男,1990-6-6,计算机系,网络工程,4) SQL代码如下所示:

INSERT

INTO StudentInfo (sno,sname,sex,birthday,depart,major,lengsch)

values ('201001903066','李斯','男', '1990-6-6','计算机系','网络工程',4) 或者

INSERT

INTO StudentInfo

values ('201001903066','李斯','男', '1990-6-6','计算机系','网络工程',4) 2.插入一条学生记录,具体内容如下:

学号:201001903066,姓名:李根,其余信息待定。 SQL代码如下所示:

INSERT

INTO StudentInfo (sno,sname) values ('201001903068','李根') 或者

INSERT

INTO StudentInfo (sname,sno) values ('李根','201001903068') 或者 INSERT