MySQL——插入、更新、删除数据

我们吧检索单独拉出去,是因为在JDBC中对于检索的处理,和对于插入,更新,删除操作是不同的。现在我们将分别介绍MySQL的INSERT插入语句,UPDATE更新语句,DELETE删除语句。

part 1 插入数据

SQL语句中,INSERT是用来插入的(或添加),插入或添加一个行到数据库中。有以下几种方式:
1.插入完整的行;
2.插入行的一部分;
3.插入多行;
4.插入某些查询结果;

1.插入完整的行:

INSERT INTO git VALUES('min',5,6);

此例子插入一个新行到表中,粗出到每个列中的数据,在VALUES中依次给出,对每个列我们必须提供一个值,如果说插入的这一行,有一些列的值是他不具备的,我们可以定义他的这一行的这一列的值为 NULL(假定数据库制定的表匀速我们制定空值)。

各个列必须以它们在表定义中出现的词素填充!刚刚描述过,如果我们不想给他一个值,但是规定我们又不能省略,那我们可以给他一个空值NULL

这样的语法虽然很简答,但是并不安全,应该尽量避免使用!

更安全的方法如下,就是麻烦些:

INSERT INTO git(NAME,git_id,state) VALUES('bi',6,4);

显而易见,现在我们在表名后,明确指出了列名,在插入时候,VALUES中第一个值对应第一个列名,第二个值对应第二个列名,以此类推。

如果说表中有哪一列,设置的时候,设置为允许为NULL,比如我们上面的state列,那我们就可以这样:

INSERT INTO git(NAME,git_id) VALUES('wem',7);

看见了吗?这就是列省略。虽然表中确实有state这一项,但是我们因为他允许为空,所以在插入式都没有去搭理他,这也是可以的。

TIP 1 仔细地给出值:
不管使用那种INSERT语法,都必须给出VALUES正确的数目。如果不提供列名,则必须给每个列表提供一个值;如果提供列名,则必须对每个列出的列给出一个值。

TIP 2 列省略:
如果表的定义允许,则可以在INSERT操作中省略这些列,如果允许呢?满足如下某个条件:
1.该列定义为NULL值(无值或空值);
2.在表定义中给出默认值。这表示如果不给出值,将使用默认值。

TIP 3 提高整体性能:
在数据库中,我们经常被客户访问,INSERT操作可能是非常耗时地,而且他可能降低等待处理的SELECT语句的性能。

所以如果我们的数据检索更重要一些(大部分情况),那我们可以通过在INSERT和INTO之间添加关键字 LOW_PRIORITY,来只是降低INSERT语句的优先级。

2.插入多个行:

INSERT可以插入一行到一个表中。但如果你想插入多个行怎么办?可以使用多条INSERT,这是当然的,但是我们也可以一次提交他们:

INSERT INTO git(NAME,git_id) VALUES('wen',8),('xiao',9);

类似这样,单条的INSERT语句有多组值,没组织用一堆圆括号括起来,用逗号分隔。

3.插入检索出的数据

INSERT一般用来给表插入一个指定列值的行。但是INSERT还存在另一种形式,就是我们可以将一条SELECT语句的结果插入表中。这就是我们说的 INSERT SELECT。

INSERT INTO git (name, git_id)
    SELECT name,
        code_id
    FROM
        coder
    WHERE code_id = 25;

part 2 更新和删除数据

1.更新数据

为了更新表中数据,我们可以使用UPDATE语句。可采用两种方式使用UPDATE:
①更新表中特定行
②更新表中所有行

我们先来看更行特定行:

UPDATE coder SET name='er',code_ID=20 WHERE code_id = 23; 

UPDATE语句总是以要更新的表的名字开始。在此例子中,要更新的表的名字为coder。 我们可以看见,在更新多个列的时候,只需要使用单个SET命令,每个“列=值”对之间用逗号分隔(最后一列不用逗号)。

TIP 1 不要省略WHERE子句:在使用的时候,如果我们不忘记了增加WHERE条件,就会更行表中的所有行。另外我们其实还是可以限制和控制UPDATE语句的使用的

TIP 2 在UPDATE语句中使用子查询: UPDATE语句可以使用子查询,使得能用SELECT语句检索出的数据更新列数据

另外!!! 如果我们想要删除某个列!!!注意!是列! 我们可以设置这一行的这一列为空:

UPDATE coder SET name = null WHERE coder_ID = 1

part 3 删除数据

为了从一个表中删除数据,我们可以使用DELETE语句。可以用两种方式使用你DELETE:
1.从表中删除特定的行;
2.从表中删除所有的行;

在此强调!我们删除列,使用UPDATE语句将,某一列设置为空。

如果不是为了删除整行,就一定要记得使用WHERE子句。

DELETE FROM coders WHERE coder_ID = 1

DELETE删除整行而不是删除列。

part 4 一些建议
1.除非是确实打算更新或删除一整行,否则绝对不要使用不带WHERE的UPDATE或DELETE句子
2.保证每个表都有主键!尽情利用我们的WHERE子句功能;
3.要进行UPDATE 和 DELETE 语句前,我们应该先用SELECT语句进行检测,保证他过滤的是正确的记录

猜你喜欢

转载自blog.csdn.net/qq_36120793/article/details/78859121