MySQL基本操做三:数据的插入、更新、删除

介绍MySQL中数据的插入,更新,删除操做前,我先建一个表。方便后面举例子。这是一个学生信息表:web

CREATE TABLE tab_student( Name CHAR(20), StuID VARCHAR(20), Rank INT );

建好之后,长成这样:
sql


1. 插入数据

1.1 插入完整数据记录

语法形式以下(写成一行就行,我写两行是为了看起来方便):数据库

INSERT INTO table_name (att_1, att_2, ..., att_n) 
                VALUES (val_1, val_2, ..., val_n);

以最初咱们建立好的学生信息表为例,如今插入学生Alice,学号为01,排名2:svg

INSERT INTO tab_student (Name, StuID, Rank) VALUES ('Alice', '01', 2);

完成插入后,能够按下面的语句查询插入的数据记录:spa

SELECT * FROM tab_student;

获得的结果以下图所示:.net


有关数据查询的内容,我会在下一篇博客中详细说,如今有个大概印象就行。3d

其实,除了上述这种方法外,MySQL还提供了一种更加简洁的插入数据的方式,即省略字段名称,直接插入值。语法形式以下:code

INSERT INTO table_name VALUES (val_1, val_2, ..., val_n);

可是注意,此时插入的值必定要与表中定义的字段保持顺序上的一致。xml

1.2 插入数据记录的一部分

除了插入完整的记录,也能够在数据库中插入数据记录的一部分。当有些字段已经被设置了默认值或者能够由事先自动增长的约束生成(这部份内容可参考以前的博文 MySQL基本操做一:数据库和表 中“表的约束”部分)时,咱们天然能够省略对这一部分字段的插入。blog

INSERT INTO table_name (att_1, att_2, ..., att_k) 
                VALUES (val_1, val_2, ..., val_k);

注:代码写成一行就行,我写两行是为了看起来方便

其实语法上与插入完整的数据记录并无什么分别,仍是要求属性值与属性(字段)相对应,只不过能够只插入一部分字段。仍是上面的例子,我如今插入Bob的数据,可是省略他的排名:

INSERT INTO tab_student (Name, StuID) VALUES ('Bob', '02');

能够看到,此时,Bob的排名被置为空。若是事先定义了这个字段为自动增长或默认,那就会显示自动增长的值或默认值。


1.3 插入多条数据记录

语法形式以下(写成一行就行,我写3行是为了看起来方便):

INSERT INTO table_name (att_1, att_2, ..., att_n) 
                VALUES (val_11, val_12, ..., val_1n), 
                (val_21, val_22, ..., val_2n), ...;

给多个属性值的元组便可,很少解释了。

也能够插入多条数据记录的一部分(写成一行就行,我写3行是为了看起来方便):

INSERT INTO table_name (att_1, att_2, ..., att_k) 
                VALUES (val_11, val_12, ..., val_1k), 
                (val_21, val_22, ..., val_2k), ...;

道理与插入单条数据记录的一部分同样,不举例子了。

1.4 插入查询结果

MySQL提供了能够将另外一个表中的查询结果插入本表,以实现数据记录的复制。语法形式以下:

INSERT INTO table_name1 (att_11, att_12, ..., att_1n) 
       SELECT (att_21, att_22, ..., att_2n) FROM table_name2 WHERE ... ;

其实从SELECT开始后面的就是一个查询语句,咱们能够把从table_name2中的一条或多条数据(能够看作是属性元组)插入table_name1

2. 更新数据

2.1 更新特定的数据记录

UPDATE语句更新数据。语法形式以下:

UPDATE table_name SET att_1 = val_1, att_2 = val_2 WHERE ....;

SET后面跟属性=属性值的等式,WHERE语句用来设定要被更新的数据记录的条件。

例如,一个学生表格数据以下:


咱们如今将Alice的排名改成3:

UPDATE tab_student SET Rank = 3 WHERE Name = 'Alice';

那表格变成了以下的样子:


2.2 更新全部数据记录

语法形式与更新特定的数据记录是一致的,为了能更新全部的数据记录,只须要去掉WHERE语句便可,或者令WHERE后面的条件知足表中全部的数据记录。

3. 删除数据

3.1 删除特定的数据记录

用关键字DELETE删除数据记录。注意删除数据库或者表咱们用的是关键字DROP。删除数据记录的语法形式以下:

DELETE FROM table_name WHERE ....;

其中,WHERE后面跟的是要被删除的数据所知足的条件。比方说上面那个学生表的例子,我如今要删除Bob的数据,那么应该写成这样:

DELETE FROM tab_student WHERE Name = 'Bob';

3.2 删除全部数据记录

与前面说的更新全部数据记录的道理是同样的,不要WHERE语句或者令WHERE语句的条件知足全部的数据记录。