如何使用VC++程序在vc操作mysql数据库库中创建表

VC++6.0中用ODBC连接mysql数据库
VC++6.0中用ODBC连接mysql数据库
  下图是程序的最终效果,包含了数据的显示,添加,修改,删除这几项数据库操作的常用功能。 
  我的调试环境是xp,mysql版本是mysql4.0.23   1.安装Mysql的ODBC驱动
  从上下载驱动程序
  地址:#win32
  我是下载的Windows ZIP/Setup.EXE
  下载到本机之后从zip包中解压出setup.exe文件,双击安装,没什么可说的,完全的傻瓜式安装   2.设置ODBC数据源
  配置MySQL的ODBC数据源有两种方法
  第一种:手工设置
  比较麻烦,但是确是比较安全的办法。   步骤如下:
  开始 -& 控制面板 -& 管理工具 -& 数据源 (ODBC),双击数据源(ODBC)之后会出来如下的界面 
  点击右上角的"添加"按钮之后会出现如下的界面 
  可以看到,我们刚才安装的驱动程序已经出现在列表中了,选中它,然后单击完成,此时会出来下面的界面 
  按上图所示,填写好各项连接所需要的信息点击“Test”可以进行测试,如果出现sucessful字样就表示成功了 
  我解释一下填写的信息:Data Source Name:缩写就是DSN,中文翻译过来就是数据源名称,就是给数据源取个名,为了安全还是取英文名吧,省得出现意外。   Description:描述,可填可不填,我比较懒,就没填,想填也行,就是描述一下这个数据源是哪家的,干啥用的等等,随便吧Server:服务器,不能省,我填的是localhost,如果你有远程主机,不妨试试填上远程主机的IP地址,我没试过,不清楚User:用户名,我本地数据库用的是root,你们如果有别的就根据自己的情况填吧Password:密码,我没设置密码,有则填之,没有就留空Database:数据库,这是一个listbox,可以自己填,也可以从下拉列表中选,如果你前面的Server,User,Password都正确的话,下拉列表中会出来可选的数据库,这个就是我们要连接的数据库资源。   解释完毕,点了OK之后,我们就算设置完成了。   第二种:动态设置这种办法是指在程序执行时才添加数据源,SQLConfigDataSource是所用的方法,查msdn可以查到它的用法第一个参数一般设置成NULL就可以了,第二个参数我用的是ODBC_ADD_DSN,表示是新增数据源第三个参数是驱动的名称,在数据源(ODBC)中抄过来就OK了第四个参数是连接字符串,多个参数用\0分隔开,DSN就是数据源名称,UID是用户名,PWD是密码,SERVER是主机名,DATABASE是数据库名称,最后用两个\0结束。   只要在程序中加上这一行,当程序执行到它时,就会在数据源中加上你所设置的数据源,并且可以在控制面板 -& 管理工具 -& 数据源(ODBC)中查到。如图二所示,里面的odbctest和odbctestqqqq,前者就是动态创建的,后者是最初手工创建的。   SQLConfigDataSource(NULL,ODBC_ADD_DSN,"MySQL ODBC 3.51 Driver","DSN=odbctest\0 UID=root\0 PWD=\0 SERVER=localhost\0 DATABASE=odbc\0\0");   3.编写连接程序我用的是VC6.0,VC这东西好是好,就是封装得太多了,像我等这样初来乍到之人一时半会是狗咬乌龟――找不到下口的地方下面我就按我的方式来说说,肯定有高手有更高明的办法,不妨评论一二,也好让我等开开眼界。   (1)。创建一个基于对话框的工程在VC中点击菜单中 File -& New,在Projects的下拉菜单中选择MFC AppWizard (exe);在右上角的输入框中填写一个工程的名字,我取名叫ODBCTest;选择一个存放目录,我的是存在E:\c\ODBCTest;点击OK进入下一步,选择基于对话框,然后点finish完成设置。   (2)。包含头文件切换到file view,在header files中找到stdafx.h,这是MFC第一个要包含的头文件,我们在里面加上如下两行,将odbc及数据库操作所需的头文件引入到工程中。没这两个头文件编译时会出错。   ……   #include &odbcinst.h& #include "afxdb.h"// 用的时候把引号换成尖括号,编辑器自动给转成了非源码形式,郁闷   //{{AFX_INSERT_LOCATION}}…… 
  (3)。画主体对话框
  主体对话框是用来列表显示数据,并放置其他操作入口的界面,在这个程序中,我们的主体对话框上会放置一个列表控件和五个按钮控件。   在资源视图上选择对话框资源,然后绘制如下图如示的对话框 
  对图上的控件作一下说明
  1)。列表,用的是list control,注意在styles中的view要设置成report(报表),如下图 
  2)。依次添加了三个按钮,添加,修改,删除。   在这里做下说明,一般看网上的教程或是书,上面讲的程序的编写过程都是按步就班,没有多余的过程,因为作者都已经重新做了排版和设计工作,力求简洁。但实际编程中确是不一样的,常常要经过多次修改,重排,优化,所以这里我打算按实际程序的编写过程来说明,而不是按步就班的说明,力求还原程序编写的全过程。作为一个初学VC的新手,相信有很多跟我一样的新手也会遇到同样的困难,没关系,万事开头难。   一般的教程讲到这里就可能会去将后面所要用到的资源准备好,然后进行“系统的”编程。我这里不这样走,而是回到主窗口的编程上来,一个功能一个功能的实现。   1)。实现数据的列表显示晕了,很多人肯定会晕了。这不扯淡吗,我们的数据库(库名叫:odbc)里啥东西都还没有,显示啥呀。   没关系,好在俺也搞过Mysql几年,别的不会,管理Mysql的工具倒是知道不少,比如:EMS,phpMyAdmin,DBtools……   我为了简单就用了phpMyadmin这个工具,这个工具需要在本地安装了php和mysql才能使用,如果本地没有装php就用不了了,不过没关系,去下载一个EMS也不错,非常强大的工具,华丽的界面,丰富的功能。用过SQL server的可能更习惯于使用DBTools Manager,这也是个强大的工具,值得一试。   二毛说,学VC,在还没有入门之前机器上就会有一堆的工具。初始还不信,现在我信了,这不,刚学没几天,机器上就跑上了VC,msdn,另外还有一堆的入门电子书,阅读器,视频播放软件……既然已经有这么多了,再多几个也无所谓了。   跑题了哈,我先刹车倒回来,接着讲数据的显示,第一步:在odbc库中建一张表list,都怪我,这库名取得有点误导观众,这里再次申明一下,这里的odbc是我建的一个MySQL数据库,不是那个该死的缩写。下面是建好之后的表 
  id:是一个自增,非负的10位整型字段,用来存放用户的ID
  name:是一个40位变长的字符串,用来存放用户名
  age:是一个3位的小整型字段,因为没有启用非负设置,最大可以到127,此字段存放用户年龄
  这就是list表的结构,然后我们在表中插入几条初始数据,用来显示。   phpMyAdmin的使用我就不多说了,这属于工具的使用,不在本文的说明范围之内。   添加好数据之后,我们可以在phpmyadmin中浏览到它们,如下图: 
  2)。编程显示数据列表
  回到VC中来,在类视图中,找到CODBCTestDlg并展开,找到里面的OnInitDialog()方法,此方法是对话框的初始化方法,我的最初想法就是在这里面完成数据库的连接,查询,并输出数据到列表中。于是我写了如下的代码 
  CDdb.Open(NULL,FALSE,FALSE,"ODBC;DSN=UID=PWD=");CRecordset rs( &db );rs.Open( CRecordset::forwardOnly, _T("SELECT * FROM list order by id Asc"));
  short nFields = rs.GetODBCFieldCount();while(!rs.IsEOF()){&&& CString varID;&&& rs.GetFieldValue("id", varID);&&&& m_list.InsertItem(0,varID);
  CString varN&&& rs.GetFieldValue("name", varName);&&&& m_list.SetItemText(0, 1, varName);
  CString varA&&& rs.GetFieldValue("age", varAge);&&&& m_list.SetItemText(0, 2, varAge);
  rs.MoveNext();}rs.Close();db.Close();
  但后来发现有问题,因为在后面每添加一条记录之后都需要更新列表,重新输出,这就需要再次写一段跟上面一模一样的代码,我靠,这不浪费时间吗。于是,我将上面的这段代码放到了类的一个方法中。步骤如下:
  1)。在类视图中选中CODBCTestDlg,点右建,选择新增function,然后创建一个void GetRecord()的方法,如下图
  2)。将上面的代码放到方法中,最终的代码如下
  void CODBCTestDlg::GetRecord(){&&& m_list.DeleteAllItems();
  CD&&& db.Open(NULL,FALSE,FALSE,"ODBC;DSN=UID=PWD=");&&& CRecordset rs( &db );&&& rs.Open( CRecordset::forwardOnly, _T("SELECT * FROM list order by id Asc"));
  //short nFields = rs.GetODBCFieldCount();// 此行原是用来遍历表中字段,现在没有用上&&& while(!rs.IsEOF())&&& {&&&&&&& CString varID;&&&&&&& rs.GetFieldValue("id", varID);&&&&&&& m_list.InsertItem(0,varID);
  CString varN&&&&&&& rs.GetFieldValue("name", varName);&&&&&&& m_list.SetItemText(0, 1, varName);
  CString varA&&&&&&& rs.GetFieldValue("age", varAge);&&&&&&& m_list.SetItemText(0, 2, varAge);
  rs.MoveNext();&&& }&&& rs.Close();&&& db.Close();&&& m_list.AdjustColumnWidth();//新增了一个CMyListCtrl类,这是里面我新增的一个方法,用来自适应数据宽度}
  这样,以后在需要重新取列表数据时就可以调用此方法了,这就叫重用。   ODBC连接数据库,有两个类是需要关心的,第一个是CDatabase,另一个是CRecordset
  前者用于数据库连接的建立,后者用于数据集的取得
  建立连接,用如下的代码来实现  CDatabase db;//声明一个对象
  db.Open(NULL,FALSE,FALSE,"ODBC;DSN=odbctest;UID=root;PWD=");// 连接数据源
  至于为什么这么写,查msdn吧   取数据集合
  CRecordset rs( &db );// 绑定数据源
  rs.Open( CRecordset::forwardOnly, _T("SELECT * FROM list order by id Asc"));//查询数据   要执行sql,我并没有用ODBC提供的方法,而是用更直接的办法
  CString sql;
  sql.Format("update list set name='%s', age='%s' where id=%d",str_name, str_age, item_id);
  db.ExecuteSQL(sql);   这种办法的好处是可以不用从CRecordSet继承新类,且对我这样了解一部分sql的新手比较直观。
H3C认证Java认证Oracle认证
基础英语软考英语项目管理英语职场英语
.NETPowerBuilderWeb开发游戏开发Perl
二级模拟试题一级模拟试题一级考试经验四级考试资料
港口与航道工程建设工程法规及相关知识建设工程经济考试大纲矿业工程市政公用工程通信与广电工程
操作系统汇编语言计算机系统结构人工智能数据库系统微机与接口
软件测试软件外包系统分析与建模敏捷开发
法律法规历年试题软考英语网络管理员系统架构设计师信息系统监理师
高级通信工程师考试大纲设备环境综合能力
路由技术网络存储无线网络网络设备
CPMP考试prince2认证项目范围管理项目配置管理项目管理案例项目经理项目干系人管理
Powerpoint教程WPS教程
电子政务客户关系管理首席信息官办公自动化大数据
职称考试题目
就业指导签约违约职业测评
招生信息考研政治
网络安全安全设置工具使用手机安全
3DMax教程Flash教程CorelDraw教程Director教程
Dreamwaver教程HTML教程网站策划网站运营Frontpage教程
生物识别传感器物联网传输层物联网前沿技术物联网案例分析
互联网电信IT业界IT生活
Java核心技术J2ME教程
Linux系统管理Linux编程Linux安全AIX教程
Windows系统管理Windows教程Windows网络管理Windows故障
组织运营财务资本
视频播放文件压缩杀毒软件输入法微博
数据库开发Sybase数据库Informix数据库
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&比特客户端
您的位置:
详解大数据
详解大数据
详解大数据
详解大数据
MySQL数据库接口的VC实现与应用
  随 着现代计算机软硬件及网络技术的发展,在网上查找资料已成为现在获取信息的最重要手段之一。众所周知,所有的网上信息都是储存在网站中的,这些信息的查询、更新等操作的功能则是由数据库提供的,显然,数据库服务器的性能将直接关系到网站的生存。网站搭建中用的最多的数据库服务器是 和,前者功能强大,属于旗舰型数据库服务器,但前期投入太大;后者功能不断完善,简单易用而又不失性能,并且可以免费获得。因此,许多中小型网站的数据库服务器选用MySQL,而且,由于MySQL性能出色,一些大型网站也选用了MySQL。
  由此可见,MySQL数据库服务器在网站建设中的表现是十分出色的。但是,正因为这样,几乎很少有人将MySQL用于应用软件的开发中。本文将详细介绍环境中MySQL数据库服务器不同接口的应用,并最终将产生一个CDatabase类MySQL数据库接口功能。
  数据库接口实现与应用的计算机环境:硬件,C466、128M、15G;软件及,VISUAL C++ 6.0、MySQL 3.23.22-beta for win32、WIN98。
  1 MySQL数据库简介
  MySQL 是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言,它使得、更新和存取信息更加容易。 MySQL是一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和许多不同的客户程序以及库组成的。
  MySQL 的主要目标是快速、健壮和易用。最初是因为MySQL的创始人需要这样的一个SQL服务器,它能处理与任何不昂贵硬件平台上提供数据库的厂家在一个数量级 上的大型数据库,但速度更快,MySQL因此就开发出来了。它提供C,C++,JAVA(JDBC),Perl,Python,PHP and 的API接口;多平台支持,包括Solaris,SunOS,BSDI,SGI IRIX,AIX,DEC,,FreeBSD,SCO OpenServer,NetBSD,OpenBSD,HPUX,Win9x and NT;多样的数据类型,包括有/无符号1,2,3,4,8字节integers,FLOAT,DOUBLE,CHAR,VARCHAR,TEXT, BLOB,DATE,DATETIME,YEAR,SET,ENUM;非常灵活和安全的权限系统,密码加密;为Windows提供ODBC接口,可通过与之相联,另有第三方开发商提供多样的 ODBC驱动程序;在MySQL 3.23中使用新MyISAM最大的表大小可达8百万 TB(2^63个字节);多种语言支持,但不支持中文。然而,为了实现快速、健壮和易用的目的,MySQL必须牺牲一部分灵活而强大的功能,如子查询、存 储过程与触发器、外键、事物处理等。因而,MySQL在某些应用中缺乏灵活性,但这也使它对数据的处理速度较其它数据库服务器至少快2~3倍。
  MySQL 自身不支持Windows的图形界面,因此,所有的数据库操作及管理功能都只能在MS-DOS方式下完成。首先,必须登陆MySQL服务器,即在提示符\ MySQL\BIN&下输入MYSQL CH host CU user CPpassword,提示符改为mysql&时表示登陆成功。然后,选择所操作的数据库,即mysql& USE databasename。接着就可以用SQL语句进行查询了。如果需要退出数据库服务器,可执行QUIT命令,这样就成功退出服务器了。当然,由于 MySQL的知名度日益增加,许多第三方软件公司推出了MySQL在Windows环境中的具有图形界面的支持软件,如公司的EMS MYSQL MANAGER就提供了Windows形式的MySQL数据库操作功能。
  2 利用ODBC API实现MySQL数据库功能调用
  ODBC(Open Database Connectivity)即开放式数据库互联,作为Windows开放性结构的一个重要部分已经为很多的Windows程序员所熟悉,ODBC的工作依 赖于数据库制造商提供的驱动程序,使用ODBC API的时候,Windows的ODBC管理程序把数据库访问的请求传递给正确的驱动程序,驱动程序再使用SQL语句指示DBMS(系统)完成 数据库访问工作,因此,ODBC的存在为我们开发应用数据库程序提供了非常强大的能力和灵活性。在Windows下可以对多种数据库安装ODBC数据库, 用来连接数据库并访问它们的数据。
  对于MySQL数据库服务器来说,它的制造商同样提供了相应的ODBC驱动程序,其最新版本为myodbc-2.50.31-win95。在WIN98环境下进行安装后,就可以利用编程语言通过ODBC API对MySQL数据库进行各种ODBC所支持的操作。因为ODBC屏蔽了各种数据库的差异,所以,原来用于对其它数据库进行操作的程序,通过ODBC同样能够对MySQL数据库进行操作。也就是说,ODBC使程序对数据库的通用性提高了。
  用VC通过ODBC API对MySQL数据库进行编程,必须要对MySQL数据源进行设置,具体设置如图1:
  图1 数据源设置信息
  通过上图的设置,接着我们就可以按照一般的ODBC数据库编程方法,对MySQL数据库进行编程。
  3 利用MySQL自带的C API函数实现数据库功能调用
  由 于各个数据库之间的差异,它们所提供的数据库功能也就各有不同。这样,通过ODBC API就不可能完全拥有所有的数据库功能,因而影响了程序对数据库的控制功能,也就不能充分发挥数据库的能力。并且这种统一的接口还是以损失效能为前提 的,这就使数据库操作时间延长。所以,为了解决以上问题,MySQL的制造商在提供ODBC驱动程序的基础上,还提供了各种编程环境下的API,其中包括 C API。这些API函数很显然能尽可能地发挥数据库的能力,并减少数据库操作的延长时间,但却使程序的通用性受到严重影响。
  MySQL提供了一套C API函数,它由一组函数以及一组用于函数的数据类型组成,这些函数与MySQL 服务器进行并访问数据库,可以直接操控数据库,因而显著地提高了操控效能。
  C API数据类型包括:MYSQL(数据库连接句柄)、MYSQL_RES(查询返回结果集)、MYSQL_ROW(行集)、MYSQL_FIELD(字段 信息)、MYSQL_FIELD_OFFSET(字段表的偏移量)、my_ulonglong(自定义的无符号整型数)等;C API提供的函数包括:mysql_close()、mysql_connect()、mysql_query()、 mysql_store_result()、mysql_init()等,其中mysql_query()最为重要,能完成绝大部分的数据库操控。
  下面将具体讨论数据库操作类CDatabase通过C API的实现以及在VC中的应用。
  3.1 CDatabase类的实现
  CDatabase类封装了MySQL数据库的功能,因此不具备通用性,只能在对MySQL的应用程序中使用。下面将根据C++要求及规范给出CDatabase类的具体结构以及相关简要介绍:
  1 class CDatabase
  3 public:
  4 BOOL UnLockTable(); //解锁
  5 BOOL LockTable(char* TableName,char* PRIORITY); //加锁
  6 int Reload(); //重新登陆,非零时返回错误信息
  7 char* GetState(); //服务器状态
  8 char* GetServerInfo(); //服务器信息
  9 int GetProtocolInfo(); //协议信息
  10 char* GetHostInfo(); //主机信息
  11 char * GetClientInfo(); //客户机信息
  12 char* GetFieldName(int FieldNum); //字段名
  13 BOOL IsEnd(); //是否最后
  14 int DropDB(char *db); //删除数据库,非零时返回错误信息
  15 void SeekData(int offset); //查找指定数据
  16 int CreateDB(char *db); //创建数据库,非零时返回错误信息
  17 void FreeRecord(); //释放结果集
  18 unsigned int GetFieldNum(); //得到字段数
  19 BOOL ConnectDB(Database_Param *p); //连接数据库
  20 MYSQL_ROW GetRecord(); //得到结果(一个记录)
  21 my_ulonglong GetRowNum(); //得到记录数
  22 BOOL SelectDB(Data_Param *para); //选择数据库
  23 BOOL UpdateRecord(Data_Param *para); //更新记录
  24 BOOL SelectRecord(Data_Param *para); //选择记录
  25 BOOL InsertRecord(Data_Param *para); //插入记录
  26 BOOL DelRecord(Data_Param *para); //删除记录
  27 BOOL SelectAll(Data_Param *para); //选择所有记录
   char * OutErrors(); //输出错误信息
  29 CDatabase(); //初始化数据库
  30 virtual ~CDatabase(); //关闭数据库连接
  31 private:
  32 MYSQL //数据库连接句柄
  33 MYSQL_RES * //结果集
  34 MYSQL_ROW //记录集
  35 MYSQL_FIELD * //字段信息(结构体)
  36 BOOL FindSave(char *str); //查找并保存结果集
  通过CDatabase类中定义的这些功能函数,我们可以通过远程或本机完成对MySQL数据库的绝大部分操控,并且由于定义了解锁和加锁功能,使得应用程序能够多线程或多进程地访问数据库,大大提高了效能。以上函数的具体功能都是通过调用C API函数实现的。
  3.2 CDatabase类在VC中的应用
  第一步 建立初始化MySQL对象,并且将其初始化。即定义CDatabase类对象,这样程序就会自动调用构造函数CDatabase(),完成初始化。
  构造函数实现如下:
  1CDatabase::CDatabase ()
  3mysql_init (mysql);
  4}完成初始化只需定义CDatabase类对象,即
  第二步 连接服务器,并连接需要的数据库。即调用ConnectDB(Database_Param *p)函数,结构体Database_Param中存放数据库参数,包括主机名、用户名、密码、数据库名等。该函数如返回TRUE表示连接成功,否则表示失败。
  连接函数实现如下:
  1 BOOL CDatabase::ConnectDB(Database_Param *p)
  3 if(!mysql_real_connect(mysql,p-&host,p-&user,p-&password,p-&db,p-&port,p-&unix_socket,p-&client_flag))
  5 OutErrors(); // 输出错误信息
  第三步 对数据库进行加锁。即调用LockTable(char* TableName,char* PRIORITY),对相应的表TableName完成相应属性PRIORITY的加锁,使程序兼容多线程功能。 加锁函数实现如下:
  1 BOOL CDatabase:: LockTable(char* TableName,char* PRIORITY)
  3 char str[50];
  4 sprintf(str,"LOCK TABLES %s %s",TableName,PRIORITY);
  5 if(mysql_query(mysql,str))
  第四步 完成数据库操作。即根据需要调用UpdateRecord(Data_Param *para)、SelectRecord(Data_Param *para)、InsertRecord(Data_Param *para)、DelRecord(Data_Param *para)等操作。其中的结构体Data_Param中存放数据库操作参数。上述两个结构体的定义在global.h中。 InsertRecord函数实现如下,其它实现方法相似:
  1 BOOL CDatabase::InsertRecord(Data_Param *para)
  3 char str[80];
  4 sprintf(str,"insert into %s values(%s)",para-&tab_name,para-&insert_val);
  5 if(mysql_query(mysql,str))
  第五步 解锁数据库。即调用UnLockTable(),完成对上述被加锁的表的解锁。 解锁函数实现如下:
  第六步 关闭数据库连接。即调用析构函数~CDatabase(),关闭数据库,并自动释放初始化时定义的CDatabase类对象。 析构函数如下:CDatabase::~CDatabase()
  2 if(query)
  3 mysql_free_result(query);
  4 mysql_close(mysql);
  5 }注意:在编译程序时,必须加入MySQL的库文件libmySQL.lib。
  4 MySQL性能测试
  4.1 ODBC API 通过索引读取200万行:528秒
  插入35万行: 750秒
  4.2 C API
  通过索引读取200万行:412秒
  插入35万行:435秒
  4.3 其它数据库(以MS_SQL为例,WINNT环境)
  通过索引读取200万行:1634秒
  插入35万行:4012秒
  注:以上数据是多次测量的平均值,不可避免一定的误差,仅供参考。
  5 结束语
  MySQL 作为一个免费的SQL数据库,虽然功能不够十分强大,且灵活性较差,但是,已经能够满足一般应用软件的要求,而且MySQL者也在力求使之更 加完善。并且,由MySQL性能测试可以看出,它对数据的处理速度明显快于其它数据库服务器。因此,如果应用软件对数据库的性能要求较高,而同时对数据库 操作的功能及灵活性的要求不是很高的话,并且前期投入资金较少时,MySQL数据库服务器不失为一个最佳的选择。
[ 责任编辑:之极 ]
HPE Octane为开发者和…
甲骨文的云战略已经完成第一阶段…
软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。
微信扫一扫
关注Chinabyte}

我要回帖

更多关于 mysql创建数据库命令 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信