精华内容
下载资源
问答
  • sqlserver练习题
    2022-08-20 19:46:51

    使用SQL语句对表结果的修改

    1向学生表中增加身高(指定数值型,3位2位小数),出生日期,是否党员,是否团员四列

    使用命令:

    alter table 学生表 add 身高 numeric(3,2),出生日期 smalldatetime,是否党员 nchar(1),是否团员 nchar(1)

    2删除是否团员一列

    使用命令:

    alter table 学生表 drop column 是否团员

    3把身高列的宽度增加一位

    使用命令:

    alter table 学生表  alter column 身高 numeric(4,2)

    4为手机号列增加约束:必须为11位,且每位为数字;为性别列增加一个约束,插入新记录时默认值为’男’

    使用命令:

    alter table 学生表 add constraint 电话号码约束 check(手机号 like '[1][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')

    alter table 学生表 add constraint 性别约束 default '男' for 性别

    5向课程表中增加”任课教师”列

    使用命令:

    alter table 课程表 add   任课教师 nchar(4)

    6对已有表,增加约束,限制身高在1.00-2.0米之间

    使用命令:

    alter table 学生表 add constraint 身高约束 check(身高<=2.0 and 身高>=1.00)

    7对课程表中的课程名称进行唯一限制

    使用命令:

    alter table 课程表 add constraint 课程名称约束 unique(课程名称)

    对表中数据的修改

    添加数据内容

     使用insert into 命令在以上三表中各录入有效数据至少5行。 引例:向成绩表中插入一个学生的一门课成绩:Insert into 成绩表(学号,课程号,成绩) values (‘0000001’,’D102’,78)

    使用命令:

    学生表数据:

     insert into  学生表(学号,姓名,专业名,性别,入校成绩,手机号,备注,照片,身高,出生日期,是否党员)

    values(3120200902,'小铭唐','计算机科学与技术','女',247,'13739422174','英语不好','无',1.65, 2001-2-1 ,'否'),

    课程表

    insert into 课程表 (课程号,课程名称,任课老师,学分,任课教师)values('D003','高等数学A','徐丽',5,'徐丽老师'),

    成绩表

    insert into 成绩表 (学号,课程号,成绩)values ('3120200902','D002',55)

     自己想法操作数据,验证以上建立的各种约束,结果如截图所示

    insert into 学生表 (学号,姓名,专业名,性别,入校成绩,手机号,备注,身高,出生日期,是否党员)

    values ('3120200916','肖敏','软工','男',456,'289000765@1','爱说话',1.42,'2001-1-1','是')

     

    insert into 学生表 (学号,姓名,专业名,性别,入校成绩,手机号,备注,身高,出生日期,是否党员)

    values ('3120200916','肖敏','软工','男',456,'13289000765','爱说话',2.42,'2001-1-1','是')

    insert into 课程表(课程号,课程名称,任课老师,学分,任课教师)

    values('D125','C++','王小明',4.5,'王小明')

    说明:在表间参照完整性中,如果想实现级联删除,即如:删除学生表中的某个同学时,则成绩表中该外键对应的成绩记录会自动删除。可以这样实现:

    Create table 成绩表(学号 char(7) ,课程号 char(3), 成绩 tinyint,

    Foreign key(学号) references 学生表(学号) on  delete cascade   )

    更多相关内容
  • SQL Server练习题

    2018-05-07 22:10:28
    sql简单练习题,主要是SQL语言查询操作,涉及到select 等等相关语句,初学者的练习资料
  • sqlserver练习题

    2013-05-22 23:35:27
    这是一道sql练习题 涉及两张表的 可以练习一下 没答案的哦!
  • sqlserver练习题3资源
  • SQL Server 练习题(初学)

    万次阅读 多人点赞 2020-12-04 20:06:05
    use 练习 go insert into 图书(条形码,书名,作者,出版社,出版日期,售价) values ('TP303.5','大学计算机基础','李凯','科学出版社',2018-10-7,50) insert into 图书(条形码,书名,作者,出版社,出版日期,售价) values ...

    一、前言

    新学了一门《数据库原理及应用》,布置了一些基础题目,互相学习,不排除所学有限,仍有最优解的情况。

    二、准备

    SQL Server 现有的版本应该是都可以用的
    下载相关可以参考 SQL Server2019的下载与安装

    三、练习

    SQL Server 实例二(更进一步,包括多表连接查询,嵌套查询(子查询),集合查询以及数据更新的简单例子)

    1.创建练习题目的数据库(新建查询)

    下面关于日期的数据类型由 datetime 改为 date 更合适一些,其他的影响不太大,仅供参考。

    create database 练习
    go
    use 练习
    go
    create table 读者
    (
    	账号 char(4) not null primary key,
    	姓名 varchar(6) not null,
    	性别 char(2) check (性别 in ('男','女')), 
    	等级 varchar(8) check (等级 in ('黄金','青铜','白银','最强王者')),
    	出生日期 datetime not null,
    	余额 money not null
    )
    go
    insert into 读者(账号,姓名,性别,等级,出生日期,余额) values ('D001','陈诚瑞','男','黄金',1988-7-11,200)
    insert into 读者(账号,姓名,性别,等级,出生日期,余额) values ('D002','郭彩霞','女','白银',1987-1-4,500)
    insert into 读者(账号,姓名,性别,等级,出生日期,余额) values ('D003','王新英','女','青铜',1978-9-21,20)
    insert into 读者(账号,姓名,性别,等级,出生日期,余额) values ('D004','范鼎毅','男','最强王者',1995-4-1,1000)
    insert into 读者(账号,姓名,性别,等级,出生日期,余额) values ('D005','钟鸣','女','青铜',2000-4-21,100)
    insert into 读者(账号,姓名,性别,等级,出生日期,余额) values ('D006','王协瑞','男','白银',1990-7-14,800)
    go
    create table 图书
    (
    	条形码 varchar(7) not null primary key,
    	书名 varchar(20) not null,
    	作者 varchar(6) not null,
    	出版社 varchar(20),
    	出版日期 datetime,
    	售价 money not null
    )
    go
    insert into 图书(条形码,书名,作者,出版社,出版日期,售价) values ('TP303.5','大学计算机基础','李凯','科学出版社',2018-10-7,50)
    insert into 图书(条形码,书名,作者,出版社,出版日期,售价) values ('TP304.1','数据库技术及应用','郭栋阳','高教出版社',2017-6-16,42.6)
    insert into 图书(条形码,书名,作者,出版社,出版日期,售价) values ('TP213.5','七彩课堂','朱五书','河北教育出版社',2019-11-8,31.8)
    insert into 图书(条形码,书名,作者,出版社,出版日期,售价) values ('TP204.2','钩针编织基础','寿玉梅','科学出版社',2015-9-18,56)
    insert into 图书(条形码,书名,作者,出版社,出版日期,售价) values ('TP305.5','C语言程序设计','谭森','高教出版社',2014-1-12,48.5)
    insert into 图书(条形码,书名,作者,出版社,出版日期,售价) values ('TP305.6','VB程序设计','钟鸣','人民邮电出版社',2014-7-11,44.6)
    go
    create table 借阅
    (
    	账号 char(4) not null,
    	条形码 varchar(7) not null,
    	借书日期 datetime not null,
    	还书日期 datetime not null
    	primary key(账号,条形码),
    	foreign key(账号)references 读者(账号),
    	foreign key(条形码)references 图书(条形码),
    )
    go
    insert into 借阅(账号,条形码,借书日期,还书日期) values ('D001','TP303.5',2018-8-2,2018-10-7)
    insert into 借阅(账号,条形码,借书日期,还书日期) values ('D001','TP304.1',2017-3-18,2017-6-16)
    insert into 借阅(账号,条形码,借书日期,还书日期) values ('D005','TP303.5',2019-10-3,2019-11-8)
    insert into 借阅(账号,条形码,借书日期,还书日期) values ('D002','TP204.2',2015-6-6,2015-9-18)
    insert into 借阅(账号,条形码,借书日期,还书日期) values ('D002','TP305.5',2013-12-4,2014-1-12)
    insert into 借阅(账号,条形码,借书日期,还书日期) values ('D003','TP305.6',2014-5-1,2014-7-11)
    insert into 借阅(账号,条形码,借书日期,还书日期) values ('D003','TP304.1',2020-1-2,2020-3-11)
    
    

    建好的表如下:

    • 图书表
    • 借阅表
    • 读者表

    2.练习题

    在这里插入图片描述

    1.新建查询时注意是在 ‘练习’ 数据库中,可以直接在框里选中需要的数据库,也可以在最前面插一条
    use 练习 go
    2.我们在敲完之后可以自我检验看语法是否通过
    3.在执行语句后,如果不确定答案,在符合现实的情况下,可以看看基表,自己比对比对,人工找一下符合条件的结果。如果要查看表的内容,选中要看的表,右键编辑前200行即可。
    4.可能数据库跟不上你的速度,刷新即可,有时候已经打开了一个表,当更新了数据后,刷新后也没变化,叉掉打开的表,重新打开这张表就好。
    5.对于一些数据更新的题目,建议单独搞一个表练手,对新表进行操作。

    • 1.查询图书表中售价介于50元到70元之间的图书的全部信息
    SELECT *
    FROM 图书
    WHERE 售价 BETWEEN 50 AND 70
    

    在这里插入图片描述

    • 2.查询图书表中全部图书的最高售价、最低售价和平均售价。
    SELECT MAX(售价) 最高售价,MIN(售价) 最低售价,AVG(售价) 平均售价
    FROM 图书
    
    

    在这里插入图片描述

    • 3.查询图书的条形码,书名,出版社和出版日期,要求结果按出版社升序排列,出版社相同的数据按出版日期降序排列
    SELECT 条形码,书名,出版社,出版日期
    FROM 图书
    ORDER BY 出版社,出版日期 DESC
    

    在这里插入图片描述

    • 4.在图书表中插入一条记录,内容是:条形码“TP211.3”,书名“狼图腾”,作者“姜戎”,售价 44.5元
    INSERT INTO 图书(条形码,书名,作者,售价)
    VALUES ('TP211.3','狼图腾','姜戎',44.5)
    

    在这里插入图片描述

    • 5.通过图书表,读者表和借阅表,查询读者的借阅情况,要求结果中包含以下字段:账号,姓名,条形码,书名,借书日期和还书日期。
    SELECT 借阅.账号,姓名,图书.条形码,书名,借书日期,还书日期
    FROM 图书 INNER JOIN(借阅 INNER JOIN 读者 ON 借阅.账号 = 读者.账号)
    ON 图书.条形码 = 借阅.条形码
    

    在这里插入图片描述

    • 6.在读者表中查询所有等级为“白银”的读者的余额之和。
    SELECT SUM(余额) 白银读者余额之和
    FROM 读者
    WHERE 等级 = '白银'
    

    在这里插入图片描述

    • 7.通过读者和借阅表,查询读者信息,包括以下字段:账号,姓名,性别,条形码,借书日期和还书日期
    select 读者.账号,姓名,性别,条形码,借书日期,还书日期
    from 读者 inner join 借阅
    on 读者.账号 = 借阅.账号
    

    在这里插入图片描述

    • 8.查询图书表中有哪些出版社,要求结果没有重复值
    SELECT DISTINCT 出版社
    FROM 图书
    

    在这里插入图片描述

    • 9.将图书表中条形码为TP204.2的图书信息删除
    delete 
    from 图书
    where 条形码 = 'TP204.2'
    
    • 10.在读者表中,查询男女性读者各多少人。
    select 性别,count(性别) 人数
    from 读者
    group by 性别
    

    在这里插入图片描述

    • 11.在读者表中查询不同等级各自的人数,结果按人数降序排列。(降序的关键字是desc)
    select 等级,count(*)as 人数
    from 读者
    group by 等级
    order by 人数 desc
    

    在这里插入图片描述

    • 12.查询图书表中条形码左边开始三个字符是“TP3”的图书的全部信息
    select *
    from 图书
    where 条形码 like 'TP3%'
    

    在这里插入图片描述

    • 13.将图书表中科学出版社出版的图书价格上涨5%。
    UPDATE 图书
    SET 售价 = 售价 * 1.05
    WHERE 出版社 = '科学出版社'
    

    在这里插入图片描述

    • 14.查询图书表中科学出版社出版的价格在50元以上的图书的信息,要求结果中包括书名,作者,出版社和售价4列。(不包括50元)
    SELECT 书名,作者,出版社,售价
    FROM 图书
    WHERE 图书.售价 > 50 and 出版社 = '科学出版社'
    

    在这里插入图片描述

    • 15.使用IN子句查询所有‘科学出版社’和‘高教出版社’的书名,作者,售价。
    SELECT 书名,作者,售价
    FROM 图书
    WHERE 出版社 in ( '科学出版社','高教出版社')
    

    在这里插入图片描述

    • 16.在读者表中查询余额最高的读者的全部信息。
      提示:请使用嵌套查询作答,不能用top
    select * 
    from 读者
    where 余额 >=all(select max(余额)from 读者)
    

    在这里插入图片描述

    • 17.根据读者表和借阅表,查询没有借书记录的读者的账号和姓名。提示:使用“带有NOT IN的嵌套查询”
    select 账号,姓名 
    from 读者 
    where 账号 not in (select 账号 from 借阅 where 借阅.账号=读者.账号)
    

    在这里插入图片描述

    • 18.通过图书表和借阅表,查询哪本书没有被借阅过,显示它的条形码,书名和作者信息 提示:使用“带IN的嵌套查询”
    select 条形码,书名,作者
    from 图书
    where 条形码 not in (select 条形码 from 借阅 where 借阅.条形码=图书.条形码)
    

    在这里插入图片描述

    展开全文
  • SQL Server练习题答案

    2018-05-07 22:11:45
    SQL练习题的配套答案,配合练习题使用加深对SQL查询的理解
  • SQL Server 练习题三 一选择题 1. 如果将某一列设置为表的主键则在表中此列的值 A可以出现重复值 B允许为空值 C不允许为空值也不能出现重复值 D不允许为空值但允许列值重复 2. 下面语句中哪种语句用来修改视图 A...
  • 题目 1 问题描述 为管理岗位业务培训信息建立 3 个表 : S (S,SN,SD,SA) S,SN,SD,SA 分别代表学号学员姓名所属单位学员...1. 使用标准 SQL 嵌套语句查询选修课程名称为 税收基础 的学员学号和姓名 -- 实现代码 SELECT SN
  • SQL server练习题

    2011-01-20 15:55:44
    1.用一条SQL语句 查询出每门课都大于80分的学生姓名 name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 81 王五 数学 100 王五 英语 90 A: select distinct name from table ...
  • 题目1 问题描述 为管理岗位业务培训信息建立3个表: S(S,SN,SD,SA?S,SN,SD,SA?...S,C,G?S,C,G?... 使用标准SQL嵌套语句查询选修课程名称为税收基础的学员学号和姓名 --实现代码 SELECT?SN,SD?FROM?S WHERE?
  • sql server练习题

    2008-07-10 13:43:27
    学习链表查询的练习题
  • SQL-Server练习题

    2021-10-12 21:50:11
    创建表命令使用 CREATE DATABASE stsc ON PRIMARY ( /* NAME is filespec: filespec 指定的文件的逻辑文件名 逻辑文件名--数据库文件在... filename='G:\SQLServer\Data\database-20210928\stsc.mdf', /* S...
    1. 创建表命令使用

      CREATE DATABASE stsc
      ON PRIMARY (
          /*
          NAME is filespec: filespec 指定的文件的逻辑文件名
          逻辑文件名--数据库文件在数据库中显示的名字
          */
          name=coderitl_datafile,
          /* 主数据文件存储路径 name.mdf */
          filename='G:\SQLServer\Data\database-20210928\stsc.mdf',
          /* SIZE: 指定 filespec 定义的文件的初始大小 */
          size=10mb,
          /* MAXSIZE:指定 filespec 定义文件的最大大小 */
          maxsize = 50mb, filegrowth = 5mb )
      
      log ON (
         name=coderit_log,
         filename='G:\SQLServer\Data\database-20210928\stsc.ldf',
         SIZE=5mb,
         maxsize=25mb,
         filegrowth=5mb
      ) ;
      
    2. 使用T-SQL命令,为stsc数据库创建教材P388所示的studentcoursescoreteacher数据表结构。

      use stsc;
      
      -- 创建表 student 
      create table student(
      	/* 学号 */
      	sno char(6) not null primary key,
      	/* 姓名 */
      	sname char(8)  not null,
      	/* 性别  */
      	stsex char(2) not null,
      	/* 出生日期 */
      	stbirthday date not null,
      	/* 专业 */
      	speciality char(12),
      	/* 总学分 */
      	tc int 
      );
      
      -- 创建表 course
      create table course(
      	-- 课程号
      	cno char(3) not null primary key,
      	-- 课程名
      	cname char(16)  not null,
      	-- 学分
      	credit int ,
      	-- 教师号
      	tno char(6)
      );
      
      
      -- 创建表 score
      create table score(
      	-- 学号
      	stno char(6) not null,
      	-- 课程号
      	cno char(3)  ,
      	-- 成绩
      	grade int ,
      	-- 添加联合主键
      	primary key(stno,cno)
      );
      
      -- 创建表 teacher 
      
      create table teacher(
      	-- 教师号
      	tno char(6) not null,
      	-- 姓名
      	tname char(8)  not null,
      	-- 性别 
      	tsex char(2) not null,
      	-- 出生日期
      	tbirthday date not null,
      	-- 职称
      	title char(12) ,
      	-- 学院名
      	school char(12),
      );
      
      
    3. 使用T-SQL命令,为stsc数据库的student表添加Email字段,类型为char(20)

      use stsc
      go
      ALTER TABLE student
      	ADD Email char(20) NOT NULL;
      
    4. 使用T-SQL命令,在stsc数据库中修改course表的credit字段类型,改为float

      USE stsc
      GO
      ALTER TABLE course
      	ALTER COLUMN credit float;
      
    5. 使用T-SQL命令,在stsc数据库中删除student表的email字段

      USE stsc
      GO
      ALTER TABLE student
      	DROP COLUMN email;
      
    6. SSMS图形界面向stsc数据库中的studentcoursescore表插入数据,(表中数据如P389

      student:
          INSERT INTO student VALUES ('121001', '李贤友', '男', '1991-12-30', '通信', 52);
          INSERT INTO student VALUES ('121002', '周映雪', '女', '1993-01-12', '通信', 49);
          INSERT INTO student VALUES ('121005', '刘刚', '男', '1992-07-05', '通信', 50);
          INSERT INTO student VALUES ('122001', '郭德纲', '男', '1991-10-23', '计算机', 48);
          INSERT INTO student VALUES ('122002', '谢暄', '女', '1992-09-11', '计算机', 52);
          INSERT INTO student VALUES ('122004', '孙婷', '女', '1991-02-24', '计算机', 50);	
      
      course:
          INSERT INTO course VALUES ('102', '数字电路', 3, '102101');
          INSERT INTO course VALUES ('203', '数据库系统', 3, '204101');
          INSERT INTO course VALUES ('205', '微机原理', 4, '204107');
          INSERT INTO course VALUES ('208', '计算机原理', 4, NULL);
          INSERT INTO course VALUES ('801', '高等数学', 4, '801102');
      
      score:
      	INSERT INTO score VALUES ('121001', '102', 92);
      	INSERT INTO score VALUES ('121002', '102', 72);
      	INSERT INTO score VALUES ('121005', '102', 87);
      	INSERT INTO score VALUES ('122002', '203', 94);
      	INSERT INTO score VALUES ('122004', '203', 81);
      	INSERT INTO score VALUES ('121001', '205', 91);
      	INSERT INTO score VALUES ('121002', '205', 65);
          INSERT INTO score VALUES ('121005', '205', 85);
          INSERT INTO score VALUES ('121001', '801', 94);
          INSERT INTO score VALUES ('121002', '801', 73);
          INSERT INTO score VALUES ('121005', '801', 82);
          INSERT INTO score VALUES ('122001', '801', NULL);
          INSERT INTO score VALUES ('122002', '801', 95);
          INSERT INTO score VALUES ('122004', '801', 86); 
      
      
    7. Insert语句向stsc数据库中的teacher数据表插入数据(表中数据如P389

      Teacher:  	
      	INSERT INTO teacher VALUES ('102101', '刘林卓', '男', '1962-03-21', '教授', '通信学院');	
      	INSERT INTO teacher VALUES ('102105', '周学莉', '女', '1977-10-05', '讲师', '通信学院');	
      	INSERT INTO teacher VALUES ('204101', '吴波', '男', '1978-04-26', '教授', '计算机学院');	
      	INSERT INTO teacher VALUES ('204107', '王冬琴', '女', '1968-11-18', '副教授', '计算机学院');	
      	INSERT INTO teacher VALUES ('801102', '李伟', '男', '1975-08-19', '副教授', '数学学院');
      
      
    • 新增练习
    	/* 1. 将李贤友同学的出生日期改为‘1995-4-5’。*/
    	UPDATE student
    	SET stbirthday = '1995-4-5'
    	WHERE sname = '李贤友';
    
    • 输出:
      在这里插入图片描述
    	-- 2. 在teacher表添加一名老师的信息: 通信学院,张丽,女,教授,教师号:102103,出生日期:1977-8-7。
    	INSERT INTO teacher ( school, tname, tsex, title, tno, tbirthday)
    	VALUES ( '通信学院', '张丽', '女', '教授', '102103', '1977-8-7');
    
    • 输出:
      在这里插入图片描述
    	-- 3.   删除张丽老师的信息。
    	DELETE
    	FROM teacher
    	WHERE tname = '张丽';
    
    • 输出:
      在这里插入图片描述
    	-- 4.   查询student表中总分大于或等于50分的学生情况。
    	SELECT *
    	FROM student
    	WHERE tc >= 50;
    
    • 输出:
      在这里插入图片描述
    	-- 5. 查询谢暄的“高等数学”成绩。
    	SELECT sname, grade
    	FROM student stu
    	        INNER JOIN score ON stu.sno = score.stno
    	        INNER JOIN course ON score.cno = course.cno
    	WHERE stu.sname = '谢暄'
    	 AND cname = '高等数学';
    
    • 输出:
      在这里插入图片描述
    	-- 6. 查找选修了“数字电路”的学生的姓名及成绩,并按成绩降序排列。
    	SELECT sname, grade
    	FROM student stu
    	        INNER JOIN score ON stu.sno = score.stno
    	        INNER JOIN course ON score.cno = course.cno
    	WHERE cname = '数字电路'
    	ORDER BY grade DESC;
    
    • 输出:
      在这里插入图片描述
    -- 7.   查询学号为121001的学生的所有课程的平均成绩。
    	use stsc
    	go
    	SELECT count(*) AS "leanCourse",avg(grade) AS "allCourseAvgScore", stu.stno
    	FROM student stu
    	       INNER JOIN score ON stu.stno = score.stno
    	WHERE stu.stno = '121001'
    	GROUP BY stu.stno;
    
    • 输出:
      在这里插入图片描述
    -- 8.   查找“数据库系统”和“微机原理”的平均成绩。
    	SELECT cname, avg(grade) AS "Avg"
    	FROM score
    	        INNER JOIN course ON score.cno = course.cno
    	WHERE cname in ('数据库系统','微机原理')
    	GROUP BY cname;
    
    • 输出:
      在这里插入图片描述
    	9. 查询每个专业最高分的课程名和分数。
    	-- 查询课程名
    	SELECT max(grade) AS "grade",cname
    	FROM course
    	INNER JOIN score
    	ON course.cno = score.cno
    	INNER JOIN student stu
    	ON stu.sno = score.stno
    	WHERE speciality IN
    	-- 查询专业
    	(SELECT DISTINCT student.speciality
    	FROM student)
    	AND grade IN
    	-- 查询最大成绩
    	(SELECT max(grade) AS "grade"
    	FROM student
    	INNER JOIN score
    	ON student.sno = score.stno
    	GROUP BY speciality)
    	GROUP BY cname;
    
    • 输出:
      在这里插入图片描述
    	-- 10. 查询通信专业最高分的学生的学号、姓名、课程号和分数。
    	
    	select sno, sname, c.cno, grade,speciality
    	from student
    	        inner join score sc on sno = stno
    	        inner join
    	    course c on c.cno = sc.cno
    	where grade = (select max(grade)
    	              from student
    	                       inner join score sc on sno = stno
    	                       inner join
    	                   course c on c.cno = sc.cno
    	              where speciality = '通信')
    	  and  speciality = '通信';
    	-------------------------------------------------------------------------------
    	/* 临时解决方法: 创建一个视图 */
    	create view getMaxGradeInfo as
    	SELECT sno
    	    , sname
    	    , score.cno
    	    , grade
    	    , cname
    	    , speciality
    	FROM student stu
    	        INNER JOIN score ON stu.sno = score.stno
    	        INNER JOIN course ON score.cno = course.cno
    	WHERE speciality = '通信'
    	GROUP BY sno, sname, score.cno, cname, grade, speciality;
    	
    	/* 临时解决方案 */
    	select top 1 max(grade) as 'MaxGrade',sno, sname, cno, grade
    	from getMaxGradeInfo
    	group by sno, sname, cno, grade;
    
    • 输出:
      在这里插入图片描述
    	-- 11. 查询有两门以上(含两门)课程超过 80 分的学生的姓名及其平均成绩。
    	SELECT count(*) as 'TCourse', avg(grade) as 'Avg', sname
    	FROM student stu
    	        inner join score on
    	   score.stno = stu.sno
    	        inner join course on score.cno = course.cno
    	where grade > 80
    	group by sname
    	having count(*) > 2;
    
    • 输出:
      在这里插入图片描述
    	-- 12.查询选修了所有已安排任课教师的课程的学生的姓名。
    	use stsc
    	go
    	SELECT sname
    	FROM student
    	WHERE NOT EXISTS(SELECT *
                    FROM course
                    WHERE NOT EXISTS(
                            SELECT *
                            FROM score sc
                            WHERE sc.stno = Student.sno
                              AND sc.Cno = course.cno));    
    
    展开全文
  • SQLserver数据库习题.doc

    2021-12-29 20:13:12
    数据库技术练习题一、单选题1.视图是一个“虚表”,视图的构造基于( c )。 A.基本表 B.视图 C.基本表或视图 D.数据字典2.在使用 SELECT 语句查询时,若要去掉查询结果中的重复记录,应该使用关键字( b )。 A....
  • Sql Server 数据库练习题1 1. 数据库基本操作 1.1 创建数据库(LMS) 1.2. 学生信息数据库(STU) 1. 数据库基本操作 1.1 创建数据库(LMS) 题目1: 创建一个数据库LMW,数据文件的逻辑名为LMW_Date,存放在D盘的...

    1. 数据库基本操作

    1.1 创建数据库(LMS)

    题目1: 创建一个数据库LMW,数据文件的逻辑名为LMW_Date,存放在D盘的sql server 2019文件夹下,文件名为LMW_Ddate.mdf,数据文件的初始存储大小为13MB,最大存储空间为40MB,存储空间自动增长量为3%;日志文件的逻辑名称为LMW_Log,存放在D盘的sql server 2019文件夹下,文件名为LMW_Log.ldf,初始存储空间大小为3MB,最大存储为40MB,存储空间的增长量为6%;

    SQL 代码如下所示:

    /*创建数据库LMW*/
    create database LMW
    on
    (name=LMW_Date,
    filename='D:\sql server 2019\LMW_Date.mdf',
    size=13MB,
    maxsize=40MB,
    filegrowth=3%)
    log on
    (name=LMW_Log,
    filename='D:\sql server 2019\LMW_Log.ldf',
    size=1MB,
    maxsize=40MB,
    filegrowth=6%)
    

    20220415

    题目2: 将数据库LMW的日志文件最大容量改为55MB;

    SQL 代码如下所示:

    /*将数据库LMW的日志文件最大容量改为55MB*/
    alter database LMW
    modify file
    (name=LMW_Date,
    maxsize=55MB)
    

    题目3: 将数据库LMW的名称改为LMQ;

    SQL 代码如下所示:

    /*将数据库LMW的名称改为LMQ*/
    alter database LMW
    modify name=LMQ
    

    20220415

    1.2. 学生信息数据库(STU)

    题目:
    20220415
    实现步骤如下所示:

    1. 先新建数据库 STU

    20220415
    2. 新建数据表(学生、课程、成绩)

    /*学生表*/
    create table 学生
    (ID varchar(10) primary key not null,
    Name nvarchar(20) not null,
    Sex nchar(1) default '男' not null,
    Class nvarchar(20) not null,
    Age int not null)
    
    /*课程表*/
    create table 课程
    (CN varchar(10) primary key not null,
    Cruse nvarchar(20) not null)
    
    /*成绩表*/
    create table 成绩
    (ID varchar(10) foreign key references 学生(ID),		/*将学生表中属性ID和课程表中的属性ID组合为主键/外键*/
    CN varchar(10) foreign key references 课程(CN),
    Mark numeric(4,1) check (Mark>=0 and Mark <=100)  not null,
    primary key (ID,CN))
    

    20220415注意: 新建数据表时注意左上角的数据库是不是你要使用的数据库,或在新建数据表中引用相对应的数据表(use <数据库>),这样就能确保在相对应数据库下进行操作;

    或者将两段代码写在一起也是可以的,如下所示:

    /*数据库STU*/
    create database STU
    on
    (name=STU_Date,
    filename='D:\sql server 2019\STU_Date.mdf')
    log on
    (name=STU_Log,
    filename='D:\sql server 2019\STU_Log.ldf')
    go			/*使用go将语句分批次执行*/
    use STU		/*引用数据库STU*/
    
    /*学生表*/
    create table 学生
    (ID varchar(10) primary key not null,
    Name nvarchar(20) not null,
    Sex nchar(1) default '男' not null,
    Class nvarchar(20) not null,
    Age int not null)
    
    /*课程表*/
    create table 课程
    (CN varchar(10) primary key not null,
    Cruse nvarchar(20) not null)
    
    /*成绩表*/
    create table 成绩
    (ID varchar(10) foreign key references 学生(ID),		/*将学生表中属性ID和课程表中的属性ID组合为主键/外键*/
    CN varchar(10) foreign key references 课程(CN),
    Mark numeric(4,1) check (Mark>=0 and Mark <=100)  not null,
    primary key (ID,CN))
    
    展开全文
  • sql server 练习题。没什么意义,只是为了保存我的个人数据
  • 最近复习了一遍数据库的知识以及相关的SQL查询语句,复习完找了一下网上常见的关于SQL练习题目,一共50,在这里记录一下,也当自己以后的复习使用。 数据准备 建表 总共4张表,包括学生、成绩、科目和教师,...
  • 要求实现如下5个处理: http://www.gaodaima.com/36144.htmlSQL Server 练习题1_sqlserver 1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名 2. 使用标准SQL嵌套语句查询选修课程编号为’C2’...
  • SQL Server 练习题

    2009-11-24 18:42:28
    上大三老师布置的,用的是sql server 2000
  • SqlServer练习题

    千次阅读 2017-08-29 16:31:44
    use hpCompany –第一部分–1. 选出部门30中的所有员工。 select * from emp where deptno = 30;–2.... select ename, empno, deptno from emp where job =’clerk’;–3....select * from emp wh
  • 这个适合初学SQLserver后,做一做项目,以提高自身能力,检验学习成效。
  • SQL SERVER练习题及答案2

    千次阅读 2021-01-06 09:52:26
    SQL SERVER 2009-07-11 21:59 阅读156 评论1 字号: 大大 中中 小小 一、选择(每1分,共25分) 1、 数据库、数据库系统以及数据库管理系统的英文缩写分别是__A__。 A、DB DBS DBMS B、DB DBMS DBS C、DBS DBMS ...
  • Sql Server练习题

    2008-11-10 19:45:23
    Sql Server练习题 Sql Server练习题 Sql Server练习题 Sql Server练习题
  • SQL SERVER 练习题

    2007-12-02 20:09:32
    SQL SERVER 练习题,提高写存储过程的能力

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,374
精华内容 2,949
关键字:

sqlserver练习题