文档库 最新最全的文档下载
当前位置:文档库 › SQL数据库操作步骤及代码

SQL数据库操作步骤及代码

SQL数据库操作步骤及代码
SQL数据库操作步骤及代码

第2章数据库高级编程

https://www.wendangku.net/doc/ce14346609.html,是为.NET框架而创建的,是对ADO(ActiveX Data Objects)对象模型的扩充。https://www.wendangku.net/doc/ce14346609.html,提供了一组数据访问服务的类,可用于对Microsoft SQL Server、Oracle等数据源的一致访问。https://www.wendangku.net/doc/ce14346609.html,模型分为.NET Data Provider(数据提供程序)和DataSet数据集(数据处理的核心)两大主要部分。

.NET数据提供程序提供了四个核心对象,分别是Connection、Command、DataReader 和DataAdapter对象。功能如表2-1所示。

表2-1 https://www.wendangku.net/doc/ce14346609.html,核心对象

2.1 SQL Server相关配置

在使用C#访问数据库之前,首先创建一个名为“chap2”的数据库,此数据库作为2.1节及2.2节中例题操作的默认数据库。然后创建数据表Products,表结构如表2-2所示。创建完毕后可录入初始化数据若干条。

表2-2 Products表表结构

机课的操作中出现问题较多的地方。

1.身份验证方式

SQL Server 2012在安装时默认是使用Windows验证方式的,但是安装过后用户可随时修改身份验证方式。

启动SQL Server 2012 Management Studio,在“连接到服务器”对话框中选择“Windows

身份验证”连接服务器,连接成功后,在窗体左侧的“对象资源管理器”中右键单击服务器实例节点,并在弹出的快捷菜单中选择“属性”菜单项,系统将弹出“服务器属性”窗体,切换至“安全性”选项卡,如图2-1所示。

图2-1 “服务器属性”对话框-“安全性”选项卡

在“服务器身份验证”部分选择“SQL Server和Windows身份验证模式”选项,并单击【确定】按钮。系统将提示需要重新启动SQL Server以使配置生效,如图2-2所示。

图2-2 系统提示框

右键单击“对象资源管理器”的服务器实例节点,在弹出的快捷菜单中选择“重新启动”菜单项,SQL Server将重新启动服务,重启成功后即可使用混合验证方式登录SQL Server 服务器。

2.添加登录账户

大部分初学者都习惯于使用SQL Server的系统管理员账号“sa”来登录数据库服务器,而在实际工作环境中使用sa账号登录服务器是不合理的。因为很多情况下系统的数据库是部署在租用的数据库服务器上的,此时数据库设计人员或编程人员都不可能具有sa账号的使用权限,因此在将身份验证方式修改为SQL Server和Windows混合验证后,需要为某应用程序创建一个专用的登录账户。其操作步骤描述如下。

(1)使用Windows身份验证登录SQL Server,在对象资源管理器中点击“安全性”节点前面的加号“+”,在展开后的“登录名”子节点上单击右键,如图2-3所示,并在弹出的快捷菜单中选择“新建登录名”选项。

图2-3 登录名节点的右键菜单

(2)系统弹出“登录名—新建”对话框中,如图2-4所示。首先在登录名输入框中填写需要创建的用户名,此处以“zd”为例;将身份验证方式选为“SQL Server 身份验证”,为新建账户设置密码为“123”,同时去除“强制实施密码策略”和“用户在下次登录时必须更改密码”选项;最后为账户选择默认数据库“chap2”。

图2-4 “登录名-新建”对话框“常规”选项卡

(3)服务器角色节点不予配置。有关SQL Server服务器角色请参考相关资料,此处不再详细介绍。

(4)在对话框左侧选项卡中选择“用户映射”节点,如图2-5所示,在“映射到此登录名的用户”列表中,勾选此前创建好的数据库“chap2”,在窗体右下方的“数据库角色成员身份”框里选择“db_Owner”,即数据库拥有者。

图2-5 “登录名-新建”对话框“用户映射”选项卡

(5)安全对象节点一般不予配置。

(6)在对话框左侧选项卡中选择“状态”节点,如图2-6所示,将“是否允许连接到数据库引擎”选项设为“授予”,同时将“登录”选项设为“启用”。以上各节点配置完成后单击【确定】按钮,即完成了对账户的创建工作。

图2-6 “登录名-新建”对话框“状态配置”选项卡

(7)新建账户完成后,重新连接SQL Server,如图2-7所示,选择SQL Server身份验证方式,输入前面设置的登录名“zd”及密码“123”,点击【连接】按钮,即可完成登录。

登录成功后在对象资源管理器中可看到服务器实例名后面显示的登录用户名,如图2-8所示。

图2-7 “连接到服务器”对话框图2-8 对象资源管理器

2.2 使用https://www.wendangku.net/doc/ce14346609.html,访问数据库

2.2.1 连接数据库

在对数据源进行操作之前,首先需建立到数据源的连接,可使用Connection对象显式创建到数据源的连接。

【例2-1】设计一个Windows应用程序,能通过“Windows验证“和“Windows和SQL Server混合验证”两种方式建立到数据库的连接。

图2-9 “连接数据库”窗体控件Tab顺序

实现过程如下。

(1)新建一Windows应用程序,命名为connection,将创建的默认窗体名更名为frmConnect,窗体的Text属性设置为“连接数据库”,界面设计如图2-9所示。frmConnect 窗体中的主要控件,按Tab键顺序,描述如表2-3所示。

表2-3 “连接数据库”窗体控件及说明

(2)主要程序代码

说明:①本节内所有例题代码均需引用System.Data.SqlClient命名空间,代码如下:using System.Data.SqlClient; //添加对SQL Server数据访问对象的引用

后续例题不再逐一说明。

②由于篇幅所限,本节中所有例题的异常捕获代码都省略了,读者需自行添加获取控件输入及访问数据库等处的异常捕获代码。

双击【Windows验证】按钮,进入其Click事件处理函数,代码如下:

//Windows方式连接数据库

private void btnConnect1_Click(object sender, EventArgs e)

{

string strConn = "server=XP-4;database=chap2;integrated security=true"; //连接字符串

SqlConnection conn = new SqlConnection(strConn); //创建连接对象

conn.Open(); //打开连接

//如连接成功则弹出消息框提示

MessageBox.Show("数据库已通过集成验证方式连接成功", "连接状态对话框");

conn.Close(); //使用完毕后关闭数据库连接

}

双击【混合验证】按钮,进入其Click事件处理函数,填写代码如下。

//SQL Server + Windows方式连接数据库

private void btnConnect2_Click(object sender, EventArgs e)

{

string strConn = "server=XP-4.;database=chap2;uid=zd;pwd=123"; //连接字符串

SqlConnection conn = new SqlConnection(strConn); //创建连接对象

conn.Open(); //打开连接

//如连接成功则弹出消息框提示

MessageBox.Show("数据库已通过混合验证方式连接成功", "连接状态对话框");

conn.Close(); //使用完毕后关闭数据库连接

}

数据库连接字符串包含要连接的数据库的信息,如server属性指定数据库服务器名称,database属性指定数据库名称,使用Windows身份验证方式只需要给出server和database两个属性的值,并使用“integrated security=true”指定身份验证方式为Windows验证;当使用混合验证时则需要使用uid属性指定数据库账户、pwd属性指定该账号的密码。

说明:上例中的连接字符串中的用户名“zd”和密码“123”,是以本节“添加登录账户”的方式创建的,读者可自行修改为自己计算机的SQLServer登录名及密码。

运行程序,分别单击【Windows验证】和【混合验证】两个按钮,如连接成功,将分别弹出不同的连接状态对话框,如图2-10所示。

图2-10 连接状态对话框

2.2.2 对数据库进行添加、修改及删除操作

在创建好到数据库的连接之后,可以使用Command对象对数据库进行更新操作。

【例2-2】设计一个Windows应用程序,能实现对数据库表的添加、修改及删除操作。

实现过程:

(1)新建一Windows应用程序,命名为operateData,将创建的默认窗体名更名为frmCommand,窗体的Text属性设置为“对数据库执行添加、修改及删除操作”,界面设计如图2-11所示。frmCommand窗体中的主要控件,按Tab键顺序,描述如表2-4所示。

图2-11 “对数据库进行添加、修改及删除操作”窗体Tab顺序视图

表2-4 “对数据库执行添加、修改及删除操作”窗体控件及说明

(2)主要程序代码

①双击【添加】按钮,进入其Click事件处理函数,代码如下。

//【添加】按钮单击事件处理函数

private void btnInsert_Click(object sender, EventArgs e)

{

string strConn = "server=XP-4;database=chap2;integrated security=true"; //连接字符串

SqlConnection conn = new SqlConnection(strConn); //声明并创建连接对象

conn.Open(); //打开数据库连接

//向商品表插入一条新记录

string strSql="insert into Products values('0012','双层蒸锅','苏泊尔集团','厨具',129.9,100,'false')";

SqlCommand comm = new SqlCommand(strSql, conn); //声明并创建命令对象

int row = comm.ExecuteNonQuery(); //执行SQL语句,并获取受影响的行数

if (row > 0) //如果记录插入成功,则弹出消息框提示

{

MessageBox.Show("插入数据成功", "操作状态对话框");

}

conn.Close(); //关闭数据库连接

}

②双击【修改】按钮,进入其Click事件处理函数,代码如下。

//【修改】按钮单击事件处理函数

private void btnUpdate_Click(object sender, EventArgs e)

{

string strConn = "server=XP-4;database=chap2;integrated security=true";

SqlConnection conn = new SqlConnection(strConn);

conn.Open();

//修改商品表中的一条记录

string strSql = "update Products set UnitsInStock=500 where ProductID='0012'";

SqlCommand comm = new SqlCommand(strSql, conn);

int row = comm.ExecuteNonQuery();

if (row > 0)

{

MessageBox.Show("修改数据成功", "操作状态对话框");

}

conn.Close();

}

③双击【删除】按钮,进入其Click事件处理函数,代码如下。

//【删除】按钮单击事件处理函数

private void btnDelete_Click(object sender, EventArgs e)

{

string strConn = "server=XP-4;database=chap2;integrated security=true";

SqlConnection conn = new SqlConnection(strConn);

conn.Open();

//删除商品表中的一条记录

string strSql = "delete from Products where ProductID='0012'";

SqlCommand comm = new SqlCommand(strSql, conn);

int row = comm.ExecuteNonQuery();

if (row > 0)

{

MessageBox.Show("删除数据成功", "操作状态对话框");

}

conn.Close();

}

运行程序,分别单击【添加】、【修改】和【删除】按钮,如操作成功,将分别弹出不同的操作状态对话框,如图2-12所示。对于数据库记录的修改情况,读者可同时从SQL Server 管理控制台访问数据库chap2的Products表进行验证。

图2-12 操作状态对话框

2.2.3 查询数据库中的数据

【例2-3】设计一个Windows应用程序,使用DataReader查询数据库中的信息并加载到ComboBox控件的选项中。

实现过程:

(1)新建一Windows应用程序,命名为testDataReader,将创建的默认窗体名更名为frmProducts,窗体的Text属性设置为“商品类别及名称”,界面设计如图2-13所示。frmProducts 窗体中的主要控件,按Tab键顺序,描述如表2-5所示。

图2-13 “商品类别及名称”窗体Tab键顺序视图

表2-5 “商品类别及名称”窗体控件及说明

(2)主要程序代码

①双击窗体标题栏,进入Load事件处理函数,访问数据库,为“商品类别”下拉框加载数据,代码如下。

//窗体加载事件处理函数,为“商品类别”组合框加载所有的商品类别数据

private void frmProducts_Load(object sender, EventArgs e)

{

string strConn = "server=XP-4;database=chap2;integrated security=true";//连接字符串

SqlConnection conn = new SqlConnection(strConn); //声明并创建连接对象

conn.Open(); //打开数据库连接

string strSql = "select distinct CategoryName from Products"; //查询

SqlCommand comm = new SqlCommand(strSql, conn);

SqlDataReader dr = comm.ExecuteReader();

while (dr.Read())

comboCategory.Items.Add(dr[0]); //依次加载数据项至ComboBox

dr.Close();

conn.Close();

}

②双击商品类别下拉框,进入其SelectedIndexChanged事件处理函数,根据其选项为“商品名称”下拉框加载数据,代码如下。

//“商品类别”下拉框选项索引变化事件处理函数,

//根据商品类别下拉框中的选项加载该类别下的所有的商品名称

private void comboCategory_SelectedIndexChanged(object sender, EventArgs e)

{

comboProducts.Items.Clear();

string strConn = "server=XP-4;database=chap2;integrated security=true";

SqlConnection conn = new SqlConnection(strConn);

conn.Open();

string strSql = "select ProductName from Products where CategoryName='"+comboCategory.Text+"'";

SqlCommand comm = new SqlCommand(strSql, conn);

SqlDataReader dr = comm.ExecuteReader();

while (dr.Read())

comboProducts.Items.Add(dr[0]);

dr.Close();

conn.Close();

}

【例2-4】使用DataAdaper和DataSet对象查询数据库中的信息并加载到ComboBox 控件的选项中。

实现过程:

(1)新建一Windows应用程序,命名为dataSet,将创建的默认窗体名更名为frmProducts,窗体及各主要控件的属性设置同例2-3。

(2)主要程序代码

①双击窗体标题栏,进入其Load事件处理函数,访问数据库,为“商品类别”下拉框加载数据,代码如下。

//窗体加载事件处理函数,为“商品类别”组合框加载所有的商品分类数据。

private void frmProducts_Load(object sender, EventArgs e)

{

string strConn = "server=XP-4;database=chap2;integrated security=true"; //连接字符串

SqlConnection conn = new SqlConnection(strConn); //声明并创建连接对象

string strSql = "select distinct CategoryName from Products"; //查询不重复的商品类别名称

SqlDataAdapter da = new SqlDataAdapter(strSql, conn); //声明并创建数据适配器对象

DataSet ds = new DataSet(); //声明并创建数据集对象

da.Fill(ds); //使用数据适配器填充数据集

comboCatagory.DataSource = ds.Tables[0]; //设置商品类别下拉框数据源

comboCatagory.DisplayMember = "CategoryName"; //设置商品类别下拉框的显示属性}

②双击“商品类别”下拉框,进入其SelectedIndexChanged事件处理函数,根据其选中项为“商品名称”下拉框加载数据,代码如下。

//“商品类别”下拉框选项索引变化事件处理函数,

//根据商品类别下拉框中的选项加载该类别下的所有的商品名称

private void comboCatagory_SelectedIndexChanged(object sender, EventArgs e)

{

string strConn = "server=XP-4;database=chap2;integrated security=true";

SqlConnection conn = new SqlConnection(strConn);

//根据“商品类别”下拉框中的选项查询商品名称

string strSql="select ProductName from Products where CategoryName='"+comboCategory.Text+"'";

SqlDataAdapter da = new SqlDataAdapter(strSql, conn);

DataSet ds = new DataSet();

da.Fill(ds);

comboProducts.DataSource = ds.Tables[0]; //设置商品名称下拉框的数据源

comboProducts.DisplayMember = "ProductName"; //设置商品名称下拉框的显示属性}

思考:细心的同学会发现,例2-3和例2-4虽然运行界面完全相同,但是窗体加载之后列表框中选项的情况是有区别的。那么,区别在哪呢?原因又是什么呢?

2.2.4 数据绑定控件

【例2-5】设计一个Windows应用程序,能实现商品信息的维护。本例题中,程序要读取数据库中的数据,加载数据至ListBox和ComboBox控件,并根据用户在ListBox控件中选择的数据项再次访问数据库,获取相关记录。另外,本例题还实现了对商品表Products

的增加、修改及删除操作。

图2-14 “商品信息管理”窗体Tab键顺序视图

实现过程:

(1)新建一Windows应用程序,命名为products,将创建的默认窗体名更名为frmProducts,窗体的Text属性设置为“商品信息管理”,界面设计如图2-14所示。frmProducts 窗体中的主要控件,按Tab键顺序,描述如表2-6所示。

表2-6 “商品信息管理”窗体控件及说明

(2)主要程序代码

①首先要为该程序添加两个成员变量,代码如下:

string strConn = "server=XP-4;database=chap2;integrated security=true"; //连接字符串

string insertORupdate = ""; //标识变量,用来记录要保存的是添加还是修改操作

②自定义方法DataLoad(),访问数据库,加载商品类别列表及商品名称列表,代码如

下。

///

/// 访问数据库,加载商品类别列表及商品名称列表

///

void DataLoad()

{

//以下代码使用DataReader访问数据库

SqlConnection conn = new SqlConnection(strConn); //创建连接对象

conn.Open(); //打开连接

string strSql = "select distinct CategoryName from Products"; //查询不重复的商品类别名

SqlCommand comm = new SqlCommand(strSql, conn); //声明并创建命令对象

SqlDataReader dr = comm.ExecuteReader(); //执行查询,用DataReader存放数据

while (dr.Read()) //如果查询到数据

comboCategory.Items.Add(dr[0]); //逐项加载商品类别名至ComboBox

dr.Close(); //关闭dataReader

//以下代码使用DataAdapter和DataSet访问数据库

strSql = "select ProductName,ProductID from Products"; //查询商品名称及商品编号

SqlDataAdapter da = new SqlDataAdapter(strSql, conn); //声明并创建数据适配器对象

DataSet ds = new DataSet(); //声明并创建数据集对象

da.Fill(ds); //填充数据集

lstProducts.DataSource = ds.Tables[0]; //设置商品名称列表的数据源

lstProducts.DisplayMember = "ProductName"; //设置显示值属性

lstProducts.ValueMember = "ProductID"; //设置实际值属性

conn.Close(); //关闭连接

lstProducts.SelectedIndex = -1; //使商品名称列表没有选中项

}

商品管理窗体的Load事件处理函数,就是调用DataLoad()方法,代码如下。

//窗体加载事件处理函数

private void frmProducts _Load(object sender, EventArgs e)

{

DataLoad();

}

③声明自定义方法controlEnabled(),控制各输入控件在“查看”和“编辑”操作时的可用性,代码如下。

//自定义方法,控制控件的可用性,将控件可用性分为“查看”和“编辑”两种状态

public void controlEnabled(string status)

{

if (status == "show") //当前为查看数据状态,控件都不可编辑

{

btnInsert.Enabled = true;

btnUpdate.Enabled = true;

btnSave.Enabled = false;

btnCancle.Enabled = false;

btnDelete.Enabled = true;

chkDisc.Enabled = false;

comboCategory.Enabled = false;

foreach (Control c in this.Controls)

{

if (c is TextBox)

{

TextBox txtb = ((TextBox)c);

txtb.ReadOnly = true;

}

}

}

else //当前为编辑数据状态,控件可用

{

btnInsert.Enabled = false;

btnUpdate.Enabled = false;

btnSave.Enabled = true;

btnCancle.Enabled = true;

btnDelete.Enabled = false;

chkDisc.Enabled = true;

comboCategory.Enabled = true;

foreach (Control c in this.Controls)

{

if (c is TextBox)

{

TextBox txtb = ((TextBox)c);

txtb.ReadOnly = false;

}

}

}

}

④双击lstProducts控件,进入其选项索引变化事件处理函数,根据选择的商品,查询该商品其他信息,并为界面其他控件赋值,代码如下。

//商品名称列表选项索引变化事件,根据选择的商品名称加载商品其他信息

private void lstProducts_SelectedIndexChanged(object sender, EventArgs e)

{

//用来判断用户是否选中了有效的选项,且保证是数据加载后用户进行的操作

if ((lstProducts.SelectedIndex != -1)

&&(lstProducts.SelectedValue.ToString()!="System.Data.DataRowView"))

{

string proId = lstProducts.SelectedValue.ToString(); //获取当前选中商品的商品编号

SqlConnection conn=new SqlConnection(strConn); //声明并创建连接对象

conn.Open(); //打开数据库连接

string strSql="select * from Products where ProductId='"+proId+"'"; //由商品编号查询该商品其他信息

SqlCommand comm=new SqlCommand(strSql,conn); //声明并创建命令对象

SqlDataReader dr = comm.ExecuteReader(); //使用DataReader获取查询结果

if (dr.Read()) //如果查询到数据,就将该商品各字段的值赋予窗体各控件用以显示

{

txtID.Text = dr["ProductID"].ToString();

txtName.Text=dr["ProductName"].ToString();

txtSupplier.Text=dr["SupplierName"].ToString();

comboCategory.Text = dr["CategoryName"].ToString();

txtUnitPrice.Text=dr["UnitPrice"].ToString();

txtUnitsInStock.Text=dr["UnitsInStock"].ToString();

chkDisc.Checked = (dr["Discount"].ToString())=="True"?true:false;

}

dr.Close(); //关闭DataReader

conn.Close(); //关闭连接

controlEnabled("show"); //将控件设置为查看状态}

}

说明:由于为ListBox控件加载选项时会触发SelectedIndexChanged事件,此时获取到的ListBox.SelectedValue.ToString()值为“System.Data.DataRowView”,而不是经用户选择过的商品编号,程序需过滤掉这种情况。只有完成ListBox控件的选项加载后,经用户选择某条商品数据时,程序才进行后续操作,如下代码即可实现这种过滤功能。

if ((lstProducts.SelectedIndex != -1)&&

(lstProducts.SelectedValue.ToString()!="System.Data.DataRowView"))

⑤双击btnInsert按钮,进入其Click事件处理函数,清空所有输入控件并使其为可编辑状态,设置编辑状态为insert,真正的插入操作在btnSave的Click事件处理函数中进行。代码如下。

//【添加】按钮单击事件处理函数

private void btnInsert_Click(object sender, EventArgs e)

{

insertORupdate = "insert"; //设置标识变量为添加操作

controlEnabled("edit"); //将控件设置为编辑状态

//清空所有控件

foreach (Control c in this.Controls)

{

if (c is TextBox)

{

TextBox txtb = ((TextBox)c);

txtb.Text = "";

}

}

comboCategory.SelectedIndex = -1;

chkDisc.Checked = false;

}

⑥双击btnUpdate按钮,进入其Click事件处理函数,使各输入控件为可编辑状态,设置编辑状态为update,真正的修改操作在btnSave的Click事件处理函数中进行。代码如下。

//【修改】按钮单击事件处理函数

private void btnUpdate_Click(object sender, EventArgs e)

{

controlEnabled("edit");

txtID.ReadOnly = true; //商品编号不能修改

insertORupdate = "update"; //设置标志变量为修改操作

}

⑦双击btnSave按钮,进入其Click事件处理函数,根据编辑状态对数据库进行insert 或update操作,代码如下。

//【保存】按钮单击事件处理函数,完成添加和修改操作

private void btnSave_Click(object sender, EventArgs e)

{

SqlConnection conn = new SqlConnection(strConn); //声明并创建连接对象

conn.Open(); //打开数据库连接

//下面一段代码将保存添加的商品数据

if (insertORupdate == "insert")

{

string strSql = "insert into Products values(@ProductID,@ProductName

,@SupplierName,@CategoryName,@UnitPrice,@UnitsInStock,@Discount)";

SqlCommand comm = new SqlCommand(strSql, conn);

comm.Parameters.Add(new SqlParameter("@ProductID", txtID.Text));

comm.Parameters.Add(new SqlParameter("@ProductName", txtName.Text));

comm.Parameters.Add(new SqlParameter("@SupplierName", txtSupplier.Text));

comm.Parameters.Add(new SqlParameter("@CategoryName", comboCategory.Text));

comm.Parameters.Add(new SqlParameter("@UnitPrice", float.Parse(txtUnitPrice.Text)));

comm.Parameters.Add(new SqlParameter("@UnitsInStock", float.Parse(txtUnitsInStock.Text)));

comm.Parameters.Add(new SqlParameter("@Discount", (chkDisc.Checked == true ? "1" : "0")));

if (comm.ExecuteNonQuery() > 0)

MessageBox.Show("添加商品信息成功!");

else

MessageBox.Show("添加商品信息失败!");

}

//下面一段代码将保存修改的商品数据

else

{

string strSql = "update Products set ProductName=@ProductName,

SupplierName=@SupplierName,CategoryName=@CategoryName,UnitPrice=@UnitPrice,

UnitsInStock=@UnitsInStock,Discount=@Discount where ProductID=@ProductID";

SqlCommand comm = new SqlCommand(strSql, conn);

comm.Parameters.Add(new SqlParameter("@ProductID", txtID.Text));

comm.Parameters.Add(new SqlParameter("@ProductName", txtName.Text));

comm.Parameters.Add(new SqlParameter("@SupplierName", txtSupplier.Text));

comm.Parameters.Add(new SqlParameter("@CategoryName", comboCategory.Text));

comm.Parameters.Add(new SqlParameter("@UnitPrice", float.Parse(txtUnitPrice.Text)));

comm.Parameters.Add(new SqlParameter("@UnitsInStock", float.Parse(txtUnitsInStock.Text)));

comm.Parameters.Add(new SqlParameter("@Discount", (chkDisc.Checked == true ? "1" : "0")));

if (comm.ExecuteNonQuery() > 0)

MessageBox.Show("更新商品信息成功!");

else

MessageBox.Show("更新商品信息失败!");

}

conn.Close(); //关闭数据库连接

DataLoad(); //重新访问数据库,刷新界面显示的商品信息

controlEnabled("show"); //将控件设置为查看状态

}

说明:代码中出现的SqlParameter类为SQL命令对象类。命令对象可使用参数来将值传递给SQL 语句或存储过程,提供类型检查和验证。与命令文本不同,参数输入被视为文本值,而不是可执行代码。这样可帮助抵御“SQL 注入”攻击,这种攻击的攻击者会将命令插入SQL 语句,从而危及服务器的安全。一般来说,在更新DataTable或是DataSet 时,如果不采用SqlParameter,那么当输入的Sql语句出现歧义时,如字符串中含有单引号,程序就会发生错误,并且他人可以轻易地通过拼接Sql语句来进行注入攻击。

参数化命令还可提高查询执行性能,因为它们可帮助数据库服务器将传入命令与适当的缓存查询计划进行准确匹配。除具备安全和性能优势外,参数化命令还提供一种用于组织传递到数据源的值的便捷方法。

⑧双击btnCancel按钮单击事件处理函数,控制各输入控件的可编辑状态,恢复查看状态,代码如下。

//【取消】按钮单击事件处理函数,退出编辑状态

private void btnCancle_Click(object sender, EventArgs e)

{

controlEnabled("show"); //将控件设置为查看状态

}

⑨双击btnDelete按钮,进入其Click事件处理函数,根据选择商品的编号删除该商品信息,代码如下。

//【删除】按钮单击事件处理函数

private void btnDelete_Click(object sender, EventArgs e)

{

SqlConnection conn = new SqlConnection(strConn);

conn.Open();

string strSql = "delete from Products where ProductID=@ProductID";

SqlCommand comm = new SqlCommand(strSql, conn);

comm.Parameters.Add(new SqlParameter("@ProductID", txtID.Text));

if (comm.ExecuteNonQuery() > 0)

MessageBox.Show("删除商品信息成功!");

else

MessageBox.Show("删除商品信息失败!");

conn.Close(); //关闭数据库连接

DataLoad(); //重新访问数据库,刷新界面显示的商品信息

controlEnabled("show"); //将控件设置为查看状态

}

运行程序,显示“商品信息管理”界面。界面左侧的商品名称列表中加载了所有的商品名称。点击任一商品名称,右侧商品详细信息区域的各控件中将加载该商品记录的其他字段,如图2-15。【添加】、【修改】及【删除】按钮可用,【保存】及【取消】按钮不可用。

图2-15 “商品信息管理”界面

点击【添加】按钮后,右侧控件全部清空,【保存】及【取消】按钮可用,同时【修改】及【删除】按钮不可用。如点击【修改】按钮,则右侧控件均为可编辑状态(ReadOnly属性为False,商品类别及折扣控件Enabled属性为True),按钮可用性同上。

【例2-6】设计一个Windows应用程序,能实现对个人年龄及爱好的维护功能。

本例题中,程序要构造一个数据集(DataSet),添加一个数据表(DataTable)并插入数据,将构造好的DataSet设置为DataGridView控件的数据源。另外,还实现了对数据表的增加、修改及删除操作。

图2-16 “DataSet操作”Tab键顺序视图

实现过程:

(1)新建一Windows应用程序,命名为operateDataSet,将创建的默认窗体名更名为frmDataSet,窗体的Text属性设置为“DataSet操作”,界面设计如图2-16所示。frmDataSet 窗体中的主要控件,按Tab键顺序,描述如表2-7所示。

表2-7 “DataSet操作”窗体控件及说明

(2)主要程序代码

①首先要为该程序添加四个成员变量,代码如下:

//声明数据集、数据表及数据行对象

DataSet myds = new DataSet();

DataTable mydt;

DataRow mydr;

string insertORupdate; //标识符变量,值为“添加”或“修改”

②双击窗体标题栏,进入其Load事件处理函数,构造数据集、添加数据表并插入初始数据,最终作为数据源显示在dgvHobby中,代码如下。

private void frmDataSet_Load(object sender, EventArgs e)

{

mydt = new DataTable("hobby"); //创建数据表对象

//定义表结构

mydt.Columns.Add(new DataColumn("姓名", typeof(string)));

mydt.Columns.Add(new DataColumn("年龄", typeof(Int32)));

mydt.Columns.Add(new DataColumn("爱好", typeof(string)));

//为数据表设置主键是为了在删除的时候可以定位到要删除的记录

mydt.PrimaryKey = new DataColumn[] { mydt.Columns["姓名"] };

//新建一行数据

mydr = mydt.NewRow();

mydr[0] = "张三";

mydr[1] = 21;

mydr[2] = "看电视";

mydt.Rows.Add(mydr);

//新建第二行数据

mydr = mydt.NewRow();

mydr[0] = "李四";

mydr[1] = 22;

mydr[2] = "打篮球";

mydt.Rows.Add(mydr);

myds.Tables.Add(mydt); //加入生成的表到数据集

dgvHobby.DataSource = myds.Tables["hobby"].DefaultView; //将数据显示到数据绑定控件}

此处要补充说明的是DataTable.PrimaryKey属性,获取或设置充当数据表主键的列的数组。因为主键可由多列组成,所以PrimaryKey属性由DataColumn对象的数组组成。如DataTable对象不设置PrimaryKey属性,则删除时将不能通过DataTable.Rows.Find()方法找到需要删除的数据行。

③双击btnInsert按钮,进入其Click事件处理函数,主要功能是控制按钮及各输入控件的可用性,真正的添加和修改操作,都是在btnSave按钮中完成的,代码如下。

//【添加】按钮单击事件处理函数

private void btnInsert_Click(object sender, EventArgs e)

{

txtName.ReadOnly = false; //清空输入控件并使之可编辑

txtName.Text = "";

txtAge.ReadOnly = false;

txtAge.Text = "";

txtHobby.ReadOnly = false;

txtHobby.Text = "";

insertORupdate = "insert"; //设置标识变量

btnInsert.Enabled = false; //控制按钮可用性

btnUpdate.Enabled = false;

btnSave.Enabled = true;

}

④双击btnUpdate按钮,进入其Click事件处理函数,主要功能是控制按钮及各输入控件的可用性,真正的添加和修改操作,都是在btnSave按钮中完成的,代码如下。

//【修改】按钮单击事件处理函数

private void btnUpdate_Click(object sender, EventArgs e)

{

txtName.ReadOnly = false; //使输入控件可编辑

txtAge.ReadOnly = false;

txtHobby.ReadOnly = false;

insertORupdate = "update"; //设置标识变量

btnUpdate.Enabled = false; //控制按钮可用性

btnInsert.Enabled = false;

btnSave.Enabled = true;

}

⑤双击btnSave按钮,进入Click事件处理函数,主要功能是实现对DataSet的添加及修改,并控制按钮及输入控件的可用性,代码如下。

//【保存】按钮单击事件处理函数

private void btnSave_Click(object sender, EventArgs e)

{

if (insertORupdate == "insert") //如要保存的是添加的结果

{

//新建一行数据

mydr = mydt.NewRow();

mydr[0] = txtName.Text.Trim();

mydr[1] = Int32.Parse(txtAge.Text.Trim());

mydr[2] = txtHobby.Text.Trim();

mydt.Rows.Add(mydr);

}

else //如要保存的是修改的结果

{

//修改一行数据

int rowNumber = dgvHobby.CurrentRow.Index; //获取当前行索引

mydt.Rows[rowNumber][0] = txtName.Text.Trim();

mydt.Rows[rowNumber][1] = Int32.Parse(txtAge.Text.Trim());

mydt.Rows[rowNumber][2] = txtHobby.Text.Trim();

}

btnInsert.Enabled = true; //控制按钮可用性

btnUpdate.Enabled = true;

btnSave.Enabled = false;

}

⑥双击btnDelete按钮,进入其Click事件处理函数,首先从dgvHobby控件中获取选中行中的“姓名”属性值,然后使用DataTable.Rows.Find()方法通过数据表的主键“姓名”找到指定数据行,最后从数据表的行集合中移除指定行。代码如下。

//【删除】按钮单击事件处理函数

private void btnDelete_Click(object sender, EventArgs e)

{

//获取选中行的主键,即“姓名”的值

string name = dgvHobby.SelectedRows[0].Cells[0].Value.ToString();

DataRow drow = mydt.Rows.Find(name); //获取由主键指定的数据行

mydt.Rows.Remove(drow); //移除指定的数据行

}

⑦选择dgvHobby控件,并从事件列表中进入其CellClick事件处理函数,其功能为当单击一条数据时,在各输入控件中加载相应字段的值,代码如下。

//DataGridView单击单元格事件处理函数,将选中数据加载至控件并控制控件可编辑性

private void dgvHobby_CellClick(object sender, DataGridViewCellEventArgs e)

{

if (e.RowIndex <= (mydt.Rows.Count - 1))

{

txtName.ReadOnly = true;

txtAge.ReadOnly = true;

txtHobby.ReadOnly = true;

btnInsert.Enabled = true;

btnUpdate.Enabled = true;

btnSave.Enabled = false;

int rowNumber = e.RowIndex;

txtName.Text = mydt.Rows[rowNumber][0].ToString();

txtAge.Text = mydt.Rows[rowNumber][1].ToString();

txtHobby.Text = mydt.Rows[rowNumber][2].ToString();

}

}

程序运行界面如图2-17所示。

图2-17 DataSet操作运行效果图

程序操作流程不再描述。本例题所有数据都在内存中处理,没有连接数据库。读者也可改造例题为操作从数据库填充的数据集。

【例2-7】设计一个Windows应用程序,能实现商品信息维护。本例题中,要实现使用DataGridView控件显示数据库中的数据,并提供组合条件的查询及对数据的添加、删除及修改功能。

图2-18 “DataGridView的使用”窗体Tab键顺序视图

实现过程:

(1)新建一Windows应用程序,命名为dataGridView,将创建的默认窗体名更名为frmProducts,窗体的Text属性设置为“DataGridView的使用”,界面设计如图2-18所示。

数据库上机实验报告

数据库实验 (第三次) 题目1 实验内容: 1. 检索上海产的零件的工程名称; 2. 检索供应工程J1零件P1的供应商号SNO; 3. 检索供应工程J1零件为红色的供应商号SNO; 4. 检索没有使用天津生产的红色零件的工程号JNO; 5. 检索至少用了供应商S1所供应的全部零件的工程号JNO; 6. 检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数 量QTY降序排列。

1 select jname from j where jno in (select jno from spj where sno in (select sno from s where city ='上海' ) ); 2 select sno from spj where jno ='j1'and pno ='p1' 3

selectdistinct sno from spj where pno in (select pno from p where color='红'and pno in (select pno from spj where jno ='j1' ) ); 4 selectdistinct jno from spj where pno notin (select pno from p where color ='红'and pno in (select pno from spj where sno in (select sno from s where city ='天津' ) ) )

5 select jno from spj where sno ='s1' 6 select jno,qty from spj where pno ='p1' orderby qty desc 四﹑思考题 1.如何提高数据查询和连接速度。 建立视图 2. 试比较连接查询和嵌套查询 有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比 嵌套查询高出很多 当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造,具有结构化程序设计的优点。但是相比于连接运算,目前商用关系数据库管理系统对嵌套查询的优化做的还不够完善,所以在实际应用中,能够用连接运算表达的查询尽可能采用连接运算。

SQL数据库的备份、还原、压缩与数据转移的方法.

当前,全国各级审计机关普遍应用AO系统进行现场审计,但由于被审计单位使用的财务软件种类太多,AO系统不可能提供全部财务软件数据导入模板,虽然AO现场审计实施系统2008版比2005版在模板数量上有所增加,但仍然不能完全解决各级审计机关在实际审计工作遇到的数据导入难题,只能通过后台备份数据库,然后还原到审计人员电脑中进行处理后,再一步一步导入AO中。由于审计人员大部分非计算机专业,对数据库的基本操作了解不是很多,无形中影响了计算机辅助审计的开展。为此,笔者分析了大量的被审计单位的财务系统后台数据库,其中大部分财务软件使用了SQL作为后台数据库,因此总结了SQL数据库的备份、压缩与SQL数据库数据处理的方法,供审计人员在审计工作中借鉴使用。 一、备份数据库1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server 2、SQL Server组——>双击打开你的服务器——>双击打开数据库目录3、选择你的数据库名称(如财务数据库cwdata)——>然后点上面菜单中的工具——>选择备份数据库4、备份选项选择完全备份,目的中的备份到如果原来有路径和名称则选中名称点删除,然后点添加,如果原来没有路径和名称则直接选择添加,接着指定路径和文件名,指定后点确定返回备份窗口,接着点确定进行备份。二、还原数据库1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server;2、SQL Server组——>双击打开你的服务器——>点图标栏的新建数据库图标,新建数据库的名字自行取; 3、点击新建好的数据库名称(如财务数据库cwdata)——>然后点上面菜单中的工具——>选择恢复数据库; 4、在弹出来的窗口中的还原选项中选择从设备——>点选择设备——>点添加——>然后选择你的备份文件名——>添加后点确定返回,这时候设备栏应该出现您刚才选择的数据库备份文件名,备份号默认为1(如果您对同一个文件做过多次备份,可以点击备份号旁边的查看内容,在复选框中选择最新的一次备份后点确定)——>然后点击上方常规旁边的选项按钮; 5、在出现的窗口中选择在现有数据库上强制还原,以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项。在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置(也可以指定自己的目录),逻

数据挖掘期末大作业任务

数据挖掘期末大作业 1.数据挖掘的发展趋势是什么?大数据环境下如何进行数据挖掘。 对于数据挖掘的发展趋势,可以从以下几个方面进行阐述: (1)数据挖掘语言的标准化描述:标准的数据 挖掘语言将有助于数据挖掘的系统化开发。改进多个数据挖掘系统和功能间的互操作,促进其在企业和社会中的使用。 (2)寻求数据挖掘过程中的可视化方法:可视 化要求已经成为数据挖掘系统中必不可少的技术。可以在发现知识的过程中进行很好的人机交互。数据的可视化起到了推动人们主动进行知识发现的作用。 (3)与特定数据存储类型的适应问题:根据不 同的数据存储类型的特点,进行针对性的研究是目前流行以及将来一段时间必须面对的问题。 (4)网络与分布式环境下的KDD问题:随着 Internet的不断发展,网络资源日渐丰富,这就需要分散的技术人员各自独立地处理分离数据库的工作方式应是可协作的。因此,考虑适应分布式与网络环境的工具、技术及系统将是数据挖掘中一个最为重要和繁荣的子领域。 (5)应用的探索:随着数据挖掘的日益普遍,其应用范围也日益扩大,如生物医学、电信业、零售业等 领域。由于数据挖掘在处理特定应用问题时存在局限性,因此,目前的研究趋势是开发针对于特定应用的数据挖掘系统。 (6)数据挖掘与数据库系统和Web数据库系统的集成:数据库系统和Web数据库已经成为信息处 理系统的主流。 2. 从一个3输入、2输出的系统中获取了10条历史数据,另外,最后条数据是系统的输 入,不知道其对应的输出。请使用SQL SERVER 2005的神经网络功能预测最后两条数据的输出。 首先,打开SQL SERVER 2005数据库软件,然后在界面上右键单击树形图中的“数据库”标签,在弹出的快捷菜单中选择“新建数据库”命令,并命名数据库的名称为YxqDatabase,单击确定,如下图所示。 然后,在新建的数据库YxqDatabas中,根据题目要求新建表,相应的表属性见下图所示。

《数据库技术与应用 》实验报告

《数据库技术与应用》上机实验报告 目录: 一、概述 二、主要上机实验内容 1.数据库的创建 2.表的创建 3.查询的创建 4.窗体的创建 5.报表的创建 6.宏的创建 三、总结 一、概述 (一)上机内容: 第七周:熟悉Access界面,数据库和表的创建,维护与操作 1. 熟悉Access的启动,推出,界面,菜单,工具栏等; 2. 练习使用向导创建数据库、创建空数据库; 3. 练习创建表结构的三种方法(向导、表设计器、数据表)、表中字段属性设置; 4. 练习向表中输入不同类型的数据; 5. 练习创建和编辑表之间的关系; 6. 练习表的维护(表结构、表内容、表外观) 7. 练习表的操作(查找、替换、排序、筛选等) 第八周:练习创建各种查询 1.选择查询(单表、多表、各种查询表达式) 2.参数查询 3.交叉表查询 4.操作查询(生成查询、删除查询、更新查询、追加查询) 第十周:练习创建各种类型的窗体 1.自动创建纵栏式窗体和表格式窗体; 2.向导创建主|子窗体

3.图表窗体的创建 4.练习通过设计器创建窗体 5.练习美化窗体 第十三周:练习创建各种类型的报表 1.自动创建纵栏式报表和表格式报表; 2.向导创建报表(多表报表、图表报表、标签报表) 3.练习通过设计视图创建报表(主|子报表、自定义报表) 4.练习在报表中添加计算字段和分组汇总数据 第十五周:综合应用 1.了解Access数据库系统开发的一般方法; 2.课程内容的综合练习; 3.编写上机实验报告、答疑 (二)上机完成情况 第七周:熟悉Access界面,数据库和表的创建,维护与操作 完成了创建表,向表中输入不同类型的数据,创建和编辑表之间的关系,进行了表的维护,修改了表的结构、内容、外观,最后进行了表的操作,查找、替换、排序、筛选等。 已完成 第八周:练习创建各种查询 练习选择查询、参数查询、交叉表查询,然后练习并操作查询,生成查询、删除查询、更新查询、追加查询等。 已完成 第十周:练习创建各种类型的窗体 自动创建纵栏式窗体和表格式窗体,向导创建主|子窗体和图表窗体,练习通过设计器创建窗体,美化窗体。 基本完成 第十三周:练习创建各种类型的报表 自动创建纵栏式报表和表格式报表,向导创建报表,练习通过设计视图创建报表,在报表中添加计算字段和分组汇总数据。 已完成 第十五周:综合应用

数据库大作业设计题目分析

《数据库原理及技术》大作业大纲 类同卷,网上抄袭,大作业格式不正确一律0分处理 一、课程设计的目的和要求 (1)培养学生运用所学课程《数据库原理及技术》的理论知识和技能,深入理解《数据库原理及技术》课程相关的理论知识,学会分析实际问题的能力。 (2)培养学生掌握用《数据库原理及技术》的知识设计计算机应用课题的思想和方法。 (3)培养学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。 (4)通过课程大作业,要求学生在教师的指导下,独立完成大作业要求的相关内容,包括: ①通过调查研究和运用Internet,收集和调查有关资料、最新技术信息。 ②基本掌握撰写小论文的基本步骤和写作方法。 ③根据课题的要求基本理解和掌握E-R图的设计方法和关系模式的转换。 ④根据课题的要求基本理解和掌握数据流图(DFD)和数据字典(DD)的设计方法。 ⑤创建数据库及各种数据库对象。 二、课程设计题目 要求: (1)任选下列一个题目,调查分析一个具体的或模拟的实例; (2)描述该实例的业务信息和管理工作的要求; (3)列出实体、联系; (4)指出实体和联系的属性; (5)画出E-R图; (6)将E-R图转换成关系模式,并注明主码和外码; (7)建立数据字典; (8)创建数据库; (9)根据题目的要求写查询、存储过程、触发器等。 题目: (1)学校图书借阅管理系统 功能要求: ●实现图书信息、类别、出版社等信息的管理; ●实现读者信息、借阅证信息的管理; ●实现图书的借阅、续借、归还管理; ●实现超期罚款管理、收款管理; ●创建触发器,分别实现借书和还书时自动更新图书信息的在册数量;

SQL Server的增量备份与还原方法

SQL Server的增量备份与还原方法.txt蜜蜂整日忙碌,受到赞扬;蚊子不停奔波,人见人打。多么忙不重要,为什么忙才重要。 备份步骤: 1.在“SQL Server企业管理器”中注册数据库所在的服务器,注意要使用sa用户名和口令,否则以后执行备份调度的时候,会出现权限不足,导致不能进行备份。 2.确保该服务器的SQL Server Agent服务是开启的,因为所有的调度都是通过该代理进行 执行的。 3.在“SQL Server企业管理器”中选中Test数据库,右键打开“备份数据库”窗口,指 定一个新的文件Test-daily.bak,选择“完全”进行一次完全备份。 4.再次打开“备份数据库”窗口,这次使用“差异备份”,“重写”选项设置为“追加到媒体”,目的文件仍然是前面步骤所指定的Test-daily.bak,并在“调度”选项中设置为每天 的19:00,这样,SQL Server会在每天的19:00将数据库自上次备份以来发生的变化,以 增量备份的方式追加到Test-daily.bak文件中。(测试的时候,可以设置为每天的每1分钟 进行一次备份,以便可以很快的看到备份结果) 在需要进行数据库恢复的时候,可以按照如下还原步骤进行操作: 1.新建一个数据库,比如名为Back, 右键打开“还原数据库”窗口,选择“从设备”进行 还原,然后在“选择设备…”中选定备份所使用的Test-daily.bak文件,回到“还原数据库”窗口,“备份号”默认为1(对应的就是备份步骤3中的初次完全备份),不必更改。在“选项”标签页中,选中“强制还原”,最关键的一步是,在“恢复完成状态”中,选中第2或第 3项,即保证“能还原其它事务日志”,这样还原之后,这个新的数据库就回到了我们进行第 一次完全备份时候的状态,此时,该Back数据库将处于“正在装载”或“只读”的状态,没 有关系,这是正常的,因为我们接下来还需要通过事务日志将该数据库恢复到指定的某个状态。 2.再次打开“还原数据库”窗口,同样选择“从设备”进行还原,然后在“选择设备…”中 选定备份所使用的Test-daily.bak文件,回到“还原数据库”窗口,点击“备份号”后面 的“查看内容…”按钮,在新的窗口中,可以看到里面列出了每天19:00左右备份过的备份 集(除了最顶上一个是我们初次的完全备份集,其它都是每天的增量备份集),选中想要恢复 的某个备份集,单击“确定”回到主窗口,可以看到“还原备份集”默认选中的是“差异”,再单击确定,这样,Back数据库就恢复到了我们选定的某个备份集了。 上述还原步骤可以重复进行,直到我们找到确切需要的某个备份集。 另外,恢复后的数据库名称是Back,如果想将其改名为Test,可以执行 EXEC sp_renamedb 'Back', 'Test' 在重命名数据库之前,应该确保没有人使用该数据库,而且数据库设置为单用户模式。 2005-08-25 16:37 更新 1.需要在"备份数据库"->"常规"选项卡里选中"重写现有媒体",这样在"选项"选项卡里才能 设定"备份集到期时间",并且发现,这样设定好"到期时间"之后,即使将"重写现有媒体"改为" 追加到媒体", 所设定的"到期时间"还是有效的,这可以在调度里的"步骤"脚本中看出来,如: BACKUP DATABASE [model] TO DISK = N'D:\test.bak' WITH NOINIT , NOUNLOAD , RETAINDAYS = 1, DIFFERENTIAL , NAME = N'model 备份', NOSKIP , STATS = 10, NOFORMAT,通过这种方式应该可以实现保留最近N天的备份,测试中....

《数据库技术与应用》

《数据库技术与应用》 课程教学大纲(及实验教学大纲) 第一部分课程教学大纲 课程名称:数据库技术与应用(Application of Database Technology) 授课教师: 答疑时间: 办公室:信息管理与工程学院 课程类别:限定选修课(模块V、挂牌、财经类专业学生计算机应用基础选修课) 课程时间安排:2012年2月—2012年6月 授课时间: 授课地点:教育技术中心 授课安排调整:节日放假,课程内容顺延 期末考试时间:第17周(随堂闭卷笔试) 教学课时数: 2 × 17 = 34课时(课后课程实验8课时) 课程网址:上财教学网 指定教材: 崔敬东于长锐崔丽丽编著。数据库技术与应用——面向业务分析的Access 2003。清华大学出版社,2011 参考书目: 亚历山大著梁普选刘玉芬等译。Access数据分析宝典。电子工业出版社,2006 布鲁特曼等著,付宇光等译。Access Cookbook中文版:数据分析详解。清华大学出版社,2008 预备知识: 本课程为财经类专业学生的计算机应用基础选修课,假设学生已经掌握计算机应用的基本技能和关于计算机的基础知识,主要着重于计算机基本概念、基本原理、基础知识和基本操作。 教学目的: 本课程教学目的在于向学生较全面地介绍关系数据库技术的基本知识和一般原理,使学生在理解数据在关系数据库中的组织形式、数据彼此的逻辑联系及联系方式等基本范畴的基础上,掌握基于关系数据库技术的数据分析方法,并能够熟练地应用Microsoft Access关系数据库管理系统软件提取数据、加工数据和对数据进行组织输出。同时,通过上机操作、练习和实验,使学生加深对关系数据库理论的理解和认识,提高综合分析问题和解决问题的能力,并掌握利用Microsoft Access工具从数据库中查询数据和设计业务报表的方法。 课堂练习: 由于本课程的重点是数据库理论和技术的实际应用,因此具有很强的操作实验性质,所以要求学生一

SQL数据库期末大作业

学校:北京联合大学 系别:信息管理系 姓名:孙超 学号:2013110444006 《餐饮业信息管理系统的开发》 1、本项目的需求分析 随着今年来中国餐饮行业的日益火爆,在强烈的行业竞争中,一个高效的餐饮信息管理系统的应用,无疑是至关重要的。高效,便捷的管理系统,不仅仅极大的方便了食客的就餐,同时对于餐饮公司的各项信息管理有着很大的帮助,同时,我们的餐饮信息管理系统还能帮助餐厅降低错误率,扩大营业范围,增加知名度等。 为了使得系统在操作的过程中,更加便捷,具有针对性,本次系统设计主要分为:员工登陆操作信息系统,以及店主操作管理信息系统。不同的设计从而达到不同的功能,实现信息的有效传达与管理。 第一:在员工使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.查询菜单 3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 第二:管理员使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.添加修改查询菜单信息,最好能看到菜品图片 3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 6.设定具体的打折方法 7.添加职员信息,权限也可以定为管理员。 8.可以查询使用者的现金收款金额。 二、餐饮业管理数据库管理系统的E-R模型(概念结构设计) 1.用户(员工)的信息:

编号、密码、类型、姓名、电话、收款金额 2.客户信息: 用户编号、客户编号、姓名、电话、密码、开卡时间、卡内余额 3.食谱: 类型、名称、价格、配料、照片 4.预定: 用户编号、日期、预定时间、客户姓名、类型、预定食谱、桌号5桌台管理: 桌号、使用情况、 6.点餐管理: 用户编号、类型、菜品、数量、价格、照片 7.盈利管理: 日期、日支出金额、店内收入、外卖收入、盈利额度 各对象之间的联系图: 用户E-R图 主要存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息。

数据库技术与应用(第二版)课后答案

第1章习题参考答案 1.思考题 (1)什么是数据库、数据库管理系统、数据库系统?它们之间有什么联系? 答:数据库是存贮在计算机的有结构的数据集合;数据库管理系统是一个软件,用以维护数据库、接受并完成用户对数据库的一切操作;数据库系统指由硬件设备、软件系统、专业领域的数据体和管理人员构成的一个运行系统。 (2)当前,主要有哪几种新型数据库系统?它们各有什么特点?用于什么领域,试举例说明?答:主要有:分布式数据库、面向对象数据库、多媒体数据库、数据仓库技术、空间数据库。 (3)什么是数据模型?目前数据库主要有哪几种数据模型?它们各有什么特点? 答:数据模型是一组描述数据库的概念。这些概念精确地描述数据、数据之间的关系、数据的语义和完整性约束。很多数据模型还包括一个操作集合。这些操作用来说明对数据库的存取和更新。数据模型应满足3方面要求:一是能真实地模拟现实世界;二是容易为人们理解;三是便于在计算机上实现。目前在数据库领域,常用的数据模型有:层次模型、网络模型、关系模型以及最近兴起的面向对象的模型。 (4)关系数据库中选择、投影、连接运算的含义是什么? 答: 1)选择运算:从关系中筛选出满足给定条件的元组(记录)。选择是从行的角度进行运算,选择出的记录是原关系的子集。 2)投影运算:从关系中指定若干个属性(字段)组成新的关系。投影是从列的角度进行运算,得到的新关系中的字段个数往往比原关系少。 3)连接运算:将两个关系按照给定的条件横向拼接成新的关系。连接过程是通过两个关系中公有的字段名进行的。 (5)关键字段的含义是什么?它的作用是什么? 答:一个关系中可以确定一个字段为关键字段,该字段的值在各条记录中不能有相同的值。(如:门牌);关键字段的作用主要是为建立多个表的关联和进行快速查询。 (6)什么是E-R图?E-R 图是由哪几种基本要素组成?这些要素如何表示? 答:E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。构成E-R图的基本要素有3种,即实体、属性和联系。其表示方法为:用矩形框表示现实世界中的实体,用菱形框表示实体间的联系,用椭圆形框表示实体和联系的属性,实体名、属性名和联系名分别写在相应框。 ABAAC ABCAA 第2章习题解答 1. 思考题 (1)在SQL Server 2008中的数据库中包含哪些对象?其中什么对象是必不可少的?其作用又是什么? 答:SQL Server 2008中的数据库对象主要包括数据库关系图、表、视图、同义词、可编程性、Service Broker、存储和安全性等。其中表对象是必不可少的。表是由行和列构成的集合,用来存储数据。 (2)SQL Server提供的系统数据库master它的作用是什么?用户可以删除和修改吗?为什么?答:master 数据库记录SQL Server 系统的所有系统级信息。主要包括实例围的元数据、端点、服务器和系统配置设置以及记录了所有其他数据库的存在、数据库文件的

SQL数据库期末大作业91411

Hefei University 《数据库期末大作业》 餐饮业信息管理系统的开发 专业:电子信息工程 班级:13电子1班 姓名:李云 学号:1305011005

指导老师:史俊朗 完成时间:2016-12-28 一、本项目的需求分析 随着今年来中国餐饮行业的日益火爆,在强烈的行业竞争中,一个高效的餐饮信息管理系统的应用,无疑是至关重要的。高效,便捷的管理系统,不仅仅极大的方便了食客的就餐,同时对于餐饮公司的各项信息管理有着很大的帮助,同时,我们的餐饮信息管理系统还能帮助餐厅降低错误率,扩大营业范围,增加知名度等。 为了使得系统在操作的过程中,更加便捷,具有针对性,本次系统设计主要分为:员工登陆操作信息系统,以及店主操作管理信息系统。不同的设计从而达到不同的功能,实现信息的有效传达与管理。 第一:在员工使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.查询菜单 3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 第二:管理员使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.添加修改查询菜单信息,最好能看到菜品图片

3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 6.设定具体的打折方法 7.添加职员信息,权限也可以定为管理员。 8.可以查询使用者的现金收款金额。 二、餐饮业管理数据库管理系统的E-R模型(概念结构设计) 1.用户(员工)的信息: 编号、密码、类型、姓名、电话、收款金额 2.客户信息: 用户编号、客户编号、姓名、电话、密码、开卡时间、卡内余额 3.食谱: 类型、名称、价格、配料、照片 4.预定: 用户编号、日期、预定时间、客户姓名、类型、预定食谱、桌号5桌台管理: 桌号、使用情况、 6.点餐管理: 用户编号、类型、菜品、数量、价格、照片 7.盈利管理: 日期、日支出金额、店内收入、外卖收入、盈利额度 各对象之间的联系图:

SQL SERVER数据库备份与恢复方案

SQL SERVER数据库备份与恢复方 案 世界上没有万无一失的信息安全措施。信息世界“攻击和反攻击”也永无止境。对信息的攻击和防护好似矛与盾的关系,螺旋式地向前发展。在信息的收集、处理、存储、传输和分发中经常会存在一些新的问题,其中最值得我们关注的就是系统失效、数据丢失或遭到破坏。 威胁数据的安全,造成系统失效的主要原因有以下几个方面:硬盘驱动器损坏;人为错误;黑客攻击;病毒;自然灾害;电源浪涌;磁干扰。因此,数据备份与数据恢复是保护数据的最后手段,也是防止主动型信息攻击的最后一道防线。 只要发生数据传输、数据存储和数据交换,就有可能产生数据故障。这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失。有时造成的损失是无法弥补与估量的。 数据故障的形式是多种多样的。通常,数据故障可划分为系统故障、事务故障和介质故障三大类。从信息安全数据库备份与恢复方案的角度出,实际上第三方或敌方的“信息攻击”,也会产生不同种类的数据故障。例如:计算机病毒型、特洛伊木马型、“黑客”入侵型、逻辑炸弹型等。这些故障将会造成的后果有:数据丢失、数据被修改、增加无用数据及系统瘫痪等。作为系统管理员,要千方百计地维护系统和数据的完整性与准确性。

通常采取的措施有:安装防火墙,防止“黑客”入侵;安装防病毒软件,采取存取控制措施;选用高可靠性的软件产品;增强计算机网络的安全性。 以下主要介绍SQL SERVER数据备份方案和数据库恢复方案。SQL SERVER数据备份方案 SQL SERVER数据库的备份方法主要有完整备份,差异备份,事务日志备份等。根据数据安全性的要求,推荐的备份方式为每周一次完整备份,每天一次差异备份,每半个小时一次事务日志备份。 默认情况下,为sysadmin 固定服务器角色以及db_owner 和db_backupoperator 固定数据库角色的成员授予BACKUP DATABASE 和BACKUP LOG 权限。 备份设备的物理文件的所有权和权限问题可能会妨碍备份操作。SQL Server 必须能够读取和写入设备;运行SQL Server 服务的帐户必须具有写入权限。 备份文件存放磁盘需要与数据库文件存放磁盘分开,避免磁盘IO冲突。备份执行时间与数据库作业执行时间错开,避免备份影响数据库作业的执行。 SQL SERVER 维护计划功能可以较好的实现自动化备份,在使用该功能前启动数据库管理器上的SQL SERVER 代理功能。

数据库技术与应用-复习题答案

一、填空题 1.在关系模型中,实体及实体之间的联系都用二维表来表示。在数据库的物理组织中,它 以文件形式存储。 2.数据库中的选择、投影、连接等操作均可由数据库管理系统实现。 3.在关系数据库模型中,二维表的列称为字段,行称为记录。 4.在Access中,查询可作为窗体、报表和数据访问页的数据源。 5.子查询“包含于”对应的谓词是In。 6.参数查询中的参数要用[]中括号括起来,并且设置条件提示。 7.绑定文本框可以从表、查询或SQL语言中获取所需的内容。 8.在创建主/子窗体之前,必须设置主窗体和子窗体(主表和子表)之间的关系。 9.表A中的一条记录可以与表B中的多条记录匹配,但是表B中的一条记录至多只能与表 A中的一条记录匹配,这样的关系是“一对多”。 10.两个实体之间的联系有3种,分别是一对一、一对多和多对多。 11.在关系数据库中,唯一标识一条记录的一个或多个字段称为主键。 12.参照完整性是一个准则系统,Access使用这个系统用来确保相关表中记录之间的关系 有效性,并且不会因意外删除或更改相关数据。 13.在数据表中,记录是由一个或多个字段组成的。 14.在关系数据库的基本操作中,把由一个关系中相同属性值的元组连接到一起形成新的二 维表的操作称为连接。 15.关系规范化是指关系模型中的每一个关系模式都必须满足一定的要求。 16.数据表之间的联系常通过不同表的共同字段名来体现。 17.表是Access数据库的基础,是存储数据的地方,是查询、窗体、报表等其他数据库对 象的基础。 18.在Access中数据表结构的设计是在设计器中完成的。 19.在查询中,写在“条件”行同一行的条件之间是并的逻辑关系,写在“条件”行不同行 的条件之间是或的逻辑关系。 20.窗体的数据来源主要包括表和查询。 21.计算型控件一般来说用表达式/公式作为数据源。 22.主窗体和子窗体通常用多个表或查询的数据,这些表或查询中的数据具有一对一/一对 多的关系。 23.在报表中可以根据字段、表达式对记录进行排序或分组。 24.DBMS/数据库管理系统软件具有数据的安全性控制、数据的完整性控制、并发控制和故 障恢复功能。 25.数据库系统体系结构中三级模式是模式、外模式、内模式。 26.实体完整性是对关系中元组的唯一性约束,也就是对关系的主码的约束。 27.若想设计一个性能良好的数据库,就要尽量满足关系规范化原则。

SQL大数据库期末大作业

学校:联合大学 系别:信息管理系 :超 学号:06 《餐饮业信息管理系统的开发》 1、本项目的需求分析 随着今年来中国餐饮行业的日益火爆,在强烈的行业竞争中,一个高效的餐饮信息管理系统的应用,无疑是至关重要的。高效,便捷的管理系统,不仅仅极大的方便了食客的就餐,同时对于餐饮公司的各项信息管理有着很大的帮助,同时,我们的餐饮信息管理系统还能帮助餐厅降低错误率,扩大营业围,增加知名度等。 为了使得系统在操作的过程中,更加便捷,具有针对性,本次系统设计主要分为:员工登陆操作信息系统,以及店主操作管理信息系统。不同的设计从而达到不同的功能,实现信息的有效传达与管理。 第一:在员工使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.查询菜单 3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 第二:管理员使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.添加修改查询菜单信息,最好能看到菜品图片 3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 6.设定具体的打折方法 7.添加职员信息,权限也可以定为管理员。 8.可以查询使用者的现金收款金额。 二、餐饮业管理数据库管理系统的E-R模型(概念结构设计) 1.用户(员工)的信息:

编号、密码、类型、、、收款金额 2.客户信息: 用户编号、客户编号、、、密码、开卡时间、卡余额 3.食谱: 类型、名称、价格、配料、照片 4.预定: 用户编号、日期、预定时间、客户、类型、预定食谱、桌号 5桌台管理: 桌号、使用情况、 6.点餐管理: 用户编号、类型、菜品、数量、价格、照片 7.盈利管理: 日期、日支出金额、店收入、外卖收入、盈利额度 各对象之间的联系图: 用户E-R图 主要存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息。

mysql数据库备份与恢复

my sql数据库备份与恢复 windows下实现mysql数据库定时备份功能一、进入mysql的bin目录 二、导出: [mysql bin path]>mysqldump--opt-d-u root-p dbn> backup-file.sql Enter password:****** 三、导入: [mysql bin path]>mysql-u root-p dbn<backup-file.sql Enter password:****** 四、收尾工作:清理sql文件,导出时会在bin目录下生成backup-file.sql 文件,在导入工作完成后就没用了,可以删了,当然留着也可以。

我自己的用的备份语句: d: cd\mysql\mysql5.1.30\bin mysqldump--opt-uroot-p123456 bbs_sikaozhoubao_com>E:\backup\bbs_sikaozhoubao_com\%date:~ 0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.sq l 更多的说明: 导出要用到MySQL的mysqldump工具,基本用法是: shell>mysqldump[OPTIONS]database[tables] 如果你不给定任何表,整个数据库将被导出。 通过执行mysqldump--help,你能得到你mysqldump的版本支持

的选项表。 注意,mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。 mysqldump支持下列选项: --add-locks 在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。 --add-drop-table 在每个create语句之前增加一个drop table。

SQL2008数据库大作业

数据库基础 ------大作业 题目:学生信息管理系统 教学系:数学与统计学院 专业班级: 071121 学生姓名: 8888

一、系统设计 在进行系统的详细设计之前,首先应该设计好系统的模式并确定好系统的功能目标和具体页面,下面就是学生信息管理的系统设计。 从系统的设计目标上来看,学生信息管理系统的主要功能如下:(1)登录验证功能。 (2)学生信息查看功能。 (3)信息编辑删除和添加功能。 (4)成绩查看和搜索功能。 (5)课程浏览搜索功能。 (6)密码修改功能。 从系统的实现上来看,共有十七个页面,每个页面的功能实现和说明如下所示。 页面说明

下面介绍在系统设计之前数据库的需求分析和设计。 二、数据库设计 1.需求分析 学生信息管理系统是各大高校所不可缺少的一部分,随着计算机水平的快速提高,学生信息管理系统也在不断地发展和完善。管理信息系统主要包括了学生的信息管理以及课程和成绩管理,基本上实现了管理系统所必须的功能,下面介绍学生信息管理系统数据库的设计。 2.概念设计 2.1数字词典 数据词典如下表所示:

数据词典

2.2E-R图 根据以上的需求分析,E-R图如图下图所示: E-R图如下 2.3关系模式 E-R图转换成关系模式如下: 学生(学号、姓名、性别、民族、出生年月、入学时间、班级、生源地、备注) 课程(课程号、课程名称、学时、学分、课程类型、授课老师) 成绩(ID、学号、课程号、考试成绩) 选修(学号、课程号、选修时间) 查询(学号、课程号、查询时间)

3.逻辑设计 根据前面的E-R图转换的关系模式一共有以下几个表: Student(学生表) Course(课程表) Score(成绩表) Elective(选修表)

数据库技术与应用第二版第1章习题参考答案

第1章习题参考答案 1.选择题 (1)数据库系统与文件系统的主要区别是()。D A.数据库系统复杂,而文件系统简单 B.文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件 C.文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量 D.文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决(2)在关系数据库系统中,当关系的模型改变时,用户程序也可以不变,这是()。B A.数据的物理独立性B.数据的逻辑独立性 C.数据的位置独立性D.数据的存储独立性 (3)在数据库三级模式中,对用户所用到的那部分数据的逻辑描述是()。A A.外模式B.概念模式C.内模式D.逻辑模式(4)E-R图用于描述数据库的()。A A.概念模型B.数据模型 C.存储模型D.逻辑模型 (5)以下对关系模型性质的描述,不正确的是()。C A.在一个关系中,每个数据项不可再分,是最基本的数据单位 B.在一个关系中,同一列数据具有相同的数据类型 C.在一个关系中,各列的顺序不可以任意排列 D.在一个关系中,不允许有相同的字段名 (6)已知两个关系: 职工(职工号,职工名,性别,职务,工资) 设备(设备号,职工号,设备名,数量) 其中“职工号”和“设备号”分别为职工关系和设备关系的关键字,则两个关系的属性中,存在一个外部关键字为()。A A.设备关系的“职工号”B.职工关系的“职工号” C.设备号D.设备号和职工号 (7)在建立表时,将年龄字段值限制在18~40之间,这种约束属于()。B A.实体完整性约束B.用户定义完整性约束 C.参照完整性约束D.视图完整性约束 (8)下列标识符可以作为局部变量使用的是()。C A.[@Myvar] B.My var C.@Myvar D.@My var (9)Transact-SQL支持的一种程序结构语句是()。A A.BEGIN…E ND B.IF…T HEN…ELSE C.DO CASE D.DO WHILE (10)字符串常量使用()作为定界符。A A.单引号B.双引号 C.方括号D.花括号 2.填空题 (1)数据库是在计算机系统中按照一定的方式组织、存储和应用的。支持数据库各种操作的软件系统叫。由计算机、操作系统、DBMS、数据库、应用程序及有

SQL SERVER2000数据备份与恢复

SQL Server2000数据备份与恢复 Author looger 1.数据库备份 1.1展开服务器组,然后展开服务器。展开“数据库”文件夹,右击数据库,指向“所 有所有”子菜单,然后单击“备份数据库”命令。 1.2在“名称”框内输入备份集名称,在“描述”框中输入对备份集的描述。在“备 份”选项中选择备份方式。

1.3点击“添加”按钮以添加现有的目的地或创建新的目的地,点击按钮可以选择一个备份文件

1.4点击按钮后,在下面出现的窗口中选择一个文件作为备份文件,可以在“文件名” 后面的文本框中输入一个新的文件名以创建一个备份文件。 1.5此时刚才选择的文件被加入到备份文件中。如果要添加其他的文件,则可以点击“添 加”按钮添加其他的文件。在"重写"选项下,单击“追加到媒体”,将备份追加到备份设备上任何现有的备份中;点击“重写现有媒体”,将重写备份设备中任何现有的备份

1.6可以选择“调度”复选框调度备份操作在以后执行或定期执行。点击“调度”后 面的按钮可以对调度进行设置 1.7在点击按钮后,可以在下面的对话框中设置调度的名称和调度的类型。如果需要调 度反复出现,则可以点击“更改”按钮

1.8点击“更改”按钮后,可以在下面的窗口中设置作业发生的时机 1.9单击“选项”选项卡。选择“完成后验证备份”复选框,在备份时对备份进行验 证。选择“检查媒体集名称和备份集到期时间”,检查备份媒体以防意外重写。在“媒体集名称”框中,输入将用于备份操作的媒体的名称。如果仅指备份集到期时间,则将其保留为空

2.数据库的恢复 2.1展开服务组,然后展开服务器。展开“数据库”文件夹,右击数据库, 指向“所有任务”子菜单,然后单击“还原数据库”命令 2.2在“还原为数据库”框中,如果要还原的数据库名称与显示的默认数据库名称不同,请在其中进行输入或选择。若要用新名称还原数据库,请输入新的数据库名称

数据库上机实验报告

实验一:建立数据库及基本表 一、实验目的 1、了解SQL Server数据库的逻辑结构和物理结构; 2、了解SQL Server的基本数据类型; 3、学会在企业管理器中创建数据库和表; 4、使用SQL查询分析器用CREATE、DROP、ALTER语句创建和删除数据库,创建、删除、更新基本表。 二、实验内容 1、创建数据库和查看数据库属性。 2、创建表。 3、查看和修改表结构。 4、熟悉企业管理器和查询分析器工具的使用方法 三、实验步骤 1、在企业管理器中创建数据库和数据表。 (1) 使用企业管理器建立图书管理数据库,数据库名为BM,初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。数据库的逻辑文件名和物理文件名均采用默认值。 详细步骤: (2) 在企业管理器中查看图书管理数据库的属性,并进行修改,使之符合要求。 (3) 通过企业管理器,在建好了图书管理数据库BM中建立图书(book)、读者(reader)和借阅(borrow)3个表,其结构为: 图书(书号,类别,出版社,作者,书名,定价);读者(编号,姓名,单位,性别,电话); 借阅(书号,读者编号,借阅日期)。 (4) 利用企业管理器向表中输入数据。 2、在查询分析器中创建数据库和数据表 (1) 创建数据库S-C 的sql语句: create database s_c (2) 在数据库S-C下,创建基本表学生表student(sno,sname,ssex,sage,sdept)的sql语句: create table student( sno c(8),sname c(10),ssex c(2),sage(4),sdept c(8) ) 创建基本表课程表course(cno,cname, ccredit)的sql语句: create table course( cno c(4),cname c(10),ccredit c(2) ) 创建基本表成绩表sc(sno,cno,grade)的sql语句: create table sc( sno c(8),cno c(4),grade n(4) )

SQL数据库备份与还原

SQL数据库的备份与还原 温馨提示:当学籍系统、综合素质评价系统有数据更新时,管理员一定要及时的做好数据库的备份工作,以防止意外情况的发生。正确、及时的进行数据库备份能减少数据丢失后恢复数据库的工作量。所以为了避免数据在灾难后无法恢复,必须对数据库进行备份。 一、SQL数据库的备份: 1、依次打开开始菜单→程序→Microsoft SQL Server 2008 →SQL Server Management Studio →数据库:Dsideal_school_db既是我们需要备份的学籍数据库 图(1) 2、选择要备份的数据库“Dsideal_school_db”,点击鼠标右键→任务→备份,如图(2):

图(2) 3、在打开的“备份数据库—Dsideal_school_db”对话框中,先点击删除,然后点击“添加”,如图(3):

首先点击“删除” 然后点击“添加” 图(3) 4、在弹出的“选择备份目标”对话框中,点击“”,如图(4) 图(4) 5、选择好备份的路径(如D盘的江西-学籍-数据库备份文件夹中),文件类型选择“所有文件”,“文件名”那个位置填写上您要备份的数据库的名字(最好在您备份的数据库的名字后

面加上日期,以方便以后查找),之后连续点击“确定”按钮即可完成数据库的备份操作,如图(5): 图(5 二、SQL数据库的还原:

1、选择您要还原的数据库“Dsideal_school_db”,点击鼠标右键→任务→还原→数据库,如图(6): 图(6) 2、在出现的“还原数据库— school_web_db”对话框中选择“源设备”,然后点击后面的“”按钮,如图(7):

相关文档
相关文档 最新文档