时间:2022-08-16 12:38:28 | 栏目:Mysql | 点击:次
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操作中省略某些列。
省略的列必须满足以下某个条件
提高整体性能 数据库经常被多个客户访问,对处理什么请求以及用什么次序处理进行管理是MySQL
的任务。
INSERT
操作可能很耗时(特别是有很多索引需要更新时),而且它可能降低等待处理的SELECT
语句的性能。
如果数据检索是最重要的(通常是这样),则你可以通过在INSE
RT和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
中的列名 为简单起见,这个例子在INSERT
和SELECT
语句中使用了相同的列名。
但是,不一定要求列名匹配。事实上,MySQL
甚至不关心SELECT
返回的列名。
它使用的是列的位置,因此SELECT
中的第一列(不管其列名)将用来填充
表列中指定的第一个列,第二列将用来填充表列中指定的第二个列,如此等等。
这对于从使用不同列名的表中导入数据是非常有用的。
为了更新(修改)表中的数据,可使用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
:
删除表的内容而不是表 DELETE
语句从表中删除行,甚至是
删除表中所有行。但是,DELETE
不删除表本身。
更快的删除 如果想从表中删除所有行,不要使用DELETE
。
可使用TRUNCATE TABLE
语句,它完成相同的工作,但速度更快(TRUNCATE
实际是删除原来的表并重新创建一个表,而不是逐行删除表中的数据)