精华内容
下载资源
问答
  • 在MySQL中创建表

    2017-04-11 09:28:35
  • 通过程序,自己手动写建表语句挺麻烦的。 如下所示: update ...然后进入mysql查看建表语句: mysql> use hibernate; Database changed mysql> show create table teacher; +---------+-------------

    通过程序,自己手动写建表语句挺麻烦的。

    如下所示:

     <property name="hbm2ddl.auto">update</property>

    将update改为create,然后运行JUNIT的单个方法,比如save()即可。


    然后进入mysql查看建表语句:

    mysql> use hibernate;
    Database changed
    mysql> show create table teacher;
    +---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table   | Create Table                                                                                                                                                                                                                                                                                                     |
    +---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | teacher | CREATE TABLE `teacher` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `birthDate` datetime DEFAULT NULL,
      `gender` varchar(255) DEFAULT NULL,
      `good` bit(1) NOT NULL,
      `name` varchar(255) DEFAULT NULL,
      `title` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=gbk |
    +---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set
    
    mysql> 


    大致就这样,很简单,呵呵呵。

    展开全文
  • 我想创建表MySQL数据库。我能够成功地打开数据库,...如何Qt中创建mysql数据库表?mydb = QSqlDatabase::addDatabase("QMYSQL");mydb.setDatabaseName("mylogin");mydb.setUserName("root");mydb.setPort(3306);...

    我想创建表到MySQL数据库。我能够成功地打开数据库,但包含创建表命令不起作用的查询? 如果有人知道它,请让我知道我会很感激。如何在Qt中创建mysql数据库表?

    mydb = QSqlDatabase::addDatabase("QMYSQL");

    mydb.setDatabaseName("mylogin");

    mydb.setUserName("root");

    mydb.setPort(3306);

    mydb.setHostName("localhost");

    mydb.setPassword("");

    if(!mydb.open())

    {

    qDebug() << "failed" ;

    qDebug() << mydb.lastError().text();

    }

    QSqlQuery qry;

    qry.prepare("CREATE TABLE RSA(name varchar(20);");

    if(qry.exec())

    {

    QMessageBox msg;

    msg.setText("Data saved");

    msg.exec();

    mydb.close();

    mydb.removeDatabase(QSqlDatabase::defaultConnection);

    }

    else

    {

    QMessageBox msg2;

    msg2.setText("Failed to save data");

    msg2.exec();

    qDebug() << mydb.lastError().text();

    }

    }

    +0

    张贴您的代码请 –

    +0

    我已编辑我的张贴检查一次 –

    +0

    什么是错误返回? –

    展开全文
  • ... MySQL在创建数据表的时候创建索引 ...在MySQL中创建表的时候,可以直接创建索引。基本的语法格式如下: CREATE TABLE 表名(字段名 数据类型 [完整性约束条件], [UNIQUE | FULLTEXT | SPATIAL] INDEX ...

    MySQL在创建数据表的时候创建索引

    在MySQL中创建表的时候,可以直接创建索引。基本的语法格式如下:

    CREATE TABLE 表名(字段名 数据类型 [完整性约束条件],
                      [UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY
                      [索引名](字段名1 [(长度)] [ASC | DESC])
    );
    • UNIQUE:可选。表示索引为唯一性索引。
    • FULLTEXT;可选。表示索引为全文索引。
    • SPATIAL:可选。表示索引为空间索引。
    • INDEX和KEY:用于指定字段为索引,两者选择其中之一就可以了,作用是一样的。
    • 索引名:可选。给创建的索引取一个新名称。
    • 字段名1:指定索引对应的字段的名称,该字段必须是前面定义好的字段。
    • 长度:可选。指索引的长度,必须是字符串类型才可以使用。
    • ASC:可选。表示升序排列。
    • DESC:可选。表示降序排列。

    MySQL创建普通索引

    创建一个普通索引时,不需要加任何UNIQUE、FULLTEXT或者SPATIAL参数。

    实例:创建一个名为index1的数据表,在表内的id字段上建立一个普通索引。

    1. 创建普通索引的SQL代码如下:

    CREATE TABLE index1(id INT,
                        name VARCHAR(20),
                        sex BOOLEAN,
                        INDEX(id)
    );

              在DOS提示符窗口中查看MySQL创建普通索引的操作效果。如下图所示:

               在DOS提示符窗口中查看MySQL创建普通索引的操作效果

               从上图中可以看出,运行结果显示普通索引创建成功。

    2. 使用SHOW CREATE TABLE语句查看表的结构。如下图所示:

                   使用SHOW CREATE TABLE语句查看表的结构

                  从上图中可以看出,在id字段上已经建立了一个名为id的普通索引。

          语句:

          KEY `id` (`id`)

    圆括号内的id是字段名称,圆括号左侧外面的id是索引名称。

    3. 使用EXPLAIN语句查看索引是否被使用。SQL代码如下:

        EXPLAIN SELECT * FROM index1 where id=1 \G

    在DOS提示符窗口中查看使用EXPLAIN语句查看索引是否被使用的操作效果。如下图所示:

            在DOS提示符窗口中查看使用EXPLAIN语句查看索引是否被使用的操作效果

          上图中的结果显示,possible_keys和key的值都为id。说明id索引已经存在,并且查询时已经使用了索引。


    MySQL创建唯一性索引

    如果使用UNIQUE参数进行约束,则可以创建唯一性索引。

    实例:创建一个名为index2的数据表,在表内的id字段上建立一个唯一性索引,并且设置id字段以升序的形式排列。

    1. 创建一个唯一性索引的SQL代码如下:

    CREATE TABLE index2(id INT UNIQUE,
                        name VARCHAR(20),
                        UNIQUE INDEX index2_id(id ASC)
    );

    index2_id是为唯一性索引起的一个新名字。

          在DOS提示符窗口中查看MySQL创建唯一性索引的操作效果。如下图所示:

            在DOS提示符窗口中查看MySQL创建唯一性索引的操作效果

            从上图中可以看出,运行结果显示创建成功。

    2. 使用SHOW CREATE TABLE语句查看表的结构。SQL代码如下:

    SHOW CREATE TABLE index2 \G

    在DOS提示符窗口中查看使用SHOW CREATE TABLE语句查看表的结构的效果。如下图所示:

           在DOS提示符窗口中查看使用SHOW CREATE TABLE语句查看表的结构的效果

    从上图中可以看出,在id字段上建立了名为id和index2_id的两个唯一性索引。这样做,可以提高数据的查询速度。

    如果在创建index2表时,id字段没有进行唯一性结束。如下所示:

    CREATE TABLE index2(id INT,
                        name VARCHAR(20),
                        UNIQUE INDEX index2_id(id ASC)
    );

    则也可以在id字段上成功创建名为index2_id的唯一性索引。但是,这样可能达不到提高查询速度的目的。


    MySQL创建全文索引

    全文索引使用FULLTEXT参数,并且只能在CHAR、VARCHAR或TEXT类型的字段上创建。

    全文索引可以用于全文搜索。

    现在,MyISAM存储引擎和InnoDB存储引擎都支持全文索引。

    实例:创建一个名为index3的数据表,在表中的info字段上建立名为index3_info的全文索引。

    1. 创建全文索引的SQL代码如下:

    CREATE TABLE index3(id INT,
                        info VARCHAR(20),
                        FULLTEXT INDEX index3_info(info)
    )ENGINE=MyISAM;

    如果设置ENGINE=InnoDB,则可以在InnoDB存储引擎上创建全文索引。

    在DOS提示符窗口中查看MySQL创建全文索引的操作效果。如下图所示:

             在DOS提示符窗口中查看MySQL创建全文索引的操作效果

    从上图中可以看出,代码的执行结果显示创建成功。

    2. 使用SHOW CREATE TABLE语句查看index3数据表的结构。如下图所示:

    使用SHOW CREATE TABLE语句查看index3数据表的结构

    从上图中可以看出,在info字段上已经建立了一个名为index3_info的全文索引。

    注意

    我使用的是MySQL 5.6.19版本,已经可以在InnoDB存储引擎中创建全文索引了。

    全文索引非常适合于大型数据集,对于小的数据集,它的用处可能比较小。


    MySQL创建单列索引

    单列索引是在数据表的单个字段上创建的索引。一个表中可以创建多个单列索引。唯一性索引和普通索引等都为单列索引。

    实例:创建一个名为index4的数据表,在表中的subject字段上建立名为index4_st的单列索引。

    1. 创建单列索引的SQL代码如下:

    CREATE TABLE index4(id INT,
                        subject VARCHAR(30),
                        INDEX index4_st(subject(10))
    );

    在DOS提示符窗口中查看MySQL创建单列索引的操作效果。如下图所示:

           在DOS提示符窗口中查看MySQL创建单列索引的操作效果

    从上图中可以看出,代码执行的结果显示创建成功。

    2. 使用SHOW CREATE TABLE语句查看index4数据表的结构。如下图所示:

              使用SHOW CREATE TABLE语句查看index4数据表的结构

    从上图中可以看出,在subject字段上已经建立了一个名为index4_st的单列索引。

    注意:subject字段长度为30,而index4_st设置的索引长度只有10,这样做是为了提高查询速度。对于字符型的数据,可以不用查询全部信息,而只查询它前面的若干字符信息。


    MySQL创建多列索引

    创建多列索引是在表的多个字段上创建一个索引。

    实例:创建一个名为index5的数据表,在表中的name和sex字段上建立名为index5_ns的多列索引。

    1. 创建多列索引的SQL代码如下:

    CREATE TABLE index5(id INT,
                        name VARCHAR(20),
                        sex CHAR(4),
                        INDEX index5_ns(name,sex)
    );

    在DOS提示符窗口中查看MySQL创建多列索引的操作效果。如下图所示:

            在DOS提示符窗口中查看MySQL创建多列索引的操作效果

    从上图中可以看出,代码的执行结果显示index5_ns索引创建成功。

    2. 使用SHOW CREATE TABLE语句查看index5数据表的结构。如下图所示:

             使用SHOW CREATE TABLE语句查看index5数据表的结构

    从上图中可以看出,name和sex字段上已经建立了一个名为index5_ns的多列索引。

    3. 多列索引中,只有查询条件中使用了这些字段中第一个字段时,索引才会被使用。

    先在index5数据表中添加一些数据记录,然后使用EXPLAIN语句可以查看索引的使用情况。如果只是使用name字段作为查询条件进行查询。如下图所示:

              使用name字段作为查询条件进行查询

    从上图中可以看出,possible_keys和key的值都是index5_ns。Extra(额外信息)显示正在使用索引。这说明使用name字段进行索引时,索引index5_ns已经被使用。

    4. 如果只使用sex字段作为查询条件进行查询。如下图所示:

               使用sex字段作为查询条件进行查询

    从上图中可以看出,possible_keys和key的值都是NULL。Extra(额外信息)显示正在使用where条件查询,而未使用索引。

    提示

    使用多列索引时一定要特别注意,只有使用了索引中的第一个字段时才会触发索引。如果没有使用索引中的第一个字段,那么这个多列索引就不会起作用。因此,在优化查询速度时,可以考虑优化多列索引。


    MySQL创建空间索引

    使用SPATIAL参数能够创建空间索引。创建空间索引时,表的存储引擎必须是MyISAM类型。而且,索引字段必须有非空约束。

    实例:创建一个名为index6的数据表,在表中的space字段上建立名为index6_sp的空间索引。

    1. 创建空间索引的SQL代码如下:

    CREATE TABLE index6(id INT,
                        space GEOMETRY NOT NULL,
                        SPATIAL INDEX index6_sp(space)
    )ENGINE=MyISAM;

    在DOS提示符窗口中查看MySQL创建空间索引的操作效果。如下图所示:

           在DOS提示符窗口中查看MySQL创建空间索引的操作效果

    从上图可以看出,代码执行的结果显示空间索引创建成功。

    2. 使用SHOW CREATE TABLE语句可看index6数据表的结构。如下图所示:

            使用SHOW CREATE TABLE语句可看index6数据表的结构

    从上图中可以看出,在space字段上已经建立了一个名为index6_sp的空间索引。

    注意,space字段是非空的,而且数据类型是GEOMETRY类型。这个类型是空间数据类型。

    空间数据类型包括GEOMETRY、POINT、LINESTRING和POLYGON类型等。这些空间数据类型平时很少用到

    展开全文
  • 最近入坑了flask,看的是Miguel Grinberg的blog的2017年新版The Flask Mega-Tutorial教程的中文翻译版,其中在做到第四章数据库时发现无法利用db.creat_all()在MySQL中创立数据库。这里要提一句的是原文并未用到...
  • 使用mysql在mycat中创建表

    千次阅读 2017-08-08 17:00:28
    [javascript] view plain copy 首先呢,先说一下下面的操作流程需要注意...数据库多个节点库都需要创建表 ...在mysql中gas_data表中执行你要创
  • MySQL提供了多种单列或多列上创建索引的方法:一种是在创建表时制定索引列;另一种是使用ALTER TABLE 语句已存在的表上创建索引,或者使用CREATE_INDEX 已存在的表上创建索引。 1. 创建表时创建【普通】...
  • js使用mysql 创建表安卓 5.0.1系统的pad 上 是没问题的,但是我如果使用安卓4.0系统的pad 就会出现创建表失败的问题, 请问各位大哥大姐们有没有遇到过同样的问题,难道创建表还有权限吗?
  • 在MYSQL中快速创建

    千次阅读 2017-11-15 23:19:00
    在MYSQL中有两种方法。1、create table select ...2、create table like ...第一种很多人都知道,第二种却很少人用。第一种有个缺点: 取消掉原来的有些定义。手册上是这么讲的:Some conversion of data types ...
  • 比如说我要创建一个如下的结构,该用什么语句,, 类似这种多层结构
  • 出了my.ini没有配置指定字符集,但是navicat中显示当前的mysql是utf8的,eclipse也是设置utf8的,创建也是utf8的,但是通过eclipse生成的中文在mysql中变成了问号![图片说明]...
  • 如何在mysql中创建内存 --- 转 如何创建内存? 创建内存非常的简单,只需注明 ENGINE= MEMORY 即可: CREATE TABLE `tablename` ( `columnName` varchar(256) NOT NUL) ENGINE=MEMORY DEFAULT CHARSET=...
  • mysql创建表

    2017-09-05 16:12:04
    MySQL 创建数据 创建MySQL数据需要以下信息: 表名 表字段名 定义每个表字段 语法 ...以下为创建MySQL数据的SQL通用语法: ...以下例子中我们将 RUNOOB 数据库中创建数据runoob_tbl: CREATE TABLE I
  • 用习惯了oracle或者sqlserver的界面形式 当用到mysql创建表时往往就会忘记添加表空间这个前提。 一个用户下面可建多个表空间 使用语句 create database your_database_name; 下面讲一下建表时有两种方法...
  • mysql创建数据

    2019-05-12 12:31:05
    MySQL 创建数据 创建MySQL数据需要以下信息: 表名 表字段名 定义每个表字段 语法 以下为创建MySQL数据的SQL...以下例子中我们将 RUNOOB 数据库中创建数据runoob_tbl: CREATE TABLE IF NOT EXISTS...
  • MySQL 创建数据

    2017-07-24 21:49:23
    MySQL 创建数据 创建MySQL数据需要以下信息: 表名表字段名定义每个表字段 ...以下为创建MySQL数据的SQL通用语法: ...以下例子中我们将 W3CSCHOOL 数据库中创建数据w3cschool_tbl: tutorials_tbl
  • 原因是:没有指定的数据库中创建表。 解决方法:你所创建的数据库中选择一个数据库,USE 你数据库的名字 如上图,再继续创建表。 我这里出现error的原因是,之前已经有这个表存在。 desc 加你表的名称,会显示...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,524
精华内容 8,609
关键字:

在mysql中创建表

mysql 订阅