精华内容
下载资源
问答
  • 创建数据库之后,接下来就要在数据库中创建数据。所谓创建数据,指的是在已经创建的数据库中...基本语法 在MySQL 中,可以使用CREATE TABLE 语句创建表。其语法格式为:CREATE TABLE ([定义选项])[选项...

    在创建数据库之后,接下来就要在数据库中创建数据表。所谓创建数据表,指的是在已经创建的数据库中建立新表。

    创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。接下来我们介绍一下创建数据表的语法形式。

    基本语法 在

    MySQL 中,可以使用

    CREATE TABLE 语句创建表。其语法格式为:

    CREATE TABLE ([表定义选项])[表选项][分区选项]; 其中,

    [表定义选项]的格式为:

    [,…] CREATE TABLE 命令语法比较多,其主要是由表创建定义(create-definition)、表选项(table-options)和分区选项(partition-options)所组成的。

    这里首先描述一个简单的新建表的例子,然后重点介绍 CREATE TABLE 命令中的一些主要的语法知识点。

    CREATE TABLE 语句的主要语法及使用说明如下:

    CREATE TABLE:用于创建给定名称的表,必须拥有表CREATE的权限。

    :指定要创建表的名称,在 CREATE TABLE 之后给出,必须符合标识符命名规则。表名称被指定为 db_name.tbl_name,以便在特定的数据库中创建表。无论是否有当前数据库,都可以通过这种方式创建。在当前数据库中创建表时,可以省略 db-name。如果使用加引号的识别名,则应对数据库和表名称分别加引号。例如,'mydb'.'mytbl' 是合法的,但 'mydb.mytbl' 不合法。

    :表创建定义,由列名(col_name)、列的定义(column_definition)以及可能的空值说明、完整性约束或表索引组成。

    默认的情况是,表被创建到当前的数据库中。若表已存在、没有当前数据库或者数据库不存在,则会出现错误。

    提示:使用 CREATE TABLE 创建表时,必须指定以下信息:

    要创建的表的名称不区分大小写,不能使用SQL语言中的关键字,如DROP、ALTER、INSERT等。

    数据表中每个列(字段)的名称和数据类型,如果创建多个列,要用逗号隔开。

    在指定的数据库中创建表 数据表属于数据库,在创建数据表之前,应使用语句“USE”指定操作在哪个数据库中进行,如果没有选择数据库,就会抛出 No database selected 的错误。

    【实例 1】创建员工表 tb_emp1,结构如下表所示。

    字段名称

    数据类型

    备注

    id

    INT(ll)

    员工编号

    name

    VARCHAR(25)

    员工名称

    deptld

    INT(ll)

    所在部门编号

    salary

    FLOAT

    工资

    选择创建表的数据库 test_db,创建 tb_emp1 数据表,输入的 SQL 语句和运行结果如下所示。

    mysql> USE test_db;

    Database changed

    mysql> CREATE TABLE tb_emp1

    -> (

    -> id INT(11),

    -> name VARCHAR(25),

    -> deptId INT(11),

    -> salary FLOAT

    -> );

    Query OK, 0 rows affected (0.37 sec) 语句执行后,便创建了一个名称为 tb_emp1 的数据表,使用 SHOW TABLES;语句查看数据表是否创建成功,如下所示。

    mysql> SHOW TABLES;

    +--------------------+

    | Tables_in_test_db |

    +--------------------+

    | tb_emp1 |

    +--------------------+

    1 rows in set (0.00 sec)

    查看表结构 在 MySQL 中,使用 SQL 语句创建好数据表之后,可以查看结构的定义,以确认表的定义是否正确。在 MySQL 中,查看表结构可以使用 DESCRIBE 和 SHOW CREATE TABLE 语句。

    DESCRIBE/DESC 语句可以查看表的字段信息,包括字段名、字段数据类型、是否为主键、是否有默认值等,语法规则如下:

    DESCRIBE ; 或简写成:

    DESC ; 【实例 2】使用 DESCRIBE 查看表 tb_emp1 的结构,输入的 SQL 语句和运行结果如下所示。

    mysql> DESCRIBE tb_emp1;

    +--------+-------------+------+-----+---------+-------+

    | Field | Type | Null | Key | Default | Extra |

    +--------+-------------+------+-----+---------+-------+

    | id | int(11) | YES | | NULL | |

    | name | varchar(25) | YES | | NULL | |

    | deptId | int(11) | YES | | NULL | |

    | salary | float | YES | | NULL | |

    +--------+-------------+------+-----+---------+-------+

    4 rows in set (0.14 sec) 其中,各个字段的含义如下:

    Null:表示该列是否可以存储 NULL 值。

    Key:表示该列是否已编制索引。PRI 表示该列是表主键的一部分,UNI 表示该列是 UNIQUE 索引的一部分,MUL 表示在列中某个给定值允许出现多次。

    Default:表示该列是否有默认值,如果有,值是多少。

    Extra:表示可以获取的与给定列有关的附加信息,如 AUTO_INCREMENT 等。

    SHOW CREATE TABLE语句可以用来显示创建表时的CREATE TABLE语句,语法格式如下:

    SHOW CREATE TABLE \G; 【实例 3】使用 SHOW CREATE TABLE 查看表 tb_emp1 的详细信息,输入的 SQL 语句和运行结果如下所示。

    mysql> SHOW CREATE TABLE tb_emp1\G

    *************************** 1. row ***************************

    Table: tb_emp1

    Create Table: CREATE TABLE `tb_emp1` (

    `id` int(11) DEFAULT NULL,

    `name` varchar(25) DEFAULT NULL,

    `deptId` int(11) DEFAULT NULL,

    `salary` float DEFAULT NULL

    ) ENGINE=InnoDB DEFAULT CHARSET=gb2312

    1 row in set (0.03 sec)

    提示:使用 SHOW CREATE TABLE 语句不仅可以查看创建表时的详细语句,而且可以查看存储引擎和字符编码。如果不加“\G”参数,显示的结果可能非常混乱,加上“\G”参数之后,可使显示的结果更加直观,易于查看。

    展开全文
  • CREATE TABLE 命令语法比较多,其主要是由表创建定义(create-definition)、选项(table-options)和分区选项(partition-options)所组成的 CREATE [临时] TABLE <表名> ([定义选项])[选项][分区...

    语法

    CREATE TABLE 命令语法比较多,其主要是由表创建定义(create-definition)、表选项(table-options)和分区选项(partition-options)所组成的

    CREATE [临时表] TABLE <表名> ([表定义选项])[表选项][分区选项];
    
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
        (create_definition,...)
        [table_options]
        [partition_options]
    
    • CREATE TABLE:用于创建给定名称的表,必须拥有表CREATE的权限
    • [临时表],创建的是临时表,仅在当前会话中可见,并且在关闭会话时会自动删除
    • <表名>,指定数据库是mydb.mytable,半角下的“点”,当前数据库是mytable,mydb和mytable只要符合标识符命名规则就行;如果表存在会出现错误,可以在表名前使用IF NOT EXISTS
    • [表定义选项],由列名(col_name)、列的定义(column_definition)以及可能的空值说明、完整性约束或表索引组成,<列名1> <类型1> [,…] <列名n> <类型n>,多个列,要用逗号隔开
    • [表选项],NOT NULL(列的值不能为null)、CHECK(检查是否满足条件可以插入)、DEFAULT(默认值)、PRIMARY KEY(唯一索引主键)、FOREIGN KEY(外键)等等
    • [分区选项],PARTITION BY、HASH、RANGE等

    实例

    mysql> CREATE TABLE test_db.t_create_table (
        -> r_name varchar(100) NULL,
        -> r_sex varchar(5) NULL,
        -> r_type varchar(5) NULL,
        -> r_no varchar(100) NULL
        -> )
        -> ENGINE=InnoDB
        -> DEFAULT CHARSET=utf8mb4
        -> COLLATE=utf8mb4_general_ci
        -> COMMENT='';
    Query OK, 0 rows affected (0.03 sec)
    
    mysql> show create table test_db.t_create_table \G
    *************************** 1. row ***************************
           Table: t_create_table
    Create Table: CREATE TABLE `t_create_table` (
      `r_name` varchar(100) DEFAULT NULL,
      `r_sex` varchar(5) DEFAULT NULL,
      `r_type` varchar(5) DEFAULT NULL,
      `r_no` varchar(100) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
    1 row in set (0.00 sec)
    
    mysql> desc test_db.t_create_table;
    +--------+--------------+------+-----+---------+-------+
    | Field  | Type         | Null | Key | Default | Extra |
    +--------+--------------+------+-----+---------+-------+
    | r_name | varchar(100) | YES  |     | NULL    |       |
    | r_sex  | varchar(5)   | YES  |     | NULL    |       |
    | r_type | varchar(5)   | YES  |     | NULL    |       |
    | r_no   | varchar(100) | YES  |     | NULL    |       |
    +--------+--------------+------+-----+---------+-------+
    4 rows in set (0.00 sec)
    

    Reference

    官方 CREATE TABLE Statement

    HELP详情

    mysql> help create table;
    Name: 'CREATE TABLE'
    Description:
    Syntax:
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
        (create_definition,...)
        [table_options]
        [partition_options]
    
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
        [(create_definition,...)]
        [table_options]
        [partition_options]
        [IGNORE | REPLACE]
        [AS] query_expression
    
    CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
        { LIKE old_tbl_name | (LIKE old_tbl_name) }
    
    create_definition: {
        col_name column_definition
      | {INDEX | KEY} [index_name] [index_type] (key_part,...)
          [index_option] ...
      | {FULLTEXT | SPATIAL} [INDEX | KEY] [index_name] (key_part,...)
          [index_option] ...
      | [CONSTRAINT [symbol]] PRIMARY KEY
          [index_type] (key_part,...)
          [index_option] ...
      | [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY]
          [index_name] [index_type] (key_part,...)
          [index_option] ...
      | [CONSTRAINT [symbol]] FOREIGN KEY
          [index_name] (col_name,...)
          reference_definition
      | CHECK (expr)
    }
    
    column_definition: {
        data_type [NOT NULL | NULL] [DEFAULT default_value]
          [AUTO_INCREMENT] [UNIQUE [KEY]] [[PRIMARY] KEY]
          [COMMENT 'string']
          [COLLATE collation_name]
          [COLUMN_FORMAT {FIXED | DYNAMIC | DEFAULT}]
          [STORAGE {DISK | MEMORY}]
          [reference_definition]
      | data_type
          [COLLATE collation_name]
          [GENERATED ALWAYS] AS (expr)
          [VIRTUAL | STORED] [NOT NULL | NULL]
          [UNIQUE [KEY]] [[PRIMARY] KEY]
          [COMMENT 'string']
          [reference_definition]
    }
    
    data_type:
        (see https://dev.mysql.com/doc/refman/5.7/en/data-types.html)
    
    key_part:
        col_name [(length)] [ASC | DESC]
    
    index_type:
        USING {BTREE | HASH}
    
    index_option: {
        KEY_BLOCK_SIZE [=] value
      | index_type
      | WITH PARSER parser_name
      | COMMENT 'string'
    }	
    
    reference_definition:
        REFERENCES tbl_name (key_part,...)
          [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
          [ON DELETE reference_option]
          [ON UPDATE reference_option]
    
    reference_option:
        RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT
    
    table_options:
        table_option [[,] table_option] ...
    
    table_option: {
        AUTO_INCREMENT [=] value
      | AVG_ROW_LENGTH [=] value
      | [DEFAULT] CHARACTER SET [=] charset_name
      | CHECKSUM [=] {0 | 1}
      | [DEFAULT] COLLATE [=] collation_name
      | COMMENT [=] 'string'
      | COMPRESSION [=] {'ZLIB' | 'LZ4' | 'NONE'}
      | CONNECTION [=] 'connect_string'
      | {DATA | INDEX} DIRECTORY [=] 'absolute path to directory'
      | DELAY_KEY_WRITE [=] {0 | 1}
      | ENCRYPTION [=] {'Y' | 'N'}
      | ENGINE [=] engine_name
      | INSERT_METHOD [=] { NO | FIRST | LAST }
      | KEY_BLOCK_SIZE [=] value
      | MAX_ROWS [=] value
      | MIN_ROWS [=] value
      | PACK_KEYS [=] {0 | 1 | DEFAULT}
      | PASSWORD [=] 'string'
      | ROW_FORMAT [=] {DEFAULT | DYNAMIC | FIXED | COMPRESSED | REDUNDANT | COMPACT}
      | STATS_AUTO_RECALC [=] {DEFAULT | 0 | 1}
      | STATS_PERSISTENT [=] {DEFAULT | 0 | 1}
      | STATS_SAMPLE_PAGES [=] value
      | TABLESPACE tablespace_name [STORAGE {DISK | MEMORY}]
      | UNION [=] (tbl_name[,tbl_name]...)
    }
    
    partition_options:
        PARTITION BY
            { [LINEAR] HASH(expr)
            | [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list)
            | RANGE{(expr) | COLUMNS(column_list)}
            | LIST{(expr) | COLUMNS(column_list)} }
        [PARTITIONS num]
        [SUBPARTITION BY
            { [LINEAR] HASH(expr)
            | [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list) }
          [SUBPARTITIONS num]
        ]
        [(partition_definition [, partition_definition] ...)]
    
    partition_definition:
        PARTITION partition_name
            [VALUES
                {LESS THAN {(expr | value_list) | MAXVALUE}
                |
                IN (value_list)}]
            [[STORAGE] ENGINE [=] engine_name]
            [COMMENT [=] 'string' ]
            [DATA DIRECTORY [=] 'data_dir']
            [INDEX DIRECTORY [=] 'index_dir']
            [MAX_ROWS [=] max_number_of_rows]
            [MIN_ROWS [=] min_number_of_rows]
            [TABLESPACE [=] tablespace_name]
            [(subpartition_definition [, subpartition_definition] ...)]
    
    subpartition_definition:
        SUBPARTITION logical_name
            [[STORAGE] ENGINE [=] engine_name]
            [COMMENT [=] 'string' ]
            [DATA DIRECTORY [=] 'data_dir']
            [INDEX DIRECTORY [=] 'index_dir']
            [MAX_ROWS [=] max_number_of_rows]
            [MIN_ROWS [=] min_number_of_rows]
            [TABLESPACE [=] tablespace_name]
    
    query_expression:
        SELECT ...   (Some valid select or union statement)
    
    CREATE TABLE creates a table with the given name. You must have the
    CREATE privilege for the table.
    
    By default, tables are created in the default database, using the
    InnoDB storage engine. An error occurs if the table exists, if there is
    no default database, or if the database does not exist.
    
    MySQL has no limit on the number of tables. The underlying file system
    may have a limit on the number of files that represent tables.
    Individual storage engines may impose engine-specific constraints.
    InnoDB permits up to 4 billion tables.
    
    For information about the physical representation of a table, see
    https://dev.mysql.com/doc/refman/5.7/en/create-table-files.html.
    
    URL: https://dev.mysql.com/doc/refman/5.7/en/create-table.html
    
    展开全文
  • MySQL中create table语句的基本语法是:CREATE[TEMPORARY]TABLE[IF NOT EXISTS]tbl_name[(create_definition,...)][table_options] [select_statement]TEMPORARY:该关键字表示用MySQL create table新建的为临时...

    MySQL中create table语句的基本语法是:

    CREATE[TEMPORARY]TABLE[IF NOT EXISTS]tbl_name

    [(create_definition,...)]

    [table_options] [select_statement]

    TEMPORARY:该关键字表示用MySQL create table新建的表为临时表,此表在当前会话结束后将自动消失。临时表主要被应用于存储过程中,对于目前尚不支持存储过程的MySQL,该关键字一般不用。

    IF NOT EXISTS:实际上是在建表前加上一个判断,只有该表目前尚不存在时才执行create table操作。用此选项可以避免出现表已经存在无法再新建的错误。

    tbl_name:你所要创建的表的表名。该表名必须符合标识符规则。通常的做法是在表名中仅使用字母、数字及下划线。例如titles、our_sales、my_user1等都应该算是比较规范的表名。

    create_definition:这是MySQL create table语句中关键部分所在。在该部分具体定义了表中各列的属性。

    column_definition:  #对列的属性的定义

    col_name type[NOT NULL | NULL] [DEFAULTdefault_value]

    [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]

    [COMMENT 'string']

    col_name:表中列的名字。必须符合标识符规则,而且在表中要唯一。

    type:列的数据类型。有的数据类型需要指明长度n,并用括号括起。目前MySQL提供的数据类型详见MySQL进阶_列类型篇。

    NOT NULL | NULL:指定该列是否允许为空。如果既不指定NULL也不指定NOT NULL,列被认为指定了NULL。

    DEFAULT default_value:为列指定默认值。如果没有为列指定默认值,MySQL自动地分配一个。如果列可以取NULL作为值,缺省值是NULL。如果列被声明为NOT NULL,缺省值取决于列类型:

    1、对于没有声明AUTO_INCREMENT属性的数字类型,缺省值是0。对于一个AUTO_INCREMENT列,缺省值是在顺  序中的下一个值。

    2、对于除TIMESTAMP的日期和时间类型,缺省值是该类型适当的“零”值。对于表中第一个TIMESTAMP列,  缺省值是当前的日期和时间。

    3、对于除ENUM的字符串类型,缺省是空字符串。对于ENUM,缺省值是第一个枚举值。

    AUTO_INCREMENT:设置该列有自增属性,只有整型列才能设置此属性。当你插入NULL值或0到一个AUTO_INCREMENT列中时,列被设置为value+1,在这里 value是此前表中该列的最大值。AUTO_INCREMENT顺序从1开始。每个表只能有一个AUTO_INCREMENT列,并且它必须被索引。

    UNIQUE:在UNIQUE索引中,所有的值必须互不相同。如果您在添加新行时使用的关键字与原有行的关键字相同,则会出现错误。

    KEY:KEY通常是INDEX同义词。如果关键字属性PRIMARY KEY在列定义中已给定,则PRIMARY KEY也可以只指定为KEY。这么做的目的是与其它数据库系统兼容。

    PRIMARY KEY:是一个唯一KEY,此时,所有的关键字列必须定义为NOT NULL。如果这些列没有被明确地定义为NOT NULL,MySQL应隐含地定义这些列。一个表只有一个PRIMARY KEY。如果您没有PRIMARY KEY并且一个应用程序要求在表中使用PRIMARY KEY,则MySQL返回第一个UNIQUE索引,此索引没有作为PRIMARY KEY的NULL列。

    COMMENT:对于列的评注可以使用COMMENT选项来进行指定。评注通过SHOW CREATE TABLE和SHOW FULL COLUMNS语句显示。

    -----------------------------------------------------------------------------------------------

    table_option:

    {ENGINE|TYPE} = engine_name

    | AUTO_INCREMENT = value

    | AVG_ROW_LENGTH = value

    | [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name]

    | CHECKSUM = {0 | 1}

    | COMMENT = 'string'

    | CONNECTION = 'connect_string'

    | MAX_ROWS = value

    | MIN_ROWS = value

    | PACK_KEYS = {0 | 1 | DEFAULT}

    | PASSWORD = 'string'

    | DELAY_KEY_WRITE = {0 | 1}

    | ROW_FORMAT = {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}

    | UNION = (tbl_name[,tbl_name]...)

    | INSERT_METHOD = { NO | FIRST | LAST }

    | DATA DIRECTORY = 'absolute path to directory'

    | INDEX DIRECTORY = 'absolute path to directory'

    ENGINE和TYPE选项用于为表指定存储引擎。ENGINE是首选的选项名称。

    ENGINE和TYPE选项采用以下值:

    存储引擎

    说明

    BDB

    带页面锁定的事务安全表。也称为BerkeleyDB。请参见15.5节,“BDB

    (BerkeleyDB)存储引擎”。

    CSV

    值之间用逗号隔开的表。请参见15.9节,“CSV存储引擎。

    FEDERATED

    (OBSOLETE)ISAM

    在MySQL

    5.1中没有此引擎。如果您要从以前的版本升级到MySQL

    5.1,您应该在进行升级前把原有的ISAM表转换为MyISAM表。请参见第15章:存储引擎和表类型。

    InnoDB

    带行锁定和外键的事务安全表。请参见15.2节,“InnoDB存储引擎”。

    MEMORY

    本表类型的数据只保存在存储器里。(在早期MySQL版本中被称为HEAP。)

    MERGE

    MyISAM表的集合,作为一个表使用。也称为MRG_MyISAM。请参见15.3节,“MERGE存储引擎”。

    MyISAM

    二进制轻便式存储引擎,此引擎是MySQL所用的默认存储引擎。请参见15.1节,“MyISAM存储引擎”。

    NDBCLUSTER

    成簇表,容错表,以存储器为基础的表。也称为NDB。请参见第17章:MySQL簇。

    要了解有关MySQL存储引擎的更多信息,请参见第15章:存储引擎和表类型。

    如果被指定的存储引擎无法利用,则MySQL使用MyISAM代替。例如,一个表定义包括ENGINE=BDB选项,但是MySQL服务器不支持BDB表,则表被创建为MyISAM表。这样,如果您在主机上有事务表,但在从属机上创建的是非交互式表(以加快速度)时,可以进行复制设置。在MySQL 5.1中,如果没有遵守存储引擎规约,则会出现警告。

    其它表选项用于优化表的性质。在多数情况下,您不必指定表选项。这些选项适用于所有存储引擎,另有说明除外。

    ·AUTO_INCREMENT

    表的初始AUTO_INCREMENT值。在MySQL 5.1中,本选项只适用于MyISAM和MEMORY表。InnoDB也支持本选项。如果引擎不支持AUTO_INCREMENT表选项,则要设置引擎的第一个auto-increment值,需插入一个“假”行。该行的值比创建表后的值小一,然后删除该假行。

    对于在CREATE TABLE语句中支持AUTO_INCREMENT表选项的引擎,您也可以使用ALTER TABLE tbl_nameAUTO_INCREMENT = n来重新设置AUTO_INCREMENT值。

    ·AVG_ROW_LENGTH

    表中平均行长度的近似值。只需要对含尺寸可变的记录的大型表进行此项设置。

    当创建一个MyISAM表时,MySQL使用MAX_ROWS和AVG_ROW_LENGTH选项的乘积来确定得出的表有多大。如果有一个选项未指定,则表的最大尺寸为65,536TB数据。(如果操作系统不支持这么大的文件,则表的尺寸被限定在操作系统的限值处。)如果您想缩小指针尺寸使索引更小,速度更快,并且您不需要大文件,则您可以通过设置myisam_data_pointer_size系统变量来减少默认指针的尺寸。(见5.3.3节,“服务器系统变量”。)如果您希望所有的表可以扩大,超过默认限值,并且愿意让表稍微慢点,并稍微大点,则您可以通过设置此变量增加默认指针的尺寸。

    ·[DEFAULT] CHARACTER SET

    用于为表指定一个默认字符集。CHARSET是CHARACTER SET的同义词。

    ·COLLATE

    用于为表指定一个默认整序。

    ·CHECKSUM

    如果您希望MySQL随时对所有行进行实时检验求和(也就是,表变更后,MySQL自动更新检验求和),则应把此项设置为1。这样做,表的更新速度会略微慢些,但是更容易寻找到受损的表。CHECKSUM TABLE语句用于报告检验求和(仅限于MyISAM)。

    ·COMMENT

    表的注释,最长60个字符。

    ·CONNECTION

    FEDERATED表的连接字符串。( 注释:较早版本的MySQL使用COMMENT选项用于连接字符串。

    ·MAX_ROWS

    您打算储存在表中的行数目的最大值。这不是一个硬性限值,而更像一个指示语句,指示出表必须能存储至少这么多行。

    ·MIN_ROWS

    您打算存储在表中的行数目的最小值。

    ·PACK_KEYS

    如果您希望索引更小,则把此选项设置为1。这样做通常使更新速度变慢,同时阅读速度加快。把选项设置为0可以取消所有的关键字压缩。把此选项设置为DEFAULT时,存储引擎只压缩长的CHAR或VARCHAR列(仅限于MyISAM)。如果您不使用PACK_KEYS,则默认操作是只压缩字符串,但不压缩数字。如果您使用PACK_KEYS=1,则对数字也进行压缩。

    在对二进制数字关键字进行压缩时,MySQL采用前缀压缩:

    o每个关键字需要一个额外的字节来指示前一个关键字中有多少字节与下一个关键字相同。

    o指向行的指针以高位字节优先的顺序存储在关键字的后面,用于改进压缩效果。

    这意味着,如果两个连续行中有许多相同的关键字,则后续的“相同”的关键字通常只占用两个字节(包括指向行的指针)。与此相比,常规情况下,后续的关键字占用storage_size_for_key + pointer_size(指针尺寸通常为4)。但是,只有在许多数字相同的情况下,前缀压缩才有好处。如果所有的关键字完全不同,并且关键字不能含有NULL值,则每个关键字要多使用一个字节。(在这种情况中,储存压缩后的关键字的长度的字节与用于标记关键字是否为NULL的字节是同一字节。)

    ·PASSWORD

    使用密码对.frm文件加密。在标准MySQL版本中,本选项不起任何作用。

    ·DELAY_KEY_WRITE

    如果您想要延迟对关键字的更新,等到表关闭后再更新,则把此项设置为1(仅限于MyISAM)。

    ·ROW_FORMAT

    定义各行应如何储存。当前,此选项只适用于MyISAM表。对于静态行或长度可变行,此选项值可以为FIXED或DYNAMIC。myisampack用于把类型设置为COMPRESSED。请参见15.1.3节,“MyISAM表的存储格式”。

    在默认情况下,InnoDB记录以压缩格式存储(ROW_FORMAT=COMPACT)。通过指定ROW_FORMAT=REDUNDANT,仍然可以申请用于较早版本的MySQL中的非压缩格式。

    ·RAID_TYPE

    在MySQL 5.0中,RAID支持被删除了。要了解有关RAID的说明,请参见http://dev.mysql.com/doc/refman/4.1/en/create-table.html。

    ·UNION

    当您想要把一组相同的表当作一个表使用时,采用UNION。UNION仅适用于MERGE表。请参见15.3节,“MERGE存储引擎”。对于您映射到一个MERGE表上的表,您必须拥有SELECT, UPDATE和DELETE权限。(注释:以前,所有被使用的表必须位于同一个数据库中,并作为MERGE表。这些限制不再适用。)

    ·INSERT_METHOD

    如果您希望在MERGE表中插入数据,您必须用INSERT_METHOD指定应插入行的表。INSERT_METHOD选项仅用于MERGE表。使用FIRST或LAST把行插入到第一个或最后一个表中;或者使用NO,阻止插入行。请参见15.3节,“MERGE存储引擎”。

    ·DATA DIRECTORY, INDEX DIRECTORY

    通过使用DATA DIRECTORY='directory'或INDEX DIRECTORY='directory',您可以指定MyISAM存储引擎放置表格数据文件和索引文件的位置。注意,目录应是通向目录的完整路径(不是相对路径)。

    仅当您没有使用--skip-symbolic-links选项时,DATA DIRECTORY, INDEX DIRECTORY才能使用。操作系统必须有一个正在工作的、线程安全的realpath()调用。要了解全面信息,请参见7.6.1.2节,“在Unix平台上使用表的符号链接”。

    --------------------------------------------------------------------------------------

    下面是一些查询示例:

    CREATE TABLEtable1(

    column1varchar(50),

    column2varchar(50)

    );

    ----------------------

    CREATE TABLE`dna` (

    `seq_region_id`int(10)unsignedNOT NULL,

    `sequence`longtext NOT NULL,#这个数据类型加上下面的设置,可以导入超大文本数据

    PRIMARY KEY(`seq_region_id`)

    )ENGINE=MyISAMDEFAULT CHARSET=latin1MAX_ROWS=750000AVG_ROW_LENGTH=19000;

    -----------------------------

    CREATE TABLE`mapping_session` (

    `mapping_session_id`int(10) unsignedNOT NULL AUTO_INCREMENT,

    `old_db_name`varchar(80)NOT NULL DEFAULT'',

    `new_db_name`varchar(80)NOT NULL DEFAULT'',

    `old_release`varchar(5)NOT NULL DEFAULT'',

    `new_release`varchar(5)NOT NULL DEFAULT'',

    `old_assembly`varchar(20)NOT NULL DEFAULT'',

    `new_assembly`varchar(20)NOT NULL DEFAULT'',

    `created` datetimeNOT NULL,

    PRIMARY KEY(`mapping_session_id`)

    )ENGINE=MyISAMAUTO_INCREMENT=392DEFAULT CHARSET=latin1;

    参考来源:

    http://www.cnblogs.com/lvxiuquan/archive/2012/08/30/2663650.html

    http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#create-table

    展开全文
  • MySQL中create table语句的基本语法是:CREATE[TEMPORARY]TABLE[IF NOT EXISTS]tbl_name[(create_definition,...)][table_options] [select_statement]TEMPORARY:该关键字表示用MySQL create table新建的为临时...

    MySQL中create table语句的基本语法是:

    CREATE[TEMPORARY]TABLE[IF NOT EXISTS]tbl_name

    [(create_definition,...)]

    [table_options] [select_statement]

    TEMPORARY:该关键字表示用MySQL create table新建的表为临时表,此表在当前会话结束后将自动消失。临时表主要被应用于存储过程中,对于目前尚不支持存储过程的MySQL,该关键字一般不用。

    IF NOT EXISTS:实际上是在建表前加上一个判断,只有该表目前尚不存在时才执行create table操作。用此选项可以避免出现表已经存在无法再新建的错误。

    tbl_name:你所要创建的表的表名。该表名必须符合标识符规则。通常的做法是在表名中仅使用字母、数字及下划线。例如titles、our_sales、my_user1等都应该算是比较规范的表名。

    create_definition:这是MySQL create table语句中关键部分所在。在该部分具体定义了表中各列的属性。

    column_definition:  #对列的属性的定义

    col_name type[NOT NULL | NULL] [DEFAULTdefault_value]

    [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]

    [COMMENT 'string']

    col_name:表中列的名字。必须符合标识符规则,而且在表中要唯一。

    type:列的数据类型。有的数据类型需要指明长度n,并用括号括起。目前MySQL提供的数据类型详见MySQL进阶_列类型篇。

    NOT NULL | NULL:指定该列是否允许为空。如果既不指定NULL也不指定NOT NULL,列被认为指定了NULL。

    DEFAULT default_value:为列指定默认值。如果没有为列指定默认值,MySQL自动地分配一个。如果列可以取NULL作为值,缺省值是NULL。如果列被声明为NOT NULL,缺省值取决于列类型:

    1、对于没有声明AUTO_INCREMENT属性的数字类型,缺省值是0。对于一个AUTO_INCREMENT列,缺省值是在顺  序中的下一个值。

    2、对于除TIMESTAMP的日期和时间类型,缺省值是该类型适当的“零”值。对于表中第一个TIMESTAMP列,  缺省值是当前的日期和时间。

    3、对于除ENUM的字符串类型,缺省是空字符串。对于ENUM,缺省值是第一个枚举值。

    AUTO_INCREMENT:设置该列有自增属性,只有整型列才能设置此属性。当你插入NULL值或0到一个AUTO_INCREMENT列中时,列被设置为value+1,在这里 value是此前表中该列的最大值。AUTO_INCREMENT顺序从1开始。每个表只能有一个AUTO_INCREMENT列,并且它必须被索引。

    UNIQUE:在UNIQUE索引中,所有的值必须互不相同。如果您在添加新行时使用的关键字与原有行的关键字相同,则会出现错误。

    KEY:KEY通常是INDEX同义词。如果关键字属性PRIMARY KEY在列定义中已给定,则PRIMARY KEY也可以只指定为KEY。这么做的目的是与其它数据库系统兼容。

    PRIMARY KEY:是一个唯一KEY,此时,所有的关键字列必须定义为NOT NULL。如果这些列没有被明确地定义为NOT NULL,MySQL应隐含地定义这些列。一个表只有一个PRIMARY KEY。如果您没有PRIMARY KEY并且一个应用程序要求在表中使用PRIMARY KEY,则MySQL返回第一个UNIQUE索引,此索引没有作为PRIMARY KEY的NULL列。

    COMMENT:对于列的评注可以使用COMMENT选项来进行指定。评注通过SHOW CREATE TABLE和SHOW FULL COLUMNS语句显示。

    -----------------------------------------------------------------------------------------------

    table_option:

    {ENGINE|TYPE} = engine_name

    | AUTO_INCREMENT = value

    | AVG_ROW_LENGTH = value

    | [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name]

    | CHECKSUM = {0 | 1}

    | COMMENT = 'string'

    | CONNECTION = 'connect_string'

    | MAX_ROWS = value

    | MIN_ROWS = value

    | PACK_KEYS = {0 | 1 | DEFAULT}

    | PASSWORD = 'string'

    | DELAY_KEY_WRITE = {0 | 1}

    | ROW_FORMAT = {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}

    | UNION = (tbl_name[,tbl_name]...)

    | INSERT_METHOD = { NO | FIRST | LAST }

    | DATA DIRECTORY = 'absolute path to directory'

    | INDEX DIRECTORY = 'absolute path to directory'

    ENGINE和TYPE选项用于为表指定存储引擎。ENGINE是首选的选项名称。

    ENGINE和TYPE选项采用以下值:

    存储引擎

    说明

    BDB

    带页面锁定的事务安全表。也称为BerkeleyDB。请参见15.5节,“BDB

    (BerkeleyDB)存储引擎”。

    CSV

    值之间用逗号隔开的表。请参见15.9节,“CSV存储引擎。

    FEDERATED

    (OBSOLETE)ISAM

    在MySQL

    5.1中没有此引擎。如果您要从以前的版本升级到MySQL

    5.1,您应该在进行升级前把原有的ISAM表转换为MyISAM表。请参见第15章:存储引擎和表类型。

    InnoDB

    带行锁定和外键的事务安全表。请参见15.2节,“InnoDB存储引擎”。

    MEMORY

    本表类型的数据只保存在存储器里。(在早期MySQL版本中被称为HEAP。)

    MERGE

    MyISAM表的集合,作为一个表使用。也称为MRG_MyISAM。请参见15.3节,“MERGE存储引擎”。

    MyISAM

    二进制轻便式存储引擎,此引擎是MySQL所用的默认存储引擎。请参见15.1节,“MyISAM存储引擎”。

    NDBCLUSTER

    成簇表,容错表,以存储器为基础的表。也称为NDB。请参见第17章:MySQL簇。

    要了解有关MySQL存储引擎的更多信息,请参见第15章:存储引擎和表类型。

    如果被指定的存储引擎无法利用,则MySQL使用MyISAM代替。例如,一个表定义包括ENGINE=BDB选项,但是MySQL服务器不支持BDB表,则表被创建为MyISAM表。这样,如果您在主机上有事务表,但在从属机上创建的是非交互式表(以加快速度)时,可以进行复制设置。在MySQL 5.1中,如果没有遵守存储引擎规约,则会出现警告。

    其它表选项用于优化表的性质。在多数情况下,您不必指定表选项。这些选项适用于所有存储引擎,另有说明除外。

    ·AUTO_INCREMENT

    表的初始AUTO_INCREMENT值。在MySQL 5.1中,本选项只适用于MyISAM和MEMORY表。InnoDB也支持本选项。如果引擎不支持AUTO_INCREMENT表选项,则要设置引擎的第一个auto-increment值,需插入一个“假”行。该行的值比创建表后的值小一,然后删除该假行。

    对于在CREATE TABLE语句中支持AUTO_INCREMENT表选项的引擎,您也可以使用ALTER TABLE tbl_nameAUTO_INCREMENT = n来重新设置AUTO_INCREMENT值。

    ·AVG_ROW_LENGTH

    表中平均行长度的近似值。只需要对含尺寸可变的记录的大型表进行此项设置。

    当创建一个MyISAM表时,MySQL使用MAX_ROWS和AVG_ROW_LENGTH选项的乘积来确定得出的表有多大。如果有一个选项未指定,则表的最大尺寸为65,536TB数据。(如果操作系统不支持这么大的文件,则表的尺寸被限定在操作系统的限值处。)如果您想缩小指针尺寸使索引更小,速度更快,并且您不需要大文件,则您可以通过设置myisam_data_pointer_size系统变量来减少默认指针的尺寸。(见5.3.3节,“服务器系统变量”。)如果您希望所有的表可以扩大,超过默认限值,并且愿意让表稍微慢点,并稍微大点,则您可以通过设置此变量增加默认指针的尺寸。

    ·[DEFAULT] CHARACTER SET

    用于为表指定一个默认字符集。CHARSET是CHARACTER SET的同义词。

    ·COLLATE

    用于为表指定一个默认整序。

    ·CHECKSUM

    如果您希望MySQL随时对所有行进行实时检验求和(也就是,表变更后,MySQL自动更新检验求和),则应把此项设置为1。这样做,表的更新速度会略微慢些,但是更容易寻找到受损的表。CHECKSUM TABLE语句用于报告检验求和(仅限于MyISAM)。

    ·COMMENT

    表的注释,最长60个字符。

    ·CONNECTION

    FEDERATED表的连接字符串。( 注释:较早版本的MySQL使用COMMENT选项用于连接字符串。

    ·MAX_ROWS

    您打算储存在表中的行数目的最大值。这不是一个硬性限值,而更像一个指示语句,指示出表必须能存储至少这么多行。

    ·MIN_ROWS

    您打算存储在表中的行数目的最小值。

    ·PACK_KEYS

    如果您希望索引更小,则把此选项设置为1。这样做通常使更新速度变慢,同时阅读速度加快。把选项设置为0可以取消所有的关键字压缩。把此选项设置为DEFAULT时,存储引擎只压缩长的CHAR或VARCHAR列(仅限于MyISAM)。如果您不使用PACK_KEYS,则默认操作是只压缩字符串,但不压缩数字。如果您使用PACK_KEYS=1,则对数字也进行压缩。

    在对二进制数字关键字进行压缩时,MySQL采用前缀压缩:

    o每个关键字需要一个额外的字节来指示前一个关键字中有多少字节与下一个关键字相同。

    o指向行的指针以高位字节优先的顺序存储在关键字的后面,用于改进压缩效果。

    这意味着,如果两个连续行中有许多相同的关键字,则后续的“相同”的关键字通常只占用两个字节(包括指向行的指针)。与此相比,常规情况下,后续的关键字占用storage_size_for_key + pointer_size(指针尺寸通常为4)。但是,只有在许多数字相同的情况下,前缀压缩才有好处。如果所有的关键字完全不同,并且关键字不能含有NULL值,则每个关键字要多使用一个字节。(在这种情况中,储存压缩后的关键字的长度的字节与用于标记关键字是否为NULL的字节是同一字节。)

    ·PASSWORD

    使用密码对.frm文件加密。在标准MySQL版本中,本选项不起任何作用。

    ·DELAY_KEY_WRITE

    如果您想要延迟对关键字的更新,等到表关闭后再更新,则把此项设置为1(仅限于MyISAM)。

    ·ROW_FORMAT

    定义各行应如何储存。当前,此选项只适用于MyISAM表。对于静态行或长度可变行,此选项值可以为FIXED或DYNAMIC。myisampack用于把类型设置为COMPRESSED。请参见15.1.3节,“MyISAM表的存储格式”。

    在默认情况下,InnoDB记录以压缩格式存储(ROW_FORMAT=COMPACT)。通过指定ROW_FORMAT=REDUNDANT,仍然可以申请用于较早版本的MySQL中的非压缩格式。

    ·RAID_TYPE

    在MySQL 5.0中,RAID支持被删除了。要了解有关RAID的说明,请参见http://dev.mysql.com/doc/refman/4.1/en/create-table.html。

    ·UNION

    当您想要把一组相同的表当作一个表使用时,采用UNION。UNION仅适用于MERGE表。请参见15.3节,“MERGE存储引擎”。对于您映射到一个MERGE表上的表,您必须拥有SELECT, UPDATE和DELETE权限。(注释:以前,所有被使用的表必须位于同一个数据库中,并作为MERGE表。这些限制不再适用。)

    ·INSERT_METHOD

    如果您希望在MERGE表中插入数据,您必须用INSERT_METHOD指定应插入行的表。INSERT_METHOD选项仅用于MERGE表。使用FIRST或LAST把行插入到第一个或最后一个表中;或者使用NO,阻止插入行。请参见15.3节,“MERGE存储引擎”。

    ·DATA DIRECTORY, INDEX DIRECTORY

    通过使用DATA DIRECTORY='directory'或INDEX DIRECTORY='directory',您可以指定MyISAM存储引擎放置表格数据文件和索引文件的位置。注意,目录应是通向目录的完整路径(不是相对路径)。

    仅当您没有使用--skip-symbolic-links选项时,DATA DIRECTORY, INDEX DIRECTORY才能使用。操作系统必须有一个正在工作的、线程安全的realpath()调用。要了解全面信息,请参见7.6.1.2节,“在Unix平台上使用表的符号链接”。

    --------------------------------------------------------------------------------------

    下面是一些查询示例:

    CREATE TABLEtable1(

    column1varchar(50),

    column2varchar(50)

    );

    ----------------------

    CREATE TABLE`dna` (

    `seq_region_id`int(10)unsignedNOT NULL,

    `sequence`longtext NOT NULL,#这个数据类型加上下面的设置,可以导入超大文本数据

    PRIMARY KEY(`seq_region_id`)

    )ENGINE=MyISAMDEFAULT CHARSET=latin1MAX_ROWS=750000AVG_ROW_LENGTH=19000;

    -----------------------------

    CREATE TABLE`mapping_session` (

    `mapping_session_id`int(10) unsignedNOT NULL AUTO_INCREMENT,

    `old_db_name`varchar(80)NOT NULL DEFAULT'',

    `new_db_name`varchar(80)NOT NULL DEFAULT'',

    `old_release`varchar(5)NOT NULL DEFAULT'',

    `new_release`varchar(5)NOT NULL DEFAULT'',

    `old_assembly`varchar(20)NOT NULL DEFAULT'',

    `new_assembly`varchar(20)NOT NULL DEFAULT'',

    `created` datetimeNOT NULL,

    PRIMARY KEY(`mapping_session_id`)

    )ENGINE=MyISAMAUTO_INCREMENT=392DEFAULT CHARSET=latin1;

    参考来源:

    http://www.cnblogs.com/lvxiuquan/archive/2012/08/30/2663650.html

    http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#create-table

    展开全文
  • 创建表(Create table)语法详解1.ORACLE常用的字段类型ORACLE常用的字段类型有VARCHAR2 (size) 可变长度的字符串, 必须规定长度CHAR(size) 固定长度的字符串, 不规定长度默认值为1NUMBER(p,s) 数字型p是位数总长度, ...
  • 当工作在非常大的上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集...创建临时很容易,给正常的CREATE TABLE语句加上TEMPORARY关键字:CREATETEMPORARY TABLE tmp_table (nameVARCHAR(10)NOTNULL,va...
  • MySQL create table 语法

    2021-01-18 19:13:05
    MySQL中create table语句的基本语法是:CREATE[TEMPORARY]TABLE[IF NOT EXISTS]tbl_name[(create_definition,...)][table_options] [select_statement]TEMPORARY:该关键字表示用MySQL create table新建的为临时...
  • 创建表CREATE TABLE 语句结构: CREATE TABLE 表名 (字段名1 数据类型 属性 , 字段名2 数据类型 属性 ) 1.表名要求:英文字符开头,由数字、字母、下划线 组成,英文通常小写。 2.字段之间逗号 隔开,字段名唯一...
  • 文章目录一、表创建基础二、使用 `...用程序创建表,可以使用 SQL 的 CREATE TABLE 语句。需要注意的是,使用交互式工具时实际上就是使用 SQL 语句。这些语句不是用户编写的,界面工具会自动生成并执行相应的 SQL 语句
  • 1.我们可以在4个level指定字符集,server, database, table, and column。2.mysql在字符集方面的功能2.1 以各种字符集存储字符串。2.2 用不同的collation比较字符。2.3在4个level指定字符集,server, database, table,...
  • 最近做项目时,本地数据库出了毛病,...去mysql的data目录找,发现.frm文件还在,于是google了一下,找到以下解决办法:1)、随便弄一个其他的数据库,创建一个名字一样的;2)、进去mysql data中的这个数据库目录下...
  • 当工作在非常大的上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集...创建临时很容易,给正常的CREATE TABLE语句加上TEMPORARY关键字:CREATETEMPORARY TABLE tmp_table (nameVARCHAR(10)NOTNULL,va...
  • MyBatis动态创建表

    2021-01-27 09:19:33
    /p>...select count(*)from information_schema.TABLESwhere LCASE(table_name)=#{tableName}DROP TABLE IF EXISTS ${tableName}CREATE TABLE ${tableName} (id b...
  • 1、创建引擎SQLAlchemy本身无法操作数据库,其必须以来pymsql等第三方插件,Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作,如:MySQL-Pythonmysql+mysqldb://:@[:...
  • 一、创建表MySQL不仅用于数据操作,而且还可以用来执行数据库和的所有操作,包括本身的创建和处理。一般有两种创建表的方法:(1)使用具有交互式创建和管理的工具(如第2章讨论的工具);(2)也可以直接用...
  • oracle创建表空间语句

    2021-05-04 05:44:42
    -- 创建表空间create tablespace asom nologging datafile'D:\oracle\product\10.2.0\oradata\orcl\asom01.dbf' size 1000M autoextend on next 100M maxsize 20G,'D:\oracle\product\10.2.0\oradata\orcl\asom02....
  • MySQL 创建表

    2021-01-25 16:36:22
    MySQL中create table语句的基本语法是:CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name[(create_definition,...)][table_options][select_statement]TEMPORARY:该关键字表示用MySQL create table新建的为临时,...
  • 转自:https://blog.csdn.net/lxh123456789asd/article/details/81164321语句:CREATE TABLE tablename[(column1,column2,column3...例子:1.create table tabletest as select * from emp where 1=2;这句话后面的wh...
  • create table命令强调:使用建表命令之前必须使用use命令选择所在的数据库。create table命令的格式如下:create table tablename(col_name1 type auto_increment,col_name2 type not null|null default val,col_...
  • 接上篇说明● MySQL空间命名时,斜杠字符("/")...● TABLESPACE 选项可以与 CREATE TABLE 或 ALTER TABLE 一起使用,将 InnoDB 分区或子分区分配给独立空间。所有分区必须属于同一存储引擎。不支持为共享的 I...
  • Node.js连接MySQL创建表

    2021-01-21 14:46:17
    在本教程中,您将学习如何从node.js应用程序连接到MySQL数据库,并创建一个新。要从node.js应用程序连接到MySQL并创建...以下示例(query.js)显示如何连接到todoapp数据库并执行CREATE TABLE语句:let mysql = req...
  • 我想创建表到MySQL数据库。我能够成功地打开数据库,但包含创建表命令不起作用的查询? 如果有人知道它,请让我知道我会很感激。如何在Qt中创建mysql数据库?mydb = QSqlDatabase::addDatabase("QMYSQL");mydb.set...
  • Java 创建表结构

    2021-02-12 20:36:58
    Java 创建表结构2014-07-05·WeaponX8698 次浏览## 技术要点获取数据库和数据元数据的技术要点如下:* 通过create table表名(字段名字段类型长度)的sql形式创建表结构。* ResultSetMetaData接口的作用是获取...
  • --创建Oracle -- 使用create关键字******--(1)创建use 数据库(在那个数据库中建表)create table 表名(字段名1(列名) 数据类型 列的特征,字段名2(列名) 数据类型 列的特征(NOT NULL),......)--(2)创建带有主键...
  • 利用存储过程,动态创建多张表:创建16张表,从score_stream_00到score_stream_15DELIMITER $$CREATEPROCEDURE `score`.`p`()BEGINDECLARE i INT;DECLARE table_name VARCHAR(20);DECLARE table_pre VARCHAR(20);...
  • # 第一步,创建表结构,复制 salaries CREATE TABLE salaries2 AS SELECT * FROM salaries # 第二步,删除 salaries2 的数据 DELETE FROM salaries2 # 查看 salaries2 已经没了数据 SELECT * FROM salaries2 ...
  • 利用select into直接创建临时,省略create过程 select * into #临时 from 数据 select * from #临时 drop table #临时
  • 利用java怎么编写一个创建数据库与的脚本发布时间:2020-12-08 16:04:15来源:亿速云阅读:61作者:Leah这篇文章给大家介绍利用java怎么编写一个创建数据库与的脚本,内容非常详细,感兴趣的小伙伴们可以参考...
  • mysql命令行创建表

    千次阅读 2021-02-08 15:34:55
    7、用文本方式将数据装入一个数据库: 创建一个文本文件“student.sql”,每行包括一个记录,用 TAB......必须首先创建数据库,然后 才能创建数据库的数据对象。 MySQL可以采用两种方式 创建、操作数据库和数据对 象 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 173,294
精华内容 69,317
关键字:

table创建表利用create