MySQL小白之路数据的插入
Posted 霖行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL小白之路数据的插入相关的知识,希望对你有一定的参考价值。
【mysql小白之路】数据的插入
关键字:INSERT
插入方式:
1.简单插入
2.指定插入
3.多行插入
4.查询结果插入
简单插入
所需信息:1.表名 2.插入值
样例:
/*
** 以下为表的定义:
** student表
** stu_id int NOT NULL PRIMARY KEY,
** stu_name char(50) NOT NULL,
** stu_mail char(50) NULL
*/
INSERT INTO student
VALUES(
1, #stu_id值
'张三', #stu_name值
NULL #stu_mail值
);
样例分析:
表名跟于INSERT INTO关键字后,数据跟于VALUES关键字后的括号内。注意:数据的顺序对应表列的定义顺序,不可交换且不可缺少;若一列设置了自动增量AUTO_INCREMENT,其值应为NULL保证正常增量;该方式灵活性不足,依赖于表列的定义顺序,若表进行了更新,可能会出现安全隐患,不建议使用。
指定插入
所需信息:1.表名与表列名 2.插入值
样例:
/*
** 以下为表的定义:
** student表
** stu_id int NOT NULL PRIMARY KEY,
** stu_name char(50) NOT NULL,
** stu_mail char(50) NULL
*/
INSERT INTO student(
stu_name,
stu_id
) VALUES (
'张三', #stu_name值
1 #stu_id值
);
样例分析:
同简单插入相比,指定插入指定了要插入的表列,表中其他未指定的表将被省略。数据顺序不再为表列的定义顺序,而是指定顺序。
提示:若指定该表的所有表列,则效果等同于简单插入,但灵活性高,故常用该方式进行插入。
注意:
表列可被省略必需满足以下条件之一:
1.该列被定义为允许空值NULL
2.该列存在一个默认值
多行插入
所需信息:1.表名与表列名 2.每行的插入值
样例:
/*
** 以下为表的定义:
** student表
** stu_id int NOT NULL PRIMARY KEY,
** stu_name char(50) NOT NULL,
** stu_mail char(50) NULL
*/
INSERT INTO student(
stu_id,
stu_name
) VALUES (
1,
'张三'
),VALUES (
2,
'李四'
),VALUES (
3,
'王五'
);
样例分析:
多行插入,每行位于一个VALUES关键字中,每个关键字以逗号分隔。
查询结果插入
主要用途:导入数据
样例:
/*
** 以下为表的定义:
** student表
** stu_id int NOT NULL PRIMARY KEY,
** stu_name char(50) NOT NULL,
** stu_mail char(50) NULL
*/
INSERT INTO student(
stu_id,
stu_name,
stu_mail
)
SELECT
stu_id, #stunew的stu_id
stu_name, #stunew的stu_name
stu_mail #stunew的stu_mail
FROM
stunew; #一张拥有stu_id, stu_name, stu_mail列的表
样例分析:
将stunew表中的stu_id, stu_name, stu_mail列的数据插入到student表中。选择列的先后顺序与指定列的循序必须一一对应,否则插入将错位。
注意:插入行的主键不能在被插入的表中出现,否则插入冲突,插入失败。
提示:SELECT语句独立于INSERT语句
以上是关于MySQL小白之路数据的插入的主要内容,如果未能解决你的问题,请参考以下文章