数据库作业简单模板
- 格式:docx
- 大小:38.85 KB
- 文档页数:5
以下是一个MySQL数据库实验上机作业的示例:1. 创建一个名为“students”的数据库,并选择该数据库。
```sqlCREATE DATABASE students;USE students;```2. 创建一个名为“students_table”的表,包含以下列:id(主键,自动递增),name(文本),age(整数),gender(文本),major (文本)。
```sqlCREATE TABLE students_table (id INT AUTO_INCREMENT PRIMARY KEY,name V ARCHAR(100),age INT,gender V ARCHAR(10),major V ARCHAR(100));```3. 向“students_table”表中插入一些数据。
```sqlINSERT INTO students_table (name, age, gender, major) V ALUES ('John', 20, 'Male', 'Computer Science'),('Jane', 22, 'Female', 'Mathematics'),('Bob', 21, 'Male', 'Physics');```4. 查询所有学生的信息。
```sqlSELECT * FROM students_table;```5. 查询所有年龄大于等于20岁的学生信息。
```sqlSELECT * FROM students_table WHERE age >= 20;```6. 查询所有计算机科学专业的女学生信息。
```sqlSELECT * FROM students_table WHERE major = 'Computer Science' AND gender = 'Female';```7. 更新表中某个学生的信息。
作业要求:1.所有作业书写在稿纸上2.在封面写清楚班级、姓名、学号3.抄写题目(表可以不写),命令与题目对应。
概念基础部分:⒈简述数据、数据库、数据库管理系统、数据库应用系统的概念。
⒉简述数据库管理系统的功能。
⒊什么是实体、属性、码、联系?⒋解释关系模型的基本概念:关系、元组、属性、域、关系模式、候选关键字、主键、外键、主属性。
⒌设某工厂数据库中有四个实体集。
一是“仓库”实体集,属性有仓库号、仓库面积等;二是“零件”实体集,属性有零件号、零件名、规格、单价等;三是“供应商”实体集,属性有供应商号、供应商名、地址等;四是“保管员”实体集,属性有职工号、姓名等。
(1)试为该工厂的数据库设计一个ER模型,要求标注联系类型,可省略实体属性。
1 N(2)根据转换规则,将ER模型转换成关系模型,要求标明每个关系模式的主键和外键。
6.某网上订书系统,涉及如下信息:(1)客户:客户号、姓名、地址、联系电话。
(2)图书:书号、书名、出版社、单价。
(3)订单:订单号、日期、付款方式、总金额。
其中:一份订单可订购多种图书,每种图书可订购多本;一位客户可有多份订单,一份订单仅对应一位客户。
(1)根据以上叙述,建立ER模型,要求标注联系类型(可省略实体的属性)。
(2)根据转换规则,将ER模型转换成关系模型,要求标注每个关系模型的主键和外键(如果存在)。
7.简述关系的完整性。
8.根据给定的关系模式进行查询。
设有学生-课程关系数据库,它由三个关系组成,它们的模式是:学生S(学号S#,姓名SN,所在系SD,年龄SA)、课程C(课程号C#,课程名CN,先修课号PC#)、SC(学号S#,课程号C#,成绩G)。
请用关系代数分别写出下列查询:(1)检索学生的所有情况。
(2)检索学生年龄大于等于20岁的学生姓名。
(3)检索先修课号为C2的课程号。
(4)检索课程号C1的成绩为A的所有学生姓名。
(5)检索学号为S1的学生选修的所有课程名及先修课号。
数据库设计作业
班级:
组长姓名:组长名字
一、作业内容
综合运用前面掌握的内容进行应用数据库的设计。
数据库采用SQL Server 2000或2005,设计一个简单的数据库应用系统,完成该应用系统各个阶段的设计包括系统需求分析、数据库概念结构设计、逻辑结构设计、物理设计。
二、作业目的及要求
1、培养综合利用所学知识解决实际问题的能力;
2、学会进行应用系统数据库的合理设计;
3、训练初步设计数据库管理实用软件的技能。
4、培养团队合作精神
三、数据库设计
(一)作业分工
(在这里需详细描述小组每个成员的分工情况)
(二)数据库设计
1、需求分析
(在这里描述系统的需求)
2、概念结构设计
(在这里根据需求,得出数据模型(使用E-R图))
3、逻辑结构设计
(在这里将E-R图转换成关系,设计数据库的关系模式,明确每个模式的约束)
4、物理结构设计及实现
(在这里可以用具体的sql语句体现数据类型等细节问题、根据情况需要可创建索引、触发器和存储过程)
(三)应用系统开发
1、数据库连接中间件
(在这里描述应用开发工具如何与数据库(SQLSERVER)连接;使用哪种连接中间件(ODBC、JDBC),并写明连接核心代码;)
2、系统功能描述
(在这里展示开发的各个功能模块(功能描述、界面、核心代码))四、作业总结
(写出收获和体会,包括已解决和尚未解决的问题,进一步完善的设想与建议。
至少300字)。
数据库设计说明书
题目 : 小组长 : 学号+姓名 成员 : 学号+姓名 成员 : 学号+姓名 指导教师:
年 月 日
第一章系统需求分析
1.1 系统描述
简要说明本系统的背景和目的。
简要说明本系统要解决的主要问题。
1.2功能需求
分模块详细说明本系统的主要功能,对每个功能都要详细说明,说明该功能所涉及的人员、数据和处理方式等信息,并为一些主要功能提供业务流程图。
1.3数据需求
1.3.1数据流图(部分)
绘制系统的数据流图,从第一层开始绘制,至少要绘制三层,并至少对一个模块进行详细绘制。
1.3.2数据字典(部分)
对与数据流图对应的数据字典部分进行说明。
不需要说明数据项。
第二章数据库概念模型
2.1各局部ER模型
给出各局部ER图。
实体要标识出主标识(主码)。
2.2整体ER模型
给出整体ER图。
实体要标识出主标识(主码)。
第三章数据库逻辑模型
根据整体ER图,转换为关系模型。
对各个关系模型需要标识出主键、外键和所属范式。
对于转换来的关系需要进行分解的,请说明分解过程,并指出分解是否为无损分解。
第四章数据库物理模型
4.1基本表结构
4.2视图和索引
以文字信息列出要创建的视图和索引信息
4.3 安全性设计
用户安全性设计,包括登录帐号及角色、用户角色、数据库用户帐号及权限4.4 存储过程和触发器
以文字信息列出要创建的存储过程和触发器信息
第五章数据库实现写出第四章所有内容的对应的T-SQL语句。
实验步骤:1. 建立数据库create database Company2. 建立基本表[1] 创建职工表Employee,由以下属性组成:姓名ENAME(CHAR 型),工号ENO(SMALLINT型),出生日期EBIRTHDAY(CHAR 型),家庭地址EADDR(CHAR型,30位),年薪ESALARY(INT 型),管理员工号MNO(SMALLINT型),所在部门编号DNO (SMALLINT型)。
[2] 创建部门表Department,由以下属性组成:部门名称DNAME (CHAR型,8位),部门编号DNO(SMALLINT型),部门负责人工号ENO(SMALLINT型)。
[3]创建项目表Project,由以下属性组成:项目名称PNAME(CHAR 型,30位),项目编号PNO(SMALLINT型),所在城市PCITY(CHAR 型,8位),主管部门编号DNO(SMALLINT型)。
[4]创建工作表Work,由以下属性构成:职工工号ENO(SMALLINT 型),项目编号PNO(SMALLINT型),工作时间WTIME(CHAR 型)。
[5]创建家属表Relative,由以下属性构成:职工工号ENO(SMALLINT 型),家属的姓名RNAME(CHAR型,8位),家属的性别RSEX (CHAR,1位)。
create table Employee(ENAME char(20) not null, ENO smallint not nullprimary key, EBIRTHDAY char(20) not null, EADDR char(30), ESALA RY int, MNO smallint, DNO smallint);create table Department(DNAME char(20), DNO smallint not null primar y key, ENO smallint);create table Project(PNAME char(30), PNO smallint not null primary key , PCITY char(20), DNO smallint);create table Work(ENO smallint, PNO smallint, WTIME char(20)); create table Relative(ENO smallint, RNAME char(20), RSEX char(1)); 3. 加入样本数据[1] 向职工表Employee中加入数据:(李一,1001,92/2/23,常州,30000000,1001,101)、(刘二,1002,89/4/5,南通,3000000,1001,102)、(王三,1003,90/5/1,扬州,4000000,1002,102)、(赵四,1004,90/3/14,湖南,20000000,1005,103)、(吴五,1005,91/7/1,无锡,1000000,1001,103)[2] 向部门表Department插入数据:(常州部,101,1001)、(南通部,102,1002)、(扬州部,103,1004) [3]向项目表Project加入数据:(将花流进行到底,101,神奈川,102)(洋仙还是仙洋,102,东京,103)[4]向工作表Work加入数据:(1002,101,10/8/23)(1003,101,10/8/23)(1004,102,10/12/25)(1003,105,10/12/25)[5]向家属表Relative加入数据:(1001,向六,男)、(1001,秦七,男)、(1002,赵八,男)insert into Employeevalues('李一','1001','92/2/23','常州','30000000','1001','101'); insert into Employeevalues('刘二','1002',89/4/5','南通','3000000','1001','102');insert into Employeevalues('王三','1003','90/1/1','扬州','4000000','1002','102');insert into Employeevalues('赵四','1004','89/2/14','湖南','20000000','1005','103'); insert into Employeevalues('吴五','1005','90/7/1','无锡','1000000','1001','102');insert into Department values('常州部','101','1001');insert into Departmentvalues('南通部','102','1002');insert into Department values('扬州部','103','1004');insert into Projectvalues('将花流进行到底','101','神奈川','102');insert into Projectvalues('洋仙还是仙洋','102','东京','103');insert into Workvalues('1002','101','10/8/23');insert into Workvalues('1003','101','10/8/23');insert into Workvalues('1004','102','10/12/25');insert into Work values('1005','102','10/12/25');insert into Relative values('1001','向六','m');insert into Relativevalues('1001','秦七','m');insert into Relativevalues('1002','赵八','m')4.执行违反数据约束的操作,并观察结果[1]验证主键约束insert into Employeevalues('张一','1001','90/8/23','苏州','30000000','1001','101')如果输入insert into Employeevalues('向六','1001','90/8/23','苏州','100000','1001','101')在SQL处理期间,它返回:SQL0803N INSERT 语句、UPDATE 语句或由 DELETE语句导致的外键更新中的一个或多个值无效,因为由"1"标识的主键、唯一约束或者唯一索引将表“BLINDDREAM.EMPLOYEE"的索引键限制为不能具有重复值。
数据库大作业课题名称专业班级学号姓名教师成绩11月日1. 需求分析( 加入需求分析的概念)描述题目内容1.1 数据流图( DFD)什么是数据流图。
画数据流图图1-1 XXXX图1.2 数据字典( DD)什么是数据字典写数据字典数据文件: 订单明细表文件组成: 订单序号Id, 订单编号, 菜名, 价格, 数量, 下单时间数据项: 订单序号Id数据类型: 整型数据长度: 4数据项: 订单编号数据类型: 可变字符类型数据长度: 50数据组成: A+日期时间数据项: 菜名数据类型: 可变字符类型数据长度: 50什么概念结构设计E-R图( 在Powerdesigner中创立概念模型, 粘贴图)图2-1 XXXX图关系模式( ( 在Powerdesigner中由概念模型转化为物理数据模型, 粘图) )图3-1 XXXX图4. 建表SQL语句由物理数据模型生成SQL Server 数据库的建表语句。
/*==============================================================*//* DBMS name: Microsoft SQL Server *//* Created on: -9-16 14:39:14 *//*==============================================================*/if exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id= r.constid and o.type = 'F')where r.fkeyid = object_id('SC') and ='FK_SC_SC_S')alter table SCdrop constraint FK_SC_SC_Sgoif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id= r.constid and o.type = 'F')where r.fkeyid = object_id('SC') and = 'FK_SC_SC2_C')alter table SCdrop constraint FK_SC_SC2_Cgoif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('TC') and = 'FK_TC_TC_T')alter table TCdrop constraint FK_TC_TC_Tgoif exists (select 1from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = 'F')where r.fkeyid = object_id('TC') and = 'FK_TC_TC2_C')alter table TCdrop constraint FK_TC_TC2_Cgoif exists (select 1from sysobjectswhere id = object_id('C')and type = 'U')drop table Cgoif exists (select 1from sysobjectswhere id = object_id('S')and type = 'U')drop table Sgoif exists (select 1from sysindexeswhere id = object_id('SC') and name = 'SC2_FK'and indid > 0and indid < 255)drop index SC.SC2_FKgoif exists (select 1from sysindexeswhere id = object_id('SC') and name = 'SC_FK'and indid > 0and indid < 255)drop index SC.SC_FKgoif exists (select 1from sysobjectswhere id = object_id('SC')and type = 'U')drop table SCgoif exists (select 1from sysobjectswhere id = object_id('T')and type = 'U')drop table Tgoif exists (select 1from sysindexeswhere id = object_id('TC') and name = 'TC2_FK'and indid > 0and indid < 255)drop index TC.TC2_FKgoif exists (select 1from sysindexeswhere id = object_id('TC') and name = 'TC_FK'and indid > 0and indid < 255)drop index TC.TC_FKgoif exists (select 1from sysobjectswhere id = object_id('TC')and type = 'U')drop table TCgo/*==============================================================*//* Table: C *//*==============================================================*/create table C (CNo char(2) not null,CN varchar(40) null,CT smallint null,constraint PK_C primary key nonclustered (CNo))go/*==============================================================*//* Table: S*//*==============================================================*/create table S (SNo char(2) not null,SN varchar(40) null,Gen char(2) null,Birth datetime null,Dept varchar(40) null,constraint PK_S primary key nonclustered (SNo))go/*==============================================================*//* Table: SC *//*==============================================================*/create table SC (SNo char(2) not null,CNo char(2) not null,Score smallint null,constraint PK_SC primary key (SNo, CNo))go/*==============================================================*//* Index: SC_FK *//*==============================================================*/create index SC_FK on SC (SNo ASC)go/*==============================================================*//* Index: SC2_FK *//*==============================================================*/create index SC2_FK on SC (CNo ASC)go/*==============================================================*//* Table: T *//*==============================================================*/create table T (TNo char(2) not null,TN varchar(40) null,Gen char(2) null,Birth datetime null,Prof varchar(40) null,Sal int null,Comm int null,Dept varchar(40) null,constraint PK_T primary key nonclustered (TNo))go/*==============================================================*//* Table: TC *//*==============================================================*/create table TC (TNo char(2) not null,CNo char(2) not null,constraint PK_TC primary key (TNo, CNo))go/*==============================================================*//* Index: TC_FK *//*==============================================================*/create index TC_FK on TC (TNo ASC)go/*==============================================================*//* Index: TC2_FK *//*==============================================================*/create index TC2_FK on TC (CNo ASC)goalter table SCadd constraint FK_SC_SC_S foreign key (SNo)references S (SNo)goalter table SCadd constraint FK_SC_SC2_C foreign key (CNo)references C (CNo)goalter table TCadd constraint FK_TC_TC_T foreign key (TNo) references T (TNo)goalter table TCadd constraint FK_TC_TC2_C foreign key (CNo) references C (CNo)go5. 结论心得体会( 如果有相同的, 则都不及格)参考教材:《数据库实验指导》主编: 杨海霞出版社: 人民邮电出版社书号: 978-115-16535-0。
数据库技术与应用课程设计报告教务管理系统学院:软件学院专业名称:班级:计科三班设计题目:教务管理系统学生姓名:时间:2021 /6/23 分数:目录第一章引言 (3)课程设计目的 (3)工程背景 (3)第二章教务管理系统需求分析 (3)2.1 需求分析概述 (3)角色职责描述 (4)2.2 教务管理系统的功能需求 (4)功能需求分析 (4)第三章概念设计 (5)3.1 实体之间的联系 (5)3.2.1 局部E-R图 (6)3.2.2 全局E-R图 (8)第四章逻辑构造设计 (9)4.1 关系模型的设计依据 (9)4.2 实体间联系转化的关系模式 (9)第五章物理构造设计 (11) (11)5.2 数据库初始化代码 (13)第一章引言利用一种SQL server作为设计平台,理解并应用课程中关于数据库设计的相关理论,能按照数据库设计步骤完成完整的数据库设计,包括需求分析、概念设计、逻辑设计、物理设计。
同时能够正确应用各个阶段的典型工具进展表示本工程作为?数据库?课程的实习工程提出,希望通过教务管理系统的分析与设计,切实领会系统分析、系统设计和实施各个阶段的要点;掌握根本的信息系统的开发方法以及体会信息管理系统设计,教务管理系统第二章教务管理系统需求分析2.1 需求分析概述本系统为教务管理系统,教务管理系统中主要有四类用户,即学生用户,教师用户,教务管理员和系统管理员。
对应这些用户,其处理要求的主要的功能就是进展一系列的查询和各类数据的管维护。
表2-1 角色职责2.2 教务管理系统的功能需求1〕系统管理:实现系统管理人员对系统的管理,包括添加删除用户,更改密码,数据备份,数据复原,注销等功能。
2〕教务管理:实现教务管理人员对系统的管理,包括课程安排,成绩审核,学生成绩管理,学生学籍管理等功能。
3〕根本信息:实现显示学生和教师以及课程、班级、系别的根本信息〔包括学生根本信息,教师根本信息,课程根本信息等〕。
数据库作业
1.先在桌面上建一数据库,名字为学号+姓名(学号为末尾两位)
2.在库中建四个数据表
1)基本信息表(sno,sname,sex,age)
2)课程信息表(cno,cname,time)
3)选课成绩表(sno,cno,score)
4)班级成绩表(sno,java,c,MIS)
3.分别向以上数据表中添加记录:其中基本信息表中至少包含5条
记录,课程信息表中至少包含3条记录,选课成绩表中至少包含9条记录,班级成绩表中至少包含5条记录.
4.用SQL语句向基本信息表中追加一条完整的记录
5.查询所有女同学的所有信息(学号,姓名,性别,课程名,成绩),
并以成绩的降序方式显示出来。
其中查询结果对应的字段名应以中文名称显示出来。
6.求出班级成绩表中的每个同学的总分,并按总分的升序方式显示
出每个同学的成绩信息
7.从班级成绩表中查询所有单科成绩都高于80分的同学的成绩信
息,要求查询结果要求显示出姓名,各单科成绩。
8.删除选课成绩表中的单科成绩低于70分的女同学的单科成绩。
create table 选课表
(sno char(6),
Cno char(4),
score int ,
foreign key(sno) references 基本信息表, foreign key(cno) references 课程信息表, )。
作业(1)假设有存放职工信息的EMP表和存放部门信息的DEPT表,其关系模式如下:EMP(EMPNO,ENAME,JOB,MGRNO,HIREDATE,SAL,INSURANCE,DEPTNO)DEPT(DEPTNO,DNAME,LOC)请分别按下列要求写出相应的SQL语句,并且9~21题同时写出关系代数表达式。
1. 建立DEPT表,在DEPTNO列上定义为主键并实现其约束,DNAME为NOT NULL。
Create table DEPT (DEPTNO char(10) primary key,DNAME char(20) not null,LOC char(30))2. 建立EMP表,在DEPTNO列上定义为外键并实现其约束,该列引用DEPT表的主键列DEPTNO,ENAME和JOB为NOT NULL。
Create table EMP ( EMPNO char(10) primary key,ENAME char(8) not null,JOB char(14) not null,MGRNO char(10),HIREDATE datetime,SAL numeric (6,2),INSURANCE numeric (6,2),DEPTNO char(10) reference dept(DEPTNO))或Create table EMP ( EMPNO char(10) primary key,ENAME char(8) not null,JOB char(14) not null,MGRNO char(10),HIREDATE datetime,SAL numeric (6,2),INSURANCE number(6,2),DEPTNO char(10),Foreign key (DEPTNO) reference dept(DEPTNO))或Create table EMP ( EMPNO char(10) primary key,ENAME char(8) not null,JOB char(14) not null,MGRNO char(10),HIREDATE datetime,SAL numeric (6,2),INSURANCE number(6,2),DEPTNO char(10),Constraint Forkey foreign key (DEPTNO) reference dept(DEPTNO))3. 除有上题的约束外,还要用CHECK约束建立EMP表,月工资不能小于零,也不能大于20 000。
指导老师:乎西旦姓名:龚立班级:07-2A学号:07080605093一、实验题目:建立订单管理数据库,库中包括4个表,同时完成数据完整性的定义。
4个表如下:客户表(客户号,客户名称,联系人,地址,邮政编码,电话)产品表(产品号,产品名称,规格说明,单价)订单名细表(订单号,序号,产品名称,数量)订购单表(客户号,订单号,日期)二、实验要求:对以上4表各设计一组数据进行插入,分别为客户表(至少15条记录),产品表(至少15条记录),订购单表(至少25条记录)和订单明细表(至少35条记录)。
三、完成查询操作:1. SELECT 客户号,订单号FROM 订购单表WHERE 客户号IN (SELECT 客户号FROM 订购单表)2. SELECT 产品号,产品名称,单价FROM 产品表WHERE 产品名称IN (SELECT 产品名称FROM 产品表WHERE 单价>20)3. SELECT 客户名称,联系人,电话,订单号FROM 客户表A,订购单表B WHERE A.客户号=B.客户号AND 订购日期='2000/1/1'4. SELECT 订单号,序号,产品号,数量FROM 订单名细表WHERE 产品号='12'5. SELECT 订单号,序号,产品名称,数量FROM 订单明细表WX WHERE 订单号IN (SELECT 订单号WHERE 数量>50)6. SELECT 产品号,产品名称,规格说明,单价FROM 产品表WHERE 单价IN (SELECT 单价FROM 产品表GROUP BY 单价HA VING COUNT(产品名称)>1)ORDER BY 单价.7. SELECT 产品号,产品名称,规格说明,单价FROM 产品表WHERE 单价>10 AND 单价<258. SELECT * FROM 客户表WHERE 客户名称LIKE '_伟'9. SELECT * FROM 客户表WHERE 客户名称NOT LIKE '_伟'10. SELECT * FROM 产品表ORDER BY 单价ASC11. SELECT * FROM 产品表ORDER BY 产品名称ASC,单价ASC12 SELECT COUNT(产品名称)AS 共有产品数FROM 产品表13 SELECT 产品号,SUM(数量)AS 该产品的订购总数FROM 订单名细表GROUP BY 产品号14 SELECT A VG(单价)*SUM(数量) AS 总金额FROM 订单名细表,产品表WHERE 订单名细表.产品号=产品表.产品号AND 产品表.产品名称= '天龙八部' AND 产品表.规格说明='上部'15. SELECT COUNT(订单号) AS 订单个数,COUNT(订单号)*AVG(单价)/COUNT(订单号) AS 平均金额FROM 订单名细表,产品表WHERE 产品表.产品号=订单名细表.产品号16. SELECT 订单号,COUNT(序号) AS 项目数,COUNT(订单号)*A VG(单价) AS 总金额FROM 订单名细表,产品表WHERE 产品表.产品号=订单名细表.产品号GROUP BY 订单号17. SELECT 客户名称,产品号,B.订单号FROM 订单名细表A JOIN 订购单表B ON(A.订单号=B.订单号) JOIN 客户表C ON(B.客户号=C.客户号)18.SELECT 客户名称,MAX(总金额)AS 最高金额,MIN(总金额)AS 最低金额FROM 订单名细表A JOIN 订购单表B ON(A.订单号=B.订单号) JOIN 客户表C ON(B.客户号=C.客户号)GROUP BY 客户名称19. SELECT 订单号,A VG(总金额)AS 平均金额,COUNT(订单号)AS 总订单数FROM 订单名细表GROUP BY 订单号HA VING COUNT(订单号)>220. SELECT 客户名称,联系人,电话,订单号FROM 客户表A,订购单表BWHERE 订购日期IS NULL AND A.客户号=B.客户号21. SELECT 客户名称,联系人,电话,订单号,订购日期FROM 客户表A,订购单表BWHERE A.客户号=B.客户号AND 订购日期>'2000/4/10'22. SELECT 产品名称,MAX(单价)AS 最高单价FROM 产品表GROUP BY 产品名称23. SELECT 客户号,客户名称,联系人,电话FROM 客户表WHERE 客户号NOT IN(SELECT C.客户号FROM 订购单表C)24. SELECT 客户号,客户名称,联系人,电话FROM 客户表WHERE 客户号IN(SELECT C.客户号FROM 订购单表C)25. SELECT 产品号,产品名称,规格说明,单价FROM 产品表AWHERE 单价=ANY(SELECT 单价*2 FROM 产品表)四、建立视图:(1)CREATE VIEW MS ASSELECT 客户号,客户名称,联系人,电话FROM 客户表WHERE 客户号NOT IN(SELECT C.客户号FROM 订购单表C) SELECT * FROM MS(2)CREATE VIEW CS ASSELECT 客户号,客户名称,联系人,电话FROM 客户表WHERE 客户号IN(SELECT C.客户号FROM 订购单表C)SELECT * FROM CS五、建立存储过程:(1)IF EXISTS (SELECT name FROM SYSOBJECTS WHERE NAME='MK' AND TYPE='P') DROP PROCEDURE MKGOCREATE PROCEDURE MK @左单价INT,@右单价INTASSELECT 产品号,产品名称,规格说明,单价FROM 产品表AWHERE 单价BETWEEN @左单价AND @右单价EXECUTE MK @左单价=20 ,@右单价=40(2) IF EXISTS (SELECT name FROM SYSOBJECTS WHERE NAME='XX' AND TYPE='P')DROP PROCEDURE XXGOCREATE PROCEDURE XX @日期DA TETIMEASSELECT 客户名称,联系人,电话,订单号,订购日期FROM 客户表A,订购单表BWHERE A.客户号=B.客户号AND 订购日期>@日期EXECUTE XX @日期='2000-4-10'(3) CREATE VIEW WODE503 ASSELECT 产品名称,订购日期FROM 订单名细表A LEFT JOIN 产品表B ON(A.产品号=B.产品号)LEFT JOIN 订购单表C ON(A.订单号=C.订单号)USE gongliIF EXISTS(SELECT NAME FROM SYSOBJECTSWHERE NAME = 'SC_AE'AND TYPE = 'P')DROP PROCEDURE SC_AEGOCREATE PROCEDURE SC_AE @MINGCHENG CHAR(20),@RIQI DATETIME ASUPDATE WODE503SET 订购日期=@RIQIWHERE 产品名称=@MINGCHENGGOEXECUTE SC_AE @RIQI='2009-1-1',@MINGCHENG='天龙八部'SELECT *FROM WODE503WHERE 产品名称='天龙八部'六、建立触发器:(1)IF EXISTS(SELECT NAME FROM SYSOBJECTSWHERE NAME='触发器1'AND TYPE='TR')DROP TRIGGER 触发器1CREATE TRIGGER 触发器1 ON 订购单表FOR DELETEASIF EXISTS (SELECT 订单号FROM DELETEDWHERE 订单号IN(SELECT 订单号FROM 订单名细表))BEGINPRINT'拒绝删除'ROLLBACKENDDELETE FROM 订购单表WHERE 订单号='1008'(2) USE gongliIF EXISTS(SELECT NAME FROM SYSOBJECTSWHERE NAME='B'AND TYPE='TR')DROP TRIGGER BGOCREATE TRIGGER B ON 订购单表FOR UPDATEASIF EXISTS(SELECT 客户号FROM INSERTEDWHERE 客户号NOT IN(SELECT 客户号FROM 客户表))BEGINPRINT'对不起,不符合参照完整性,无法添加'ROLLBACKENDELSEBEGIN UPDA TE 订购单表SET 订购日期= GETDA TE()ENDGOUPDATE 订购单表SET 客户号=110WHERE 订单号=1001SELECT *FROM 订购单表WHERE 订单号=1001七、心得体会:通过此次数据库大作业的编写,是我对数据库这门课程有了更加全面深刻的认识和了解,在编写过程中,耗费了大量的时间,更加让我明白了,谨慎、严谨的治学态度的重要性。
1、学校图书馆借书信息管理系统建立三个表:
学生信息表:student
字段名称数据类型说明stuID char(10) 学生编号,主键stuName Varchar(10) 学生名称
major Varchar(50) 专业图书表:book
字段名称数据类型说明BID char(10) 图书编号,主键
title char(50) 书名
author char(20) 作者借书信息表:borrow
字段名称数据类型说明borrowID char(10) 借书编号,主键stuID char(10) 学生编号,外键BID char(10) 图书编号,外键T_time datetime 借书日期
B_time datetime 还书日期请编写SQL语句完成以下的功能:
1)分别写出上述三个表的定义代码。
2)写出为上述三表中填入如下数据的代码:
Book表Student表
Borrow表
3)查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、
学生名称、图书编号、图书名称、借出日期;参考查询结果如下图所示:
4)查询所有借过图书的学生编号、学生名称、专业;参考查询结果如下图所示:
5)查询借过作者为“安意如”的图书的学生姓名、图书名称、借出日期、归还日期;
参考查询结果如下图所示:
6)查询目前借书但未归还图书的学生名称及未还图书数量;参考查询结果如下图所
示:。
刷题数据库设计做题记录表在设计一个用于记录做题记录的数据库表时,你需要考虑哪些字段是必要的,以及这些字段的数据类型。
以下是一个简单的示例,展示了如何设计一个做题记录表:sql复制代码CREATE TABLE 题目记录(记录ID INT PRIMARY KEY AUTO_INCREMENT, -- 主键,自增用户ID INT, -- 用户ID,关联用户表题目ID INT, -- 题目ID,关联题目表开始时间TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 做题开始时间结束时间TIMESTAMP, -- 做题结束时间答案VARCHAR(255), -- 用户提交的答案正确答案VARCHAR(255), -- 题目正确答案评分INT, -- 评分(例如:0-5分)状态ENUM('未完成', '已完成', '已提交') DEFAULT '未完成' -- 做题状态);上述示例中,我们创建了一个名为"题目记录"的表,包含了以下字段:记录ID:每条记录的唯一标识符,采用自增的整数类型。
用户ID:关联用户表的ID,用于标识做题的用户。
题目ID:关联题目表的ID,用于标识具体的题目。
开始时间:做题开始的日期和时间,采用TIMESTAMP类型,默认为当前时间。
结束时间:做题结束的日期和时间,采用TIMESTAMP类型。
答案:用户提交的答案,采用VARCHAR类型。
正确答案:题目的正确答案,采用VARCHAR类型。
评分:评分数值,采用整数类型。
•状态:做题状态,采用ENUM类型,可以设置为"未完成"、"已完成"或"已提交"。
默认值为"未完成"。
这只是一个简单的示例,你可以根据实际需求进行修改和扩展。
例如,你可能需要添加更多的字段来记录做题的具体时间、做题时长、是否提交等其他相关信息。
MySQL数据库作业1、在天津各⼤学的<<单⾝群体资料库>>中,⽤数据库tjra来存储学⽣信息。
其中,⽤户信息、星座信息和⾎型信息分别采⽤Users、Star和Blood三个表来保存,其中Users表引⽤了Star和Blood的数据,数据结构如下:表名Users作⽤存储⽤户的基本信息主键UserId序号字段名称字段说明类型长度属性备注1UserId主键、⾃动增长Int⾮空2UserName⽤户名称varchar30⾮空3UserPwd⽤户密码varchar30⾮空4NickName⽤户昵称varchar30⾮空5Sex⽤户性别Int⾮空1男-0⼥6Height⽤户⾝⾼Int允许空null(cm)7Age⽤户年龄Int允许空null8IsDone是否已找到对象Int⾮空1有-0⽆9StarId星座id Int允许空null10BloodId⾎型id Int允许空null表名Star作⽤星座数据字典表主键StarId序号字段名称字段说明类型长度属性备注1StarId主键、⾃动增长Int⾮空2StarName星座名称varchar30⾮空表名Blood作⽤⾎型库字典表主键BloodId序号字段名称字段说明类型长度属性备注1BloodId主键、⾃动增长Int⾮空2BloodType⾎型varchar10⾮空要求:1、按以上结构分别建⽴三张表2、⽤sql语句初始化如下相应的数据a) 星座:⽩⽺座,⾦⽜座,双⼦座,巨蟹座,狮⼦座,处⼥座,天秤座,天蝎座,射⼿座,摩羯座,⽔瓶座,双鱼座Insert into Star(StarId,StarName) values (1,"⽩⽺座");Insert into Star(StarId,StarName) values (2,"⾦⽜座");Insert into Star(StarId,StarName) values (3,"双⼦座");Insert into Star(StarId,StarName) values (4,"巨蟹座");Insert into Star(StarId,StarName) values (5,"狮⼦座");Insert into Star(StarId,StarName) values (6,"处⼥座");Insert into Star(StarId,StarName) values (7,"天秤座");Insert into Star(StarId,StarName) values (8,"天蝎座");Insert into Star(StarId,StarName) values (9,"射⼿座");Insert into Star(StarId,StarName) values (10,"摩羯座");Insert into Star(StarId,StarName) values (11,"⽔瓶座");Insert into Star(StarId,StarName) values (12,"双鱼座");b) ⾎型:A,B,AB,Oinsert into Blood(BloodId,BloodType)value(1,"A");insert into Blood(BloodId,BloodType)value(2,"B");insert into Blood(BloodId,BloodType)value(3,"AB");insert into Blood(BloodId,BloodType)value(4,"O");3、向Users表中按字段要求插⼊12条⾃定义数据,以便进⾏下⾯练习a) 要求有两条年龄⼤于32岁的⼥同学要求分别有没有找到对象和已经找到对象了的男⼥同学b) 要求有14、16、18、19、30、32岁的⼥同学,⾝⾼有150、155、160等数据c) 要求有17、16、19、20、23、26岁的男同学,⾝⾼有168、170、176、180等数据4、根据指定UserId对应的没有找到对象的⽤户更改为已经找到对象了update users set IsDone=1 where UserId=6;5、删除年龄⼤于32岁的所有⼥同学delete from users where age>32;6、查询出所有学⽣的主键、⽤户名称、性别、⾝⾼、是否已经找到对象select UserId,UserName,Sex,Height,IsDone from users;7、查询出没有找到对象的年龄在18-22岁之间⾝⾼在158cm以上的所有⼥⽣select * from users where Age>18 and Age<32 and IsDone=0 and Height>158 and Sex=0;8、查询出已经有找到对象的年龄在20-24岁之间的⾝⾼在170cm以上所有男⽣select * from users where Age>20 and Age<24 and IsDone=1 and Height>170 and Sex=1;9、查询出⾝⾼不等于155cm的所有⼥⽣的⾝⾼和姓名,并查询结果中对应显⽰“⾝⾼”、“姓名”select UserName as "姓名",Height as "⾝⾼" from users where Sex=0 and Height<>155;10、查询出所有学⽣信息,⼥⽣排列在前,男⽣排列在后,男⽣⼥⽣⾝⾼从⾼到低排列select * from users order by Sex asc,Height desc;11、查询出所有没有登记年龄的学⽣select * from users where Age=null;12、查询出所有未找到对象的学⽣的姓名、性别,并在结果集中增加⼀列说明为”单⾝群体”select UserName as "姓名",Sex as "性别","单⾝群体" as "群体" from users where IsDone=0;13、查询⾝⾼最⾼的前三位⼥同学select * from users where Sex=0 order by Height desc limit 0,3;14、查询⽼三、⽼四、⽼五三⼥同学select UserName,Sex from users where UserName="⽼三" or UserName="⽼四" or UserName="⽼五";15、查询名称中有“花花”的所有男同学select * from users where UserName like "%花花%" and Sex=1;16、查询⽤户昵称是以“⼩”开头的所有同学17、18、 select * from users where NickrName like "⼩%" ;19、查询⽤户昵称是以“⼩”结束的所有同学20、 select * from users where NickrName like "%⼩" ;21、查询年龄为16、18、30岁的所有⼥同学select * from users where (Age=16 or Age=18 or Age=30)and Sex=0;22、查询所有⼥⽣年龄之和并结果中显⽰“⼥⽣总年龄”mysql> select sum(age) as "⼥⽣总年龄" from users where Sex=0;23、查询所有男⽣的平均年龄并结果中显⽰“男平均年龄”mysql> select avg(age) as "男⽣平均年龄" from users where Sex=1;24、查询出年龄最⼤的⼥⽣信息select * from users where Age=(select max(Age) from users where Sex=0);25、查询出⾝⾼最矮的男⽣信息mysql> select * from users where Height=(select min(height) from users where Sex=1);26、查询出⼥⽣个数并结果中显⽰“⼥⽣总数”mysql> select count(*) as "⼥⽣总⼈数" from users where Sex=0;27、查询出年龄在18-22岁之间的所有⼥⽣的姓名、星座名称mysql> select UserName,StarName from users,star where Sex=0 and users.StarId=star.StarId and (age>18 and age<22);28、查询出⾝⾼在165-175cm之间的所有男⽣的姓名、星座名称、⾎型select UserName,StarName,BloodType from users,star,blood where users.StarId=star.StarId and users.BloodId=blood.BloodId and Sex=1 and Height>165 and Height<175;29、导出tuts数据库进⾏数据备份存储。
数据库开发与维护-XXX-作业1-(9月7日提交)数据库开发与维护作业学号:姓名:(提示:作业必须独立完成,如有雷同,作业当0分处理)作业1:例1-1 有一个脚本文件(test.sql),文件内容:Show databases;Create database test;Use test;Create table table_1( I int ) ENGINE = MyISAM;执行之。
例1-6创建sc表例1 7 列出jxgl数据库中所有表。
例1 8 列出jxgl数据库中表student的列。
例1 9 列出jxgl数据库中表的详细信息。
例1 10 列出jxgl数据库中表sc的索引。
例 1 11 使用SQL语句创建示例数据库(jxgl):其中,学生表要求学号为主键,性别默认为男,取值必须为男或女,年龄取值在15到45之间。
课程表(course)要求主键为课程编号,外键为先修课号,参照课程表的主键(cno)。
选修表(sc)要求主键为(学号,课程编号),学号为外键,参照学生表中的学号,课程编号为外键,参照课程表中的课程编号;成绩不为空时必须在0到100之间。
例 1 12 在表student中增加属性生日(birthday)。
例 1 13删除例3-6中增加的属性生日(birthday)。
例1 14 在表student中属性sname上建立索引(sn)。
例1 15 删除表sc。
例1 16 在数据库jxgl中创建视图v,查询学生姓名,课程名及其所学课程的成绩,显示数据库jxgl中视图v创建的信息。
作业2:2-1 向jxgl数据库中表student添加数据('2005007','李涛','男',19,'IS')。
2-2 向jxgl数据库中表student添加数据('2005008','陈高','女',21,'AT'),('2005009','张杰','男',17,'AT')。
实验三建表、修改表、删除表1.建立数据库jxgl在jxgl数据库中建立学生表student,课程表course,选修表sc,建表过程有如下方式1)以图形界面操作2)以SQL操作(以下脚本可直接在查询分析器中执行)Create Table Student(Sno CHAR(5)NOT NULL PRIMARY KEY(Sno),Sname V ARCHAR(20),Sage SMALLINT CHECK(Sage>=15 AND Sage〈=45),Ssex CHAR(2)DEFAULT'男’CHECK(Ssex=’男’OR Ssex='女'),Sdept CHAR(2));Create Table Course(Cno CHAR(2)NOT NULL PRIMARY KEY(Cno),Cname V ARCHAR(20),Cpno CHAR(2),Ccredit SMALLINT);Create Table SC(Sno CHAR(5)NOT NULL CONSTRAINT S_F FOREIGN KEY REFERENCES Student (Sno),Cno CHAR(2)NOT NULL,Grade SMALLINT CHECK((Grade IS NULL)OR(Grade BETWEEN 0 AND 100)), PRIMARY KEY(Sno,Cno),CONSTRAINT C_F FOREIGN KEY(Cno)REFERENCES Course(Cno));INSERT INTO Student V ALUES('98001’,'钱横',18,’男’,'CS');INSERT INTO Student V ALUES('98002',’王林',19,'女',’CS');INSERT INTO Student V ALUES(’98003',’李民',20,'男’,’IS');INSERT INTO Student V ALUES('98004',’赵三’,16,’女',’MA');INSERT INTO Course V ALUES('1',’数据库系统',’5’,4);INSERT INTO Course V ALUES(’2’,'数学分析’,null,2);INSERT INTO Course V ALUES('3',’信息系统导论','1’,3);INSERT INTO Course V ALUES(’4','操作系统原理','6’,3);INSERT INTO Course V ALUES(’5','数据结构’,’7’,4);INSERT INTO Course V ALUES(’6','数据处理基础’,null,4);INSERT INTO Course V ALUES(’7','C语言','6’,3);INSERT INTO SC V ALUES(’98001’,’1',87);INSERT INTO SC V ALUES(’98001','2',67);INSERT INTO SC V ALUES(’98001',’3',90);INSERT INTO SC V ALUES('98002','2’,95);INSERT INTO SC V ALUES('98002','3',88);课程表Course(课程号Cno,课程名Cname,先修课号Cpno,学分Ccredit)学生表Student(学号Sno,姓名Sname,年龄Sage,性别Ssex,所在系Sdept)学生选课表SC(学号Sno,课程号Cno,成绩Grade)实验四Select查询操作练习(1)基于“教学管理"数据库jxgl,使用SQL的查询语句表示下列查询: ①检索年龄大于23岁的男学生的学号和姓名;select Sno,Snamefrom Studentwhere Sage〉’23'AND Ssex='男’;②检索至少选修一门课程的女学生的姓名;select Snamefrom Student,SCwhere Ssex='女'AND Student。
《数据库技术》课程设计说明书
班级:农水1501 学号:2015224010127 姓名:陈竞尧
一、设计题目:医院住院病人管理系统
二、设计目的
随着科技的飞速发展,计算机已经广泛应用于各个领域之中。
在医学领域中,计算机主要应用于两个方面:一是医疗设备智能化,以硬件为主。
另一种是医院数据库管理系统以软件建设为主,以提高医院的现代化管理水平。
该系统包括医生及患者的信息录入、删除、修改和查询等功能,适用于中小型医院。
三、设计要求
病人入院登记(如姓名、性别、年龄等)、分配病历号,安排临床科室、病房床位、手术、转科调床及住院医疗费管理的日常业务需求。
提供收取病人的住院押金,打印押金收据,及作废押金单据等功能。
统计分析医院各科床位流动情况、工作量及医疗费用,输出病案首页、住院财务报表及住院医疗业务统计报表。
住院病人收费管理有催款、欠款处理及中途结帐功能。
系统保存住院病人可跟踪的入、出、转及费用发生动态,查询与病人实际动态随时随地保持一致,为住院病人费用结算、统计和财务核算分析提供及时、准确、完整的数据。
支持全院范围授权用户及病人家属对病人总帐、明细帐及费用使用情况的查询、咨询、随时提供病人住院费用清单。
四、设计内容
五、概念模型设计(E/R图)
六、关系数据模型设计
1.关系模型转化
(1)医生表(医生编号,姓名,性别,出生日期,科室)
(2)病人表(病人编号,姓名,性别,出生日期,缴费情况,缴费金额,病症)(3)病房表(病房号,床位号,床位数)
(4)治疗表(医生编号,病人编号,病人情况,医嘱内容,治疗时间)
(5)入住表(病人编号,病房号,床位号,住院时间,出院时间)
2.函数依赖及范式
(1)医生表:医生编号→姓名,医生编号→姓别,医生编号→出生日期,医生编号→科室,没有传递依赖,没有部分依赖,则此范式属于第三范式。
(2)病人表:病人编号→姓名,病人编号→姓别,病人编号→出生日期,病人编号→缴费情况,病人编号→缴费金额,病人编号→病症,没有传递依赖,没有部分依赖,则此范式属于第三范式。
(3)病房表:(病房号,床位号)→床位数,没有传递依赖,没有部分依赖,则此范式属于第三范式。
(4)治疗表:(医生编号,病人编号)→病人情况,(医生编号,病人编号)→遗嘱内容,(医生编号,病人编号)→治疗时间,有传递依赖,没有部分依赖,则此范式属于第三范式。
(5)入住表:(病人编号,病房号,床位号)→住院时间,(病人编号,病房号,床位号)→出院时间,有传递依赖,没有部分依赖,则此范式属于第三范式。
七、关系模型定义
图一—医生信息表
Creat doctor(Did Nchar(10)primary key,Dname Nchar(16)null,Dsex Nchar(1)check(Dsex=男or女),Dbirth Datetime(10) null,Office Nchar(10)null)
Creat patient(Pid Nchar(10)primary key,Pname Nchar(16)null,Psex Nchar(1)check(男
or女),Pbirth Datetime(10) null,Pmon Text(10)null,Pmoney float(10)null,Illness Text(16)null)
Creat Pinformation(Sid Nchar(10)primary key,Sroom Int(10)primary.Snum Nchar(10)null)
图四—病人治疗信息表
Create Pcure(Did Nchar(10)primary key, Pid Nchar(10)primary key,Pcondition Text(16)null,Mcontent Text(16)null,Curetime Datetime(10)null)
图五—病人入住信息表
Create Plive(Pid Nchar(10)primary key,Sid Nchar(10) primary key,Sroom Int(10) primary key,Intime Datetime(10)null,Outtime Datetime(10)null)
八、课程设计总结
将书本知识应用于实际问题,更加深刻地理解了书本上的内容,更加清楚的了解了系统的流程性、数据的流程性。
在这次课程设计中,不但要实现系统的各项功能,而且流程性要好。
同时认识到在以后的管理信息系统设计中,一定要先从系统性、流程性方面考虑,然后再进行系统功能的规划,这样整个系统会更严密,更有实用性。
在以后的学习中更加努力,认真,掌握好管理信息系统的思想和原理、数据库语言和计算机知识,并善于将所学的知识更加灵活地应用于实际生活中,解决实际问题。
在这次课程设计中,我觉得自己的耐力、毅力、独立思考和解决问题的能力有了很大的提高,以后我也一定要将这种精神坚持下去。