MySql数据库(表数据的增、删、改操作)8

8.1 插入数据

在MySQL 中,INSERT 语句有3种语法格式,分别是 INSERT…VALUES 语句、INSERT…SET 语句和INSERT…SELECT语句。

8.1.1  使用INSERT…VALUES语句插入数据

是 INSERT 语句的最常用的语法格式。它的语法格式如下。

INSERT  [LOW_PRIORITY  DELAYED | HIGH_PRIORITY] [ IGNORE ] INTO 数据表名 [(字段名1,…,字段名n)]

 VALUES({ 值1  | DEFAULT }, …, {值n | DEFAULT}), ... , (...)

[ON DUPLICATE KEY UPDATE 字段名=表达式 , …]

参数说明如下:

(1)[LOW_PRIORITY|DELAYED|HIGH_PRIORITY]:可选项,其中,LOW_PRIORITY用于指示MySQL降低 INSERT、DELETE 或UPDATE 操作执行的优先级;DELAYED用于指定 MySQL服务器把待插入的行数据放到一个缓冲器中,直到待插数据的表空闲时,才真正在表中插入数据行;HIGH_PRIORITY 用于指定INSERT 和 SELECT 操作优先执行的。

(2)[IGNORE]:可选项,表示在执行INSERT 语句时,所出现的错误都会被当作警告处理。

(3)[(字段名1,…,字段名n)]:可选项,当不指定该选项时,表示要向表中所有列插入数据,否则表示向数据表的指定列插入数据。

(4) VALUES( { 值1  | DEFAULT }, …, {值n | DEFAULT} ) , ... , (...):必选项,用于指定需要插入的数据,其顺序必须与字段的顺序相对应。其中的每一列的数据可以是一个常量、变量、表达式或者NULL,但是其数据类型要与对应的字段类型相匹配;也可以直接使用DEFAULT 关键字,表示为该列插入默认值,但是使用的前提是已经明确指定了默认值,否则会出错。

(5)ON DUPLICATE KEY UPDATE子句:可选项,用于指定向表中插入行时,如果导致 UNIQUEKEY 或 PRIMARY KEY出现重复值,系统会根据UPDATE后的语句修改表中原有行数据。

INSERT···VALUES 语句在使用时,通常有3种方式插入数据:

1、插入完整数据;

2、插入数据记录的一部分:向数据表中插入数据记录的一部分,也就是只插入表的一行中的某几个字段的值;

3、插入多条记录:一次性插入多条数据记录。

操作题: 1、通过 INSERT … VALUES 语句向数据表 tb_admin 中插入一条完整的数据。 2、通过 INSERT … VALUES 语句向数据表 tb_admin 中插入数据记录的一部分。 3、通过 INSERT … VALUES 语句向数据表 tb_admin 中一次性插入多条记录。

8.1.2  使用INSERT…SET语句插入数据

在 MySQL中,除了可以使用 INSERT … VALUES 语句插入数据外,还可以使用 INSERT…SET 语句插入数据。这种语法格式用于通过直接给表中的某些字段指定对应的值来实现插入指定数据,对于未指定值的字段将采用默认值进行添加。

INSERT…SET 语句的语法格式如下。

INSERT INTO 数据表名  SET  字段名1 = { 值 | DEFAULT } , … , 字段名n={ 值n | DEFAULT }

参数说明如下:

SET 字段名1 = { 值 | DEFAULT } , … , 字段名n={ 值n | DEFAULT }:用于给数据表中的某些字段设置要插入的值。

操作题:

1、通过 INSERT … SET 语句向数据表 tb_admin 中插入一条记录。

8.1.3  插入查询结果

在MySQL 中,可以通过 INSERT … SELECT 语句来实现将查询结果插入到指定的数据表中。 INSERT … SET 语句的语法格式如下。

INSERT  INTO  数据表名    [ (字段名1, … ,字段名n) ]  SELECT  …

操作题:

1、从数据表 tb_mrbook 中查询出 user 和 pass 字段的值,插入到数据表 tb_admin 中。

8.2  修改数据

要执行修改的操作可以使用UPDATE语句,语法如下。

UPDATE  数据表名   SET   字段1=值1 [,字段2=值2,…]

[WHERE 条件]  [ORDER BY …]  [LIMIT 行数];

参数说明如下:

(1)SET子句:必选项,用于指定表中要修改的字段名及其字段值。其中的值可以是表达式,也可以是该字段所对应的默认值。如果指定默认值,那么使用关键字DEFAULT 指定。

(2) [ WHERE 条件 ] :可选项,用于指定表中要修改的行,如果不指定该子句,那么UPDATE语句会更新表中的所有行。

(3) [ ORDER BY …] :可选项,用于指定表中的行被修改的次序。

(4)[ LIMIT 行数 ]:可选项,用于指定被修改的行数。

8.3 删除数据

在数据库中,有些数据已经失去意义或者错误时就需要将它们删除,在 MySQL 中,可以便用DELETE 语句或者TRUNCATE TABLE 语句删除表中的一行或多行数据,下面分别进行介绍。

8.3.1  通过DELETE语句删除数据

通过DELETE语句删除数据的基本语法格式如下。

DELETE  FROM 数据表名

  [WHERE 条件]  [ORDER BY…]  [LIMIT  行数]; 参数说明如下。

(1)数据表名 :用于指定要删除的数据的表名。

(2)[ WHERE  条件 ] :可选项,用于指定表中要删除的行,如果不指定该子句,那么DELETE 语句会删除表中的所有行。

(3)[ ORDER BY  … ]:可选项,用于指定表中的行被删除的次序。

(4) [ LIMIT  行数 ]:可选项,用于指定被删除的行数。

8.3.2  通过 TRUNCATE TABLE 语句删除数据

在删除数据时,如果要从表中删除所有的行,通过 TRUNCATE TABLE 语句删除数据的基本语法格式如下。

TRUNCATE  [ TABLE ] 数据表名;

在上面的语法中,数据表名表示的就是删除的数据表的表名,也可以使用“数据库名.数据表名”来指定该数据表隶属于哪个数据库。

操作题:

1、删除管理员数据表 tb_admin 中用户名为 mr 的记录信息。 2、使用 TRUNCATE TABLE 语句清空管理员数据表tb_admin。

DELETE 语句和 TRUNCATE TABLE 语句的区别如下。

(1)使用TRUNCATE TABLE 语句后,表中的AUTO_INCREMENT计数器将被重新设置为该列的初始值。

(2)对于参与了索引和视图的表,不能使用TRUNCATE TABLE 语句来删除数据,而应用使用DELETE语句。

(3)TRUNCATE TABLE 操作与 DELETE 操作使用的系统和事务日志资源少。DELETE 语句每删除一行都会在事务日志中添加一行记录,而TRUNCATE TABLE 语句是通过释放存储表数据所用的数据页来删除数据的,因此只在事务日志中记录页的释放。

实践与练习

1、编写SQL语句,先选择数据表所在的数据库,然后再应用INSERT····VALUES语句实现向数据表 tb_admin 中插入一条记录,只包括 user、password 和 createtime字段的值。

2、编写SQL语句,使用DELETE 语句清空管理员数据表td_admin。

你可能感兴趣的:(mysql,数据库)