zoukankan      html  css  js  c++  java
  • MySQL-插入数据(INSERT)

    Insert语句可将一行或多行插入到表中。

    复制代码
    INSERT语法:

    INSERT INTO table(column1,column2...)

    VALUES (value1,value2,...);

    首先,在INSERT INTO子句之后,在括号内指定表名和逗号分隔列的列表。

    然后,将括号内的相应列的逗号分隔值放在VALUES关键字之后。

    在执行插入语句前,需要具有执行INSERT语句的INSERT权限

    复制代码

    INSERT语法实际应用:

    复制代码
    tasts表:
    

    USE testdb;

    CREATE TABLE IF NOT EXISTS tasks (
    task_id INT(11) AUTO_INCREMENT,
    subject VARCHAR(
    45) DEFAULT NULL,
    start_date DATE DEFAULT NULL,
    end_date DATE DEFAULT NULL,
    description VARCHAR(
    200) DEFAULT NULL,
    PRIMARY KEY (task_id)
    )ENGINE
    =InnoDB DEFAULT CHARSET=utf8;

    插入:

    INSERT INTO tasks(subject,start_date,end_date,description)
    VALUES('Learn MySQL INSERT','2017-07-21','2017-07-22','Start learning..');

    插入多行:

    INSERT INTO tasks(subject,start_date,end_date,description)
    VALUES ('任务-1','2017-01-01','2017-01-02','Description 1'),
           ('任务-2','2017-01-01','2017-01-02','Description 2'),
           ('任务-3','2017-01-01','2017-01-02','Description 3');
    复制代码

    INSERT与SELECT混合应用

    MySQL中,可以使用SELECT语句返回的列和值来填充INSERT语句的值

    INSERT INTO table_1
    SELECT c1, c2, FROM table_2;

    假设要将tasks表复制到tasks_bak表。

    复制代码
    首先,通过复制tasks表的结构,创建一个名为tasks_bak的新表,如下所示:
    INSERT INTO tasks_bak
    SELECT * FROM tasks;
    

    第二步,使用以下INSERT语句将tasks表中的数据插入tasks_bak表:
    INSERT INTO tasks_bak
    SELECT * FROM tasks;

    第三步,检查tasks_bak表中的数据,看看是否真正从tasks表复制完成了。
    mysql> select * from tasks;

    复制代码

    INSERT与On Duplicate Key Update

    复制代码
    应用On Duplicate Key Update:
    

    INSERT INTO tasks(task_id,subject,start_date,end_date,description)
    VALUES (4,'Test ON DUPLICATE KEY UPDATE','2017-01-01','2017-01-02','Next Priority')
    ON DUPLICATE KEY UPDATE
    task_id
    = task_id + 1,
    subject
    = 'Test ON DUPLICATE KEY UPDATE';

    应用Update函数:

    UPDATE tasks
    SET
    task_id = task_id + 1,
    subject
    = 'Test ON DUPLICATE KEY UPDATE'
    WHERE
    task_id
    = 4;

    复制代码

    INSERT IGNORE语句

    功能介绍:

    INSERT语句向表中添加一些行数据并且在处理期间发生错误时,INSERT语句将被中止,并返回错误消息。因此,可能不会向表中没有插入任何行。

    但是,如果使用INSERT INGORE语句,则会忽略导致错误的行,并将其余行插入到表中。

    复制代码
    INSERT IGNORE语法:
    

    INSERT IGNORE INTO table(column_list)
    VALUES( value_list),
    ( value_list),
    ...

    复制代码

    STRICT语句

    STRICT模式打开时,如果您尝试将无效值插入到表中,MySQL将返回错误并中止INSERT语句。

    复制代码
    创建一个名为tokens的新表:
    

    USE yiibaidb;

    CREATE TABLE IF NOT EXISTS tokens (
    s VARCHAR(6)
    );

    将长度为7的字符串插入到tokens表中

    INSERT INTO tokens VALUES('abcdefg');

    STRICT模式打开,MySQL发出以下错误

    mysql> INSERT INTO tokens VALUES('abcdefg');
    1406 - Data too long for column 's' at row 1

    复制代码

     

  • 相关阅读:
    20款最优秀的JavaScript编辑器
    清空windows系统网络配置
    如何禁止Chrome浏览器隐藏URL的WWW前缀
    EDK2开发环境搭建
    edk2中子目录介绍
    INTEL_BIOS 编译—for-ATOM_E3800
    英特尔vPro博锐技术激活
    gitea configure
    mpeg1、mpeg2和mpeg4标准对比分析和总结
    内置缓存
  • 原文地址:https://www.cnblogs.com/R-bear/p/15037379.html
Copyright © 2011-2022 走看看