自己珍藏的数据库基础练习题答案立华奏

题1: 用SQL语句创建如下三张表:学生(Student),课程表(Course),和学生选课表(SC),这三张表的结构如表1-1到表1-3所示。

表1-1 Student表结构列名 说明 数据类型 约束Sno 学号 字符串,长度为7 主码Sname 姓名 字符串,长度为10 非空Ssex 性别 字符串,长度为2 取‘男’或‘女’Sage 年龄 整数 取值15~45Sdept 所在系 字符串,长度为20 默认为‘计算机系’

create table Student( Sno char(7) primarykey, Sname char(10) not null, Ssex char(4) check(Ssex='男' or Ssex='女') , Sage number() check(Sage>=15 and Sage<=45), Sdept char(20) default('计算机系'));-------------------------------------------------------------------------------------------------------------------

表1-2Course表结构列名 说明 数据类型 约束Cno 课程号 字符串,长度为10 主码Cname 课程名 字符串,长度为20 非空Ccredit 学分 整数 取值大于0Semster 学期 整数 取值大于0Period 学时 整数 取值大于0

create table Course( Cno char(10) primarykey, Cname char(20) not null, Ccredit nuber() check(Ccredit>0) , Cemster number() check(Cemster>0), Period number() check(Period>0));-----------------------------------------------------------------------------------------------------------------

表1-3 SC表结构列名 说明 数据类型 约束Sno 学号 字符串,长度为7 主码,引用Student的外码Cno 课程名 字符串,长度为10 主码,引用CourseGrade 成绩 整数 取值0~100

create table SC( Sno char(7), Cno char(10), primary key(Sno,Cno), foreign key (Sno) references Student(Sno), foreign key (Cno) references.3 Course(Cno),

Grade number() check(Grade>=0 and Grade<=100)); -------------------------------------------------------------------------------------------------------------------

二,修改表结构

题2:为SC表添加“选课类别”列,此列的定义为XKLB char(4).alter SC set add XLB char(4) null;

题3:将新添加的XKLB的类型改为char(6)。alter table SC alter column XKLB char(6);

题4:删除Course表的Period列。alter from drop column Period;

三,数据查询功能

表3-1 Student表数据Sno Sname Ssex Sage Sdept9512101 李勇 男 19 计算机系9512102 刘晨 男 20 计算机系9512103 王敏 女 20 计算机系9521101 张立 男 22 信息系9521102 吴宾 女 21 信息系9521103 张海 男 20 信息系9531101 钱小平 女 18 数学系9531102 王大力 男 19 数学系

insert into Student(Sno,Sname,Ssex,Sage,Sdept)values('9512101','李勇','男',19,'计算机系';'9512102','刘晨','男',20,'计算机系';'9512103','王敏','女',20,'计算机系';'9521101','张立','男',22,'信息系';'9521102','吴宾','女','21','信息系';'9521103','张海','男',20,'信息系';'9531101','钱小平','女',18,'数学系';'9531102','王大力','男',19,'数学系')-------------------------------------------------------------------------------------------------------------------

表3-2 Course表数据Cno Cname Ccredit CemesterC01 计算机文化学 3 1C02 VB 2 3C03 计算机网络 4 7C04 数据库基础 6 6C05 高等数学 8 2C06 数据结构 5 4

insert into Course(Cno,Cname,Ccredit,Cemester) values('C01','计算机文化学',3,1;'C02','VB',2,3;'C03','计算机网络',4,7;'数据库基础',6,6;'C05','高等数学',8,2;'C06','数据结构',5,4)-------------------------------------------------------------------------------------------------------------------

表 3-3 SC表数据Sno Cno Grade XKLB9512101 c01 90 必修9512101 c02 86 选修9512101 c06 <NULL> 必修9512102 c02 78 选修9512102 c04 66 必修9521102 c01 82 选修9521102 c02 75 选修9521102 c04 92 必修9521102 c05 50 必修9521103 c02 68 选修9521103 c06 <NULL> 必修9531101 c01 80 选修9531101 c05 95 必修9531102 c05 85 必修

insert into SC values('9512101','c01',90,'必修';'9512101','c02',86,'选修';'9512101','c06',NULL,'必修';'9512102','c02',78,'选修';'9512102','c04',66,'必修';'9521102','c01',82,'选修';'9521102','c02',75,'选修';'9521102','c04',92,'必修';'9521102','c05',50,'必修';'9521103','c02',68,'选修';'9521103','c06',NULL,'必修';'9531101','c01',80,'选修';'9531101','c05',95,'必修';'9531102','c05',85,'必修')

insert into SC(Sno,Cno,Grade) values('9521102','C02',75,'选修')insert into SC values('9521102','C04',92,'必修')insert into SC values('9521102','C05',50,'必修')insert into SC values('9521103','C02',68,'选修')insert into SC values('9521103','C06',NULL,'必修')insert into SC values('9531101','C01',80,'选修')insert into SC values('9531101','C05',95,'必修')insert into SC values('9531102','C05',85,'必修')

-------------------------------------------------------------------------------------------------------------------

题5:用sql语句填写以上(表3-1 Student表数据、表3-2 Course表数据、表 3-3 SC表数据)数据。

题6:查询全体学生的学号与姓名。select Sno,Sname from Student;

题7:查询全体学生的姓名,学号和所在系。select Sno,Sname,Sdept from Student;

题8:查询全体学生的记录。

题9:查询全体学生的姓名及其出生年份。select Sname,2011-Sage as '出生年份';

题10:查询全体学生的姓名和出生年份,并在出生年份列前加入一个列,此列的每行数据均为“Year of Birth”常量值。select Sname,'出生年份',2011-Sage from Student;

题11:在选课表(SC)中查询有哪些学生选修了课程,并列出学生的学号。select distingct Sno from SC;

题12:查询计算机系全体学生的姓名。select Sname from Student where Sdept='计算机系';

题13:查询所有年龄在20岁以下的学生的姓名及年龄。slect Sname,Sage from Student where Sage<20;

题14:查询考试成绩不及格的学生的学号。select distingct Sno from SC where Grade <60;

题15:查询年龄在20~23岁之间的学生的姓名,所在系和年龄。select Sname,Sdept,Sage from Student where Sage between 20 and 23;

题16:查询年龄不在20~23之间的学生的姓名,所在系和年龄。select Sname,Sdept,Sage from Student where Sage not between 20 and 23;

题17:查询信息系,数学系和计算机系学生的姓名和性别。select Sname,Ssex from Student where Sdept in ('信息系','数学系','计算机系');

题18:查询既不属于信息系,数学系,也不属于计算机系的学生的姓名和性别。select Sname,Ssex from Student where Sdept not in ('信息系','数学系','计算机系');

题19:查询姓“张”的学生的详细信息。select * from Student where Sname like '张%';

题20:查询学生表中姓“张”,姓“李”和姓“刘”的学生的情况。select * from Student where Sname like '[张李刘]%';

题21:查询名字中第2个字为“小”或“大”字的学生的姓名和学号。select Sname,Sno from Student where Snme like '_[小大]%';

题22:查询所有不姓“刘”的学生。select Sname from Student where Sname not like '刘%';

题23:从学生表中查询学号的最后一位不是2,3,5的学生的情况。select * from where Sno not like '%[235]';

题24:查询无考试成绩的学生的学号和相应的课程号。select Sno,Cno from SC where Grade is null;

题25:查询所有有考试成绩的学生的学号和课程号。select Sno,Cno from SC where Grade is not null;

题26:查询计算机系年龄在20岁以下的学生的姓名。select Sname from Student where Sdept = '计算机系' and Sage < 20;

题27:将学生按年龄升序排序。select * from Student order by Sage;

题28:查询选修了课程“c02”的学生的学号及其成绩,查询结果按成绩降序排列。select Sno,Grade from SC where Cno='c02' order by Grade desc;

题29:查询全体学生的信息,查询结果按所在系的系名升序排列,同一系的学生按年龄降序排列。select * from Student order by Sdept,Sage desc;

题30:统计学生总人数。select count(*) from Student;

题31:统计选修了课程的学生的人数。select count(distingct Sno) from SC;

题32 :计算学号为9512101的学生的考试总成绩之和。select sum(Grade) from SC where Sno='9512101';

题33:计算课程“c01”的学生的考试平均成绩。select avg(Grade) from SC where Cno='c01';

题34:查询选修了课程“c01”的学生的最高分和最低分。select max(Grade),min(Grade) from SC where Cno='c01';

题35:统计每门课程的选课人数,列出课程号和人数。select Cno as '课程号',count(Sno) as '选课人数' from SC group by Cno;

题36:查询每名学生的选课们数和平均成绩。select Sno as '学号',count(*) as '选课门数',avg(Grade) as '平均成绩' from SC group by SNo;

题37:查询选修了3门以上课程的学生的学号。select Sno from SC group by Sno having count(*) > 3;

题38:查询选课门数等于或大于4门的学生的平均成绩和选课门数。select Sno,avg(Grade) '平均成绩',count(*) '选课门数' from SC group by Sno having count(*) >= 4;

四,多表连接查询。

题40:去掉例38中的重复列。select Sno,avg(Grade) '平均成绩',count(distingct Sno) '选课门数' from SC group by Sno having count(*) >= 4;

五,自查询。

题46:查询与刘晨在同一个系的学生。select Sno,Sname,Sdept from Student where Sdept in (select Sdept from Student where Sname='刘晨') and Sname='刘晨';

题47:查询成绩大于90分的学生的学号和姓名。select Sno,Sname from Student where Sno in (select Sno from SC where Grade > 90);

题48:查询选修了“数据库基础”课程的学生的学号和姓名。select Sno,Sname from Student where Sno in( select Sno from SC where Cno in ( select Cno from Course where Cname='数据库基础' ));

题49:查询选修了课程“c02”且成绩高于次课程的平均成绩的学生的学号和成绩。select Sno,Grade from SC where Cno='c02' andGrade >(select avg(Grade) from SC where Cno = 'c02');

六,自查询。

七,插入数据题55:将新生纪录(9521105,陈冬,男,信息系,18岁)插入到Student表中。insert into Student values('9521105','陈冬','男',18,'信息系');

题56:在SC表中插入一新记录(9521105,c01),成绩暂缺。insert into SC values('9521105','c01',null,'必修');

八,更新数据。

题57:将所有学生的年龄加1。update Student set Sage = Sage+1;

题58:将“9512101”学生的年龄改为21岁。update Student Sage=21 where Sno='9512101';

题59:将计算机系学生的成绩加5分。update SC set Grade = Grade + 5 where Sno in (select Sno from Student where Sdept='计算机系');

九,删除数据。

题60:删除所有学生的选课记录。delete from SC;

题61:删除所有不及格学生的选课记录。delete from SC where Grade < 60;

题62:删除计算机系不及格学生的选课记录。delete from SC where Grade < 60 and Sno in (select Sno from Student where Sdept = '计算机系');

THE END
0.数据库审计安全对RDS云数据库、ECS自建数据库、线下数据库全量行为审计,有效实现数据库访问行为全追溯 数据库安全监控报警 实时监测数据库SQL注入、漏洞攻击、暴力破解及高危语句执行等危险行为并告警,助于及时感知、排除数据库风险 安全合规保障 合规强保障,30多种特定场景专业分析报表,助力用户满足等级保护2.0等的数据安全合规要求产jvzquC41yy}/cun{wp4dqv4rtqjve}4fdc{ek}
1.云原生数据湖分析DLA零运维构建数仓大数据分析数据库多源数据实时入湖分析支持构建实时数据湖,延迟大约为10分钟;无需ETL,可使用SQL跨OSS、关系数据库(PostgreSQL、MySQL等)、NoSQL(TableStore等)多种数据源分析,屏蔽各种数据源访问的差异性;分析环境与生产库隔离,分析过程不会对数据源端的业务系统产生造成影响。 完善的生态,学习使用成本低数据库式体验、多种GUI工具、jvzquC41yy}/cun{wp4dqv4rtqjve}4fcvgmctjcpcrzvrhu
2.《SQL与数据库基础》02.SQLDDL---第一章 Sql Server数据库基础--- 1,sql server的历史: 第一代数据库:网状与层次模型 第二代数据库:关系模型 (sql server属于关系模型数据库) 第三代数据库:对象模型 2,实体:客观存在的可以被描述的事物叫实体 3,冗余:存在重复的数据 消除冗余的办法:分类存储 4,… C#面试题(转载) SQL Server 数据库jvzquC41yy}/uqz|jkjvq7hqo1X0MN:Sp9mrfU4
3.新编SQLServer2000数据库实用教程本书共分13章,分别介绍了SQL Server 2000的安装和配置、服务器管理、数据库设计、 安全性管理以及SQL Server在Web上的应用等内容。 阅读更多相关推荐 新编SQL Server 2000数据库实用教程 SQL Server 数据库教程 SQL Server数据库基础教程 SQL Server 2012数据库应用技术 数据库应用技术. SQL Server篇 SQL Server jvzquC41o0sbp‚twlkth0wjv1dupm8xcng544=83478:;:9;4895
4.数据库操作基础篇(sql)sql数据库2.nosql查询速度快:nosql数据库将数据存储在缓存之中,关系型数据库将数据存储在硬盘中,so 查询速度肯定nosql快 3.存储数据的格式不同:nosql存储是key,value形式,文档,图片形式等,所以可以存储基础类以及对象或是集合等各种形式;关系型数据库则只支持基础类型,存在特定结构的表中。 jvzquC41dnuh0lxfp0tfv8|gkzooa=8;95>5:8ftvkimg8igvcomu8642974;=6
5.基础篇——从零开始掌握SQL基础语法:构建数据操作的基石SQL(Structured Query Language)作为关系型数据库的核心交互语言,自1974年由IBM研究员提出以来,已成为数据领域最通用的标准语言。根据DB-Engines的最新统计,SQL在数据库查询语言中的使用占比超过83%,其重要性不言而喻。本文将系统讲解SQL的基础语法体系,帮助读者构建坚实的数据操作基础。 jvzquC41dnuh0lxfp0tfv8h3:7;:9A<4;55bt}neng5eg}fknu526>>98367
6.数据库入门全指南:从基础概念到常用SQL操作(基于MySQL)🌟 数据库入门全指南:从基础概念到常用SQL操作 数据库是现代应用程序的核心,无论是网站、App 还是企业系统,都离不开数据的存储与查询。本文将带你系统了解数据库的基本概念、类型分类,以及最常用的SQL 语法,帮助你快速入门数据库开发。 📘 目录 一、数据库概述 jvzquC41dnuh0lxfp0tfv87625e9:=744760c{ykenk0fnyckny03>772;758
7.数据库SQL入门,这一篇就够了(全文内容两万字)本文是SQL数据库入门的全面指南,涵盖了SELECT、INSERT、UPDATE、DELETE等核心语句,以及运算符、函数、约束和联结查询的详细使用。文章通过实例深入浅出地解释了如何查询、插入、更新和删除数据,以及如何进行数据筛选、排序、分组和子查询操作。此外,还介绍了算术函数、时间函数、约束和外键的概念,帮助读者快速掌握SQL基础。jvzquC41dnuh0lxfp0tfv8vsa7=::@6781gsvrhng1jfvjnnu1735;564:6
8.SQL数据库基础教程:从入门到精通这篇博客深入介绍了SQL数据库的基础知识,包括数据库分类、SQL的关系、事务的四个特性、不同隔离级别的概念,以及数据库操作语句,如创建、删除、查看和修改数据库。此外,还详细阐述了数据库表的数值类型、字段属性,以及数据操作语句,如添加、删除、查询数据,并详细解析了单表查询、分组、排序、索引等概念。最后,探讨了jvzquC41dnuh0lxfp0tfv8|gkzooa=8:949:68ftvkimg8igvcomu8642692;:<
9.SQL入门学习全指南:从零基础到掌握核心查询sql学习标准化程度高:各数据库系统的SQL语法差异小于20% 即时反馈:查询结果立即可见,学习曲线平缓 学习SQL的投资回报率极高。根据Indeed统计,掌握SQL可使求职者薪资提高15-25%,且这一技能在至少未来10年内不会过时。 2. SQL基础语法详解 2.1 数据查询(SELECT) jvzquC41dnuh0lxfp0tfv8oceukonrz1ctzjeuj1fgzbkux136>6;:<67