一、建表的结构和数据,在sqlserver直接用就行了

面试题  数据库sql_数据库sql面试题  数据库sql_数据库sql_02

USE [test]
GO/****** Object:  Table [dbo].[TEACHER]    Script Date: 05/16/2018 16:27:24 ******/SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TEACHER](
    [T#] [int] NOT NULL,
    [TNAME] [nvarchar](50) NOT NULL,
PRIMARY KEY CLUSTERED 
(
    [T#] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
INSERT [dbo].[TEACHER] ([T#], [TNAME]) VALUES (50, N'李冰冰')
INSERT [dbo].[TEACHER] ([T#], [TNAME]) VALUES (51, N'黄一山')
INSERT [dbo].[TEACHER] ([T#], [TNAME]) VALUES (52, N'陈小春')
INSERT [dbo].[TEACHER] ([T#], [TNAME]) VALUES (53, N'赵铁柱')
INSERT [dbo].[TEACHER] ([T#], [TNAME]) VALUES (54, N'钱中书')
INSERT [dbo].[TEACHER] ([T#], [TNAME]) VALUES (55, N'孙悟空')
INSERT [dbo].[TEACHER] ([T#], [TNAME]) VALUES (56, N'李连杰')
INSERT [dbo].[TEACHER] ([T#], [TNAME]) VALUES (57, N'杨千嬅')
INSERT [dbo].[TEACHER] ([T#], [TNAME]) VALUES (58, N'泽日生')
INSERT [dbo].[TEACHER] ([T#], [TNAME]) VALUES (59, N'林夕')
INSERT [dbo].[TEACHER] ([T#], [TNAME]) VALUES (60, N'陈奕迅')
INSERT [dbo].[TEACHER] ([T#], [TNAME]) VALUES (61, N'刘备')/****** Object:  Table [dbo].[STUDENT]    Script Date: 05/16/2018 16:27:24 ******/SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[STUDENT](
    [S#] [int] NOT NULL,
    [SNAME] [nvarchar](50) NOT NULL,
    [SAGE] [int] NOT NULL,
    [SSEX] [char](2) NOT NULL,
PRIMARY KEY CLUSTERED 
(
    [S#] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[STUDENT] ([S#], [SNAME], [SAGE], [SSEX]) VALUES (1, N'小红', 10, N'女')
INSERT [dbo].[STUDENT] ([S#], [SNAME], [SAGE], [SSEX]) VALUES (2, N'小明', 12, N'男')
INSERT [dbo].[STUDENT] ([S#], [SNAME], [SAGE], [SSEX]) VALUES (3, N'小绿', 13, N'男')
INSERT [dbo].[STUDENT] ([S#], [SNAME], [SAGE], [SSEX]) VALUES (4, N'小蓝', 15, N'男')
INSERT [dbo].[STUDENT] ([S#], [SNAME], [SAGE], [SSEX]) VALUES (5, N'小青', 11, N'男')
INSERT [dbo].[STUDENT] ([S#], [SNAME], [SAGE], [SSEX]) VALUES (6, N'小白', 10, N'女')
INSERT [dbo].[STUDENT] ([S#], [SNAME], [SAGE], [SSEX]) VALUES (7, N'小紫', 14, N'女')
INSERT [dbo].[STUDENT] ([S#], [SNAME], [SAGE], [SSEX]) VALUES (8, N'小黄', 13, N'男')
INSERT [dbo].[STUDENT] ([S#], [SNAME], [SAGE], [SSEX]) VALUES (9, N'小粉', 12, N'女')
INSERT [dbo].[STUDENT] ([S#], [SNAME], [SAGE], [SSEX]) VALUES (10, N'小橙', 11, N'女')
INSERT [dbo].[STUDENT] ([S#], [SNAME], [SAGE], [SSEX]) VALUES (11, N'小黑', 9, N'男')
INSERT [dbo].[STUDENT] ([S#], [SNAME], [SAGE], [SSEX]) VALUES (12, N'小粉', 14, N'男')/****** Object:  Table [dbo].[SC]    Script Date: 05/16/2018 16:27:24 ******/SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SC](
    [S#] [int] NULL,
    [C#] [nvarchar](50) NULL,
    [SCORE] [int] NOT NULL
) ON [PRIMARY]
GO
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'111', 69)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'112', 80)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'113', 75)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'114', 79)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'115', 63)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'116', 90)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'117', 95)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'118', 77)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'119', 60)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'120', 83)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'121', 88)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'122', 75)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'123', 50)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'124', 44)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'125', 77)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'127', 79)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (1, N'128', 77)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'111', 77)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'112', 68)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'113', 76)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'114', 95)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'115', 90)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'116', 57)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'117', 99)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'118', 86)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'120', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'121', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'122', 82)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'123', 67)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'124', 69)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'125', 53)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'126', 64)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'127', 75)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (2, N'128', 71)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'111', 82)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'112', 67)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'113', 69)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'114', 44)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'115', 77)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'116', 98)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'117', 79)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'118', 77)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'119', 68)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'120', 76)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'121', 95)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'122', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'123', 82)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'124', 63)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'125', 90)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'126', 95)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'127', 77)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (3, N'128', 60)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'111', 77)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'112', 68)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'113', 76)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'114', 95)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'115', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'116', 82)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'117', 76)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'118', 95)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'119', 90)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'120', 57)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'121', 69)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'122', 80)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'123', 75)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'124', 79)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'125', 68)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'126', 54)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'127', 77)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (4, N'128', 90)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'111', 77)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'112', 98)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'113', 79)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'115', 68)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'116', 85)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'117', 83)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'118', 81)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'119', 95)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'120', 90)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'121', 57)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'122', 69)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'124', 75)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'125', 75)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'126', 70)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'127', 53)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (5, N'128', 50)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (6, N'113', 90)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (6, N'114', 57)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (6, N'115', 69)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (6, N'116', 80)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (6, N'117', 60)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (6, N'118', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (6, N'120', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (6, N'121', 76)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (6, N'122', 95)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (6, N'123', 90)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (6, N'124', 57)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (6, N'125', 69)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (6, N'126', 80)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (6, N'128', 74)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (7, N'111', 57)
GO
print 'Processed 100 total records'INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (7, N'112', 69)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (7, N'114', 60)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (7, N'115', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (7, N'116', 90)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (7, N'124', 57)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (7, N'125', 43)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (7, N'126', 65)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (7, N'127', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (7, N'128', 80)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'111', 71)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'112', 69)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'113', 77)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'114', 81)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'115', 95)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'116', 90)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'117', 57)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'119', 65)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'120', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'121', 80)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'122', 66)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'123', 80)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'124', 60)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'125', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'126', 90)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'127', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (8, N'128', 76)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (9, N'111', 68)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (9, N'112', 72)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (9, N'114', 45)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (9, N'115', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (9, N'116', 80)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (9, N'117', 66)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (9, N'118', 80)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (9, N'121', 92)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (9, N'122', 57)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (9, N'123', 69)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (9, N'124', 80)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (9, N'125', 60)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (9, N'126', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (9, N'127', 79)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'111', 71)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'112', 69)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'113', 77)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'114', 81)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'116', 96)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'117', 50)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'118', 40)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'119', 63)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'120', 92)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'121', 57)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'122', 69)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'123', 80)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'124', 62)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'125', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'127', 92)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (10, N'128', 73)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (11, N'124', 99)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (12, N'122', 100)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (12, N'126', 99)
INSERT [dbo].[SC] ([S#], [C#], [SCORE]) VALUES (12, N'124', 97)/****** Object:  Table [dbo].[COURSE]    Script Date: 05/16/2018 16:27:24 ******/SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[COURSE](
    [C#] [int] NOT NULL,
    [CNAME] [nvarchar](50) NOT NULL,
    [T#] [nvarchar](50) NOT NULL,
PRIMARY KEY CLUSTERED 
(
    [C#] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (111, N'语文1', N'50')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (112, N'语文2', N'51')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (113, N'数学1', N'52')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (114, N'数学2', N'53')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (115, N'英语1', N'54')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (116, N'英语2', N'55')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (117, N'生物1', N'56')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (118, N'生物2', N'57')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (119, N'物理1', N'58')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (120, N'物理2', N'59')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (121, N'化学1', N'60')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (122, N'化学2', N'61')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (123, N'政治1', N'50')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (124, N'政治2', N'54')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (125, N'历史1', N'58')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (126, N'历史2', N'53')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (127, N'地理1', N'56')
INSERT [dbo].[COURSE] ([C#], [CNAME], [T#]) VALUES (128, N'地理2', N'60')

View Code

二、表的数据截图

1、学生表 :学号、姓名、姓别

 面试题  数据库sql_数据库sql_03

2、教师表:编号,名称

面试题  数据库sql_数据库sql_04

3、课程表:课程编号、课程、老师编号

 面试题  数据库sql_数据库sql_05

4、分数表:学号、课程号、分数

面试题  数据库sql_数据库sql_06

5、数据准备好后正式开始题目

--1、查询“111”课程比“112”课程成绩高的所有学生的学号;/* EXISTS 版本 */SELECT t1.s#FROM sc t1WHERE t1.c# = 111 
  AND EXISTS (               SELECT 1               FROM sc t2               WHERE t2.c# = 112                 AND t1.s# = t2.s#  --要求同一个学生 所以有t1.s# = t2.s#                 AND t1.score > t2.score
             );/* 子查询版本 */SELECT a.s#FROM (SELECT t1.s#,t1.score FROM sc t1 WHERE t1.c# = 111) aINNER JOIN (SELECT t2.s#,t2.score FROM sc t2 WHERE t2.c# = 112) b  ON a.s# = b.s#WHERE a.score > b.score;--2、查询平均成绩大于60分的同学的学号和平均成绩;SELECT t1.s# AS ST_CODE,       AVG(t1.score) AS CU_AVGFROM sc t1GROUP BY t1.s#  HAVING AVG(t1.score) > 60  
--3、查询所有同学的学号、姓名、选课数、总成绩;/* group by 的时候要注意选出来的字段是不是都是聚合函数或者分组的字段 */SELECT t1.s# AS ST_DOCE,       MIN(t1.sname) AS ST_NAME,       COUNT(t2.c#)  AS CU_NUM,       SUM(t2.score) AS CU_SUMFROM STUDENT t1LEFT JOIN SC t2  ON t1.s# = t2.s#GROUP BY t1.s#--4、查询姓“李”的老师的个数;SELECT COUNT(t1.t#) AS 李_NUMFROM teacher t1WHERE t1.tname LIKE '李%'--5、查询没学过'陈奕迅'老师课的同学的学号、姓名;/* 一对多关系的就会出现比较坑爹的情况,记得用distinct并且要考虑是不是要做一个子查询 *//* 当正面来可能比较困难的时候就要反方面来进行 *//* EXISTS版 */SELECT t5.s# AS ST_CODE,
       t5.sname AS ST_NAMEFROM student t5WHERE NOT EXISTS (                   SELECT 1                   FROM (                          SELECT DISTINCT t1.s# AS ST_CODE,
                                          t1.sname AS ST_NAME,
                                          t4.tname                          FROM student t1                          LEFT JOIN sc t2                            ON t1.s# = t1.s#                          LEFT JOIN course t3                            ON t2.c# = t3.c#                          LEFT JOIN teacher t4                            ON t3.t# = t4.t#                          WHERE t4.tname = '陈奕迅'
                         )                   WHERE s# = t5.s#
                 );/* 子查询版 */SELECT t5.s# AS ST_CODE,
       t5.sname AS ST_NAMEFROM student t5WHERE t5. EXISTS (                   SELECT 1                   FROM (                          SELECT DISTINCT t1.s# AS ST_CODE,
                                          t1.sname AS ST_NAME,
                                          t4.tname                          FROM student t1                          LEFT JOIN sc t2                            ON t1.s# = t1.s#                          LEFT JOIN course t3                            ON t2.c# = t3.c#                          LEFT JOIN teacher t4                            ON t3.t# = t4.t#                          WHERE t4.tname = '陈奕迅'
                         )                   WHERE s# = t5.s#
                 );                 
--6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;--不能在where条件下面写WHERE t2.c# = 111 and t2.c# = 112 因为是对应同一条记录的SELECT DISTINCT t1.s#,t1.snameFROM student t1LEFT JOIN sc t2  ON t1.s# = t2.s#WHERE t2.c# = 111INTERSECT