`

5月25号晚上数据库练习

    博客分类:
  • SQL
阅读更多
drop database DBS

create database DBS

use DBS

create table 院系表
(YXBH CHAR(8) PRIMARY KEY CLUSTERED,--院系编号
YXMC CHAR(20) NOT NULL,--院系名称
YXZR CHAR(8) --院系主任
)

create table 教师表
(
jsh char(5) constraint pk_jsh primary key,
jsm char(20)
)

create table 课程表
(
kch char(3) constraint pk_kch primary key,
kcm char(20)
)
go

create table 教师表
(
jsh char(5) constraint pk_jsh primary key,
jsm char(20)
)

create table 成绩表
(
xh char(7) references 学生表,--学号
kch char(3) references 课程表,--课程号
cj int default 0 check (cj >= 0and cj <= 100),--成绩
jsh char(5) references 教师表--教师号
constraint pk_cj primary key(xh,kch)--主码
)



CREATE TABLE 学生表
(
XH CHAR(7)
CONSTRAINT PK_XH PRIMARY KEY NONCLUSTERED,--学号
XM CHAR(20) NOT NULL,--姓名
sfz char(18) unique nonclustered,--身份证
yxbh char(8) references 院系表 --院系编号,外码
)

drop table 学生表
insert into 学生表 values('0301001','李永年','350500198305214026','001')
insert into 学生表 values('0301002','张丽珍','350500198512017017','001')
insert into 学生表 values('0302001','陈俊雄','320300198503213042','001')
insert into 学生表 values('0302002','李军','210200198409112402','001')
insert into 学生表 values('0302003','王任芳','502400198401223341','001')
insert into 学生表 values('0303001','赵雄伟','401200198312111123','001')
select * from 学生表

select top 4 * from 学生表
select top 50 percent * from 学生表 order by xm

select distinct(kch) as kch from 学生表

insert into 教师表 values('01002','王崇阳')
insert into 教师表 values('01001','李穆')
insert into 教师表 values('02001','吴赛')
insert into 教师表 values('02002','冯远客')
insert into 教师表 values('03001','李莉')
insert into 教师表 values('03002','简方')
insert into 教师表 values('01003','刘高')

insert into 课程表 values('001','高等数学')
insert into 课程表 values('002','计算机基础')
insert into 课程表 values('003','网络基础')
insert into 课程表 values('005','大学英语')

insert into 院系表 values('001','计算机','冯远客')
insert into 院系表 values('002','经管','简方')
insert into 院系表 values('003','数学','黄梅')

insert into 成绩表 values('0301001','001','89','01001')
insert into 成绩表 values('0301002','001','78','01002')
insert into 成绩表 values('0302001','002','85','02001')
insert into 成绩表 values('0301001','005','69','02002')
insert into 成绩表 values('0302001','001','56','01002')
insert into 成绩表 values('0302002','001','93','02001')
insert into 成绩表 values('0302003','001','67','01003')

select distinct(kch) as kch from 成绩表

select avg(cj) as 平均成绩 from 成绩表

select max(cj) as 最高分,min(cj) as 最低分 from 成绩表

select 学生表.xh as 学号,学生表.xm as 姓名, 课程表.kch as 课程号,成绩表.cj
as 成绩
from 学生表 inner join 成绩表 on (学生表.xh=成绩表.xh)
inner join 课程表 on (课程表.kch=成绩表.kch)

select 学生表.xh as 学号,学生表.xm as 姓名,课程表.kcm as 课程名
from 学生表 left join 成绩表 on 成绩表.xh=学生表.xh
left join 课程表 on 成绩表.kch=课程表.kch

select 学生表.xh as 学号,学生表.xm as 姓名,课程表.kcm as 课程名
from 学生表
right join 成绩表 on 成绩表.xh=学生表.xh
right join 课程表 on 成绩表.kch=课程表.kch

select 学生表.xh as 学号,
学生表.xm as 姓名,
课程表.kcm as 课程名
from 学生表 full join 成绩表 on 成绩表.xh=学生表.xh
full join 课程表 on 成绩表.kch=课程表.kch


select * from 成绩表 where cj<70 or cj>80

select * from 成绩表 where cj>=60

select * from 成绩表 where cj between 70 and 80

select * from 成绩表 where kch in('001')

select * from 学生表 where(xm like '李%')

select * from 成绩表 order by kch,cj desc

select top 3 * from 成绩表 order by cj desc

select avg(cj) as 平均成绩,kch as 课程编号 from 成绩表 group by kch

select sum(cj) as 成绩总和,jsh as 教师号, count(*) as 人数
from 成绩表 where cj>60 group by jsh

select * from 学生表 where xh>0302002
union
select * from 学生表 where xh<0302002

select xm as 姓名,kcm as 课程名,cj as 成绩
from 学生表,成绩表,课程表
where 学生表.xh=成绩表.xh and 课程表.kch=成绩表.kch
and kcm='高等数学'
union
select xm as 姓名,kcm as 课程名,cj as 成绩
from 学生表,成绩表,课程表
where 学生表.xh=成绩表.xh and 课程表.kch=成绩表.kch
and kcm='大学英语'

select * from 学生表 where xh in
(select xh from 成绩表 where kch in
(select kch from 课程表 where(kch='计算机基础')))

select * form 学生表 as A, 成绩表 as B
where A.xh=B.xh and B.cj>any(select C.cj from 成绩表 as C,学生表 as D where C.xh=D,xh and D.xm like '陈%')

select * from 学生表 as A,成绩表 as B
where A.xh=B.xh and B.cj>all
(select C.cj from 成绩表 as C,学生表 as D
where C.xh=D.xh and D.xm like '陈%')

use DBS
create login teacher with password='123',default_database=DBS
create user teacher1 for login teacher
exec sp_change_users_login 'update_one','teacher1','teacher';

exec sp_addlogin 'student','0000','教学管理'--用存储过程创建账号
,sp_addlogin loginName,
password,database"创建用户"
grant all on 管理系统 to student with grant option

revoke insert on 学生表 from student

revoke all on 学生表 from public

 

分享到:
评论

相关推荐

    SQL数据库练习题

    SQL数据库练习题主要涵盖了数据库的基本操作,如查询、联查、聚合函数、插入数据等。以下是对这些练习题涉及知识点的详细解释: 1. **查询各系及学生数**: 这个问题展示了如何使用`COUNT()`函数来计算特定条件下...

    最新手机号段数据库,手机号码归属地数据库,2018年5月397506条

    总结来说,这个手机号段数据库是2018年5月更新的,包含397506条记录,以Excel格式存储,提供了丰富的手机号码信息,对于需要处理手机号码数据的个人或企业而言,是一份宝贵的资源。通过合理利用,能为企业决策提供...

    sqlserver2008数据库实例练习

    在SQL Server 2008数据库实例练习中,我们有机会深入理解关系型数据库管理系统的核心功能,包括查询、更新、插入和删除数据等基本操作。这个练习案例是一个学生成绩管理系统,它提供了一个实用的场景来实践这些技能...

    数据库练习

    数据库练习,特别是万常选版的习题,旨在帮助学习者深入理解和掌握数据库系统的基础知识。 首先,我们来探讨文件处理系统中存储信息的弊端。在文件处理系统中,数据共享性差,因为相同的数据可能在不同的地方重复...

    mysql数据库程序设计练习题.docx

    MySQL数据库程序设计练习题 本资源摘要信息主要对MySQL数据库程序设计进行了详细的介绍和练习题的设计。该资源涵盖了数据库系统的核心、SQL语言的功能、关系数据库设计、事务控制、数据一致性、安全性等多方面的...

    数据库练习题

    5. **数据库索引**:索引是为了加快查询速度而创建的数据结构。B树、哈希索引是常见的索引类型。正确使用索引可以显著提升查询性能,但过多的索引可能会增加写操作的开销。 6. **事务处理**:事务是一组逻辑操作,...

    数据库系统工程师考前练习

    这个考试练习涉及了数据库系统的基础知识,包括数据库的三级模式、DBMS(数据库管理系统)、DBA(数据库管理员)的职责以及数据操作语言(DML)等方面。 1. **数据库的三级模式**:数据库通常被划分为外模式、概念...

    oracle数据库练习题

    本文档“Oracle数据库练习题”显然旨在帮助用户深入理解和掌握Oracle数据库的相关知识。通过解决这些练习题,你可以提升你在SQL查询、表管理、索引优化、存储过程、触发器以及数据库安全性等方面的能力。 1. **SQL...

    sqlite3数据库练习

    sqlite3数据库练习

    数据库 综合练习.doc

    从给定的文件信息中,我们可以提炼出一系列关于数据库的重要知识点,这些知识点涵盖了数据库的基本概念、数据模型、数据库系统架构、数据独立性、数据模型类型、关系数据模型、数据库管理员(DBA)职责、以及关系运算...

    数据库练习题(英文版).rar

    此外,还有更高级的范式如第四范式(4NF)和第五范式(5NF),但它们在实际应用中相对较少见。 SQL(Structured Query Language)是数据库操作的语言,用于创建、查询、更新和管理关系数据库。掌握SQL的基本语法至...

    MYSQL数据库练习.doc

    MYSQL数据库练习 通过对MYSQL数据库练习文档的分析,我们可以总结出以下几个重要的知识点: 一、数据库设计 数据库设计是指根据实际需求设计数据库的结构和组织方式。通过对学生管理系统数据库的分析,我们可以...

    模拟电商数据库练习文件

    5. **导入SQL文件**: 在终端中运行`test.sql`,通常使用MySQL客户端工具,如`mysql`命令行或者图形化界面如phpMyAdmin,连接到数据库服务器,然后执行脚本内容。 6. **实践操作**:通过这个练习,用户可以学习如何...

    数据库练习.zip

    数据库是存储和管理数据的核心工具,对于理解和操作数据库的练习至关重要。"数据库练习.zip" 包含了四个文件,它们分别提供了不同的学习资源,帮助我们深入理解SQL语言和实际数据库应用。 首先,"sql题.pdf" 可能是...

    sql21自学通 数据库三级技术练习

    总的来说,"sql21自学通 数据库三级技术练习"是一套全面的数据库学习资源,涵盖了从基本概念到高级应用的各个方面,配合实践练习,能帮助你扎实掌握数据库管理技术,无论是为了个人兴趣还是职业发展,都是一个很好的...

    初学数据库用来练习的表和一些例子很实用

    "scott"是一个常见的数据库示例,通常用于教学和练习SQL(结构化查询语言)的基本语法和功能。这个资源包,"SQL Sever数据库及表操作代码全部.rar",很可能包含了在SQL Server环境下创建、查询、更新和删除数据的...

    练习用的数据库SQL2008

    标题中的“练习用的数据库SQL2008”指的是一个专为学习和实践设计的数据库环境,基于微软的SQL Server 2008 R2版本。SQL Server 2008 R2是Microsoft SQL Server的一个重要版本,它提供了强大的数据管理和分析功能,...

    Mysql数据库练习

    MySQL数据库是一种广泛使用的开源关系型数据库管理系统,尤其在Web应用...综上所述,这个“Mysql数据库练习”文件很可能涵盖了上述知识点,通过实践练习,你可以深入理解和掌握Java与MySQL的交互,提升数据库操作技能。

    帆软FCRP-D数据库练习题1

    帆软FCRP-D数据库练习题1 本资源旨在提供一个 FCPR-D 数据库练习题的解决方案,旨在帮助学习者掌握 SQL 查询语句的编写和数据库操作的技能。该资源涵盖了多种查询类型,包括单表查询、多表查询、综合查询等,涉及到...

Global site tag (gtag.js) - Google Analytics