实验7 数据库编程
- 格式:doc
- 大小:42.00 KB
- 文档页数:2
实验七数据库操作技术实验步骤1、新建数据库StaffDataBase2、新建数据表设置主键3、新建职工信息操作窗口(1)添加bindingNavigator控件,添加三个toolStripButton,命名为“添加”、“修改”、“删除”(2)把DisplayStyle属性值改成ImageAndText(3)添加dataGridView(4)得到完整窗口4.新建职工信息编辑窗口5、1)定义一个数据库连接类完成连接类,代码如下(导入包using System.Data.SqlClient);):using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.SqlClient;namespace WindowsFormsApplication2{class DataBaseLink{public string strConn = "Data Source=cc-PC\sqlexpress;InitialCatalog=StaffDataBase;Integrated Security=True"; /*链接字符串*/public SqlConnection DataLink(){SqlConnection con = new SqlConnection(strConn); /*/实例化连接对象*/return con; /*返回链接对象*/}}}6.新建接口InterfaceDataAccessing完成接口类,代码为(导入包using System.Data);):using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;namespace WindowsFormsApplication2{interface InterfaceDataAccessing{void Add(String[] st); /*添加数据到数据库,参数接受信息*/void Updata(String[] st, string id); /*更新数据,参数1接收修改的信息,参数2修改条件*/ void Delete(string id); /* 删除数据,参数删除条件*/DataSet GetData(string st);/*查询数据,参数为查询条件*/}}7.添加职工类去继承接口:对职工类去继承接口并进行操作方法的编写为:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication2{class Staff{DataBaseLink db = new DataBaseLink();/*实例化类的对象*/public void Add(String[] st){using (SqlConnection con = db.DataLink()) /* 返回连接*/{if (con.State == ConnectionState.Closed)/*若数据库状态为关则打开*/ {con.Open();}try{string sql = "Insert into Staff(bh,xm,xb,byxy,xl,xw,gzbm,lxdz,yxdz,zz) Values(@bh,@xm,@xb,@byxy,@xl,@xw,@gzbm,@lxdz,@yxdz,@zz)";//查询语句同学也可以参考教材上的例子编写查询语句,所以字段,所有的值SqlCommand cmd = new SqlCommand(sql, con);/*创建查询命令对象,参数1查询语句,参数2连接对象*/SqlParameter p1 = new SqlParameter("@bh", st[0]);/*结构化查询参数,参数1值变量,参数2,值的具体内容*/SqlParameter p2 = new SqlParameter("@xm", st[1]);SqlParameter p3 = new SqlParameter("@xb", st[2]);SqlParameter p4 = new SqlParameter("@byxy", st[3]);SqlParameter p5 = new SqlParameter("@xl", st[4]);SqlParameter p6 = new SqlParameter("@xw", st[5]);SqlParameter p7 = new SqlParameter("@gzbm", st[6]);SqlParameter p8 = new SqlParameter("@lxdz", st[7]);SqlParameter p9 = new SqlParameter("@yxdz", st[8]);SqlParameter p10 = new SqlParameter("@zz", st[9]);cmd.Parameters.Add(p1);/*把新创建的对象添加到*/cmd.Parameters.Add(p2);cmd.Parameters.Add(p3);cmd.Parameters.Add(p4);cmd.Parameters.Add(p5);cmd.Parameters.Add(p6);cmd.Parameters.Add(p7);cmd.Parameters.Add(p8);cmd.Parameters.Add(p9);cmd.Parameters.Add(p10);cmd.ExecuteNonQuery();//执行查询命令MessageBox.Show("信息添加成功!");}catch (Exception ex)//异常放到ex中{MessageBox.Show("错误:" + ex.Message, "错误提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);}finally/*不管连接对象状态是否关闭,都执行关闭连接*/{if (con.State == ConnectionState.Open){con.Close();con.Dispose();/*释放连接对象*/}}}}public DataSet GetData(string st) /*定义方法,返回类型数据集,参数为查询条件*/{DataSet ds = new DataSet("Staff");if(st==null)/*判断查询条件是否为空,全查询*/{using (SqlConnection con = db.DataLink())/*返回连接对象*/{if (con.State == ConnectionState.Closed){con.Open();}try{string sql = "Select * From Staff";/*查询语句*/SqlDataAdapter sqlda = new SqlDataAdapter(sql,con);/*新建查询适配器,参数1查询语句,参数2连接对象*/sqlda.Fill(ds);/*执行查询并填充*/}catch (Exception ex){MessageBox.Show("错误:" + ex.Message, "错误提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);}finally{if (con.State == ConnectionState.Open){con.Close();con.Dispose();}}}}return ds;}public void Delete(string id) /*定义删除方法,返回值类型为空,参数为删除条件*/{using (SqlConnection con = db.DataLink())/*使用连接对象,定义连接变量,返回连接对象*/{if (con.State == ConnectionState.Closed){con.Open();}try{string sql = "Delete From Staff Where bh=" + "'"+id+"'";/*定义查询语句*/SqlCommand comd = new SqlCommand(sql,con);/*创建新的命令对象,参数1删除命令,参数2为连接对象*/comd.ExecuteNonQuery();//执行指令}catch (Exception ex){MessageBox.Show("错误:" + ex.Message, "错误提示",MessageBoxButtons.OKCancel, MessageBoxIcon.Error);}finally{if (con.State == ConnectionState.Open){con.Close();con.Dispose();}}}}public void Updata(String[] st,string id) /*定义更新数据方法,参数1修改内容,参数2修改条件*/{using (SqlConnection con = db.DataLink())/*使用连接对象,定义连接变量,变量接受返回的连接对象*/{if (con.State == ConnectionState.Closed){con.Open();}try{string sql = "Update Staff setbh=@bh,xm=@xm,xb=@xb,byxy=@byxy,xl=@xl,xw=@xw,gzbm=@gzbm,lxdz=@lxdz,yxdz=@yxdz,zz=@zz where bh='"+id+"'";SqlCommand cmd = new SqlCommand(sql, con);/* 创建查询命令对象,参数1查询语句,参数2连接对象*/SqlParameter p1 = new SqlParameter("@bh", st[0]); ;SqlParameter p2 = new SqlParameter("@xm", st[1]); /*结构化查询参数,参数1值变量,参数2值的具体内容*/SqlParameter p3 = new SqlParameter("@xb", st[2]);SqlParameter p4 = new SqlParameter("@byxx", st[3]);SqlParameter p5 = new SqlParameter("@xl", st[4]);SqlParameter p6 = new SqlParameter("@xw", st[5]);SqlParameter p3 = new SqlParameter("@gzbm", st[6]);SqlParameter p4 = new SqlParameter("@lxdz", st[7]);SqlParameter p5 = new SqlParameter("@yxdz", st[8]);SqlParameter p6 = new SqlParameter("@zz", st[9]);cmd.Parameters.Add(p1); /*把新创建的对象添加到数据集和中*/cmd.Parameters.Add(p2);cmd.Parameters.Add(p3);cmd.Parameters.Add(p4);cmd.Parameters.Add(p5);cmd.Parameters.Add(p6);cmd.Parameters.Add(p7);cmd.Parameters.Add(p8);cmd.Parameters.Add(p9);cmd.Parameters.Add(p10);cmd.ExecuteNonQuery();/*执行指令*/}catch (Exception ex){MessageBox.Show("错误:" + ex.Message, "错误提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);}finally{if (con.State == ConnectionState.Open){con.Close();con.Dispose();/*释放连接对象*/}}}}}}8.编写StaffFrom窗口的相关程序代码如下:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication2{public partial class StaffFrom : Form{private BindingSource bindingSource = new BindingSource();/*Bindingsource是显示控件与数据集中的数据表的中间层*/Staff std = new Staff();/*创建学生对象*/public StaffFrom(){InitializeComponent();DataBinding();/*方法,实现数据绑定*/}private void toolStripButton1_Click(object sender, EventArgs e){Form1 form1 = new Form1("xz", null);form1.ShowDialog();DataBinding();}public void DataBinding() /*定义方法*/{DataSet ds = std.GetData(null);bindingSource.DataSource = ds.Tables[0];bindingNavigator1.BindingSource = bindingSource;dataGridView1.DataSource = bindingSource;}private void toolStripButton2_Click(object sender, EventArgs e){DataGridViewRow dataRow = dataGridView1.SelectedRows[0];if (dataRow ==null ){MessageBox.Show("请选中要修改的数据!", "提示");}else{Form1 form = new Form1("xg", dataRow);form.ShowDialog();DataBinding();}}private void toolStripButton3_Click_1(object sender, EventArgs e){DialogResult dia = MessageBox.Show("你确实要删除此记录吗", "确认删除", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);if (dia == DialogResult.OK){DataGridViewRow dataRow = dataGridView1.SelectedRows[0];std.Delete(dataRow.Cells[0].Value.ToString());DataBinding();}}}}完整窗口为:9.编写From1窗口的相关程序代码如下:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication2{public partial class Form1 : Form{string str;string id;public Form1(string str,DataGridViewRow dgvr){InitializeComponent();this.str = str;if(str == "xg"){button1.Text = "修改";textBox1.Text = dgvr.Cells[0].Value.ToString(); textBox2.Text = dgvr.Cells[1].Value.ToString(); textBox3.Text = dgvr.Cells[2].Value.ToString(); textBox4.Text = dgvr.Cells[3].Value.ToString(); textBox5.Text = dgvr.Cells[4].Value.ToString(); textBox6.Text = dgvr.Cells[5].Value.ToString(); textBox7.Text = dgvr.Cells[6].Value.ToString(); textBox8.Text = dgvr.Cells[7].Value.ToString(); textBox9.Text = dgvr.Cells[8].Value.ToString(); textBox10.Text = dgvr.Cells[9].Value.ToString(); id = dgvr.Cells[0].Value.ToString();textBox1.Enabled = false;}if(str == "xz"){button1.Text = "新增";}}private void button1_Click(object sender, EventArgs e){string[] st = new string[10];if(str == "xz"){st[0] = textBox1.Text.Trim();st[1] = textBox2.Text.Trim();st[2] = textBox3.Text.Trim();st[3] = textBox4.Text.Trim();st[4] = textBox5.Text.Trim();st[5] = textBox6.Text.Trim();st[6] = textBox7.Text.Trim();st[7] = textBox8.Text.Trim();st[8] = textBox9.Text.Trim();st[9] = textBox10.Text.Trim();Staff idaxz = new Staff();idaxz.Add (st);this.Close();}if(str == "xg"){st[0] = textBox1.Text.Trim();st[1] = textBox2.Text.Trim();st[2] = textBox3.Text.Trim();st[3] = textBox4.Text.Trim();st[4] = textBox5.Text.Trim();st[5] = textBox6.Text.Trim();st[6] = textBox7.Text.Trim();st[7] = textBox8.Text.Trim();st[8] = textBox9.Text.Trim();st[9] = textBox10.Text.Trim();Staff idaxg = new Staff();idaxg.Updata(st,id);this.Close();}}private void button2_Click(object sender, EventArgs e) {this.Close();}}}完整后的窗口为:10.运行程序:1.单击添加:(1).输入数据(2).点击“新增”后:2.单击修改:(1).输入修改数据:(2).单击“修改”后3.单击删除:(1).删除数据:(2).点击取消:(3).点击确定:数据库的分离:。
(2008版)数据库原理实验7指导书一实验题目:存储过程二实验目的:熟悉存储过程的定义和使用,熟练运用select ,update ,insert ,delete 命令完成对学生信息数据库的查询、更新、添加、删除操作。
三实验内容及要求(从下面10个题目中选一个)题目一:学生(学号,年龄,性别,系名)课程(课号,课名,学分,学时)选课(学号,课号,成绩)根据上面基本表的信息定义一个存储过程,完成下面功能:入口参数:学号1 显示学生的选课信息2 如果学生没选课,让他选1号课,插入一条选课记录,成绩为03 如果学生所有课都不及格,删掉该学生记录题目二:图书(书号,书名,价格,出版社)读者(卡号,姓名,年龄,所属单位)借阅(书号,卡号,借阅日期)根据上面基本表的信息定义一个存储过程,完成下面功能:入口参数:书号1 显示图书借阅信息2 如果没人借,删除该书记录3 如果价格5元以下,涨价至5元。
题目三:商品(编号,品名,进价,库存,售价,厂商编号)顾客(卡号,姓名,电话,积分)厂商(编号,厂址,名称、电话)销售(顾客卡号,商品编号,数量,日期)根据上面基本表的信息定义一个存储过程,完成下面功能:入口参数:商品编号1 显示商品信息2 如果没人买,删除该商品记录3 如果价格低于10元,涨价至10元。
题目四:图书(书号,书名,作者编号,价格,出版社编号)作者(编号,姓名,电话)出版社(编号,出版社名称,地址)根据上面基本表的信息定义一个存储过程,完成下面功能:入口参数:出版社编号1 显示出版社信息2 如果没书出版,删除该记录3 如果该出版社的图书平均价格低于20元,所有书涨价10%。
题目五:零件(编号,名称,颜色)车间(编号,名称,人数,主任)产品(编号,名称,车间编号)使用(产品编号,使用零件编号,个数)根据上面基本表的信息定义一个存储过程,完成下面功能:入口参数:零件编号1 显示零件信息2 如果没有产品用,删除该零件记录3 如果颜色为红色,改为粉红。
java数据库编程实验报告以下是一个示例的Java数据库编程实验报告。
请注意,这只是一个模板,你可能需要根据你自己的实验进行修改。
标题:Java数据库编程实验报告一、实验目标1. 掌握Java与数据库的连接和交互。
2. 理解并实践使用JDBC进行数据库操作。
3. 掌握基本的SQL语句。
二、实验原理1. JDBC(Java Database Connectivity)是Java中用于与数据库进行交互的API。
它提供了一种标准的方法,使Java程序能够与各种不同类型的数据库进行交互。
2. SQL(Structured Query Language)是一种用于管理关系数据库的标准编程语言。
通过SQL,我们可以查询、插入、更新和删除数据库中的数据。
三、实验步骤及实现1. 引入JDBC驱动我们使用MySQL数据库,因此需要引入MySQL的JDBC驱动。
将MySQL的JDBC驱动(mysql-connector-java-版本号.jar)添加到项目的类路径中。
2. 建立数据库连接使用以下代码建立与数据库的连接:```javaString url = "jdbc:String username = "用户名";String password = "密码";Connection conn = (url, username, password);```3. 执行SQL语句使用以下代码执行SQL语句:```javaStatement stmt = ();ResultSet rs = ("SQL查询语句");```4. 处理结果集处理查询结果集:```javawhile (()) {// 使用("列名")获取列值,然后进行相应处理}```5. 关闭连接和释放资源使用以下代码关闭连接和释放资源:```java();();();```四、实验结果与分析在实验中,我们成功地实现了Java与MySQL数据库的连接,执行了查询语句并获取了查询结果。
实验7 数据库编程实验一.实验目的学会配置ODBC数据源。
熟悉使用ODBC来进行数据库应用程序的设计,熟悉通过ODBC接口访问异构数据库并对异构数据库进行操作。
使用Java语言编程实现对数据库的访问,所有的SQL操作均在自己建立的新库里进行,数据库建议选用学生课程数据库,读者可以选择进行创建、插入、查询、删除和更新等操作。
2 实验平台和实验工具实验平台:sql server 2000数据库管理系统, ODBC Driver。
通过C语言编写访问数据库的应用程序。
编程工具自选。
JDBC来访问和操纵数据库的流程。
3 实验内容和要求在sql server 2000数据库管理系统上,通过ODBC Driver,使用ODBC编写应用程序来对异构数据库进行各种数据操作。
配置两个不同的数据源,编写程序连接两个不同RDBMS的数据源,对异构数据库进行操作。
例如,将sql server 2000数据库的某个表中的数据备份到SQL Server数据库的表中。
要认真填写实验报告,并且提交源程序,保证可正确编译和运行。
配置环境变量。
使用Java语言编程实现对数据库的访问,所有的SQL操作均在自己建立的新库里进行,数据库建议选用学生课程数据库,读者可以选择进行创建、插入、查询、删除和更新等操作。
JDBC来访问和操纵数据库的流程。
->建立与数据库的连接;->创建语句对象;->执行查询并返回结果集对象;->处理结果集对象;->关闭结果集和语句对象;->提交更新;->关闭与数据库的连接。
3.1 知识预备■什么是ODBCODBC(OpenDatabaseConnectivity,开放数据库互连)是微软公司开放服务结构(WOSA,WindowsOpenServicesArchitecture)中有关数据库的一个组成部分,这一技术为访问不同种类的 SQL 数据库提供了通用接口。
ODBC是基于结构查询语言(SQL)的,并以此作为访问数据的标准。
数据库技术与应用实验报告实验名称:Transact-SQL程序设计系(科):信息系班级:学号:姓名:完成时间: 2012-6-7南京师范大学中北学院实验7 Transact-SQL程序设计一、实验目的1.掌握Transact-SQL的数据类型、常量变量、表达式等概念。
2.掌握SQL Server 2005中常用函数的用法。
3.掌握程序中注释的基本概念和使用方法。
4.了解程序中的流程控制语句。
二、实验准备1.了解函数的使用方法。
2.了解系统提供的常用数学函数、日期和时间函数、字符串函数和数据类型转换函数的用法。
3.了解程序中注释的语法格式。
4.了解程序中的流程控制语句:IF-ELSE、CASE、WHILE等控制流语句。
三、实验内容和步骤1.在查询分析器中,选择studentsdb数据库,在学生表中查找姓“张”的学生,并将该生姓名赋于变量@stu_name。
DECLARE @stu_name char(8)SELECT @stu_name =姓名FROM学生表WHERE姓名LIKE'张%'SELECT @stu_name提示:首先要定义变量@stu_name。
2.定义int型局部变量@grademax、@grademin、@gradesum,在成绩表中查找课程编号是“C002”课程的最高分、最低分和总分,分别赋给@grademax、@grademin和@gradesum,并显示。
DECLARE @grademax int, @grademin int, @gradesum intSELECT @grademax=Max(分数),@grademin=Min(分数),@gradesum=Sum(分数) FROM成绩表WHERE课程编号='0002'SELECT @grademax,@grademin,@gradesum3. 使用SET命令将查询结果集记录数目赋值给int型局部变量@row。
数据库安全性及数据库编程2、登录mysql服务器Mysql –u username –p二、实验内容及步骤一、查看并了解当前mysql数据库中的用户权限信息表MySQL中的权限表都存放在mysql数据库中。
MySQL5.6以前,权限相关的表有user表、db表、host表、tables_priv表、columns_priv表、procs_priv表(存储过程和函数相关的权限)。
从MySQL5.6开始,host表已经没有了。
在mysql数据库中,授予用户的权限可能分全局层级权限、数据库层级权限、表层级别权限、列层级别权限、子程序层级权限。
Mysql权限检查从user表到db表再到tables_priv表最后是columns_priv表,它们的权限是逐层细化的。
对于已经通过身份合法性验证的用户的权限读取和分配的机制如下:1.读取uesr表,user表中的普通权限是针对所有数据库的,例如在user表中的select_priv为Y,则对所有数据库都有select权限。
2.读取db表,db表是针对特定数据库中所有表的,通过db表可查看为用户针对哪个数据库分配了对应的权限。
3.读取tables_priv表,针对特定表中所有列的权限。
4.读取columns_priv表,看看对哪些具体的列有什么权限。
步骤一:先使用navicate在mysql数据库中查看当前服务器下所有的用户信息。
查看命令如下所示:use mysql;SELECT * FROM USER;SELECT * FROM DB;…二、创建用户命令语法为:CREATE USER '用户名'[@'主机名'][ IDENTIFIED BY '密码]';步骤二:(1)按照上述创建用户的命令创建用户TEST1,该用户只能通过本机访问数据库,密码为123。
此时主机名为localhost。
用户TEST1创建后使用SELECT语句查看user表的数据。
实验7 数据库模型的设计与建立1.一、实验目的:2.了解数据库设计概念设计中的基本知识: 如实体、属性、联系集…3.能解决设计中常见问题: 如把一个对象转化成实体还是属性4.使学生能独立完成数据库模式的设计, 包括各表的结构(属性名、类型、约束和关键字等)及表之间的关系以及其连接方式, 在选定的DBMS上建立数据库表。
5.熟悉数据库建模工具的使用(PowerDesigner)二、实验要求:1. 认真阅读业务需求, 作出E-R图, 并依据设计原则对数据库结构的设计务必做到最优化2. 在选定的DBMS上建立数据库, 比较手工输入SQL建立数据库与用建模工具自动生成数据库的优缺点三、实验环境及学时安排:1. OFFICE, POWERDESIGN112.SQL SERVER20003. 学时: 3学时四、实验内容:以完成学生选课系统的数据库设计为例。
如: 某学院有基本实体集: 系、教师、学生和课程。
1.它们各有属性:系: 系编号、系名, 位置课程: 课程号, 课程名称, 开课学期学生: 学生学号, 学生姓名、性别、地址教师:员工号, 教师姓名, 办公室2.有如下语义设定每个系有一位系主任, 有多位教师;一个教师仅在一个系任职;每个系开设多门不同课程;每门课程由多位教师授课;一位教师可教多门课程一个学生可以选修多门课程。
一门课程可以供多位学生选修3.存在联系有:1对1: 系与系主任(系主任是教师)1对多: 系与教师、系与课程多对多: 学生与课程,教师与课程五、实验任务及步骤:1.实验准备1)根据需求建立ER模型:ER模型的组成:实体属性联系连接2)ER模型转换为数据库表●实体转化为表●实体的属性转化为表中的列●多对多联系也转化为表, 主键确定为相联系表中主键的组合, 联系本身的属性转化为表的列一对一、一对多联系无需新建表, 被决定的一方应含有决定方的主键作为外部键3)利用power designer建立所要求的数据库2.实验操作1)新建word文件, 并保存为ER.doc2)分析需求, 画出上述关系的E-R 图(word) 3) 根据ER 模型进行数据库的逻辑结构设计: (建模工具PowerDesign 建立phisical data model) 六、实验结果按照需求绘制E-R 图如下:完整的实体-联系E-R 图如下:建立数据库模型(概念数据模型)如下:n mn mn 111系 教师学生课程系-老师教授选修系主任系编号 系名 位置员工号教师姓名办公室课程号课程名开课学期学号姓名性别地址物理数据模型如下:。
《数据库实验》实验报告《数据库实验》实验报告黄爱蓉编审湖北汽车⼯业学院电⼦信息科学系⼆〇〇七年⼀⽉实验⼀:建⽴数据库及基本表实验报告⼀、实验⽬的1、了解SQL Server数据库的逻辑结构和物理结构;2、了解SQL Server的基本数据类型;3、学会在企业管理器中创建数据库和表;4、使⽤SQL查询分析器⽤CREA TE、DROP、ALTER语句创建和删除数据库,创建、删除、更新基本表。
⼆、实验内容1、创建数据库和查看数据库属性。
2、创建表。
3、查看和修改表结构。
4、熟悉企业管理器和查询分析器⼯具的使⽤⽅法三、实验步骤1、在企业管理器中创建数据库和数据表。
(1) 使⽤企业管理器建⽴图书管理数据库,数据库名为BM,初始⼤⼩为10MB,最⼤为50MB,数据库⾃动增长,增长⽅式是按5%⽐例增长;⽇志⽂件初始为2MB,最⼤可增长到5MB,按1MB增长。
数据库的逻辑⽂件名和物理⽂件名均采⽤默认值。
详细步骤:(2) 在企业管理器中查看图书管理数据库的属性,并进⾏修改,使之符合要求。
(3) 通过企业管理器,在建好了图书管理数据库BM中建⽴图书(book)、读者(reader)和借阅(borrow)3个表,其结构为:图书(书号,类别,出版社,作者,书名,定价);读者(编号,姓名,单位,性别,电话);借阅(书号,读者编号,借阅⽇期)。
创建上述三个表的步骤:三个表各个字段的数据类型:2、在查询分析器中创建数据库和数据表(1) 创建数据库S-C 的sql语句:(2) 在数据库S-C下,创建基本表学⽣表student(sno,sname,ssex,sage,sdept)的sql语句:创建基本表课程表course(cno,cname, ccredit)的sql语句:创建基本表成绩表sc(sno,cno,grade)的sql语句:(3) 在窗⼝下分别键⼊DROP TABLE Student及DROP TABLE SC命令,运⾏后观察结果。
实验7 数据库编程
1.用户状态(userstate)表
字段数据类型说明
usid int primary key
userstate varchar(20) not null
description varchar(250)
2.用户(user)表
字段数据类型说明
uid int primay key
name varchar(20) not null
sex bit 0-female,1-male,not null password varchar(8) not null
state int foreign key birthday出生日期datetime
3.书目类别(category)表
字段数据类型说明
cid int primary key category varchar(20) not null
description varchar(250)
4.书目(book)表
字段数据类型说明
bid int primay key
title varchar(50) not null
author varchar(50) not null
press varchar(8) not null
price float not null
category int foreign key
stock int not null
5.订单状态(orderstate)表
字段数据类型说明
osid int primary key orderstate varchar(20) not null
description varchar(250)
6.订单(order)表
字段数据类型说明
oid int primary key
user int foreign key
state int foreign key payment总付款float默认值为0
ordertime提交时间datetime
7.订单详情(orderbook)表
字段数据类型说明
orderid int primary key,foreign key
bookid int primary key,foreign key
quantity int
一、存储过程
使用相应SQL语句,完成如下操作:
1.新建一存储过程proc1,显示指定用户ID的订单信息列表(订单号、成交时间、订单总金额、订单状态及所有订单的平均金额),并成交时间降序排列。
2.新建一存储过程proc6,实现查询与指定用户ID购买过相同商品的用户及购买过相同商品的数量,并按照相同商品数量降序排列。
二、触发器
1.创建一触发器tg1,当往orderbook表中增加记录时,实现商品库存相应减少;当修改orderbook表中相应商品数量时,实现商品数量相应变动。
2.创建一触发器tg2,当往orderbook中增加记录时,如果商品库存量少于10,则不允许购买该商品,并给出相应提示。
3.新建图书订购情况统计表bookstas(包含图书编号、图书名称、图书类别、图书价格和订购册数,数据类型自定),并根据数据库的订单情况将社科类图书的订购情况插入表中。
创建一触发器tg3,当往orderbook表中增加记录时,自动更新bookstas 表相应图书的统计信息。