MySql(3)------SQL基础之DML(Data Manipulation Language),不包含select语句

时间:2021-10-21 18:46:23

DML(Data Manipulation Language)语句:

数据操作语句,用于处理增删改查数据库记录,常用关键字insert,delete,update,select等等。

主要是对数据库记录进行增,删,改,查的操作,开发的时候用得比较多,特别是查询语句,

以下对增删改做些简单的介绍,对于查询语句知识比较多,下篇单独分析。

准备工作:

先建一个t_user_main表,只是用于测试增删改。

create table t_user_main (
f_userId int(10) NOT NULL AUTO_INCREMENT COMMENT '用户id,作为主键',
f_userName varchar(50) COMMENT '用户名',
f_age int(3) COMMENT '年龄',
PRIMARY KEY (f_userId)
) ;
通过show create table tablename \G;查看详情与上面手动建表sql有些区别,数据库给加上了默认的引擎,字符集,默认空等等。

MySql(3)------SQL基础之DML(Data Manipulation Language),不包含select语句

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);

MySql(3)------SQL基础之DML(Data Manipulation Language),不包含select语句

不指定列名插入:

sql语句:

insert into t_user_main values(2,'two',26);

MySql(3)------SQL基础之DML(Data Manipulation Language),不包含select语句

含有可空字段,非空含有默认值,自增涨字段可以不用出现在insert中,不写就按默认值处理。

比如,f_userId是自增长得,就可以不在insert中出现,交给数据库自增长存值。

MySql(3)------SQL基础之DML(Data Manipulation Language),不包含select语句

一次性插入多条:

语法:

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;

MySql(3)------SQL基础之DML(Data Manipulation Language),不包含select语句

对于删除表记录还有个语法:

TRUNCATE TABLE t_user_main;

这个比较狠,直接将表的记录全部清除,没有回滚的余地,除非你狠这个表,一般不要用。

删的时候很爽,死得确很惨。


3.更新记录

更新语法:

UPDATE tablename SET filed1 = value1,field2 = value2,......fieldn = valuen [WHERE CONDITION];

MySql(3)------SQL基础之DML(Data Manipulation Language),不包含select语句

我们也可以进行多表更新,不指定条件更新,当不指定条件时也需要小心行事。