实验二

2020-05-23 16:28

《数据库原理与设计》

实验报告

专业 年级 姓名 学号 指导老师 实验室 使用日期

苏州大学计算机科学与技术学院统一印制

二零零八年三月

实验二 Sql语言基础

㈠ 目的和要求

1、 掌握Sql的的数据类型,熟悉如何用Sql语言建立数据库、数据表;

2、 掌握如何通过Sql语言建立主键、外键;掌握通过Sql语言为表添加一个新的属性; 3、 掌握通过insert语句向表中插入记录; 4、 掌握基本的Sql查询命令、自然连接。

㈡ 实验内容

1. 通过Sql语句建立一个数据库jxgl 答:对应的SQL语句:

CREATE DATABASE jxgl

2. 通过Sql 语句在上述数据库中建立zyb(专业表)、bjb(班级表)、 xsb(学生表)。各个表

的结构如下:

zyb(zydm, zymc), bjb(bjdm, bjmc, zydm), xsb(xh, xm, xb, age, bjdm) 请为这三张表的各个属性设计合理的数据类型(请参加下面的具体的数据), 答:对应的SQL语句:

use jxgl;

create table xsb

(xh varchar(10) primary key, xm varchar(50), xb varchar(50), age int,

bjdm varchar(50) )

create table bjb

(bjdm varchar(10) primary key, bjmc varchar(50), zydm varchar(10) )

create table zyb

(zydm varchar(10) primary key, zymc varchar(50) )

3. 通过Sql语句为上述表中添加如下记录

zyb:

z01, 计算机软件; z02, 软件工程 z03, 计算机科学 bjb b01, 07计算机软件, z01 b02, 07计算机科学, z03 xsb 0701001, 张三, 男, 18,b01 0701002, 李四, 男, 17,b01 0701003, 李茜, 女, 19, b01 0702001, 赵勇, 男, 20,b02 0702002, 李茜, 女, 18,b02 答:对应的SQL语句:

insert into zyb(zydm,zymc) values ('z01','计算机软件')

insert into zyb(zydm,zymc) values ('z02','软件工程')

insert into zyb(zydm,zymc) values ('z03','计算机科学')

insert into bjb(bjdm,bjmc,zydm) values ('b01','07计算机软件','z01')

insert into bjb(bjdm,bjmc,zydm) values ('b02','07计算机科学','z03')

insert into xsb(xh,xm,xb,age,bjdm) values ('0701001','张三','男',18,'b01')

insert into xsb(xh,xm,xb,age,bjdm) values ('0701002','李四','男',17,'b01')

insert into xsb(xh,xm,xb,age,bjdm) values ('0701003','李茜','女',19,'b01')

insert into xsb(xh,xm,xb,age,bjdm) values ('0702001','赵勇','男',20,'b02')

insert into xsb(xh,xm,xb,age,bjdm) values ('0702002','李茜','女',18,'b02')

4. 用Sql语言完成下列查询,将SQL语句写在下面:

(1) 查询所有的学生的学号、姓名、所在班级的名称

select xh,xm,bjmc from xsb a join bjb b on a.bjdm=b.bjdm

(2) 查询全校的所有班级的班级代码、班级名称、所所属专业名称

select bjdm,bjmc,zymc from bjb a join zyb b on a.zydm=b.zydm

(3) 查询所有的学生的学号、姓名、所在班级的名称、所在专业的名称

select xh,xm,bjmc,zymc from xsb a join bjb b on a.bjdm=b.bjdm join zyb c on b.zydm=c.zydm

(4) 列出全校所有的专业,以及属于这些专业的班级的名称。(left join)

select zymc,bjmc from zyb a left join bjb b on a.zydm=b.zydm

(5) 查找所有姓李的学生的学号、姓名和所在班级的名称

select xh,xm,bjmc from xsb a join bjb b on a.bjdm=b.bjdm where xm like '李%'

(6) 查找年龄在18-19岁的所有姓李的学生的学号、姓名,按照年龄的升序排序

select xh,xm,age from xsb

where age<=19 and age>=18 and xm like '李%' order by age

(7) 统计xsb表中的所有学生的人数 select count(xsb.xh) from xsb

(8) 统计每个班级的学生的人数

select count(a.xh),bjmc from xsb a join bjb b on a.bjdm=b.bjdm

group by b.bjmc

(9) 统计每个班级的男生和女生的人数

select count(a.xh),a.xb,bjmc from xsb a join bjb b on a.bjdm=b.bjdm group by a.xb,b.bjmc

(10) 查找出学生平均年龄最小的班级的名称

select top 1 bjmc,avg(age)as avgage from xsb a join bjb b on a.bjdm=b.bjdm group by bjmc order by avgage

(11) 查找出所有同名的学生的姓名和所在的班级代码

select xm,bjdm from xsb where xm in (select xm from xsb group by xm having count(xm)>1)

(12) 查找出所有同名的学生的姓名和所在的班级代码和班级名称

select xm,b.bjdm,bjmc from xsb a join bjb b on a.bjdm=b.bjdm where xm in (select xm from xsb group by xm having count(xm)>1)

(13) 使用in 或者not in 的方法,查找出没有任何班级的那些专业的名称 select zymc from zyb where zydm not in (select zydm from bjb)

(14) 使用exists 或者not exists 的方法,查找出没有任何班级的那些专业的名称

select zymc from zyb where not exists (select zydm from bjb where zyb.zydm=bjb.zydm)

㈢ 实验步骤

略。按照上面步骤完成,无需填写

㈣ 实验小结

实验日期: 2015 年 3 月 31 日 实验成绩:______


实验二.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016 年大众理财作业满分答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: