• MariaDB SQL 插入数据


    插入单独的完整行,插入单独的部分行


    INSERT INTO Custormers
    VALUES(NULL,
        'Pep E. Lapew',
        '100 Main Street',
        'Los Angeles',
        'CA',
        '90046',
        'USA',
        NULL,
        NULL);

    ……以上SQL语句极度依赖列在表中定义的次序。它也依赖插入信息的次序。即使可以,也无法保证下一次表重构后,列仍保持完全相同的次序。……

    INSERT INTO customers(cust_name,
        cust_address,
        cust_city,
        cust_state,
        cust_zip,
        cust_country,
        cust_contact,
        cust_email)
    VALUES('Pep E. Lapew',
        '100 Main Street',
        'Los Angeles',
        'CA',
        '90046',
        'USA',
        NULL,
        NULL);
    • 由于提供了列名,VALUES必须以指定的顺序来匹配列名,而不是按照列在实绩表中出现的顺序。这样做的优势是,即使表结构改变了,INSERT语句仍然可以正常工作。

    ……不管你在正在使用什么样的INSERT语句,VALUES的数量必须正确。……使用这种语法,可以忽略列。这意味着仅为某些列提供了值,而其他列没有。(当列名被显示列出时,cust_id被忽略)

    • 忽略列:忽略列必须满足以下条件之一:列被定义为允许为NULL值(没有值);一个默认的值被表定义.(意味着如果没有指定列的值,就是用默认值)

    这里贴出一段创建表的SQL语句:

    CREATE TABLE `appPowerInfo` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增长id',
      `createTime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建该条记录的时间',
      `updateTime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最新更新记录的时间',
      `endTime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '失效时间',
      `validity` tinyint(4) unsigned NOT NULL DEFAULT '1' COMMENT '有效性:0:无效的;1:有效的;',
      `remark` varchar(64) NOT NULL DEFAULT '' COMMENT '备注',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

    注意其中 :

    NOT NULL DEFAULT '0' 

    LOW_PRIORITY


    如果数据检索更加重要(通常如此),可以降低MariaDB降低INSERT语句的优先级:

    INSERT LOW_PRIORITY INTO

    本节待续的主题


    1. 插入多行
    2. 插入检索到的数据
  • 相关阅读:
    BZOJ 1444 有趣的游戏(AC自动机+矩阵快速幂)
    BZOJ 1190 梦幻岛宝珠(分组01背包)
    BZOJ 1562 变换序列(二分图匹配)
    BZOJ 1483 梦幻布丁(链表+启发式合并)
    BZOJ 1222 产品加工(DP)
    java GUI编程一
    java 网络编程
    java 异常
    java 线程二
    java 线程一
  • 原文地址:https://www.cnblogs.com/dotdog/p/4478837.html
Copyright © 2020-2023  润新知