本文实例演示如何向表插入一条或多条记录,如何修改记录中的字段,以及如何删除一条记录。
inset into能够完整的插入一条记录(所有列都插入数据),也能仅对表格的某几列插入数据,请看下面的实例
//创建表t2,包含一个整数列和一个字符串列 mysql> create table t2(id int,name char(30)); //插入一条记录,t2后面的括号中包含我们要插入的列的表头字段,表头字段要与后面values括号中的数据对应,也就是说如果这样写t1(name,id),那么相对的values('qingsword',1),因为id在表声明的时候是整型,而name是字符型 //语法:insert into [表名](表头字段1,表头字段2,...) values(数据1,数据2,...); mysql> insert into t2(id,name) values(1,'qingsword'); //上面的插入语句效果如下 mysql> select * from t2; +------+-----------+ | id | name | +------+-----------+ | 1 | qingsword | +------+-----------+ //插入第二条记录,这一次t2后面没有接任何表头字段,当表名后面没有括号的时候,就是插入一条完整的记录,t2有几列,values括号中就要对应插入多少列数据,并且数据类型和创建表时的列数据类型对应 mysql> insert into t2 values(2,'qingsword.com'); mysql> select * from t2; +------+---------------+ | id | name | +------+---------------+ | 1 | qingsword | | 2 | qingsword.com | +------+---------------+ //插入第三条记录,但仅设定了name列的值,因为这张表创建的时候没有设定默认值,所以当我们插入一条记录,但仅设定了记录某个或某几个字段的值的时候,没有数值的字段就会用NULL填充 mysql> insert into t2(name) values('www.qingsword.com'); mysql> select * from t2; +------+-------------------+ | id | name | +------+-------------------+ | 1 | qingsword | | 2 | qingsword.com | | NULL | www.qingsword.com | +------+-------------------+ //一次插入两条记录,values后每个括号中包含一条记录,用逗号分隔每个括号,用这种语法可插入多条记录 mysql> insert into t2 values(4,'qing'),(5,'sword'); mysql> select * from t2; +------+-------------------+ | id | name | +------+-------------------+ | 1 | qingsword | | 2 | qingsword.com | | NULL | www.qingsword.com | | 4 | qing | | 5 | sword | +------+-------------------+
现在呢,我们觉得上面的t2表第三条记录前面的id是NULL,不是很好看,想修改成3,怎么做呢,请看下面的实例:
//此语句的前半部分“update t2 set id=3”意思是,将t2表的id设置成3,那么问题来了,id下面有五条记录,我们只想修改其中的一条,此时就要用到where子句,告诉数据库,我想修改的是name等于www.qingsword.com的那一条,所以这一句翻译就是“我想将name等于www.qingsword.com的那条记录的id,修改成3” //where后面的判断条件必须具有唯一性,比如此时如果id=1和id=2的name字段都是www.qingsword.com,那么他们的id都将被修改成3(想想上面那句翻译),要想具有唯一性,就需要用到索引或主键,这一部分后面的文章会介绍,这里先有这个概念就好 mysql> update t2 set id=3 where name='www.qingsword.com'; mysql> select * from t2; +------+-------------------+ | id | name | +------+-------------------+ | 1 | qingsword | | 2 | qingsword.com | | 3 | www.qingsword.com | | 4 | qing | | 5 | sword | +------+-------------------+ //这种修改方法是具有“推广性”的,可以更改任意字段的数据,只要where后面的判断具有唯一性,下面是另外一个例子,将id=1的记录,name字段数据改成helloworld mysql> update t2 set name='helloworld' where id=1; mysql> select * from t2; +------+-------------------+ | id | name | +------+-------------------+ | 1 | helloworld | | 2 | qingsword.com | | 3 | www.qingsword.com | | 4 | qing | | 5 | sword | +------+-------------------+ //同理,where子句也是具有“推广性”的,比如上面的select语句是显示t2整张表的数据,但如果这张表非常大,显示的数据太多会给系统带来性能上的负担,我们可以通过筛选,只显示某条记录,比如: mysql> select * from t2 where id=3; +------+-------------------+ | id | name | +------+-------------------+ | 3 | www.qingsword.com | +------+-------------------+
where子句查询在后面的文章会详细介绍。
删除记录实例:
//删除t2表中id=4或id=5的记录 mysql> delete from t2 where id=4 or id=5; mysql> select * from t2; +------+-------------------+ | id | name | +------+-------------------+ | 1 | helloworld | | 2 | qingsword.com | | 3 | www.qingsword.com | +------+-------------------+ //如果不添加where子句筛选,那么就是清空整张表(危险操作) mysql> delete from t2; //查不到任何数据了 mysql> select * from t2; Empty set (0.00 sec)
[**] 注:如文中未特别声明转载请注明出自:QingSword.COM