mysql 数据插入和更新及删除详情

目录
  • 1、插入
  • 2、更新
  • 3、删除

1、插入

INSERT INTO customers(
customers.cust_address,
customers.cust_city,
customers.cust_state,
customers.cust_zip,
customers.cust_country,
customers.cust_contact,
customers.cust_email
)
VALUES('zhangsan','good','111','ca','dasdsa','usa',NULL)

这样就插入成功了。

在插入的时候为了安全起见,那么每次插入的时候应该写好列名。不管使用哪种INSERT语法,都必须给出VALUES的正确数目。如果不提供列名,则必须给每个表列提供一个值。如果提供列名,则必须对每个列出的列给出一个值。如果不这样,将产生一条错误消息,相应的行插入不成功。

省略列 如果表的定义允许,则可以在INSERT操作中省略某些列。

省略的列必须满足以下某个条件

  • 该列定义为允许NULL值(无值或空值)。
  • 在表定义中给出默认值。这表示如果不给出值,将使用默认值

提高整体性能 数据库经常被多个客户访问,对处理什么请求以及用什么次序处理进行管理是MySQL的任务。

INSERT操作可能很耗时(特别是有很多索引需要更新时),而且它可能降低等待处理的SELECT语句的性能。

如果数据检索是最重要的(通常是这样),则你可以通过在INSERT和INTO之间添加关键字LOW_PRIORITY,指示MySQL降低INSERT语句的优先级。

INSERT INTO customers(
customers.cust_address,
customers.cust_city,
customers.cust_state,
customers.cust_zip,
customers.cust_country,
customers.cust_contact,
customers.cust_email
)
VALUES('zhangsan','good','111','ca','dasdsa','usa',NULL)
,('zhangsan','good','111','ca','dasdsa','usa',NULL)
,('zhangsan','good','111','ca','dasdsa','usa',NULL)
,('zhangsan','good','111','ca','dasdsa','usa',NULL)

如果想插入多行,只需要加入多个values即可。

INSERT一般用来给表插入一个指定列值的行。但是,INSERT还存在另一种形式,可以利用它将一条SELECT语句的结果插入表中。

这就是所谓的INSERT SELECT,顾名思义,它是由一条INSERT语句和一条SELECT语句组成的。

假如你想从另一表中合并客户列表到你的customers表。不需要每次读取一行,然后再将它用INSERT插入,可以如下进行:

insert into customers(xx,xx,xx)
select xx,xx,xx
from newcustomers

差不多就是这样的了。

INSERT SELECT中的列名 为简单起见,这个例子在INSERTSELECT语句中使用了相同的列名。

但是,不一定要求列名匹配。事实上,MySQL甚至不关心SELECT返回的列名。

它使用的是列的位置,因此SELECT中的第一列(不管其列名)将用来填充

表列中指定的第一个列,第二列将用来填充表列中指定的第二个列,如此等等。

这对于从使用不同列名的表中导入数据是非常有用的。

2、更新

为了更新(修改)表中的数据,可使用UPDATE语句。

可采用两种方式使用UPDATE

  • 更新表中特定行;
  • 更新表中所有行。
UPDATE customers
SET cust_email = 'email@qq.com'
where cust_id = 10005;

上面这就是更新语句了。

如果更新多个列的话:

UPDATE customers
SET cust_email = 'email@qq.com',
cust_name = 'game'
where cust_id = 10005;

IGNORE关键字 如果用UPDATE语句更新多行,并且在更新这些行中的一行或多行时出一个现错误,则整个UPDATE操作被取消(错误发生前更新的所有行被恢复到它们原来的值)。

为即使是发生错误,也继续进行更新,可使用IGNORE关键字,如下所示: UPDATE IGNORE customers…

这么说明一下,如果确定只更新一行的话,那么建议是更新是用update 1这种模式,指明只更新一行。

为了从一个表中删除(去掉)数据,使用DELETE语句。可以两种方式使用DELETE

3、删除

  • 从表中删除特定的行;
  • 从表中删除所有行。

删除表的内容而不是表 DELETE语句从表中删除行,甚至是
删除表中所有行。但是,DELETE不删除表本身。

更快的删除 如果想从表中删除所有行,不要使用DELETE

可使用TRUNCATE TABLE语句,它完成相同的工作,但速度更快(TRUNCATE实际是删除原来的表并重新创建一个表,而不是逐行删除表中的数据)

到此这篇关于mysql 数据插入和更新及删除详情的文章就介绍到这了,更多相关mysql 数据插入和更新及删除内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL入门(四) 数据表的数据插入、更新、删除

    序言 数据表的插入.更新.删除非常简单,但是简单的也要学习,细节决定成败. ---WH 一.插入数据 格式:INSERT INTO 表名(字段名...)VALUES(值...); 创建环境 使用person表 CREATE TABLE person ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name CHAR(40) NOT NULL DEFAULT '', age INT NOT NULL DEFAULT 0, info CHAR(50) NULL,

  • mysql触发器实时检测一条语句进行备份删除思路详解

    问题描述:用户有一个这样一个需求,在一张表里会不时出现 "违规" 字样的字段,需要在出现这个字段的时候,把整行的数据删掉.这是个采集任务,如果发现有"违规"字样的数据,会整点或者什么时间进行统一上报,也无法对源头进行控制让这种数据不生成. 现在需要实现以下需求: 1.实时检测这条数据的产生,发现后删除 2.在删除之前作备份这条数据 解决思路: 需要明确解决思路, 1.首先是如何实时探测删除?询问开发,这条数据的生成方式为insert,就可以做一个当表做插入的时候,然

  • mysql 数据插入优化方法之concurrent_insert

    当一个线程对一个表执行一个DELAYED语句时,如果不存在这样的处理程序,一个处理器线程被创建以处理对于该表的所有DELAYED语句. 通常来说,在MyISAM里读写操作是串行的,但当对同一个表进行查询和插入操作时,为了降低锁竞争的频率,根据concurrent_insert的设置,MyISAM是可以并行处理查询和插入的: 当concurrent_insert=0时,不允许并发插入功能. 当concurrent_insert=1时,允许对没有洞洞的表使用并发插入,新数据位于数据文件结尾(缺省).

  • Mysql 根据一个表数据更新另一个表的某些字段(sql语句)

    下面一段代码给大家介绍Mysql 根据一个表数据更新另一个表的某些字段,具体代码如下所示: DROP TABLE IF EXISTS T_U_TEMPLATE; -- 模版表 CREATE TABLE T_U_TEMPLATE ( ID INT NOT NULL AUTO_INCREMENT comment '模版表ID', TEMPLATE_CODE VARCHAR(50) BINARY comment '模版编码', TEMPLATE_NAME VARCHAR(300) BINARY com

  • 为什么MySQL 删除表数据 磁盘空间还一直被占用

    目录 1.Mysql数据结构 2.表文件大小未更改和mysql设计有关 3.那怎么才能让表大小变小 4.Online DDL 5.总结 最近有个上位机获取下位机上报数据的项目,由于上报频率比较频繁且数据量大,导致数据增长过快,磁盘占用多. 为了节约成本,定期进行数据备份,并通过delete删除表记录. 明明已经执行了delete,可表文件的大小却没减小,令人费解 项目中使用Mysql作为数据库,对于表来说,一般为表结构和表数据.表结构占用空间都是比较小的,一般都是表数据占用的空间. 当我们使用

  • mysql数据插入效率比较

    做数据插入时,发现之前上班做哪些办公系统压根就没考虑过数据库性能这些,因为涉及的数据量小,时间和效率看不出来,可当数据量很大了,大到了每秒需要10000次插入时,这时就不得不考虑你的sql 语句了.当插入100条数据,能想到的数据插入方式: 1:for循环100次,一次次插入数据.连接一次插入100次,这样是最费时间的也是最费IO和连接的: 2:将100数据插入语句组成一个sql语句,然后连接一次,插入数据.这种费时比第一种要好. 3:使用事物,100次插入,最后一次事物commit; 这种比第

  • mysql 数据插入和更新及删除详情

    目录 1.插入 2.更新 3.删除 1.插入 INSERT INTO customers( customers.cust_address, customers.cust_city, customers.cust_state, customers.cust_zip, customers.cust_country, customers.cust_contact, customers.cust_email ) VALUES('zhangsan','good','111','ca','dasdsa','

  • sql查询语句教程之插入、更新和删除数据实例

    目录 前言 1.插入数据 1.1 为表的所有字段插入数据 1.insert语句中不指定具体的字段名 2.insert语句中列出所有字段 1.2 为表的指定字段插入数据 1.3 同时插入多条记录 1.4 将查询结果插入到表中 2.更新数据 3.删除数据 总结 前言 数据库通过插入.更新和删除等方式来改变表中的记录.插入数据是向表中插入新的记录,通过 INSERT 语句来实现.更新数据是改变表中已经存在的数据,使用UPDATE 语句来实现.删除数据是删除表中不再使用的数据,通过DELETE 语句来实

  • 在ASP.NET 2.0中操作数据之十六:概述插入、更新和删除数据

    导言 结束前面的几节,我们已经探讨过了如何使用GridView.DetailsView和FormView控件来显示数据.这些控件简单地操作提供给它的数据.一般地,这些控件通过使用一个数据源控件,例如ObjectDataSource来存取数据.我们已经看过了ObjectDataSource是如何在ASP.NET页面和潜在的数据之间扮演一个代理的角色.当一个GridView需要显示数据时,它调用ObjectDataSource的Select()方法,这个方法转而调用一个来自我们的业务逻辑层(BLL)

  • php+mysqli实现批量执行插入、更新及删除数据的方法

    本文实例讲述了php+mysqli实现批量执行插入.更新及删除数据的方法.分享给大家供大家参考.具体如下: mysqli批量执行插入/更新/删除数据,函数为 multi_query(). 下面的代码只是批量插入数据,事实上,插入数据.更新数据.删除数据等可以混合一起执行.查询时使用该函数,读取数据有点不太一样,具体参考如下代码: <?php //1.创建数据库连接对象 $mysqli = new MySQLi("localhost","root","

  • 在ASP.NET 2.0中操作数据之四十七:用SqlDataSource控件插入、更新、删除数据

    导言: 正如在教程概述插入.更新和删除数据里讨论的那样,GridView控件内置更新和删除功能,而DetailsView和FormView控件不仅具有编辑和删除功能,还有插入功能.我们不要写一行代码就可一将这些功能直接应用于一个数据源控件.在这篇教程里,我们指出ObjectDataSource控件最好与GridView, DetailsView和FormView控件一起使用,才更好的实现插入.更新和删除功能.对SqlDataSource控件来说,同样如此! 对ObjectDataSource控件

  • Mysql学习心得之插入、更新、删除记录

    下面通过图文并茂的方式给大家详解Mysql学习心得之插入.更新.删除记录. 插入记录 复制代码 代码如下: Insert[]into] tb1_name[(col_name,-..)] 自动编号的字段,可以用values default Default 可以赋予默认值 复制代码 代码如下: INSERT USERS VALUES(NULL,'TOM','123',25,1); 可以同时插入多条记录 复制代码 代码如下: INSERT users VALUES(DEFAULT,'TOM','123

  • Hibernate+JDBC实现批量插入、更新及删除的方法详解

    本文实例讲述了Hibernate JDBC实现批量插入.更新及删除的方法.分享给大家供大家参考,具体如下: 一.批量插入(两种方式) 1. 通过Hibernate缓存 如果这样写代码进行批量插入(初始设想): package com.anlw.util; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.

  • Oracle + Mybatis实现批量插入、更新和删除示例代码

    前言 Mybatis是web工程开发中非常常用的数据持久化的框架,通过该框架,我们非常容易的进行数据库的增删改查.数据库连接进行事务提交的时候,需要耗费的资源比较多,如果需要插入更新的数据比较多,而且每次事务只提交一条数据,会造成非常大的数据库资源浪费,导致数据库性能.系统性能大幅度下降. 关于mybatis的批量插入,网上的多数示例多半是关于MySQL数据库的,关于Oracle数据库的例子比较少.本文将给大家介绍关于Oracle+Mybatis批量插入.更新和删除的相关内容,下面话不多说了,来

  • MongoDB插入、更新、删除文档实现代码

    1 创建数据库并插入数据 use jinxt db.adou.insert({name:"jinxt",age:"28"}); //刚创建的数据库 jinxt并不在数据库的列表中, 要显示它,我们需要向 jinxt数据库插入一些数据 show dbs db.dropDatabase(); //删除数据库 2 插入文档 use jinxt db.adou.insert({name:"jinxt",age:28,sex:"男",t

随机推荐