MySQL-添加、更新与删除数据

想要操作数据库中的数据,必须通过MySQL提供的数据库操作语言来实现。

1.添加数据

MySQL使用 INSERT 语句向数据表中添加数据,并且根据添加方式的不同分为三种,分别是为表的所有字段添加数据、为表的指定字段添加数据、同时添加多条记录。
1.1为表中所有字段添加数据
(1)INSERT 语句中指定所有字段名
向表中添加新纪录时,可以在INSETR 语句中列出表的所有字段名,其语法格式如下:

INSERT INTO 表名(字段名1,字段名2,……) 
VALUES (值1,值2,……);

“字段名1,字段名2,……”表示数据表中的字段名称,此处必须列出表中所有字段的名称。
"值1,值2,……"表示每个字段的值,每个值的顺序,类型必须与对应的字段相匹配。
需要注意的是,使用INSERT语句添加记录时,表名后的字段顺序可以与其在表中定义的顺序不一致,它们只需要与VALUES中值的顺序一致即可。
(2)INSERT 语句中不指定字段名
在MySQL中,可以通过不指定字段名的方式添加记录,基本语法格式如下:INSERT INTO 表名 VALUES(值1,值2,……);
需要注意的是,由于语句中咩有指定字段名,添加的值的顺序必须按照字段在表中定义的顺序。
1.2为表的指定字段添加数据
为表的指定字段添加数据就是在INSERT语句中只向部分字段中添加值,而其它字段的值为表定义时的默认值。
基本语法格式如下:
INSERT INTO 表名 (字段名1,字段名2,……) VALUES (值1,值2,……);

“字段名1,字段名2,……”表示表中字段名称,此次只指定表中部分字段的名称。
"值1,值2,……"表示指定字段的值,每个值的顺序、类型必须与对应的字段相匹配。
为指定字段添加数据时,指定字段也无需与其在表中定义的顺序一致,只要与VALUES中值的顺序一致即可。

INSERT 语句中还有一种语法格式可以为表中指定的字段或全部字段添加数据,其格式如下:INSERT INTO 表名 SET 字段名1=值1,字段名2=值2,……;

1.3同时添加多条记录
在MySQL中提供了使用一条INSERT语句同时添加多条记录的功能,其语法格式如下:INSERT INTO 表名 (字段名1,字段名2,……) VALUES (值1,值2,……),(值1,值2,……),(值1,值2,……),……(值1,值2,……);
在上述格式中‘字段名1,字段名2,……’是可选的,用于指定插入的字段名。
和添加单条记录一样,如果不指定字段名,必须为每个字段添加数据,如果指定了某个字段,只需要为指定的字段添加数据。

2.更新数据

MySQL中使用UPDATE更新数据,基本语法格式如下:`UPDATE 表名 SET 字段名1=值1,字段名2=值2,…… WHERE 条件表达式;
2.1UPDATE更新部分数据
更新部分数据是指根据指定条件更新表中的某一条或者某几条数据,需要使用WHERE语句来指定更新记录的条件。
如果表中有多条记录满足WHERE句中的条件表达式,则满足条件的记录都会发生更新。
2.2UPDATE更新全部数据
在UPDATAE语句中如果没有使用WHERE子句,则会将表中所有记录的指定字段都进行更新。

3.删除数据

删除数据是指对表中存在的记录进行删除,MySQL中使用DELETE语句来删除表中的记录,语法格式如下:DELETE FROM 表名 [WHERE 条件表达式];
'[WHERE 条件表达式];'为可选参数,用于指定删除的条件,满足条件的记录都会被删除。
3.1 DELETE删除部分数据
删除部分数据是指根据指定条件删除表中的某一条或者某几条记录,需要使用WHERE子句来指定删除记录的条件。
3.2 DELETE删除全部数据
在DELETE语句中如果没有使用WHERE子句,则会将表中的所有记录都删除。

使用关键字TRUNCATE也可以删除表中数据

在MySQL中还有一种方式可以用来删除表中的所有记录,这种方式需要用到关键字TRUNCATE,语法格式如下:TRUNCATE TABLE 表名;
TRUNCATE和DELETE语句都可以实现删除表中所有数据的功能,但是两者有一定的区别。
(1)DELETE语句是DML语句,TRUNCATE语句通常被认为是DDL语句。
(2)DELELTE语句后面可以跟WHERE子句,通过指定WHERE子句中的条件表达式只删除满足条件的部分记录,而TRUNCATE语句只能用于删除表中的所有记录。
(3)使用TRUNCATE语句删除表中的数据后,再次向表中添加记录时,自动增加的默认初始值重新由1开始,而使用DELETE语句删除表中的所有记录后,再次向表中添加数据时,自动增加字段的值为删除时该字段的最大值加1。
(4)使用DELETE语句时,每删除一条记录都会在日志中记录,而使用TRUNCATE语句时不会在日志中记录删除的内容,因此使用TRUNCATE语句的执行效率比DELETE语句要高。
可以使用SELETE *F ROM 表名;查看表中的内容。

你可能感兴趣的:(MySQL)