MYSQL数据操做(CRUD)(一):插入,删除和更新

插入数据spa

①插入一行记录开发

INSERT INTO TABLE_NAME(列名1,列名2,.......) 字符串

  VALUES(值1,值2,.......);date

②插入多行记录数据类型

INSERT INTO TABLE_NAME(列名1,列名2,.......)总结

  VALUES(值1,值2,.......),
数据

  ...........查询

  VALUES(值1,值2,.......);co

③插入查询结果(多是结果集)字符

INSERT INTO TABLE_NAME(列名1,列名2,.......)

    SELECT(列名1,列名2,.......)

        FROM TABLE_NAME2

            WHERE .........


注意: 

1.  若是用TABLE_NAME(列名1,列名2,.......) ,那么对于语句里面的字段参数:

顺序能够自定义,不用和表的字段顺序一致;

要插入哪些字段也能够自定义,不用把表的全部字段都写上。

2.  VALUES(值1,值2,.......)语句里的赋值参数,会和上面的字段参数一一对应。

并且咱们写要插入的值的时候,必须保证所插入的值和对应字段的数据类型一致,好比字段name数据类型是VARCHAR,那么咱们插入的值就必须是字符串,即单引号   'xxx' ;再好比,字段参数是student(name,age),咱们插入的值不能是         VALUES( ,12),若是想插入空值必须用NULL。

总结一下,一旦咱们选择了要插入的字段,咱们就必须保证要插入的数值和选择的字段的个数,顺序,类型一致。

举个例子,假设如今有表student(id,name,age,sex),咱们选择的要INSERT INTO 的字段是student(name,age),那么VALUES的时候绝对不能出现如下四种状况:

VALUES(  ,12) 插入了MYSQL不识别的值,想插入空值必须用NULL。

VALUES( '王一')  插入的数值和选择的字段的个数不一样

VALUES(12, '王一')  字段参数的顺序和插入数值的顺序不一样,不能一一对应

VALUES('王一', '十二') 插入数值和字段类型不一样

3.  上面提到咱们能够只选择部分字段进行插入,那么那些未选择的字段会怎么样呢?

①在具体开发中,有自动增长约束和默认值约束的字段咱们通常会把他们忽略,不须要咱们手动赋值,MYSQL会自动给其赋值。

②有时,有些字段暂时是多余的,假设这些字段既没有默认值约束,也没有自动增长约束,同时咱们又不想删掉这些字段,那么咱们会不选择这些字段,让,MYSQL给他们自动插入NULL值。

4.  若是咱们想选择全部字段,把全部字段都写一遍就太麻烦了,咱们能够忽略字段参数,直接用

INSERT INTO TABLE_NAME

     ...........

        ...........

假设有表student(id,name,age,sex),上面的语句INSERT INTO student,就至关于INSERT INTO student(id,name,age,sex)。

可是这种用法虽然方便,但不灵活,这种用法就只能表示表的全部字段,且字段顺序和表的字段顺序同样。

5.插入查询结果其实和插入记录其实差很少,只不过一个是SELECT(列名1,列名2,.......),一个是VALUES(值1,值2,.......),SELECT里面的参数和VALUES的参数同样,都适用且必须遵照上面4条规则。

假设有表student(id,name,age,sex)和表children(id,sex,age,name)

INSERT INTO student(name,age,sex)

    SELECT  sex,age,name  #字段参数的顺序和插入数值的顺序不一样,不能一一对应

        FROM children  

            WHERE  age>7;

这样是不行的,MYSQL尚未智能到帮你自动匹配字段。


删除数据

Delete from 表名

 [where条件];

注意:通常都会加where条件,没有条件的话,整个表的数据都会被删除。删除操做需谨慎,此操做不可逆

修改数据

Update 表名 set 字段 = 值 

[where条件]; 

注意:通常都会加where条件,没有条件的话,会修改全部记录。更新操做需谨慎,此操做不可逆