DML(Data Manipulation Language)语句:
数据操作语句,用于处理增删改查数据库记录,常用关键字insert,delete,update,select等等。
主要是对数据库记录进行增,删,改,查的操作,开发的时候用得比较多,特别是查询语句,
以下对增删改做些简单的介绍,对于查询语句知识比较多,下篇单独分析。
准备工作:
先建一个t_user_main表,只是用于测试增删改。
create table t_user_main (通过show create table tablename \G;查看详情与上面手动建表sql有些区别,数据库给加上了默认的引擎,字符集,默认空等等。
f_userId int(10) NOT NULL AUTO_INCREMENT COMMENT '用户id,作为主键',
f_userName varchar(50) COMMENT '用户名',
f_age int(3) COMMENT '年龄',
PRIMARY KEY (f_userId)
) ;
1.插入记录
插入语法:
INSERT INTO tablename(field1,field2,......,fieldn) VALUES(value1,value2,......valuen);
当我们去掉tablename后的(field1,field2,......,fieldn),表示默认为表的所有列。
指定列名插入:
sql语句:
insert into t_user_main(f_userId,f_userName,f_age)values(1,'one',25);
不指定列名插入:
sql语句:
insert into t_user_main values(2,'two',26);
含有可空字段,非空含有默认值,自增涨字段可以不用出现在insert中,不写就按默认值处理。
比如,f_userId是自增长得,就可以不在insert中出现,交给数据库自增长存值。
一次性插入多条:
语法:
INSERT INTO tablename(field1,field2,......fieldn)
VALUES
(record1_value1,record1_value2,......record1_valuen),
.......
(recoredn_value1,reocordn_value2,......recordn_valuen);
这样插入性能高。
sql举例:
insert into t_user_main(f_userName,f_age) values('four',28),('five',29),('six',30),('seven',31);
插入后结果通过select可以查看是否成功。
2.删除记录
删除语法:
DELETE FROM tablename [WHERE CONDITION];
注意:不加条件限制,无论是单表还是多表,都会删除表的所有记录,
如果数据库配置事务是手动提交,还能回滚挽救,否则,会后悔,操作要小心。
先指定条件删除一条数据:
sql语句:delete from t_user_main where f_userId = 7;
对于删除表记录还有个语法:
TRUNCATE TABLE t_user_main;
这个比较狠,直接将表的记录全部清除,没有回滚的余地,除非你狠这个表,一般不要用。
删的时候很爽,死得确很惨。
3.更新记录
更新语法:
UPDATE tablename SET filed1 = value1,field2 = value2,......fieldn = valuen [WHERE CONDITION];
我们也可以进行多表更新,不指定条件更新,当不指定条件时也需要小心行事。