博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL-插入数据(INSERT)
阅读量:5209 次
发布时间:2019-06-14

本文共 2252 字,大约阅读时间需要 7 分钟。

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_1SELECT c1, c2, FROM table_2;

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

首先,通过复制tasks表的结构,创建一个名为tasks_bak的新表,如下所示:INSERT INTO tasks_bakSELECT * FROM tasks;第二步,使用以下INSERT语句将tasks表中的数据插入tasks_bak表:INSERT INTO tasks_bakSELECT * 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

 

 

 

转载于:https://www.cnblogs.com/loser1949/p/8120990.html

你可能感兴趣的文章
Codeforces 542E Playing on Graph 其他
查看>>
iOS10.1不能调试解决方案
查看>>
之前编写的Symfony教程已经可以观看了
查看>>
WPF中资源的引用方法
查看>>
MIME媒体类型
查看>>
使用svc优雅的启用与退出程序
查看>>
oracle之二数据字典表和动态性能视图
查看>>
flex小记
查看>>
HTML基础知识
查看>>
IJ配置项目的TOMCAT
查看>>
@Resource注解
查看>>
PHP基础示例:简单的在线文件管理
查看>>
深度理解微信小程序的思想
查看>>
es6的阅读收获
查看>>
laravel中间件
查看>>
GUI学习之二十二——QRubberBand学习总结
查看>>
jQuery选择器
查看>>
cocos2d-x类型转换(CCstring int string char UTF-8互转)
查看>>
Python-str函数
查看>>
Oracle RMAN 清除归档日志
查看>>