莆田建设企业网站,青海网站建设哪家好,随州网站建设优化推广渠道,赤峰市建设局网站#x1f3ac; 博客主页#xff1a;博主链接 #x1f3a5; 本文由 M malloc 原创#xff0c;首发于 CSDN#x1f649; #x1f384; 学习专栏推荐#xff1a;LeetCode刷题集 #x1f3c5; 欢迎点赞 #x1f44d; 收藏 ⭐留言 #x1f4dd; 如有错误敬请指正#xff0… 博客主页博主链接 本文由 M malloc 原创首发于 CSDN 学习专栏推荐LeetCode刷题集 欢迎点赞 收藏 ⭐留言 如有错误敬请指正 未来很长值得我们全力奔赴更美好的生活✨ 文章目录 MySQL的前情介绍本章详情数据插入插入完整的行插入多个行插入检索出的数据 如何巩固学习本文小结 MySQL的前情介绍 大家好呀今天是我第N次写MySQL也是最近才学习MySQL也想着记录一下自己的学习过程并且分享给大家尼 本章详情 本篇文章将介绍如何利用SQL的INSERT语句将数据插入表中 数据插入
前言 毫无疑问SELECT是最常使用的SQL语句了(这就是为什么前面的一章讲的都是它的原因)。但是还有其他3个经常使用的SQL语句需要学习。第一个就是INSERT(下一篇文章介绍另外两个)。 顾名思义INSERT是用来插入(或添加)行到数据库表的。插入可以用几种方式使用:
插入完整的行插入行的一部分插入多行插入某些查询的结果
下面将详细的介绍一些内容 插入及系统安全 插入及系统安全可针对每个表或每个用户利用MySQL的安全机制禁止使用INSERT语句这将在后面的文章进行介绍。 插入完整的行 把数据插入表中的最简单的方法是使用基本的INSERT语法它要求指定表名和被插入到新行中的值。下面举例说明 输入
INSERT INTO CustomersVALUES(NULLPep E. LaPew, 100 Main Street,Los Angeles,CA,90046,USA,NULL,NULL);分析 此例子插入一个新客户到customers表。存储到每个表列中的数据在VALUES子句中给出对每个列必须提供一个值。如果某个列没有值(如上面的cust_contact和cust_email列),应该使用NULL值(假定表允许对该列指定空值)。各个列必须以它们在表定义中出现的次序填充。第一列cust id也为NULL。这是因为每次插入一个新行时该列由MySQL自动增量。你不想给出一个值(这是MySQL的工作)又不能省略此列(如前所述必须给出每个列)所以指定一个NULL值 (它被MySQL忽略MySQL在这里插入下一个可用的cust id值)。 注意 没有输出 INSERT语句一般不会产生输出 编写INSERT语句的更安全(不过更烦)的方法如下: 输入
INSERT INTO customers(cust_name,
cust_address,
cust_city,
cust_state
cust_zip,
cust_country,cust_contact,cust_emai1)VALUES(Pep ELaPew,100 Main Street,Los Angeles,CA,90046,USA,NULL,NULL);分析 此例子完成与前一个INSERT语句完全相同的工作但在表名后的括号里明确地给出了列名。在插入行时MySQL将用VALUES列表中的相应值填入列表中的对应项。VALUES中的第一个值对应于第一个指定的列名。第二个值对应于第二个列名如此等等。 因为提供了列名VALUES必须以其指定的次序匹配指定的列名不定按各个列出现在实际表中的次序。其优点是即使表的结构改变此INSERT语句仍然能正确工作。你会发现cust_id的NULL值是不必要的cust id列并没有出现在列表中所以不需要任何值。 下面的INSERT语句填充所有列(与前面的一样)但以一种不同的次序填充。因为给出了列名所以插入结果仍然正确: 输入
INSERT INTO customers(cust_name,
cust_contact,cust_emai1,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country)
VALUES(Pep E. LaPew,
NULLNULL
100 Main Street,
Los Angeles,
90046,USA);总是使用列的列表 一般不要使用没有明确给出列的列表的INSERT语句。使用列的列表能使SOL代码继续发挥作用即使表结构发生了变化 使用这种语法还可以省略列。这表示可以只给某些列提供值给其他列不提供值。(事实上你已经看到过这样的例子:当列名被明确列出时cust_id可以省略。) 提高性能 提高整体性能 数据库经常被多个客户访问对处理什么请求以及用什么次序处理进行管理是MySQL的任务。INSERT操作可能很耗时(特别是有很多索引需要更新时)而且它可能降低等待处理的SELECT语句的性能。 如果数据检索是最重要的(通常是这样)则你可以通过在INSERT和INTO之间添加关键字LOW PRIORITY指示MySQL降低INSERT语句的优先级如下所示: INSERT LOW PRIORITY INTO 顺便说一下,这也适用于下一章介绍的UPDATE和DELETE语句 插入多个行 INSERT可以插入一行到一个表中。但如果你想插入多个行怎么办? 可以使用多条INSERT语句甚至一次提交它们每条语句用一个分号结束如下所示: 输入
INSERT INTO customers(cust_namecust_address,
cust_city,
cust_state,
cust_zip,
cust_country)VALUES(Pep ELaPew,
100 Main Street,
Los Angeles,
CA,
90046,
USA);INSERT INTO customers(cust_namecust_address,
cust_city,
cust_state,
cust_zip,
cust_country)VALUES(M.Martian,
42 Galaxy way,
New York,
iNY,
11213,
USA);插入检索出的数据 INSERT一般用来给表插入一个指定列值的行。但是INSERT还存在另一种形式可以利用它将一条SELECT语句的结果插入表中。这就是所谓的INSERTSELECT顾名思义它是由一条INSERT语和一条SELECT语句组成的。 假如你想从另一表中合并客户列表到你的customers表。不需要每次读取一行然后再将它用INSERT插入可以如下进行: 输入
INSERT INTO customers(cust_id,
cust_contact,
cust_email,
cust_name,
cust_address,
cust_city,
cust_state
cust_zip,cust_country)SELECT cust_id,
cust_contact,
cust_email,cust_name,
cust_address
cust_city,
cust_state,
cust_zip,
cust_country FROM custnew;分析 这个例子使用INSERT SELECT从custnew中将所有数据导入customers。SELECT语句从custnew检索出要插入的值而不是列出它们。SELECT中列出的每个列对应于customers表名后所跟的列表中的每个列。这条语句将插入多少行有赖于custnew表中有多少行。如果这个表为空则没有行被插入(也不产生错误因为操作仍然是合法的)。如果这个表确实含有数据则所有数据将被插入到customers。 如何巩固学习 提示在学习的过程中我们需要先自行进行思考而不是一遇到不会的就放弃思考直接看答案如果最后遇到真的不会的题目我们可以适当的进行观看答案看自己的思路是否正确在作出正确的判断 本文小结 本篇文章介绍如何将行插入到数据库表。我们学习了使用INSERT的几种方法以及为什么要明确使用列名学习了如何用INSERT SELECT从其他表中导入行。下一章讲述如何使用UPDATE和DELETE进一步操纵表数据。 好啦今日的分享到这里就结束啦我是爱你们的M malloc希望可以帮助到你们噢最后别忘记三连啦