mysql-增删改数据
一、增加操作
INSERT用来插入或添加行到数据库表的。插入用以下几种方式:
1、插入完整的行
insert into customers values(null,'Pep E,LaPew','100 main street','Los Angeles','CA','90046','USA',null,null);
此种方法对某个列必须提供一个值,如果某个列没有值,应该使用Null值
各个列必须以他们在表定义中出现的次序填充。
2、插入行的一部分,如下语句:
insert into customers(cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country,cust_contact,cust_email) values('Pep E,LaPew','100 main street','Los Angeles','CA','90046','USA',null,null);
这种方式更好,也更繁琐,它在表明后的括号里明确地给出了列名。在插入时,MYSQL将用values列表中的相应值填入列表中的对应项。
3、插入多行
我们想使用insert语句一次提交多行新数据,我们可以在每个insert语句后都用分号结束即可。
insert into customers(cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country)values('Pep E.LaPew','100 Main Street','Los Angeles','CA','90046','USA');
insert into customers(cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country)values('M.Martian','42 Galaxy Way','New York','NY','11213','USA');
如果,只要每条insert语句中的别名和次序相同,也可以如下:
insert into customers(cust_name,cust_address,cust_city,cust_state,cust_zip,cust_country)values('Pep E.LaPew','100 Main Street','Los Angeles','CA','90046','USA'),('M.Martian','42 Galaxy Way','New York','NY','11213','USA');
4、插入某些查询的结果
假如你想从某个表中合并客户列表到你的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表中有多少行。
二、修改操作
为了更新(修改)表中的数据,可以使用update语句,如下两种方式:
1、更新表中特定行
2、更新表中所有行
update customers set cust_email='elmer@fudd.com' where cust_id=10005;
以上语句将cust_id=10005的cust_email列更新。
如果更新多个列,如下:
update customers set cust_name='The Fudds',cust_email='elmer@fudd.com' where cust_id =10005;
如果要删除指定的列值,如下:
update customers set cust_email=null where cust_id=10005;
三、删除数据
我们使用delete语句对表中的数据进行删除。
1、从表中删除特定的行;
2、从表中删除所有的行;
delete from customers where cust_id =10006;
我们可以使用truncate table 语句删除表中所有数据,他的删除速度更快,因为他相当于删除了原来的表,并重新创建一个新表。但是他的操作并不安全。