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小白之路数据的插入的主要内容,如果未能解决你的问题,请参考以下文章

小白成长之路01

mybatis学习之路----mysql批量新增数据

MySQL小白之路表的创建与操作

MySQL小白之路表的创建与操作

小白学习MySQL - 随机插入测试数据的工具

大数据学习之路又之从小白到用sqoop导出数据