mysql数据库语句插入_MySQL之插入数据(添加数据)-INSERT
基本语法:
INSERT 语句有两种语法形式,分别是 INSERT…VALUES 语句和 INSERT…SET 语句。
1、INSERT...VLAUES语句
INSERT VLAUES的语法格式如下:
INSERT INTO
[[,,...]]
VLAUES(值1)[....(值n)];
语法说明如下。
:指定被操作的表名。
:指定需要插入数据的列名。若向表中的所有列插入数据,则全部的列名均可以省略,直接采用 INSERTVALUES(…) 即可。
VALUES 或 VALUE 子句:该子句包含要插入的数据清单。数据清单中数据的顺序要和列的顺序相对应。
2、INSERT .... SET语句
INSERT INTO
SET = ,
= ,
...
此语句用于直接给表中的某些列指定对应的列值,即要插入的数据的列名在 SET 子句中指定,col_name 为指定的列名,等号后面为指定的数据,而对于未指定的列,列值会指定为该列的默认值。
由 INSERT 语句的两种形式可以看出:
使用 INSERT…VALUES 语句可以向表中插入一行数据,也可以插入多行数据;
使用 INSERT…SET 语句可以指定插入行中每列的值,也可以指定部分列的值;
INSERT…SELECT 语句向表中插入其他表的数据。
采用 INSERT…SET 语句可以向表中插入部分列的值,这种方式更为灵活;
INSERT…VALUES 语句可以一次插入多条数据。
在 MySQL 中,用单条 INSERT 语句处理多个插入要比使用多条 INSERT 语句更快。
当使用单条 INSERT 语句插入多行数据的时候,只需要将每行数据用圆括号括起来即可。
向表中添加值:
创建一个course_db的数据库,在此数据库中创建一个tb_courses的表,包含课程编号 course_id、课程名称 course_name、课程学分 course_grade 和课程备注 course_info;
向表中所有字段插入值的方法有两种:一种是指定所有字段名;另一种是完全不指定字段名。
1、INSERT VALUES顺序指定列插入
【实例 1】在 tb_courses 表中插入一条新记录,course_id 值为 1,course_name 值为“Network”,course_grade 值为 3,info 值为“Computer Network”。
在执行插入操作之前,查看 tb_courses 表的SQL语句和执行结果如下所示。
查询结果显示当前表内容为空,没有数据,接下来执行插入数据的操作,输入的 SQL 语句和执行过程如下所示。
可以看到插入记录成功。在插入数据时,指定了 tb_courses 表的所有字段,因此将为每一个字段插入新的值。
2、INSERT....VALUES自定义顺序指定列插入
INSERT 语句后面的列名称顺序可以不是 tb_courses 表定义时的顺序,即插入数据时,不需要按照表定义的顺序插入,只要保证值的顺序与列字段的顺序相同就可以。
【实例 2】在 tb_courses 表中插入一条新记录,course_id 值为 2,course_name 值为“Database”,course_grade 值为 3,info值为“MySQL”。输入的 SQL 语句和执行结果如下所示。
3、INSERT..VALUES不指定列插入
使用 INSERT 插入数据时,允许列名称列表 column_list 为空,此时值列表中需要为表的每一个字段指定值,并且值的顺序必须和数据表中字段定义时的顺序相同。
【实例 3】在 tb_courses 表中插入一条新记录,course_id 值为 3,course_name 值为“JAVA”,course_grade 值为 4,info 值为“Jave EE”。输入的 SQL 语句和执行结果如下所示。
INSERT 语句中没有指定插入列表,只有一个值列表。在这种情况下,值列表为每一个字段列指定插入的值,并且这些值的顺序必须和 tb_courses 表中字段定义的顺序相同。
注意:虽然使用 INSERT 插入数据时可以忽略插入数据的列名称,若值不包含列名称,则 VALUES 关键字后面的值不仅要求完整,而且顺序必须和表定义时列的顺序相同。如果表的结构被修改,对列进行增加、删除或者位置改变操作,这些操作将使得用这种方式插入数据时的顺序也同时改变。如果指定列名称,就不会受到表结构改变的影响。
4、INSERT..VALUES指定列插入
为表的指定字段插入数据,是在 INSERT 语句中只向部分字段中插入值,而其他字段的值为表定义时的默认值。
【实例 4】在 tb_courses 表中插入一条新记录,course_name 值为“System”,course_grade 值为 3,course_info 值为“Operating System”,输入的 SQL 语句和执行结果如下所示。
可以看到插入记录成功。如查询结果显示,这里的 course_id 字段自动添加了一个整数值 4。这时的 course_id 字段为表的主键,不能为空,系统自动为该字段插入自增的序列值。在插入记录时,如果某些字段没有指定插入值,MySQL 将插入该字段定义时的默认值。
5、INSERT ...SET指定列插入
【实例 5】在 tb_courses 表中插入一条新记录,course_name 值为“Python”,course_grade 值为 6,course_info 值为“Python”,输入的 SQL 语句和执行结果如下所示。
6、INSERT ...VALUES 多行同时插入
在 MySQL 中,用单条 INSERT 语句处理多个插入要比使用多条 INSERT 语句更快。当使用单条 INSERT 语句插入多行数据的时候,只需要将每行数据用圆括号括起来即可。
【实例 6】在 tb_courses 表中插入一条新记录,course_name 值为“C”、“C”,course_grade 值为 8、9,course_info 值为“C#”、"C++",输入的 SQL 语句和执行结果如下所示。
INSERT INTO…SELECT…FROM 语句用于快速地从一个或多个表中取出数据,并将这些数据作为行数据插入另一个表中。
SELECT 子句返回的是一个查询到的结果集,INSERT 语句将这个结果集插入指定表中,结果集中的每行数据的字段数、字段的数据类型都必须与被操作的表完全一致。
在数据库 course_db 中创建一个与 tb_courses 表结构相同的数据表 tb_courses_new,创建表的 SQL 语句和执行过程如下所示。
7、空白表指定列完全复制
【实例 7】从 tb_courses 表中查询所有的记录,并将其插入 tb_courses_new 表中。输入的 SQL 语句和执行结果如下所示。
在数据库 course_db 中创建一个与 tb_courses 表结构相同的数据表 tb_courses_new2,创建表的 SQL 语句和执行过程如下所示。
8、空白表不指定列完全复制
【实例 8】从 tb_courses 表中查询所有的记录,并将其插入 tb_courses_new2 表中。输入的 SQL 语句和执行结果如下所示。
9、将一个表中的一行或多行复制到另外一个表中
【实例9】将表tb_courses中course_id为6和7的行复制到表tb_courses_new中,输入的 SQL 语句和执行结果如下所示。
提示:id(auto increment)中,当在进行插入操作时,由于错误操作导致插入失败,后修改后再次重新插入时,course_id的值会呈现不是顺序增长的情况;这是因为insert 失败后,id已自动增加从而导致id显示的不连续;
mysql数据库语句插入_MySQL之插入数据(添加数据)-INSERT相关推荐
- mysql向表中插中文显示,针对mysql数据库无法在表中插入中文字符的解决方案(彻底解决jav...
针对mysql数据库无法在表中插入中文字符的解决方案(彻底解决jav 针对mysql数据库无法在表中插入中文字符的解决方案(彻底解决:java.sql.SQLException: Incorrect ...
- Mysql SQL语句执行更新或者插入添加条件判断
Mysql SQL语句执行更新或者插入添加条件判断 – 更新操作 – INSERT INTO materials (ID,Name,Remaining,Total) VALUES (1,'SolidW ...
- mysql数据库备份总结_MySQL数据库备份总结
一个企业的正常运行,数据的完整性是最关键的:所以我们需要在工作中要很熟练的掌握数据的备份与恢复方法:下面是对Mysql数据库备份的三种方法总结,希望对大家会有所帮助 备份开始前的工作环境准备: 1.创 ...
- MySQL数据库——语句
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.MySQL数据库语句 (一).按关键字排序 1.可进行多字段的排序 (二).单字段排序 1.按分数排序,默认不指定 ...
- mysql数据库用户授权_MySQL数据库用户授权(GRANT)
在对 MySQL 的日常管理和实际操作中,为了数据库的安全,避免恶意用户使用 root 账号控制数据库,我们通常会创建一系列具备适当权限的账号.这样,我们就可以不用或少用 root 账号登录NySQL ...
- mysql5.7语句建库_MySQL5.7.14下载安装图文教程及MySQL数据库语句入门大全
如何下载: 我先去MySQL首页下载最新版本的MySQL-链接:https://www.mysql.com/downloads/ 进入此界面下载: Downloads–>MySQL Commun ...
- mysql数据库优化大全_MySQL数据库优化技巧大全
简介: MySQL数据库优化技巧大全 MySQL优化三大方向 ① 优化MySQL所在服务器内核(此优化一般由运维人员完成). ② 对MySQL配置参数进行优化(my.cnf)此优化需要进行压力测试来进 ...
- mysql 数据库表重建_mysql 数据库表重建
数据库内核月报 - 2015 / 09-MySQL · 捉虫动态 · 建表过程中crash造成重建表失败 问题描述 主库的create table语句传到备库,备库SQL线程执行过程中报错: Erro ...
- mysql数据库表重建_mysql数据库表重建
数据库内核月报 - 2015 / 09-MySQL · 捉虫动态 · 建表过程中crash造成重建表失败 问题描述 主库的create table语句传到备库,备库SQL线程执行过程中报错: Erro ...
最新文章
- 检查Lync SRV记录是否正常
- Java String,StringBuilder和StringBuffer的区别 StringBuilder StringBuffer String
- GPU 内存的分级综述(gpu memory hierarchy)
- Attention函数手册
- -bash: wget: 未找到命令_18个堪称神器的命令行工具,高效运维必备
- 白银T+D [Ag(T+D)]业务介绍
- C# 从文本列中检索数据
- Linux面试题总结(2022最新版)
- java字符串中的数据排序
- ITextSharp 使用
- BOS物流管理系统第一阶段
- ubuntu 16.04 成功安装网卡驱动
- Xshell7 要继续使用此程序,您必须应用最新的更新或使用新版本
- 小新padpro2021实体键盘快捷键备忘
- 【UBUNTU】ubuntu18.04安装及更新
- 再谈如何学习Linux,一线Linux专家学习经验谈
- html5网格坐标系,HTML5 四种常用网格(Grid)布局技术
- M1芯片Mac mini外接显示器的各种问题
- 萧乾升:4.13黄金白银TD纸白银早盘策略
- 常用Excel和Word操作收集整理
热门文章
- 【ZZULIOJ】1114: 逆序
- 深度好文 | 带你了解「无代码开发」发展始末,建议收藏
- 双移线驾驶员模型,多项式双移线模拟 采用多项式搭建双移线期望路径,基于郭孔辉单点预瞄理论,搭建双移线simulink驾驶员模型
- 中基鸿业投资理财你需要知道的五件事
- 各大企业邮箱发件限制
- 2013年第4季度MP3品牌网络知名度排名
- 飞利浦Evnia 34M2C8600 显示器 评测
- php中rectangle函数怎么用,rectangle是什么意思,如何利用elipse和rectangle画图
- windows服务安装(System.ComponentModel.Win32Exception:远程过程调用失败)
- 为什么要进行软件性能测试?