数据库与web
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
班级:姓名:学号:
一.SQL语句的练习、触发器的操作、存储过程的实现。
(1)插入一条零件的信息:零件代码:p7,零件名称:离合器。
insert into p values('p7','离合器','',‘’)
(2)插入一条供应信息:东方红供应商(s3)供给半导体厂工程(j7)的齿轮(p6)数量为100。
insert into spj values(‘s3’,’p6’,’j7’,’100’)
(3)修改工程弹簧厂的城市为上海。
updata j set city=’上海’ where jname=’弹簧厂’
(4)修改东方红供应商(s3)供应给三建工程(j1)的螺母(p1)数量为300个。
update spj set spj.qty=300 where spj.sno='s3'and spj.pno='p1'and spj.jno='j1'
(5)删除s1供应商供应工程p3的供应情况。
delete from spj where spj.sno='s1'and spj.pno='p3'
(6)删除一汽工程及其使用零件的情况。
delete from spj where spj.jno=(select jno from j where j.jname='一汽')
delete from j where j.jname='一汽'
5、在数据库test1中进行下列查询操作,将查询语句写入实验报告。(1)查询所有供应商情况,先按城市升序排列,城市相同按供应商名称降序排列。
select *from j order by city asc, jname desc
(1)查询零件名中含有“螺”字的零件信息。
select * from p where pname like'%螺%'
(3)查询零件中的最大、最小、平均重量。
select max(weight)from p
select min(weight)from p
select avg(weight)from p
(4)查询供应商S1所供应的各种零件的名称和数量。
select distinct p.pname ,sum(spj.qty) from spj join p on spj.pno=p.pno where spj.sno='s1'group by pname
(5)查询使用红色螺丝刀的工程名称。
select jname from j where jno=(select jno from spj where pno=(select pno from p where p.pname='螺丝刀'and p.color='红色')) (6)查询供应情况,显示内容为供应商名称、零件名、工程名称、数量。select s.sname,p.pname,j.jname,spj.qty from s inner join(p inner join(j inner join spj on j.jno=spj.jno)on p.pno=spj.pno)on s.sno=spj.sno
(7)查询工程J1所使用的全部零件和零件来源。
select s.sname,p.pname from s inner join(spj inner join p on p.pno = spj.pno)on s.sno = spj.sno where spj.jno='j1'
6、请为机车厂工程项目建立一个供应情况的视图,包括供应商代码,零件代码,供应数量。针对该视图完成如下查询并将SQL语句写入实验报告。
create view v1 as select sno,pno,qty from spj
(1)查询机车厂工程项目使用的各种零件代码及其数量。
select distinct pno,sum(qty) from v1 where sno=(select sno from spj where jno=(select jno from j where jname='机车厂'))group by pno (2)查询供应商S2的供应情况。
select *from v1 where sno='s2'
二.Web应用系统:人事管理系统
2.1、系统功能分析:
人事管理系统主要有以下几项功能要求:
1)新员工资料的输入;
2)自动分配员工号,并且设置初始的用户密码;
3)人事变动的详细记录,包括岗位和部门的调整;
4) 员工信息的查询和修改,包括员工个人信息和密码等。
2.2、系统功能模块设计
根据系统功能的要求,可以将系统分解成几个功能模块来分别设计,功能模块如图1所示。
2.3、数据流程图
系统的数据流程图如图2所示,所有数据由人事管理人员输入。
2.4、数据库需求分析
根据数据流程图,可以列出以下数据项和数据结构:
1)员工信息:基本信息,学历信息,婚配信息,工作信息
2)人事变动:新员工信息录入,员工信息修改,员工信息删除
所需的外部数据支持:
1)部门设置:部门编号、名称……
2.5、数据库概念结构设计
图3是人事管理系统的E-R图。
2.6、数据库逻辑结构设计与实现
员工基本信息表
员工学历信息表
员工婚姻状况表
员工工作信息表
2.7、主要代码实现
//公共类(数据操作类)DataClass public class DataClass{ private SqlConnection sqlConn; public DataClass(){}
public SqlConnection GetSqlSeverConn(){ SqlConnection sqlConn;
string strConn = WebConfigurationManager.Con nectionStrings["ApplicationServ ices"].ConnectionString; sqlConn = new SqlConnection(strConn); sqlConn.Open();
return sqlConn; }
public void CloseSqlSeverConn(SqlConnect ion sqlConn){
if (sqlConn.State == ConnectionState.Open) {sqlConn.Close();}}
public bool IsUserRegist(string strUserName){return true;} private string GetMD5(string strPwd) { MD5 md5 = new
MD5CryptoServiceProvider(); byte[] bPwd =
Encoding.Default.GetBytes(strP wd); byte[] bMD5 =
puteHash(bPwd); StringBuilder sbMD5Pwd = new StringBuilder();
for (int i = 0; i < bMD5.Length; i++){ sbMD5Pwd.Append(bMD 5[i].ToString());}
return sbMD5Pwd.ToString();} public bool SaveUserInfo(string strUserName, string strPwd, int iQx){return true;}
public bool IsUserExist(string strUserName, string strPwd){ string strConn = "select count(*) from
用户信息表where 用户名=@用户名and用户密码=@用户密码";
SqlConnection sqlConn = this.GetSqlSeverConn(); SqlCommand sqlComm = new SqlCommand();try{sqlComm.C ommandText = strConn; sqlComm.Connection = sqlConn;
sqlComm.Parameters.AddWith Value("@用户名", strUserName);
sqlComm.Parameters.AddWith Value("@用户密码", strPwd);object obj = sqlComm.ExecuteScalar();
if (int.Parse(obj.ToString()) > 0) {return true;}
else{return false;}}
catch (Exception ex){
return
false;}finally{this.CloseSqlSeve rConn(sqlConn);}}
public bool IsAddJBInfomation(string YGID, string YGName, string YGSex, int YGAge, string YGBirth){try{
string strConn = "insert into 员