精华内容
下载资源
问答
  • mysql数据库建表例子

    2019-10-07 18:10:44
    -- 创建数据库CREATE DATABASE seckill;-- 使用数据库use seckill;CREATE TABLE seckill( `seckill_id` BIGINT NOT NUll AUTO_INCREMENT COMMENT '商品库存ID', `name` VARCHAR(120) NOT NULL COMMENT '商品名称', `...
    -- 创建数据库
    CREATE DATABASE seckill;
    -- 使用数据库
    use seckill;
    CREATE TABLE seckill(
    `seckill_id` BIGINT NOT NUll AUTO_INCREMENT COMMENT '商品库存ID',
    `name` VARCHAR(120) NOT NULL COMMENT '商品名称',
    `number` int NOT NULL COMMENT '库存数量',
    `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `start_time` TIMESTAMP NOT NULL COMMENT '秒杀开始时间',
    `end_time` TIMESTAMP NOT NULL COMMENT '秒杀结束时间',
    PRIMARY KEY (seckill_id),
    key idx_start_time(start_time),
    key idx_end_time(end_time),
    key idx_create_time(create_time)
    )ENGINE=INNODB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8 COMMENT='秒杀库存表';

    -- 初始化数据
    INSERT into seckill(name,number,start_time,end_time)
    VALUES
    ('1000元秒杀iphone6',100,'2016-01-01 00:00:00','2016-01-02 00:00:00'),
    ('800元秒杀ipad',200,'2016-01-01 00:00:00','2016-01-02 00:00:00'),
    ('6600元秒杀mac book pro',300,'2016-01-01 00:00:00','2016-01-02 00:00:00'),
    ('7000元秒杀iMac',400,'2016-01-01 00:00:00','2016-01-02 00:00:00');

     

    转载于:https://www.cnblogs.com/wangxiaochao/p/9307375.html

    展开全文
  • Mysql建表好的例子

    2018-06-15 13:44:00
    Navicat MySQL Data Transfer   Source Server : Pcs_Dev 开发 Source Server Version : 50508 Source Host : 172.16.30.47:8066 Source Database : pcs_order   Target Server Type : MYSQL Target ...

    1.

    DROP TABLE IF EXISTS `sys_warehouse_area`;
    CREATE TABLE `sys_warehouse_area` (
    `id` bigint(20) NOT NULL COMMENT '仓库区域编号',
    `name` varchar(50) NOT NULL DEFAULT '' COMMENT '仓库区域名称',
    `lang_code` varchar(20) NOT NULL DEFAULT '' COMMENT '多语言代码',
    `status` bit(1) NOT NULL DEFAULT b'0' COMMENT '状态',
    `type` int(11) NOT NULL DEFAULT '0' COMMENT '仓库区域类型,1 大包裹区域,2小包裹区域',
    `create_user` varchar(150) NOT NULL DEFAULT '' COMMENT '创建人',
    `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_user` varchar(150) NOT NULL DEFAULT '' COMMENT '更新人',
    `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `delete_status` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
    `delete_user` varchar(150) NOT NULL DEFAULT '' COMMENT '删除人',
    `delete_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '删除时间',
    `remarks` varchar(200) NOT NULL DEFAULT '' COMMENT '备注',
    `pass_no` varchar(30) NOT NULL DEFAULT '' COMMENT '格口号',
    PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='仓库区域表';

     

     

    2.

    CREATE TABLE `Testuser` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `username` varchar(64) NOT NULL DEFAULT '',
    `mobile` int(10) unsigned NOT NULL DEFAULT '0',
    `shijian` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

    3.

     

    /*
    Navicat MySQL Data Transfer

     

    Source Server : Pcs_Dev 开发
    Source Server Version : 50508
    Source Host : 172.16.30.47:8066
    Source Database : pcs_order

     

    Target Server Type : MYSQL
    Target Server Version : 50508
    File Encoding : 65001

     

    Date: 2018-07-02 15:05:09
    */

     

    SET FOREIGN_KEY_CHECKS=0;

     

    -- ----------------------------
    -- Table structure for prealert_order
    -- ----------------------------
    DROP TABLE IF EXISTS `prealert_order`;
    CREATE TABLE `prealert_order` (
    `id` bigint(18) NOT NULL COMMENT '主键',
    `source` varchar(32) NOT NULL DEFAULT '' COMMENT '订单来源(平台)',
    `refer_order_id` varchar(50) NOT NULL COMMENT '交易订单ID',
    `refer_carriage_order_id` varchar(32) DEFAULT '' COMMENT '二段订单的交易订单号',
    `order_value` decimal(20,5) DEFAULT '0.00000' COMMENT '订单金额(不包括邮费),单位为”元“',
    `total_shipping_fee` decimal(20,5) DEFAULT '0.00000' COMMENT '订单邮费, 单位为''元''',
    `total_payment_amount` decimal(20,5) DEFAULT '0.00000' COMMENT '订单的总价格(orderValue + totalShippingFee) 单位为元',
    `currency` varchar(16) DEFAULT '' COMMENT '币种',
    `units` varchar(20) DEFAULT NULL COMMENT '金额计量单位',
    `category_feature` varchar(32) DEFAULT '' COMMENT '交易单品类特征',
    `seller_id` bigint(18) DEFAULT NULL COMMENT '卖家ID',
    `buyer_id` bigint(18) DEFAULT NULL COMMENT '买家ID',
    `order_remark` varchar(256) DEFAULT NULL COMMENT '交易订单备注信息',
    `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `send_inbounded_message` enum('Y','N') DEFAULT 'N',
    PRIMARY KEY (`id`),
    UNIQUE KEY `unique_referOrderId_source` (`source`,`refer_order_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='交易订单表';

    4.

    SET FOREIGN_KEY_CHECKS=0;

    -- ----------------------------
    -- Table structure for prealert_order_item
    -- ----------------------------
    DROP TABLE IF EXISTS `prealert_order_item`;
    CREATE TABLE `prealert_order_item` (
    `id` bigint(11) NOT NULL COMMENT '主键',
    `order_id` bigint(18) DEFAULT NULL COMMENT '交易订单的ID(关联prealert_order表的ID字段)',
    `package_id` bigint(20) DEFAULT NULL COMMENT '包裹id',
    `refer_item_id` varchar(32) NOT NULL DEFAULT '' COMMENT '商品ID',
    `refer_sku_id` varchar(32) DEFAULT NULL,
    `item_name` varchar(256) NOT NULL DEFAULT '' COMMENT '商品名称',
    `item_category_name` varchar(32) DEFAULT '' COMMENT '商品类目ID+名称 格式为“id-name”',
    `first_category_id` bigint(32) DEFAULT NULL COMMENT '一级品类ID',
    `second_category_id` bigint(32) DEFAULT NULL COMMENT '二级(末级)品类ID',
    `item_quantity` int(11) NOT NULL DEFAULT '0' COMMENT '商品购买数量',
    `item_unit_price` decimal(20,5) DEFAULT '0.00000' COMMENT '商品单价,单位为元',
    `total_item_actual_price` decimal(20,5) NOT NULL DEFAULT '0.00000' COMMENT '商品的实付金额,单位为:”元”',
    `currency` varchar(16) DEFAULT NULL COMMENT '币种',
    `units` varchar(20) DEFAULT NULL COMMENT '金额计量单位',
    `item_remark` varchar(256) DEFAULT '' COMMENT '购买商品的sku属性描述,比如颜色、尺寸',
    `item_pic_url` varchar(512) DEFAULT '' COMMENT '商品描述URL',
    `item_detail_url` varchar(512) DEFAULT NULL COMMENT '商品详情url',
    `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    PRIMARY KEY (`id`),
    KEY `fk_trade_order_id` (`order_id`) USING BTREE,
    KEY `idx_package_id` (`package_id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单商品表';

     

    转载于:https://www.cnblogs.com/chengjun/p/9186964.html

    展开全文
  • 一、Mysql建表、索引 MySQL建表,字段需设置为非空,需设置字段默认值。 MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL。 MySQL建表,如果字段等价于外键,应在该字段加索引。 MySQL建表,...

    一、Mysql建表、索引

    1. MySQL建表,字段需设置为非空,需设置字段默认值。
    2. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL。
    3. MySQL建表,如果字段等价于外键,应在该字段加索引。
    4.  MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默认值,需保持一致,否则无法正确使用索引进行关联对比。
    5. MySQL使用时,一条SQL语句只能使用一个表的一个索引。所有的字段类型都可以索引,多列索引的属性最多15个。
    6. 如果可以在多个索引中进行选择,MySQL通常使用找到最少行的索引,索引唯一值最高的索引。
    7.  建立索引index(part1,part2,part3),相当于建立了 index(part1),index(part1,part2)和index(part1,part2,part3)三个索引。
    8. MySQL针对like语法必须如下格式才使用索引:     SELECT * FROM t1 WHERE key_col LIKE 'ab%' ;
    9. SELECT COUNT(*) 语法在没有where条件的语句中执行效率没有SELECT COUNT(col_name)快,但是在有where条件的语句中执行效率要快。
    10. 在where条件中多个and的条件中,必须都是一个多列索引的key_part属性而且必须包含key_part1。各自单一索引的话,只使用遍历最少行的那个索引。
    11. 在where条件中多个or的条件中,每一个条件,都必须是一个有效索引。
    12. ORDER BY 后面的条件必须是同一索引的属性,排序顺序必须一致(比如都是升序或都是降序)。
    13. 所有GROUP BY列引用同一索引的属性,并且索引必须是按顺序保存其关键字的。
    14. JOIN 索引,所有匹配ON和where的字段应建立合适的索引。
    15. 对智能的扫描全表使用FORCE INDEX告知MySQL,使用索引效率更高。
    16. 定期ANALYZE TABLE tbl_name为扫描的表更新关键字分布 。
    17. 定期使用慢日志检查语句,执行explain,分析可能改进的索引。
    18. 条件允许的话,设置较大的key_buffer_size和query_cache_size的值(全局参数),和sort_buffer_size的值(session变量,建议不要超过4M)。

    二、索引的类型

    使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构, 与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息。
    索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引的方式与您使用书籍中的索引的方式很相似:它搜索索引以找到特定值,然后顺指针找到包含该值的行。

    作为通用规则,只有当经常查询索引列中的数据时,才需要在表上创建索引。索引占用磁盘空间,并且降低添加、删除和更新行的速度。

    如果经常同时搜索两列或多列或按两列或多列排序时,索引也很有帮助。例如,如果经常在同一查询中为姓和名两列设置判据,那么在这两列上创建多列索引将很有意义。

    索引类型
    根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。

    a.唯一索引
    唯一索引是不允许其中任何两行具有相同索引值的索引
    b.主键索引
    数据库表经常有一列或列组合,其值唯一标识表中的每一行,该列称为表的主键。
    在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。

    c.聚集索引
    在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。
    如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。

    键选择原则:

    1) 键设计4 原则

    为关联字段创建外键。
    所有的键都必须唯一。
    避免使用复合键。
    外键总是关联唯一的键字段。
    2) 使用系统生成的主键

    设计数据库的时候采用系统生成的键作为主键,那么实际控制了数据库的索引完整性。这样,数据库和非人工机制就有效地控制了对存储数据中每一行的访问。采用系统生成键作为主键还有一个优点:当拥有一致的键结构时,找到逻辑缺陷很容易。

    3) 不要用用户的键(不让主键具有可更新性)

    在确定采用什么字段作为表的键的时候,可一定要小心用户将要编辑的字段。通常的情况下不要选择用户可编辑的字段作为键。

    4) 可选键有时可做主键

    把可选键进一步用做主键,可以拥有建立强大索引的能力。

    三、数据库索引的使用规则

    索引使用原则:
    索引是从数据库中获取数据的最高效方式之一。95%的数据库性能问题都可以采用索引技术得到解决。

    逻辑主键使用唯一的成组索引,对系统键(作为存储过程)采用唯一的非成组索引,对任何外键列采用非成组索引。考虑数据库的空间有多大,表如何进行访问,还有这些访问是否主要用作读写。
    大多数数据库都索引自动创建的主键字段,但是可别忘了索引外键,它们也是经常使用的键,比如运行查询显示主表和所有关联表的某条记录就用得上。
    不要索引memo/note 字段,不要索引大型字段(有很多字符),这样作会让索引占用太多的存储空间。
    不要索引常用的小型表
    不要为小型数据表设置任何键,假如它们经常有插入和删除操作就更别这样作了。对这些插入和删除操作的索引维护可能比扫描表空间消耗更多的时间。

    应该建索引的字段:1.经常作为查询条件的字段2.用于联接的列(主健/外健)3.在SQL语句中经常进行GROUP BY、ORDER BY的字段;4、在经常存取的多个列上建立复合索引,但要注意复合索引的建立顺序要按照使用的频度来确定

    应该少建或者不建索引的字段有:1.表记录太少,2.经常需要插入,删除,修改的表,3.表中数据重复且分布平均的字段

    一些SQL的写法会限制索引的使用:1.where子句中如果使用in、or、like、!= <>,均会导致索引不能正常使用,将"<>"换成">and<";将"is not null "换成">=chr(0)";2.使用函数时,该列就不能使用索引。3.比较不匹配数据类型时,该索引将会被忽略。

    一些SQL语句优化的写法:1.如果from是双表的查询时,大表放在前面,小表放在后面(基础表)。最后面的表是基础表。(只在基于规则的优化器中有效)2.如果三表查询时,选择交叉表(intersection table)作为基础表.(只在基于规则的优化器中有效)3.写where条件时,有索引字段的判断在前,其它字段的判断在后;如果where条件中用到复合索引,按照索引列在复合索引中出现的顺序来依次写where条件;4.查询数量较大时,使用表连接代替IN,EXISTS,NOT IN,NOT EXISTS等。5.ORACLE采用自下而上的顺序解析WHERE子句,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.

    注:缺省情况下建立的是非簇集索引,但在以下情况下最好考虑簇集索引,如:含有有限数目(不是很少)唯一的列;进行大范围的查询;充分的利用索引可以减少表扫描I/0的次数,有效的避免对整表的搜索。当然合理的索引要建立在对各种查询的分析和预测中,也取决于DBA的所设计的数据库结构。索引的字段的类型也需重点考虑,字符字段索引就比数字字段索引慢得多。

    备注
    主键的命名采用如下规则:
    主键名用pk_开头,后面跟该主键所在的表名。主键名长度不能超过30个字符。如果过长,可对表名进行缩写。缩写规则同表名的缩写规则。主键名用小写的英文单词来表示。
     
    外键的命名采用如下规则:
    外键名用fk_开头,后面跟该外键所在的表名和对应的主表名(不含t_)。子表名和父表名自己用下划线(_)分隔。外键名长度不能超过30个字符。如果过长,可对表名进行缩写。缩写规则同表名的缩写规则。外键名用小写的英文单词来表示。

    索引的命名采用如下规则:
    1)索引名用小写的英文字母和数字表示。索引名的长度不能超过30个字符。
    2)主键对应的索引和主键同名。
    3)唯一性索引用uni_开头,后面跟表名。一般性索引用ind_开头,后面跟表名。
    4)如果索引长度过长,可对表名进行缩写。缩写规则同表名的缩写规则

    index 相关语法
    例:
    CREATE INDEX log_url ON logaudit_log(url);
    show index from logaudit_log
    drop index log_request_time on logaudit_log
    sql执行效率检测 mysql explain
    explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。
    使用方法,在select语句前加上explain就可以了:
    如:explain select surname,first_name form a,b where a.id=b.id
    分析结果形式如下:
    table |  type | possible_keys | key | key_len  | ref | rows | Extra
    EXPLAIN列的解释:
    table
    显示这一行的数据是关于哪张表的
    type
    这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为const、eq_reg、ref、range、indexhe和ALL
    possible_keys
    显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的域从WHERE语句中选择一个合适的语句
    key
    实际使用的索引。如果为NULL,则没有使用索引。很少的情况下,MYSQL会选择优化不足的索引。这种情况下,可以在SELECT语句中使用USE
    INDEX(indexname)来强制使用一个索引或者用IGNORE INDEX(indexname)来强制MYSQL忽略索引
    key_len
    使用的索引的长度。在不损失精确性的情况下,长度越短越好
    ref
    显示索引的哪一列被使用了,如果可能的话,是一个常数
    rows
    MYSQL认为必须检查的用来返回请求数据的行数
    Extra
    关于MYSQL如何解析查询的额外信息。将在表4.3中讨论,但这里可以看到的坏的例子是Using temporary和Using filesort,意思MYSQL根本不能使用索引,结果是检索会很慢
    extra列返回的描述的意义
    Distinct
    一旦MYSQL找到了与行相联合匹配的行,就不再搜索了
    Not exists
    MYSQL优化了LEFT JOIN,一旦它找到了匹配LEFT JOIN标准的行,
    就不再搜索了
    Range checked for each
    Record(index map:#)
    没有找到理想的索引,因此对于从前面表中来的每一个行组合,MYSQL检查使用哪个索引,并用它来从表中返回行。这是使用索引的最慢的连接之一
    Using filesort
    看到这个的时候,查询就需要优化了。MYSQL需要进行额外的步骤来发现如何对返回的行排序。它根据连接类型以及存储排序键值和匹配条件的全部行的行指针来排序全部行
    Using index
    列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的,这发生在对表的全部的请求列都是同一个索引的部分的时候
    Using temporary
    看到这个的时候,查询需要优化了。这里,MYSQL需要创建一个临时表来存储结果,这通常发生在对不同的列集进行ORDER BY上,而不是GROUP BY上
    Where used
    使用了WHERE从句来限制哪些行将与下一张表匹配或者是返回给用户。如果不想返回表中的全部行,并且连接类型ALL或index,这就会发生,或者是查询有问题
    不同连接类型的解释(按照效率高低的顺序排序)
    system
    表只有一行:system表。这是const连接类型的特殊情况
    const
    表中的一个记录的最大值能够匹配这个查询(索引可以是主键或惟一索引)。因为只有一行,这个值实际就是常数,因为MYSQL先读这个值然后把它当做常数来对待
    eq_ref
    在连接中,MYSQL在查询时,从前面的表中,对每一个记录的联合都从表中读取一个记录,它在查询使用了索引为主键或惟一键的全部时使用
    ref
    这个连接类型只有在查询使用了不是惟一或主键的键或者是这些类型的部分(比如,利用最左边前缀)时发生。对于之前的表的每一个行联合,全部记录都将从表中读出。这个类型严重依赖于根据索引匹配的记录多少—越少越好
    range
    这个连接类型使用索引返回一个范围中的行,比如使用>或
    FAQ
    1
    表中包含 10 万条记录,有一个 datetime 类型的字段。
    取数据的语句:
    SELECT * FROM my_table WHERE created_at < '2010-01-20';
    用 EXPLAIN 检查,发现 type 是 ALL, key 是 NULL,根本没用上索引。
    可以确定的是,created_at 字段设定索引了。
    什么原因呢?
    用 SELECT COUNT(*) 看了一下符合 WHERE 条件的记录总数,居然是 6W 多条!!
    难怪不用索引,这时用索引毫无意义,就好像 10 万条记录的用户表,有个性别字段,不是男就是女,在这种字段设置索引是错误的决定。
    稍微改造一下上述语句:
    SELECT * FROM my_table WHERE created_at BETWEEN '2009-12-06' AND '2010-01-20';
    这回问题解决!
    符合条件的记录只有几百条,EXPLAIN 的 type 是 range,key 是 created_at,Extra 是 Using where 。
    自己总结个准则,索引的目的就是尽量缩小结果集,这样才能做到快速查询。

    6万条记录符合条件,已经超出总记录数的一半,这时索引已经没有意义了,因此 MySQL 放弃使用索引。
    这与设置 gender 字段,并加上索引的情况相似,当你要把所有男性记录都选取出来,符合条件的记录数约占总数的一半,MySQL 同样不会使用这个索引。
    唯一值越多的字段,使用索引的效果越好。
    设置联合索引时,唯一值越多的,越应该放在“左侧”。
     

    转载于:https://my.oschina.net/boonya/blog/3072381

    展开全文
  • MySQL建表语句是最基础的SQL语句之一,下面就为您介绍最常用的三种MySQL建表语句,如果您对MySQL建表语句方面感兴趣的话,不妨一看。 1、最简单的: CREATE TABLE t1( id int not null, name char(20) ); 2、带...

    三种常用的MySQL建表语句
    MySQL建表语句是最基础的SQL语句之一,下面就为您介绍最常用的三种MySQL建表语句,如果您对MySQL建表语句方面感兴趣的话,不妨一看。

    1、最简单的:
    
    CREATE TABLE t1(
        id int not null,
        name char(20)
    );
    2、带主键的:
    
    CREATE TABLE t1(
        id int not null primary key,
        name char(20)
    );
    b:复合主键
    CREATE TABLE t1(
        id int not null,
        name char(20),
        primary key (id,name)
    );
    3、带默认值的:
    
    CREATE TABLE t1(
        id int not null default 0 primary key,
        name char(20) default '1'
    );
    

    完整例子:

    DROP TABLE IF EXISTS `user_t`;  
      
    CREATE TABLE `user_t` (  
      `id` int(11) NOT NULL AUTO_INCREMENT,  
      `user_name` varchar(40) NOT NULL,  
      `password` varchar(255) NOT NULL,  
      `age` int(4) NOT NULL,  
      PRIMARY KEY (`id`)  
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;  
      
    /*Data for the table `user_t` */  
      
    insert  into `user_t`(`id`,`user_name`,`password`,`age`) values (1,'测试','sfasgfaf',24); 
    

    讲解::
    ENGINE=InnoDB使用innodb存储引擎
    DEFAULT CHARSET=utf8 数据库默认编码为utf-8
    AUTO_INCREMENT=1 自增键的起始序号为1
    扩展:
    1.InnoDB,是MySQL的数据库引擎之一,为MySQL AB发布binary的标准之一,InnoDB支持事务处理和外键等高级功能。
    2.AUTO_INCREMENT会在新记录插入表中时生成一个唯一的数字。希望在每次插入新记录时,自动地创建主键字段的值,可以在表中创建一个 auto-increment 字段。

    转自:
    https://www.cnblogs.com/wangcp-2014/p/8038683.html

    展开全文
  • 一、 MySQL建表,字段需设置为非空,需设置字段默认值。 二、 MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL。 三、 MySQL建表,如果字段等价于外键,应在该字段加索引。 四、 MySQL建表,不同表...
  • mysql建表实例

    千次阅读 2014-05-28 23:00:29
    mysql建表实例 第一步创建一个表格,要求有primary key,有unique key,有index key。 1.创建表格 create table alldata(  jobnum int(10) unsigned not null auto_increment, //jobname定义为自动增值的int...
  • MySQL建表及约束

    2018-05-19 11:42:28
    MySQL建表及外约束 如果指定的数据库存在则删除该数据库 drop database if exists school; 创建数据库并指定默认的字符集 create database school default charset utf8; 切换到school数据库 use school; ...
  • mysql 建表语句示例 In this article, I am going to explain the MySQL CREATE TABLE statement with examples. The following syntax contains basic statements to create a table in MySQL. 在本文中,我将...
  • MySQL 建表字段长度的限制

    千次阅读 2019-07-01 19:18:15
    MySQL建表时,遇到一个奇怪的现象: root@localhost : test 10:30:54>CREATE TABLE tb_test ( -> recordid varchar(32) NOT NULL, -> areaShow varchar(10000) DEFAULT NULL, ...
  • 一、Mysql建表、索引等一些总结一、 MySQL建表,字段需设置为非空,需设置字段默认值。二、 MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL。三、 MySQL建表,如果字段等价于外键,应在该字段加索引。...
  • 1.5 MySql建表

    2016-01-23 15:33:26
    以上是常见建表语句,只是创建空表。使用 子查询建表语句 ,则可以在建表时插入数据。 create table [模式名.]表名 # 创建 StuCopy表,该表和student完全相同 CREATE  TABLE  StuCopy  AS ...
  • mysql建表说明

    千次阅读 2018-08-02 11:15:23
    上图一个典型的mysql 建表语句; 常识 设置 default默认值,以及not null 不能为空 CHAR 和 VARCHAR区别: MySQL数据库char与varchar区别 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_...
  • mysql建表 左往右顺序: 名 ,类型(长度),不是null ,comment注释 CREATE TABLE `uc_user` ( `user_id` varchar(64) NOT NULL DEFAULT '' COMMENT '用户id', `user_name` varchar(64) NOT NULL DEFAULT '' ...
  • mysql建表语句

    2014-10-09 11:22:48
    //添加约束例子 //【alter table blog_article add CONSTRAINT foreign key(category_Name) references blog_category(category_Name) on delete cascade on update cascade】 问题:如何让相册,相片,文章公用...
  • 一、 MySQL建表,字段需设置为非空,需设置字段默认值。 二、 MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL。 三、 MySQL建表,如果字段等价于外键,应在该字段加索引。 四、 MySQL建表,不同表...
  • mysql建表常用命令

    2019-07-30 18:24:00
    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,703
精华内容 7,081
关键字:

mysql建表例子

mysql 订阅