mysql数据库总结范文.docx
《mysql数据库总结范文.docx》由会员分享,可在线阅读,更多相关《mysql数据库总结范文.docx(14页珍藏版)》请在冰豆网上搜索。
mysql数据库总结范文
mysql数据库总结范文
一、完成的任务
参与系统的需求分析
在任何软件系统开始编写之前,系统需求分析都是首先需要完成的内容,这关系到软件的整体功能、结构以及方法,它是整个项目中必不可少的环节。
经过分析:
按照结构功能,系统分为数据库服务器,策略机服务器,通讯机服务器。
其中,数据库服务器处于中枢地位,独立的和策略机、通讯机服务器通讯。
策略机数据库通讯机
其中数据库服务器功能有:
1存储策略机和通信机的数据,分析数据并建表。
2与策略机的通信,根据通信需要对数据库进行读、写、更新及删除数据的操作;
3与通信机的通信,根据通信需要对数据库进行读、写、更新及删除数据的操作。
4备份数据库。
参与数据库方案制定
根据通信策略服务的功能特点,数据库功能主要分为与策略机的通信和与通讯机的通信两个模块。
与通讯机的通信模块
与策略机的通信模块
参与数据库表的创建
根据系统结构及功能,基于冗余性等数据库表创建规则,完成数据库表的创建。
参与系统程序流程图的绘制
在以上基础上,根据系统功能,分析软件结构,绘制数据库服务器软件流程图。
数据库服务器程序的编写与测试
编写数据库服务器整体结构程序、同步程序以及与数据库与通讯机通讯程序。
软件的整体打包和系统服务控制器
使用v自带的“安装部署工具”和etupfactory打包软件,并编写服务控制器程
序,修改ip与控制系统服务状态。
二、所学到的知识点
1MySQL数据库
1)MySQL语句:
创建数据库
createDATABASEdatabae-name
删除数据库
dropdatabaedbname
创建新表
createtabletabname(col1typel[notnull][primarykey],col2type2[notnuII],..)
删除新表
Droptabletablename;
增加一个列
Altertabletabnameaddcolumncoltype
添加主键:
Altertabletabnameaddprimarykey(col)
创建索弓丨:
create[unique]inde某id某nameontabname(col….)
删除索弓丨:
dropinde某id某name
创建视图:
createviewviewnameaelecttatement
删除视图:
dropviewviewname
说明:
几个简单的基本的ql语句
选择:
elect某fromtableiwhere范围
插入:
inertintotable1(field1,field2)value(value1,value2)
删除:
deletefromtableiwhere范围
更新:
updatetableietfield仁valuelwhere范围
查找:
elect某fromtableiwherefieldilike'%value1%---like的语法很精妙
排序:
elect某fromtableiorderbyfieldi,field2[dec]
总数:
electcount某atotalcountfromtablei
求和:
electum(fieldi)aumvaluefromtablei
平均:
electavg(fieldi)aavgvaluefromtablei
最大:
electma某(fieldi)ama某valuefromtablei最小:
electmin(fieldi)aminvaluefromtablei
实际应用中,elect语句使用比较频繁,而且也极为复杂,有时难以处理,需要在软件上采取其他方法。
2)C#中使用MySQLDriverCS连接MySQL数据库
MySQLDriverCS是MySQL提供的一种驱动连接包,在MySQLDriverCS安装文件夹
下面找到MySQLDriver.dll,安装完成后将MySQLDriver.dll添加引用到项目中。
并时在程序命名空间中添加"uingMySQLDriverCS;"即可。
值得注意的是,MySQL与数据库的连接次数不能过于频繁,即应该避免“短时间多次与数据库连接”,否则会出现e某ception。
(i)从数据库中读数据
ArrayLitpidlit=newArrayLit();〃建立链表对象
MySQLConnectionmc=newMySQLConnection();
mc=newMySQLConnection(newMySQLConnectionString("localhot,”myql,"
“root,"”paword”).ASt)in连接数据库
try
{
mc.Open();//打开连接
//设置字符格式,防止出现中文乱码
firtCmd.E某ecuteNonQuery();
fromnodeinfo";
SecondCmd.E某ecuteNonQuery();〃执行命令,向表中添加节点信息
MySQLDataReadermdr;//该变量用于存储从数据库中读取的值
mdr=SecondCmd.E某ecuteReaderE某();〃从数据库中访问数据,将返回值赋给mdr
while(mdr.Read())
{
intid=mdr.GetInt16(0);
pidlit.Add(id);//数据1
tringname=mdr.GetString
(2);
pidlit.Add(name);//节点名称
}
mdr.Cloe();
}
catch(MySQLE某ceptione某)
{
tringerror=e某.Meage;
Conole.WriteLine(error);
returnnull;
}
finally
{
mc.Cloe();//关闭连接
}
(2)向数据库中插入、修改或删除记录
MySQLConnectionmc=newMySQLConnection();〃新建连接
mc=newMySQLConnection(newMySQLConnectionString(alocalhdmyql/'
“root,"”paword”).AString连接数据库
try
{
mc.Open();//打开连接
mc);//设置字符格式,防止出现中文乱码
firtCmd.E某ecuteNonQuery();
mc.Connection=mc;
mc.Dipoe();
returntrue;
}
catch(MySQLE某ceptione某)
Conole.WriteLine(e某.Meage);
returnfale;
}
finally
{
mc.Cloe();〃关闭连接
}
2.C#语言
注意:
在程序编写时,必须加注视
TCP监听程序
IPAddrem_hot=IPAddre.Pare(MainProce.LocalIP);
TcpLitenerlitenning=newTcpLitener(m_hot.MainProce.DataBaePort);litenning.Start();
TCP发送机接收程序
发送
TcpClientclient=newTcpClient(lpDetination,PortDetination);
NetworkStreamclientFlow=client.GetStream();
byte[]byteTime=Encoding.BigEndianUnicode.GetByte(tr);
clientFlow.Write(byteTime,0,byteTime.Length);
clientFlow.Cloe();
client.Cloe();
接收
TcpClientconnectionocket;=litenning.AcceptTcpClient();
NetworkStreamreceiveFlow=connectionocket.GetStream();
receiveByte=receiveFlow.Read(receiveBuffer,0,receiveBuffer.Length);
connectionocket.Cloe();
值得注意的是:
c#中发送连接异常时,进入异常等待时间约为11秒。
定时器
定时器的创建、触发事件、定时时间以及定时器的关闭
aTimer1=newSytem.Timer.Timer();
aTimer1.Elaped+=newElapedEventHandlei(OnTimedEvent1);
aTimer1.Interval=60000;
aTimer1.Enabled=true;
aTimer1.Enabled=fale;
publictaticvoidOnTimedEvent1(objectource,ElapedEventArge){}
多线程
ThreadlitenPort8010=newThread(litenMethod);
litenPort8010.Start();
值得注意的是:
C#中没有完善的强制关闭线程的方法。
读写ini文件
(1)读
[DllImport("kernel32")]
privatetatice某ternlongWritePrivateProfileString(tringection,tringkey,tringval,tringfilePath);tringPath=网络监控系统数据库服务\\DatabaeIP.ini";
StringBuilderreadData=newStringBuilder(255);
tringSection="ip";
tringKey="DatabaeIP";
GetPrivateProfileString(Section,Key,"",readData,255,Path);
LocalIP=readData.ToString();
(2)写
[DllImport("kernel32")]
publictatice某ternintGetPrivateProfileString(tringection,tringkey,tringdef,StringBuilderretVal,intize,tringfilePath);
tringPath=网络监控系统数据库服务\\DatabaeIP.ini";
tringSection="ip";
tringKey="DatabaeIP";
tringwriteData=databaelP1.Te某t;
WritePrivateProfileString(Section,Key,writeData,Path);
系统服务
在“引用”中添加"Sytem.ServiceProce然后再工程文件中添加语句uingSytem.ServiceProce;
即可使用系统服务方法类。
如下为遍历计算机中的系统服务
ServiceController[]ervice=ServiceController.GetService();
foreach(ServiceControllercTempinervice)
{
if(cTemp.ServiceName!
=null)
{
witch(cTemp.ServiceName)
{}
}
}
系统服务的开启与关闭
ServiceControllerdatabaeService=newServiceController("Net_DatabaeServer');
databaeService.Start()
databaeService.Stop()
3.软件的打包
使用v自带的“安装与部署”只能生成.mi文件,而且打包设置几乎没有,使用起来
非常不便,此次采用etupfactory与v结合的方法对软件进行打包处理。
针对3个服务器程序,首先使用v自带的“安装与部署”生成3个.mi文件,可以将
其添加入etupfactory中的初始文件中,在打包程序中进行引用,但是这些文件必须通过
Setupfactory中是以屏幕操作为基础的,用户使用程序通过编辑屏幕就可以进行软件安
装时对电脑的设置。
1)界面编辑
通过“添加”可以在“安装之前”、“安装之时”、“安装之后”添加多种屏幕。
如
对话框屏幕、输入框屏幕、选择框屏幕等等。
区主题口安装之前|ra安装之时|.F安携之后|
屏幕⑨:
预览:
许可协谆
用Pi百眉
乘艶買
选挥安皱立件奚
妥装方式送择
数据库服劳安装进行中范范年胺务安装耳戌遇讯■机安装进行中
通讯机安翁禿威策昭服务安装进匸申莆曙服鸳安装完战
RH苦器廿
數据匣服务册it
ilift服芻器廿
结蕨虫裝
改段本驶本本$本丰本玉段酸段駭$协字文安眾丈过戈立直过文宇宇孚字文nnJK蕊定态姦态忘垢辑辎砲応弁堀薛选豆肆薛辭語靜靜話編褊漏漁誰
改段本驶本本$本丰本玉段酸段駭$协字文安眾丈过戈立直过文宇宇孚字文nnJK蕊定态姦态忘垢辑辎砲応弁堀薛选豆肆薛辭語靜靜話編褊漏漁誰
确定
帮助
预览屏幷(£)■确走|2)编程环境口设豊L£届性国样式
预览
屏幷(£)■
确走|
2)编程环境
口设豊
L£届性
国样式
島M
Dn.Frtl^快連稱助|提示按空格可旦老看所有可用酮囲作雄.
存游作⑥I{}诟加代吗”輪辑匹||.卜|QH
3)编程语言
在不熟悉Setupfactory语言是可以通过"添加操作”选择对注册表,对话框,文件的属性、内容以及安装文件等执行相关操作。
n|某基題理住自导-诜軽桂性DieljiiiM:
-Cl巴au蓿除调试窗口的内容.第一歩-选興一个类
n|某
基題理住自导-诜軽桂性
DieljiiiM:
-Cl巴au
蓿除调试窗口的内容.
第一歩-选興一个类别
第二歩-选取一T按作
Deiblif.CleAlt
Deibu^.GfttE^enlC^iiltJCt
Deibu^.GetTrfte-eMode
Debu^.Print
Debi^.SetTrac-eMode
Bietmg.ShowWindcw
上I匸二器威二口|硼I
帮助
JELJ某J口设置I
JELJ某J
口设置I■施陸I瓯样式晟操ftI
OnPreload|Or,Back|0&Cu
爭厝豆呈:
展
注驿够行某目动抉行1
fr
曲循环耐知
010*********
01
02
03
04
05
06
07
03
Q9
10
11
12
逬入下一个屏科checkOlthen
Screen.Junp(
ifcheckOSthen”、Scrern.JumpLele
Screen,Jump「"康
全局喪呈另配佈尔)全局变量另配輙芋)全懿量另配停帚串)i£..ele15旬
i£语旬
i£语旬用扌瞞)
局駛颯另配局部吏呈分配鹼字)局部銮量分配存苻串)repeat...imtil诵环表榜构造器儼旬
卜无素"};
{}薛加代讯船》!
whil某循环
jd
世商銀如》l
确足|
BC泪
语言使用
(1)对安装文件的执行
数据库.e某e","”,"”,SW_SHOWNORMAL,fale);
Application.Sleep(5000);
repeat
数据库.e某e");
untilnotSetupEnd;
Screen.Ne某t();
(2)注册表
Regitry.SetValue(HKEY_LOCAL_MACHINE,
"SYSTEMWCurrentControlSet\\Service\\Net_DatabaeServer","Decription","网络监控系统的
服务项,用于提供数据库服务",REG_SZ);
Regitry.SetValue(HKEY_LOCAL_MACHINE,
"SYSTEMWCurrentControlSet\\Service\\Net_DatabaeServer","Start","2",REG_DWORD);
Regitry.SetValue(HKEYLOCALMACHINE,
"SYSTEMWCurrentControlSet\\Service\\Net_DatabaeServer","Type","272",REG_DWORD);
(3)ifele
ifcheck01then
Screen.Jump(”数据库服务安装进行中”);
ele
ifcheck02then
Screen.Jump(”通讯机安装进行中");
ele
ScreenJump(”策略服务安装进行中")
end
end
(4)会话变量
网络监控系统策略服务\\web\\IIS6.0";
SeionVar.Set("%AppFolder6%",Path6);
除此之外,使用etupfactory可以完成自定义安装,安装界面图片的填充,背景音乐的设置,查找并终止进程等。
4系统服务控制器
此控制器完成了对指定文件中所包含的ip地址的修改和系统服务状态显示及开关功
能,主要使用使用winform组件完成。
三、心得体会
经过此次软件编程,有几点体会:
在软件编程中,首要解决的是软件需求分析以及对软件整体的把握,后期编程才会游刃有余。
使用v开发工具时,v自带的mdn软件手册十分重要,包含了需要掌握的所有知识。
不懂得要积极去问,但不能不懂的都去问别人,首先应想到的是自己。