精华内容
下载资源
问答
  • v1.0可编辑可修改 v1.0可编辑可修改 PAGE PAGE # 实验二MySQL数据库操作实验 实验目的 1 掌握MySQ数据库的安装方法 2 掌握MySQ数据库的使用 3 熟悉数据库管理工具的使用 实验要求 1 利用MySQ命令创建数据库和相应的...
  • 作业七 索引 /视图 /同义词 /序列 一实验目的 掌握索引和视图的管理掌握同义词和序列的应用 二实验内容 创建使用和管理索引视图同义词序列 三实验步骤 1索引 创建表 employee并插入记录 create table employee( id ...
  • 数据库实验报告 创建数据库 对数据库进行查询 T-SQL的创建 存储过程
  • 实验报告课程名称:《计算机软件基础》实验类型:设计型(验证型、创新型、综合型、设计型)实验项目名称:创建Access数据库学生姓名:专业:教育技术学学号:指导老师:实验地点:软件实验室实验学时: 2 学时一、...

    实验报告

    课程名称:《计算机软件基础》

    实验类型:设计型(验证型、创新型、综合型、设计型)

    实验项目名称:创建Access数据库

    学生姓名:专业:教育技术学学号:

    指导老师:

    实验地点:软件实验室实验学时: 2 学时

    一、实验目的和要求

    1.了解Access数据库窗口的基本组成

    2.学会如何创建数据库文件

    3.熟练掌握使用数据库表的建立方法

    4.掌握表属性的设置

    5.掌握记录的编辑、排序和筛选

    6.掌握索引和关系的建立

    二、主要仪器设备或者软件

    1. 硬件环境 :PC 机

    2. 软件环境 :Windows环境,C语言系统或其它语言工具

    三、操作方法与实验步骤

    1.启动Access数据库,创建一个名为“图书管理.mdb”的空数据库文件。并依照表1~3,在上述建立的数据库中创建“读者”、“图书”、“借书登记”3个表。2.将所有日期型字段的格式设置为“短日期”。

    3.将“图书”表的“书号”字段的“标题”设置为“图书编号”;“出版社”字段的默认值设置为“电子工业出版社”;“价格”字段的有效性规则为“价格>0”;有效性文本为“价格必须大于0”。

    4.登陆“表属性”设置有效性规则“还书日期>借书日期”,有效性文本为“还书日期必须大于借书日期”。

    5.为“读者”表的“部门”字段设置查阅属性,显示控件为:组合框,行来源

    展开全文
  • 数据库实验--数据库实验平台的安装、数据库创建与维护实验--实验报告
  • 北邮数据库实验实验报告北京邮电大学实验报告课程名称__数据库系统原理__实验名称数据库表/视图的创建与维护实验计科系_8_班姓名_郭思琦__教师______ 成绩_________2015年_04月_23日实验目的:掌握将E-R图转换为...

    北邮数据库实验三实验报告

    北京邮电大学

    实验报告

    课程名称__数据库系统原理__

    实验名称数据库表/视图的创建与维护实验

    计科系_8_班姓名_郭思琦__

    教师______ 成绩_________

    2015年_04月_23日

    实验目的:

    掌握将E-R图转换为数据库逻辑模式(关系表)的方法。

    通过进行数据库表的建立操作,熟悉并掌握建立DB2或Sybase数据库表的方法,理解关系数据库表的结构,巩固SQL标准中关于数据库表的建立语句。

    通过对DB2或Sybase数据库中建立、维护视图的实验,熟悉DB2或Sybase数据库中建立和维护视图的方法,理解和掌握视图的概念。

    掌握从Excel表向DB2或Sybase关系数据库导入数据的方法,利用实际数据建立GSM网络配置数据库。

    实验内容:

    阅读《GSM移动通信网络配置数据库》课程实验背景资料-11-v4.doc。

    将其中数据需求转化为E-R图。

    将E-R图转化为逻辑模式(确定表结构及其属性,特别要注意标明其主键、候选键、外键等约束关系)。

    进一步明确数据类型等,将逻辑模式转化为物理模式。

    方法有两种:

    写好SQL脚本文件(包括多个create table、create view等命令),一次性生成这些表和视图,在DB2数据库中具体执行命令可以是:db2 –tf createdb.sql,其中createdb.sql就是SQL脚本文件。

    一条一条SQL语句执行。

    因为这是非常基本的操作,所以一定要了解SQL语句,而不能全部使用图形界面功能来完成。

    视图定义:

    创建单表上的视图:

    在表“小区基本信息”上创建“LAC号为14121的小区基本位置信息”视图CellInfo,属性包括(CellID、所属地区、LAC号、经度、纬度)。

    在表“20个小区一周分钟级话务数据”上创建“全速率话务量平均值大于23的小区话务量数据信息”视图CellCallInfo,属性包括(CellID、平均半速率话务量率、平均拥塞率)。

    创建多表上的视图:

    创建“MscID = 5214的MSC管辖的BTS的基本信息,及其BTS对应的天线基本信息”视图ParMscInfo。

    几个重要的涉及表、视图的SQL语句

    describe table通过 DESCRIBE 语句,可以获得在表或视图中找到的所有列、在表中找到的所有索引,以及与存储过程或函数共同使用的所有参数。

    alter table此语句用于修改表定义、禁用相关视图或使表能够参与复制服务器复制。

    alter view此语句用于用修改的版本替换视图定义。

    drop table此语句用于删除表对象。

    drop view此语句用于用于删除视图。

    数据导入:

    将Excel表向Sybase关系数据库导入的方法

    将excel中的每个表通过excel另存为.csv格式。具体如下:

    点击excel表格中“文件”标签,选择“另存为”;

    然后在保存类型中选择“CSV(逗号分隔)(*.csv)”,然后点保存即可;

    出现的提示框,选“确定”,最后选“是”;

    这样就保存成功。

    将保存后的.csv格式的文件导入到sybase数据库相应的表中,具体如下:

    点击开始菜单,点击程序,点击SQL Anywhere 10中的Interactive SQL;

    连接至要导入的数据库;

    在打开的Interactive SQL中,点击“数据”标签,选择“导入”;

    选择要导入的文件,点击打开,选择下一步;

    选择“使用现有的表”,然后“浏览”要导入的数据库中的表;

    点击下一步直至完成;

    这样就导入成功。

    可以在sybase Central中查看表中的数据。

    将Excel表向DB2关系数据库导入的方法

    将excel中的每个表通过excel另存为.csv格式。具体如下:

    点击excel表格中“文件”标签,选择“另存为”;

    然后在保存类型中选择“CSV(逗号分隔)(*.csv)”,然后点保存即可;

    出现的提示框,选“确定”,最后选“是”;

    这样就保存成功。

    将保存后的.csv格式的文件导入到DB2数据库相应的表中,具体如下:

    在开始菜单下运行:db2cc,打开要导入的数据库,右击要打开的表,选择导入;

    选择要导入的CSV文件(逗号分割),注意各项设置;

    这样就导入成功。

    实验环境:

    SQL Server Management Studio 2012

    WPS Excel

    实验要求:

    本实验内容比较繁多,要求同学一定要进行完全的实验,并做出详尽的记录。

    实验步骤及结果分析:

    阅读《GSM移动通信网络配置数据库》课程实验背景资料-11-v4.doc。

    将其中数据需求转化为E-R图。

    将E-R图转化为逻辑模式(确定表结构及其属性,特别要注意标明其主键、候选键、外键等约束关系)。

    在实验二中已经生成了满足要求的E-R图以及逻辑模式

    进一步

    展开全文
  • 数据库实验报告

    2016-01-03 10:49:01
    完善、正确的数据库实验报告。包括表的创建,检索、增删改语句的运用以及触发器、存储过程的使用
  • 实验内容1在MySQL下创建一个数据库students,并创建表student_info。并且输入记录。2将mysql的jdbc的jar包导入myeclipse。3编写注册用户界面的代码login.jsp和insert_stu_1.jsp和登录账号(用数据库中的记录)的代码...

    一 实验目的

    1熟悉myeclipse的使用。

    2掌握MySQL的使用。

    3掌握jdbc连接数据库。

    二实验内容

    1在MySQL下创建一个数据库students,并创建表student_info。并且输入记录。

    2将mysql的jdbc的jar包导入myeclipse。

    3编写注册用户界面的代码login.jsp和insert_stu_1.jsp和登录账号(用数据库中的记录)的代码tijiao.jsp和find.jsp。

    三 实验工具

    Myeclipse,mySql,和mysql-connector-java-5.0.4-bin.jar。mySql可以用可视化数据库管理工具,也可以用Dos界面下进行操作。0818b9ca8b590ca3270a3433284dd417.png

    可视化数据库管理工具Navicat

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

    Dos下mysql建立数据库和表的操作

    信息注册界面

    login.jsp:

    注册界面
    用户名
    密    码

    insert_stu_1.jsp:

    插入一条记录

    String userName="root";

    String userPwd="aaa312";

    String dbName="students";

    String url1="jdbc:mysql://localhost:3306/"+dbName;

    String url2="?user="+userName+"&password="+userPwd;

    String url3="&useUnicode=true&charsetEncoding=UTF-8";

    String url=url1+url2+url3;

    Class.forName(driverName);

    Connection conn=DriverManager.getConnection(url);

    String sql="Insert into students_info(id,passwd) values(?,?)";

    PreparedStatement pstmt=conn.prepareStatement(sql);

    request.setCharacterEncoding("UTF-8");

    String id=request.getParameter("id");

    String passwd=request.getParameter("passwd");

    pstmt.setString(1,id);

    pstmt.setString(2,passwd);

    int n=pstmt.executeUpdate();

    if(n==1){%>你的信息注册成功,欢迎登录!
    注册失败,请重试!

    if (pstmt!=null){pstmt.close();}

    if(conn!=null){conn.close();}%>

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

    展开全文
  • 大二数据库实验报告

    万次阅读 多人点赞 2018-05-23 18:22:22
    实验要求: 实验一 熟悉数据库管理系统环境 实验二SQL定义语言 实验三 使用SQL语言进行简单查询 实验四 使用SQL语言进行复杂...首先创建一个数据库和需要的表: create database XSGL GO use XSGL GO Cr...

    实验要求:

    实验一 熟悉数据库管理系统环境
    实验二SQL定义语言
    实验三 使用SQL语言进行简单查询
    实验四 使用SQL语言进行复杂查询
    实验五 SQL常用数据更新操作
    实验六 综合应用\

    实验一:熟悉数据库管理系统环境

    实验过程及分析:
    首先创建一个数据库和需要的表:

    create database XSGL
    GO
    use XSGL
    GO
    Create table student      --创建学生表
    (sno char(8) primary key,        --(实体完整性)学生姓名
     sname char(8) not null unique, --学生姓名
     ssex char(2) default '男' check(ssex='男' or ssex='女'),  --性别给定默认值为'男',取值只能取‘男’或‘女’
     sage tinyint check(sage>13 and sage<50),
     sdept char(20))
    
    
    create table course       --创建课程表 
    (cno char(2) PRimary key,        --课程编号
     cname varchar(50),  --课程名称
     cpno char(2),       --先修课号
     ccredit tinyint)  --课程名
    
    create table sc        --创建成绩表
    (sno char(8),           --学生学号
     cno char(2),         --课程编号
     grade tinyint,           --成绩
     constraint pk_grade primary key(sno,cno),
     constraint fk_stuid foreign key(sno) references student(sno),
     constraint fk_course foreign key(cno) references course(cno),
     constraint ck_grade check(grade>=0 and grade<=100) )
    go
    insert into student(sno,sname, ssex,sage,sdept) values('95001', '李勇', '男', 20, 'CS')
    insert into student(sno,sname, ssex,sage,sdept) values('95002', '刘晨', '女', 19, 'IS')
    insert into student(sno,sname, ssex,sage,sdept) values('95003', '王敏', '女', 18, 'MA')
    insert into student(sno,sname, ssex,sage,sdept) values('95004', '张立', '男', 19, 'IS')
    insert into student(sno,sname, ssex,sage,sdept) values('95005', '刘云', '女', 18, 'CS ')
    insert into course(cno, cname,ccredit,cpno) values('1', '数据库', 4, '5')
    insert into course(cno, cname,ccredit,cpno) values('2', '数学', 6, null)
    insert into course(cno, cname,ccredit,cpno) values('3', '信息系统', 3, '1')
    insert into course(cno, cname,ccredit,cpno) values('4', '操作系统', 4, '6')
    insert into course(cno, cname,ccredit,cpno) values('5', '数据结构', 4, '7')
    insert into course(cno, cname,ccredit,cpno) values('6', '数据处理', 3, null)
    insert into course(cno, cname,ccredit,cpno) values('7', 'PASCAL语言', 4, '6')
    insert into sc(sno,cno,grade) values('95001', '1' ,92)
    insert into sc(sno,cno,grade) values('95001', '2' ,85)
    insert into sc(sno,cno,grade) values('95001', '3' ,88)
    insert into sc(sno,cno,grade) values('95002', '2' ,90)
    insert into sc(sno,cno,grade) values('95002', '3' ,80)
    insert into sc(sno,cno,grade) values('95003', '2' ,85)
    insert into sc(sno,cno,grade) values('95004', '1' ,58)
    insert into sc(sno,cno,grade) values('95004', '2' ,85)
    

    1)STUDENT表中增加一个字段入学时间scome,

    alter table student 
    add scome date

    2)删除STUDENT表中sdept字段;

    alter table student
    drop column sdept

    3)删除创建的SC表中cno字段和COURSE表cno字段之间的外键约束;

    alter table sc
    DROP fk_course

    4)重建3)中删除的约束

    alter table sc
    add constraint fk_course foreign key(cno) references course(cno)

    5、重新定义一个简单表,然后用SQL语言DROP语句删除该表结构;

    drop table sc

    6、用SQL语言CREATE INDEX语句定义表STUDENT的SNAME字段的降序唯一索引;

    create index index_sname
    on student(sname desc)

    7、用SQL语言DROP语句删除索引;

    drop index index_sname on student

    8.我觉得没有错误……

    实验总结:
    1. 创建表的时候可以添加约束
    2. 可以添加主键唯一标识 用primary key
    3. 可以使用默认值 是 default
    4. 可以使用外键来限制取值范围、
    5. 使用alter添加,修改列;还可以删除表中约束如索引 index
    6. 使用DROP 可以直接删除表 删除的时候先要删除外键表后才可以删除主键表

    实验二: SQL定义语言

    实验过程及分析:
    1.首先建立服务器连接 如果连接无法连接到本地local可以参考
    sqlserver2008无法连接到local解决方案
    2.然后打开新建查询选择数据库
    3.创建表用SQL语言,具体的过程实验一已经有了

    用SQL语言ALTER语句修改表结构;
    (1)STUDENT表中增加一个字段入学时间scome,
    (2)删除STUDENT表中sdept字段;
    (3)删除创建的SC表中cno字段和COURSE表cno字段之间的外键约束;
    (4)重建(3)中删除的约束
    5、重新定义一个简单表,然后用SQL语言DROP语句删除该表结构;
    6、用SQL语言CREATE INDEX语句定义表STUDENT的SNAME字段的降序唯一索引;
    7、用SQL语言DROP语句删除索引;

    有没有发现 和实验一重复了…………
    没错 所以为了凑字数 我再抄了一遍……

    实验总结:
    1. 删除外键只能用alter 指定表 而不能用on来选择表……原因不明
    2. 删除索引不能用alter 直接用DROP INDEX 索引 ON 表 原因不明

    实验三:使用SQL语言进行简单查询

    实验过程及分析:
    还是使用实验一的表
    (1)查询全体学生的学号和姓名

    select sno,sname 
    from student;

    (2)查询全体学生的详细记录

    select * 
    from student;

    (3)查询软件学院的学生姓名、年龄、系别

    select sname,sage,sdept
    from student where sdept='MA';

    (4)查询所有选修过课程的学生学号(不重复)

    select distinct sno 
    from sc;

    (5)查询考试不及格的学生学号(不重复)

    select distinct sno
    from sc
    where grade<60;

    (6)查询不是软件学院、计算机系的学生性别、年龄、系别

    select ssex,sage,sdept
    from student 
    where sdept not in('CS','MA');

    (7)查询年龄18-20岁的学生学号、姓名、系别、年龄;

    select sno,sname,sdept,sage 
    from student
    where sage>=18 and sage<=20;

    (8)查询姓刘的学生情况

    select * 
    from student
    where sname like '刘%';

    (9)查询姓刘或姓李的学生情况

    select * from student where sname like '刘%' or sname like '李%'

    (10)查询姓刘且名字为两个字的学生情况

    select * 
    from student
    where sname like '刘_';

    (11)查询1983年以后出生的学生姓名。

    select sname from student where sage < 2018-1983

    (12)创建表 studentgrad(sno,mathgrade,englishigrade,chinesegrade)
    计算学生各科总成绩并赋予别名

    Create table studentgrad(
        Sno char(8) ,
        mathgradeint,
        englishigradeint,
        chinesegradeint
    )
    Select sum(mathgrade+chinesegrade+englishigrade) '学生总成绩' from studentgrad 

    (13)利用内部函数 year()查找软件学院学生的出生年份

    select (year(getdate())-student.sage+1) 
    from student 
    where sdept='MA';

    (14)利用字符转换函数实现字符联接。

    select sname + '年龄为'+cast(sage as char(2))+'岁'
    from student;
    Select sname + ‘年龄为’+cast(sage as char(2))+’岁’
    From student

    (15)查询全体学生情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。

    select*
    from student order by sdept,sage desc;

    (16)查询学生总人数。

    select count(*) 
    from student;

    (17)查询选修了课程的学生人数。

    select count(distinct sno) 
    from sc;

    (18)查询选修了7号课程的学生总人数和平均成绩

    select count(*),avg(grade)as avggrade 
    from student ,sc 
    where student.sno=sc.sno and sc.cno='1';

    (19)查询选修6号课程学生的最好成绩

    select max(grade) as maxgrade 
    from sc
    where cno='2';

    (20)查询每个系的系名及学生人数。

    select sdept,count(*) 
    from student group by sdept;

    (21)查找每门课的选修人数及平均成绩

    select cno,count(*),avg(grade) as avggrade 
    from sc group by cno;

    (22)查找没有先修课的课程情况

    select * 
    from course 
    where cpno is null;

    实验总结:
    1. 函数year(),count(),max()可以方便查询
    2. 模糊查询法要% 如like ‘刘%’
    3. group by 可以分组查询

    实验四:使用SQL语言进行复杂查询

    实验过程及分析:
    1、实验一中的数据为基础
    2、对各表中的数据进行不同条件的连接查询和嵌套查询;
    (1)查询每个学生及其选课情况;

    select student.sno,sname,ssex,sage,sdept,cno,grade
    from student,sc
    where student.sno=sc.sno

    (2)查询每门课的间接先修课

    select first.cno,second.cpno
    from course first,course second
    where first.cpno=second.cno 

    (3)将STUDENT,SC进行右连接

    select student.sno,sname,ssex,sage,sdept,cno,grade
    from student right outer join sc on student.sno=sc.sno

    (4)查询既选修了2号课程又选修了3号课程的学生姓名、学号;

    select student.sno,sname
    from student inner join sc on student.sno=sc.sno
    where cno='3' and sc.sno in
    (select sno
    from sc
    where cno='2')

    (5)查询和刘晨同一年龄的学生

    select student.sno,sname
    from student
    where sname!='刘晨' and sage=
    (select sage 
    from student
    where sname='刘晨')

    (6)选修了课程名为“数据库”的学生姓名和年龄

    select sname,sage
    from student
    where sno in
    (select sno
    from sc
    where cno in
    (select cno
    from course 
    where cname='数据库'))

    (7)查询其他系比IS系任一学生年龄小的学生名单

    select student.sno,sname
    from student
    where sdept<>'IS' and
    sage<any
    (select sage 
    from student
    where sdept='IS')

    (8)查询其他系中比IS系所有学生年龄都小的学生名单

    select student.sno,sname
    from student
    where sdept<>'IS' and 
    sage<all
    (select sage 
    from student 
    where sdept='IS')

    (9)查询选修了全部课程的学生姓名

    select sname
    from student
    where Sno in
    (select Sno from SC
    group by Sno
    having count(*) = (select count(*) from course ))

    (10)查询计算机系学生及其性别是男的学生

    select student.sno,sname
    from student
    where sdept='IS' and ssex='男'

    (11)查询选修课程1的学生集合和选修2号课程学生集合的差集

    select sno
    from sc 
    where cno='1' except 
    select sno
    from sc
    where cno='2'

    (12)查询李丽同学不学的课程的课程号

    select cno
    from course
    where cno not in
    (select cno
    from sc
    where sno in
    (select sno
    from student
    where sname='李丽'))

    (13)查询选修了3号课程的学生平均年龄

    select AVG(sage) as avgsage
    from student inner join sc on student.sno=sc.sno
    where cno='3'

    (14)求每门课程学生的平均成绩

    select cno,AVG(grade) as avggrade
    from sc
    group by cno

    (15)统计每门课程的学生选修人数(超过3人的才统计)。要求输出课程号和选修人数,结果按人数降序排列,若人数相同,按课程号升序排列

    select course.cno '课程号', count(sc.sno) '人数'
    from course,sc 
    where course.cno=sc.cno 
    group by course.cno having count(sc.sno)>3 order by COUNT(sc.sno) desc,course.cno asc

    (16)查询学号比刘晨大,而年龄比他小的学生姓名。

    select sname
    from student
    where sno>
    (select sno from student where sname='刘晨')and
    sage<(select sage from student where sname='刘晨')

    (17)求年龄大于所有女同学年龄的男同学姓名和年龄

    select sname,sage
    from student
    where ssex='男'and sage>
    (select MAX(sage) from student where ssex='女')

    实验总结:
    1. 求总数可以用COUNT()函数
    2. 分组group by 要用having来限制条件
    3. order by是排序要求 desc是降序 ,asc是升序
    4. any()函数是任意的意思,all()是所有

    实验五:SQL的常用数据更新操作

    实验过程及分析:
    1、应用INSERT,UPDATE,DELETE语句进行更新操作;
    (1)插入如下学生记录(学号:95030,姓名:李莉,年龄:18)

    insert into student(sno,sname,sage)
    values ('95030','李莉',18)

    (2)插入如下选课记录(95030,1)

    insert into sc(sno,cno)
    values('95030',1)

    (3)计算机系学生年龄改成20

    update student
    set sage=20
    where sdept='CS'

    (4)把数学系所有学生成绩改成0

    update sc
    set grade=0
    where 'MA'=
    (select sdept
    from student
    where student.sno=sc.sno)

    (5)把低于总平均成绩的女同学成绩提高5分

    update sc 
    set grade+=5
    where grade<
    (select avg(grade) 
    from sc inner join student
    on student.sno=sc.sno
    where ssex='女')

    (6)删除95030学生信息

    delete
    from student
    where sno='95030'

    (7)删除SC表中无成绩的记录

    delete 
    from sc
    where grade is null;

    (8)删除张娜的选课记录

    delete
    from sc
    where sno=(select sno from student 
    where sname='张娜')

    (9)删除不及格的学生选课记录

    delete
    from sc
    where grade<60

    (10)删除数学系所有学生选课记录

    delete
    from sc
    where sno in (select sno from student where sdept='MA')

    (11)删除所有未被选修的课程

    delete
    from course
    where cno not in (select cno from sc)

    (12)查询每一门课程成绩都大于等于80分的学生学号、姓名和性别,把值送往另一个已经存在的基本表STU(SNO,SNAME,SSEX)中

    Create table STU 
    (sno char(8), 
    sname char(8), 
    ssex char(2) 
    )
    
    insert into STU(sno,sname,ssex)
    select distinct student.sno,sname,ssex
    from student,sc 
    where student.sno not in
    (select sno from sc where grade<80) and student.sno=sc.sno
    

    (13)建立一个sdeptgrade 表,包含(sdept,avggrade)字段,对每一个系,求学生的成绩,并把结果存入sdeptgrade

    Create table sdeptgrade 
    (sdept char(8) primary key, 
    avggrade int; ) 
    
    insert into sdeptgrade 
    select student.sdept, avg(sc.grade) 
    from student inner join SC on 
    (student.sno = SC.sno) group by student.sdept;

    实验总结:
    1. 删除主键表数据如果有外键约束就会报错
    2. 插入数据用insert into 表直接+表
    3. 更新用update
    4. 删除直接用delete 可以直接删除一行数据

    实验六:综合应用**

    实验过程及分析:
    建立一个数据库和五张表的表结构
    这里写图片描述
    这里写图片描述
    首先创建表:

    create database Person
    GO 
    use person
    GO
    Create table employee
    (
    emp_no char(5) primary key,
    emp_name char(10) not null,
    Sex char(1) not null,
    Dept char(4) not null,
    Title char(6) not null,
    data_hired datetime not null,
    birthday datetime null,
    salary int not null,
    Addr char(50) null,
    Mod_date datetime Default(getdate())
    )
    create table customer
    (
    cust_id char(5) primary key,
    cust_name char(20) not null,
    Addr char(40) not null,
    tel_no char(10) not null,
    Zip char(6) null
    )
    create table sales
    (
    order_no int primary key,
    cust_id char(5) not null,
    sale_id char(5) not null,
    tot_amt numeric(9,2) not null,
    order_date datetime not null,
    ship_date datetime not null,
    incoice_no char(10) not null
    )
    create table sale_item
    (
    order_no int not null,
    prod_id char(5) not null,
    Qty int not null,
    unit_price numeric(9,2) not null,
    order_date datetime null
    constraint primary_sale primary key(order_no,prod_id)
    )
    create table product
    (
    prod_id char(5) not null primary key,
    prod_naem char(20) not null
    )

    3、录入数据并实现实现如下查询
    (1)查找定单金额高于20000的客户编号;

    select cust_id from sales where tot_amt>2000

    (2)选取销售数量最多的前5条订单订单号、数量;

    select top 5 order_no,Qty from sale_item order by Qty DESC

    (3)显示sale_item表中每种个别产品的订购金额总和,并且依据销售金额由大到小排
    来显示出每一种产品的排行榜;

    select prod_id, sum(Qty*unit_price) '金额' from sale_item group by prod_id order by '金额' DESC

    (5)计算每一产品每月的销售金额总和,并将结果按销售(月份,产品编号)排序;

    select "s2".月份,SUM("s2".tot_amt) '销售金额总和',"s1".prod_id '产品编号'
    from sale_item "s1"
    join (select MONTH(order_date) '月份',order_no,tot_amt from sales) "s2"
    on "s1".order_no="s2".order_no
    group by "s2".月份,"s1".prod_id
    order by "s2".月份,"s1".prod_id

    (6)检索单价高于2400元的的产品编号、产品名称、数量、单价及所在订单号;

    select s.prod_id '产品编号',product.prod_name '产品名称',s.Qty '数量',s.unit_price '单价',s.order_no 
    from product INNER JOIN 
    (select order_no,prod_id,Qty,unit_price from sale_item where unit_price>2400) s
    on product.prod_id=s.prod_id

    (7)计算每一产品销售数量总和与平均销售单价;

    select "s1".销售总额,"s2".unit_price '平均销售单价'
    from(select SUM(Qty*unit_price) '销售总额',prod_id from sale_item group by prod_id) "s1"
    join sale_item "s2"
    on "s1".prod_id="s2" .prod_id

    (8)创建一个视图,该视图只含上海客户信息,即客户号、客户姓名、住址。

    CREATE VIEW view_name AS
    select cust_id,cust_name,Addr from customer where Addr='上海'

    实验总结:
    1. 设置主键,自动为 not null
    2. unique和主键区别:
    unique:唯一并且 一张表可设置多个unique 可空 但是只能有一行数据空
    主键: 唯一并且 一张表只能有一个主键
    何时用到主键?
    设置外键的时候需要主键 还有唯一标识一列的时候 比如身份证
    3. 主键可通过 constraint 主键名 primary key(列,列)来设置*组合键*
    4. 给表取别名的时候 不能用单引号,要用双引号或者不用引号 而给列取别名的时候可以选择单引号 或者 as 连接词 或者不用引号
    5. where之类的范围时 列=单引号内容时值 双引号为列名
    6. top 5表示 取前5名
    7. 视图是为了保存一张表 下次查找该表可直接 使用 如本实验中:

    select * from view_name

    即可查看 视图

    展开全文
  • 学院工商管理年级、专业、班人力152姓名学号实验课程名称数据库技术及应用II成绩优实验项目名称表的创建和操作指导老师一、实验目的1.掌握Access2007数据库创建方法;2.掌握在Access2007数据库创建表的各种方法...
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行...
  • 数据库实验报告学习

    千次阅读 2018-07-30 01:28:53
    数据库实验报告学习 01 数据库及数据表的创建与删除  02 SQL语言 03 SQL查询数据 04 用户权限管理 05 Oracle数据库对象 06 数据备份与恢复 07数据库系统设计综合实验 实验报告要插入的表 --学生表 drop ...
  • 数据库实验报告 数据库实验报告 1 数据库实验第四周 5 一、准备工作: 5 SQL*Plus创建公共用户C##scott: 5 二、 实验阶段(SQL题目练习): 7 1、列出至少有一个员工的所有部门。 8 2、列出薪金比“SMITH”多...
  • 数据库实验报告 数据库实验报告 1 数据库实验第四周 5 一、准备工作: 5 SQL*Plus创建公共用户C##scott: 5 二、 实验阶段(SQL题目练习): 7 1、列出至少有一个员工的所有部门。 8 2、列出薪金比“SMITH”多...
  • 数据库实验报告 数据库实验报告 1 数据库实验第四周 5 一、准备工作: 5 SQL*Plus创建公共用户C##scott: 5 二、 实验阶段(SQL题目练习): 7 1、列出至少有一个员工的所有部门。 8 2、列出薪金比“SMITH”多...
  • 1.1 进入数据库$ sudo service mysql start$ mysql -u root2.1 创建数据库create database mysql_shiyan;创建后查看数据库列表show databases;2.2 切换到新创建的数据库下use mysql_shiyan;查看该数据库中的表信息...
  • 广工数据库实验报告

    2015-01-15 19:32:03
    实验__一__题目 数据库及基本表的建立 实验__二__题目 查询数据库 实验__三__题目 创建和使用视图、索引、存储过程 实验__四__题目 小型数据库规划设计
  • 数据库实验报告1数据库定义实验

    千次阅读 2020-04-29 11:18:58
    (1)理解和掌握数据库DDL语言,能熟练地使用SQL DDL语句创建、修改和删除数据库、模式和基本表。 (2)掌握SQL语句常见语法错误的调试方法。 二、 实验内容: 教材3.3数据定义中例3.1至例3.11的要求操作,并截取...
  • Sql Server 数据库实验报告

    千次阅读 多人点赞 2019-11-28 15:25:37
    数据库原理 实验报告 目录 实验一 SQL Server的安装和配置 4 一、实验目的 4 二、实验内容 4 三、实验步骤 4 四、实验代码和结果 4 五、实验总结与体会 4 实验二 创建数据库 5 一、实验目的 5 二、实验内容 5 三、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 520
精华内容 208
关键字:

创建数据库实验报告