精华内容
下载资源
问答
  • 最近的项目数据库管理系统从SQL SERVER2000迁移到了MySQL上来,之前基于ADO的连接方式连接上SQL SERVER,使用MySQL数据库管理系统之后,直接在MySQL的C语言的API上以面向对象的方式封装实现了数据库的创建,表的创建...

     
      1.MySQL的特性
     
      使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
     
      支持AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell NetWare、NetBSD、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
     
      为多种編程语言提供了API。这些編程语言包括C、C++、C#、VB.NET、Delphi、Eiffel、Java、Perl、PHP、 Python、Ruby和Tcl等。
     
      支持多線程,充分利用CPU资源,支持多用户。
     
      優化的SQL查询算法,有效地提高查询速度。
     
      既能够作为一个单独的应用程序在客户端服务器网络环境中运行,也能够作为一个程序库而嵌入到其他的软件中。
     
      提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift JIS等都可以用作數據表名和數據列名。
     
      提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
     
      提供用于管理、检查、优化数据库操作的管理工具。
     
      可以处理拥有上千万条记录的大型数据库。
     
      2.C++的API封装
     
      用C++连接SQL有两种可直接使用的接口:MySQL Connector/C++和MySQL+ +,<1>MySQL Connector/C++是最新发布的MySQL连接器,由Sun Microsystems开发。MySQL connector为C++提供面向对象的编程接口(API)和连接MySQL Server的数据库驱动器与现存的driver不同,Connector/C++是JDBC API在C++中的实现。换句话说,Connector/C++ driver的接口主要是基于Java语言的JDBC API。Java数据库连接(JDBC)是Java连接各种数据库的业界标准。Connector/C++实现了JDBC 4.0的大部分规范。熟悉JDBC编程的C++程序开发者可以提高程序开发的效率。
     
      <2>MySQL++是一个用C++封装了MySQL的C API的类库。它是建立标准C ++标准库(STL)之上,使处理数据库处理STL容器一样容易。此外,MySQL的++提供了让你避免最重复的工作,提供了原生C++接口。
     
      3.MySQL的C++封装实现
     
      在快速搭建原型的过程中,没有用到这两种连接方式,直接在MySQL C API上封装实现。
     
    #ifndef __MYSQL_INTERFACE_H__
    #define __MYSQL_INTERFACE_H__
     
    #include "winsock.h"
    #include <iostream>
    #include <string>
    #include "mysql.h"
    #include <vector>
    #include <string>
     
    #pragma comment(lib, "ws2_32.lib")
    #pragma comment(lib, "libmysql.lib")
    using namespace std;
     
    class MySQLInterface
    {
    public: 
        MySQLInterface();
        virtual ~MySQLInterface();
     
        bool connectMySQL(char* server, char* username, char* password, char* database,int port);
        bool createDatabase(std::string& dbname);
        bool createdbTable(const std::string& query);
     
        void errorIntoMySQL();
        bool writeDataToDB(string queryStr);
        bool getDatafromDB(string queryStr, std::vector<std::vector<std::string> >& data);
        void closeMySQL();
     
    public:
        int errorNum;                    //错误代号
        const char* errorInfo;             //错误提示
     
    private:
        MYSQL mysqlInstance;                      //MySQL对象,必备的一个数据结构
        MYSQL_RES *result;                 //用于存放结果 建议用char* 数组将此结果转存
    };
     
    #endif
     
     
    #include "stdafx.h"
    #include "MySQLInterface.h"
     
     
    //构造函数 初始化各个变量和数据
    MySQLInterface::MySQLInterface():
        errorNum(0),errorInfo("ok")
    {
        mysql_library_init(0,NULL,NULL);
        mysql_init(&mysqlInstance);
        mysql_options(&mysqlInstance,MYSQL_SET_CHARSET_NAME,"gbk");
    }
     
    MySQLInterface::~MySQLInterface()
    {
     
    }
     
    //连接MySQL
    bool MySQLInterface::connectMySQL(char* server, char* username, char* password, char* database,int port)
    {
        if(mysql_real_connect(&mysqlInstance,server,username,password,database,port,0,0) != NULL)
            return true;
        else
            errorIntoMySQL();
        return false;
    }
    //判断数据库是否存在,不存在则创建数据库,并打开
    bool MySQLInterface::createDatabase(std::string& dbname)
    {
        std::string queryStr = "create database if not exists ";
        queryStr += dbname;
        if (0 == mysql_query(&mysqlInstance,queryStr.c_str()))
        {
            queryStr = "use ";
            queryStr += dbname;
            if (0 == mysql_query(&mysqlInstance,queryStr.c_str()))
            {
                return true;
            }
             
        }
        errorIntoMySQL();
        return false;
    }
    //判断数据库中是否存在相应表,不存在则创建表
    bool MySQLInterface::createdbTable(const std::string& query)
    {
        if (0 == mysql_query(&mysqlInstance,query.c_str()))
        {
            return true;
        }
        errorIntoMySQL();
        return false;
    }
     
    //写入数据
    bool MySQLInterface::writeDataToDB(string queryStr)
    {
        if(0==mysql_query(&mysqlInstance,queryStr.c_str()))
            return true;
        else
            errorIntoMySQL();
        return false;  
    }
    //读取数据
    bool MySQLInterface::getDatafromDB(string queryStr, std::vector<std::vector<std::string> >& data)
    {
        if(0!=mysql_query(&mysqlInstance,queryStr.c_str()))
        {
            errorIntoMySQL();
            return false;
        }
     
        result=mysql_store_result(&mysqlInstance);
     
        int row=mysql_num_rows(result);
        int field=mysql_num_fields(result);
     
        MYSQL_ROW line=NULL;
        line=mysql_fetch_row(result);
     
        int j=0;
        std::string temp;
        while(NULL!=line)
        {  
            std::vector<std::string> linedata;
            for(int i=0; i<field;i++)
            {
                if(line[i])
                {
                    temp = line[i];
                    linedata.push_back(temp);
                }
                else
                {
                    temp = "";
                    linedata.push_back(temp);
                }
            }
            line=mysql_fetch_row(result);
            data.push_back(linedata);
        }
        return true;
    }
     
    //错误信息
    void MySQLInterface::errorIntoMySQL()
    {
        errorNum=mysql_errno(&mysqlInstance);
        errorInfo=mysql_error(&mysqlInstance);
    }
     
    //断开连接
    void MySQLInterface::closeMySQL()
    {
        mysql_close(&mysqlInstance);
    }
    展开全文
  • DB2 查看数据库的创建时间

    千次阅读 2017-03-14 18:40:50
    如何查看某个DB2数据库的创建时间? 解决: 两种办法,第一个查看任何一个系统表的创建时间,比如SYSIBM.SYSTABLES。第二个是查询表SYSIBM.SYSVERSIONS的VERSION_TIMESTAMP字段 $ db2 "select create_time ...

    问题:

    如何查看某个DB2数据库的创建时间?


    解决:

    两种办法,第一个查看任何一个系统表的创建时间,比如SYSIBM.SYSTABLES。第二个是查询表SYSIBM.SYSVERSIONS的VERSION_TIMESTAMP字段

    $ db2 "select create_time from syscat.tables where tabname='SYSTABLES'"
    
    CREATE_TIME               
    --------------------------
    2017-03-02-09.41.37.240948
    
      1 record(s) selected.
    
    $ db2 "select VERSION_TIMESTAMP from sysibm.sysversions"
    
    VERSION_TIMESTAMP         
    --------------------------
    2017-03-02-09.41.37.240948
    
      1 record(s) selected.


    展开全文
  • SQLite数据库的创建和操作和数据库可视化
    SQLite数据库的创建和操作

    Email:chentravelling@163.com

    前天学习了一下界面布局和activity,昨天抽了一会时间捣腾了一下SQLite,总体感觉Android的数据库服务还算方便,这都是两个类的功劳:SQLiteOpenHelper和SQLiteDatabase。关于这两个类,后续再讲。
    一、环境
    IDE:Android Studio
    JDK:1.8
    系统:win 7 64位
    二、设计
    我拿了一个简单的例子:people表字段如下
    字段 类型 主键
    id TEXT KEY
    name TEXT
    workplace TEXT
    phone TEXT
    gender INTEGER
    2.1)首先我写了一个people类:peopleBean。为什么要新建一个类呢?首先是对需要传递和保存的信息进行封装,这样个人觉得更加符合面向对象的思想,也使得代码更规范,可读性更高,安全性更高。
    
    /**
     * Created by chen on 2015/12/16.
     */
    public class peopleBean {
    
    
        private String id;//主键
        private String name;
        private String workplace;
        private String phone;
        private int gender;
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getWorkplace() {
            return workplace;
        }
    
        public void setWorkplace(String workplace) {
            this.workplace = workplace;
        }
    
        public String getPhone() {
            return phone;
        }
    
        public void setPhone(String phone) {
            this.phone = phone;
        }
        public int getGender() {
            return gender;
        }
    
        public void setGender(int gender) {
            this.gender = gender;
        }
    
    
    }
    </span>

    2.2)新建一个对数据库进行操作的类:AddressDAO,该类继承自SQLiteOpenHelper类,关于SQLiteOpenHelper类的说明将在另一个章节中讨论。
    <pre name="code" class="java"><span style="font-family:Microsoft YaHei;font-size:18px;">
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.Objects;
    
    /**
     * Created by chen on 2015/12/16.
     */
    public class AddressDAO extends SQLiteOpenHelper{
    
        private SQLiteDatabase db;
        public AddressDAO(Context context)
        {
            super(context,"address_db",null,1);
        }
        //创建数据库
        @Override
        public void onCreate(SQLiteDatabase db)
        {
            Log.e("onCreate", "create");
            String sql = "CREATE TABLE IF NOT EXISTS people(id integer primary key autoincrement,name text,phone text,workplace text,gender integer);";
            db.execSQL(sql);
        }
        //当数据库升级的时候,Android系统会自动调用onUpgrade方法
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
        {
            String sql = "DROP TABLE IF EXISTS address_db";
            db.execSQL(sql);
            onCreate(db);
        }
        //关闭数据库服务
        public void closeDB(SQLiteDatabase db)
        {
            if(db!=null)
            {
                db.close();
            }
        }
        //插入数据
        public void add(peopleBean people)
        {
          /*  String name = people.getName();
            String phone = people.getPhone();
            String workplace = people.getWorkplace();
            String gender = people.getGender()==0?"男":"女";*/
            String sql = "insert into people values(null,'"+people.getName()+"','"+people.getPhone()+"','"+people.getWorkplace()+"','"+people.getGender()+"')";
            //String sql = "insert into people values(null,'张亚茹','13716762131','北京','0');";
            //获取SQLiteDatabase对象实例
            db = this.getWritableDatabase();
            db.execSQL(sql);
    
        }
        //查询数据:返回的是一个Cursor对象
        public Cursor query()
        {
            String sql = "select * from people";
            //获取SQLiteDatabase对象实例
            db = this.getReadableDatabase();
            Cursor cursor = db.rawQuery(sql, null);
            return cursor;
        }
    }
    </span>

    
    其中关键的几个地方:
    (1)重写onCreate()函数,功能:新建数据库,库名:address_db
    (2)重写onUpdate()函数,数据库升级时,Android系统会自动调用该方法
    (3)查询的时候,调用的是rawQuery()方法,返回的是Cursor对象,该对象是一个数据集合,关于Cursor的操作,后续再讲。
    其他的删除和查询暂时还没写。
    当然还可以通过调用SQLiteDatabase类中的insert()、delete()、update()、rawQuery()进行数据的增删改查,但是个人喜欢通过执行sql语句来做,比较方便。

    三、关于SQLite可视化
    系统中的数据库在哪里呢?见下图:
    打开android device monitor


    将数据库表导入和导出:


    然后就可以利用SQLite可视化工具查看了:SQLite Expert

    展开全文
  • --图书管理系统数据库的创建,插入数据--创建数据库CREATE DATABASE BOOKSDBUSE BOOKSDB--创建表CREATE TABLE ReaderType( rdType INT PRIMARY KEY, rdTypeName VARCHAR(20), canLendQty INT, canLendDay INT )...
    --图书管理系统数据库的创建,插入数据
    --创建数据库
    CREATE DATABASE BOOKSDB
    USE BOOKSDB
    --创建表
    CREATE TABLE ReaderType
    (
      rdType INT PRIMARY KEY, 
      rdTypeName VARCHAR(20), 
      canLendQty INT, 
      canLendDay INT 
    )
    CREATE TABLE Reader
    (
      rdID CHAR(9) PRIMARY KEY,
      rdType INT REFERENCES ReaderType(rdType), 
      rdName VARCHAR(20), 
      rdDept VARCHAR(40), 
      rdQQ VARCHAR(13),
      rdBorrowQty INT DEFAULT 0 CHECK(rdBorrowQty BETWEEN 0 AND 10)
    )
    CREATE TABLE Book
    (
      bkID CHAR(9) PRIMARY KEY,
      bkName VARCHAR(50),
      bkAuthor VARCHAR(50), 
      bkPress VARCHAR(50), 
      bkPrice DECIMAL(5,2), 
      bkStatus INT DEFAULT 1 
    )
    CREATE TABLE Borrow
    (
      rdID CHAR(9) REFERENCES Reader(rdID), 
      bkID CHAR(9) REFERENCES Book(bkID), 
      DateBorrow DateTime, 
      DateLendPlan DateTime, 
      DateLendAct DateTime, 
      PRIMARY KEY(rdID, bkID)
    )
    --插入数据
    INSERT INTO READERTYPE VALUES(1,'教师',10,60)
    INSERT INTO READERTYPE VALUES(2,'本科生',5,30)
    INSERT INTO READERTYPE VALUES(3,'硕士研究生',6,40)

    INSERT INTO READERTYPE VALUES(4,'博士研究生',8,50)

    INSERT INTO READER VALUES('rd2017001',1,'王桃群','计算机科学学院','3635751',0)
    INSERT INTO READER VALUES('rd2017002',2,'孙小美','英语学院','11223344',0)
    INSERT INTO READER VALUES('rd2017003',3,'连晓燕','管理学院','55996633',0)
    INSERT INTO READER VALUES('rd2017004',4,'许苗','物理学院','88552277',0)

    INSERT INTO BOOK VALUES('bk2017001','数据库原理及应用','王丽艳','机械工业出版社',33.00,1)
    INSERT INTO BOOK VALUES('bk2017002','高等数学','同济大学数学系','高等教育出版社',32.00,1)
    INSERT INTO BOOK VALUES('bk2017003','当代教育心理学','陈琦','北京师范大学出版社',37.20,1)
    INSERT INTO BOOK VALUES('bk2017004','古代汉语','王力','中华书局',20.40,1)
     
    INSERT INTO BORROW VALUES('rd2017001','bk2017001','2017-01-01','2017-02-01','2017-02-02')
    INSERT INTO BORROW VALUES('rd2017002','bk2017003','2017-02-11','2017-03-21','2017-02-22')
    INSERT INTO BORROW VALUES('rd2017002','bk2017001','2017-04-01','2017-05-01','2017-04-02')
    INSERT INTO BORROW VALUES('rd2017003','bk2017003','2017-06-01','2017-07-01','2017-07-02')
    展开全文
  • 创建项目,首先要进行需求分析,根据分析,然后进行开发的第一步,首先是数据库模型的设计,以及数据库的创建,整理和分析好每个表之间的关联。 直接写出这个项目的数据库创建语句以及表之间关联的语句,项目很简单...
  • 数据库的创建与管理

    千次阅读 2010-09-29 19:19:00
      实验1 数据库的创建与管理   目的和要求 1.巩固数据库的基础知识; 2.掌握创建数据库的两种方法; 3.掌握查看、修改数据库属性的方法; 4.掌握缩小、更名与删除...
  • 数据库复习—数据库的创建和管理

    千次阅读 2019-03-07 17:45:55
    数据库创建和管理 数据库文件介绍 至少具有两个操作系统文件:一个数据文件和一个日志文件 数据文件包含数据和对象,例如表、索引、存储过程和视图。日志文件包含恢复数据库所有事物所需信息 为了便于分配和...
  • SQLite数据库的创建和使用(菜鸟篇)

    万次阅读 多人点赞 2018-08-02 15:52:18
    sqlite sqlite Expert Professianal 数据库创建
  • hive中数据库的创建与删除

    万次阅读 2017-01-08 18:10:16
    但在时间生产环境中,我们通常要创建自己的数据库. 文本介绍如何通过hive客户端和java程序创建和删除hive数据库。   创建数据库: 在hive中创建数据库,和在关系型数据库创建数据库类似,用create database...
  • 实验报告:数据库的创建和删除

    万次阅读 2018-03-24 21:56:28
    了解SQL Server 2017数据库的逻辑结构和物理结构 掌握使用向导方式和SQL方式来创建和删除数据库及数据表的方法 二. 实验内容 ( 设有一学籍管理系统,其数据库名为“EDUC”,初始大小为 10MB,最大为50MB,数据库...
  • Android Sqlite数据库是一个怎样的数据库? 答:是一种嵌入式小型设备,移动...在Android开发过程中,只需调用Android所提供Sqlite API接口,底层会调用Sqlite.c 程序去生成数据库创建表字段 等等;虽然在Android
  • MYSQL实验一、数据库的创建和管理

    千次阅读 2018-06-28 13:45:13
    实验目的:1、掌握在Windows平台...5、掌握使用SQL语句/MySQL Workbench/Navicat等工具创建、修改、删除数据库的方法;实验内容:1、启动和关闭MySQL服务(在服务对话框中或Net命令);2、登录本机MySQL数据库(以r...
  • MySQL安装后,将会在data目录下自动创建几个必须的数据库,可以使用SHOW DATABASES;语句来查看 当前所存在所有数据库,登录以及查看语句如下 创建数据库 可以看到,数据库表中包含了6个数据库,MySQL是必须,...
  • c#----数据库的创建

    千次阅读 2017-04-19 01:43:46
    创建一个主数据库文件和一个日志文件 --指向当前要使用的数据库 use master gocreate database Students on primary ( --数据库文件逻辑名 name = 'StudentManageDB_data', --数据库物理文件名(绝对路径) ...
  • 数据库的创建与监听器的配置

    千次阅读 2018-06-03 13:44:41
    1. 数据库的创建 2. 监听器的配置
  • 数据库(Database)是按照数据结构来组织、存储和管理数据建立在计算机存储设备上仓库。 简单来说是本身可视为电子化文件柜——存储电子文件处所,用户可以对文件中数据进行新增、截取、更新、删除等操作。 ...
  • 使用Navicat for MySQL创建数据库和导入数据: ①点击【文件】→【创建连接】 ...⑥在刚创建的数据库名称上面右键,选择【运行批次处理文件】: ⑦然后选择要导入文件,之后点击【开始】: ⑧...
  • MongoDB数据库的创建和删除

    万次阅读 2012-12-03 14:15:49
    MongoDB创建数据库完全可以使用use 如下: use mydb; 这样就创建了一个数据库。 这一步很重要如果什么都不操作离开话 这个库就会被系统删除。   验证------------------------------- 然后使用插入语句: ...
  • 关于MySQL数据表的操作是计算机软件行业中必备的技能之一,学好数据库在软件行业对于自身发展更是毋庸置疑,话不多说,开始放技能。 home键+R --&gt;输入cmd--&... 数据库的操作简单概括...
  • 数据库的创建,删除首先,启动服务管理器:其次,打开企业管理器:鼠标右击“数据库”文家夹图标,选择“新建数据库”,则弹出对话框如下:在“名称”处填写想要创建的数据库名称(我以sky2098为例),也可以通过...
  • HiveQL 数据定义语言使用(一)—Hive中数据库的创建、显示、删除和修改操作介绍
  • vs中数据库的创建及连接

    千次阅读 2012-12-30 12:12:53
    在用ASP.NET MVC3时,如果使用Database First技术,则数据库的连接有以下三种形式: 1.  通过SQL 连接本地数据库 如图: 2  将用户数据库复制到AppData文件夹中 VS通过SQL使用AppData文件夹中的数据库(在配置...
  • Android系统framework层集成了Sqlite3数据库,我们知道Sqlite3是一种轻量级高效存储的数据库。 Sqlite数据库具有以下优点: (1)零配置,无需安装和配置; (2)储存在单一磁盘文件中一个完整的数据库; ...
  • 1、确认当前数据库是否为要删除那一个 select name from v$database;  2、关闭数据库 shutdown immediate;  3、以restrict方式重新打开数据库,并启动到mount状态 sqlplus / as sysdba startup restrict ...
  • 环境变量配置:如果你对你电脑比较熟悉,你就会知道,你电脑之所以那么老实支持系统命令是因为环境变量中进行了相关配置,所以你默认命令遍历位置是C:\WINDOWS\system32&gt; 命令,那么同样你要直接...
  •  Postgresql不能以root身份运行,要以其他身份运行,所以必须建立对应用户和组。 (1)新增postgresql用户组:groupadd postgresql (2)新增postgres用户属于postgresql用户组:useradd -g postgresql ...
  • 17_创建数据库与完成数据添删改查 -------------------------------------- 1.SQLite介绍:最大特点是,无数据类型; 除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据。 在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 261,367
精华内容 104,546
关键字:

数据库的创建