6 .数据库-增删改

6 .数据库-增删改

1.添加数据

MySQL用INSERT语句向数据表中添加数据,且添加方式有3种,分别是:

为表中的所有字段添加数据、为表中的指定字段添加数据、为表中添加多条数据。

 

1.1为表中全部字段添加数据:

通常情况下 ,都添加所有字段的数据,为表中全部字段添加数据有两种INSERT语句:
      

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

主义字段和值的对应 还有 就是类型要对应即可

       例: 在tb_bihu 这个表中用此方法插入一个完全的数据:

INSERT INTO tb_bihu(id,name,sex,age) VALUES(1,'Hgy',1,18);

可以看出 这个方法括号中都包含了所有的字段

 

       第二种语法是不指定字段 直接往里面写 但是呢 写入的字段和类型一定要一一对应!

 

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

例: 在tb_bihu 这个表中用此方法插入一个完全的数据:

INSERT INTO tb_bihu values(2,'hjy',0,20);

 

 

 

 

1.2   为表中的指定字段添加数据

为表中的指定字段添加数据 ,如果其他没选中的那么就赋予默认值DEFAULT如果没设置的话一般为NULL.

       语法格式:

l         INSERT INTO 表名(字段1,字段3,…)
VALUE(值1, 值3,…);

还是老样子 那些该一一对应的还是得一一对应

 

我们尝试一下 在tb_bihu这个表中 我们直插入id  和  age  其他不插入 看下会默认值是什么:

语句:INSERT INTO tb_bihu(id,age) VALUES(3,21);

结果:3 NULL NULL    21

 

如果你设置了DEFAULT默认值的话 那么他就会按照默认值去设置

 

       这里设置一下 这个 默认值 DROP掉之前的 tb_bihu 表 然后新建一个:

CREATE TABLE `tb_bihu` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `name` varchar(255) NOT NULL DEFAULT '未定义',

  `sex` char(1) NOT NULL DEFAULT '1',

  `age` char(2) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

可以发现 除了id 和 age  name  和 sex 都设置了默认值 接下来我们重新运行:

语句:INSERT INTO tb_bihu(id,age) VALUES(3,21);

结果:3 未定义   1     21

 

 

l  多学一招:

INSERT 还有一种语法:

INSERT INTO 表名

SET 字段名1=值1[,字段名2=值2,… ];

 

最后一个字段是没逗号的 用分号结束即可。

 

例:用此方法在tb_bihu这个表插入指定数据:

INSERT INTO tb_bihu

set id = 1,name = 'zhangsan',age = 22;

      

那些没插入的会按照默认值去自动填写。

 

 

 

1.3   添加多条数据

上述的那些一条条 效率太慢 现在我们讲同时添加多条语句:

语法格式:

 

INSERT INTO 表名[ (字段名1, 字段名2,…) ]

VALUES (值1,值2,…), (值1,值2,…),

 (值1,值2,…);

      

       但一个程序员 不知道中括号是可选 那就太失败了啊!

 

       例:向tb_bihu这个表插入三条语句:

INSERT INTO tb_bihu

VALUES (1,'hgy','1','18'),(2,'hjy','0','20'),(3,'zs','1','22');

 

 

 

 

这是插入多条语句 并且 不指定字段名的形式插入,但是一定要为全部字段插入!

 

接下来演示 为指定字段插入 ,但其他未指定的字段的一样会按照默认约束插入值:

例:向tb_bihu这个表插入三条指定字段的语句:

 

INSERT INTO tb_bihu(name,age)

VALUES ('lisi',23),('wangwu',24),('zhaoliu',22);

 

增加就讲那么多 用的最多的还是插入多条!!! 多点练习即可。

 

 

 

  1. 更新数据

如果信息错了你就改信息即可:那么就要用到UPDATE语句来更新修改表中的记录了!

语法格式:

       UPDATE 表名

       SET 字段名1 = 值1[, 字段名2 = 值2,…]

       [ WHERE 条件表达式 ]

 

2.1更新部分数据:(例如更新tb_bihu表中id为1的 name 和 age):

分析:所以id=1是条件 要更改的是 name 和 age 表是tb_bihu:

UPDATE tb_bihu

SET name = 'UPDATE',age = 30 WHERE id = 1;

 

执行后 会发现 表中id为1 的记录 的名字被换成了UPDATE 年龄换成了 30

 

条件表达式不仅如此 还有 > < != like 等等等等… 这里讲的是最基础的 后面也会讲通配符

 

除了更新  还可以查询也有 语句:

比如查询id小于3的记录:

SELECT *FROM tb_bihu WHERE id<3;

 

2.2更新全部字段的记录:

如果你用UPDATE语句来更新数据 且 你不用WHERE语句的话 那么它会自动更新你设置的所有字段的值!!!

 

 

例:更新tb_bihu这个表的全部 age 为18:

UPDATE tb_bihu SET age = 18;

 

 

  1. 删除数据

删除数据指的是删除表中指定的记录 或者 删除表中的全部记录:

用DELETE语句来删除记录:

3.1语法格式:

DELETE FROM 表名 [ WHERE 条件表达式 ]

表名是指要删除那个表中的数据

WHERE不用多说 只有瞒住这个这里面的条件才删除

例:删除id为1的这条记录:

 

DELETE FROM tb_bihu WHERE id = 1;

 

其他表达式我就不说了  自己知道啊!

 

 

3.2 删除全部的记录( 清空表中全部数据)

其实和UPDATE一样 不加WHERE即可:

例:删除tb_bihu表中全部数据:

DELETE FROM tb_bihu;

 

3.3多学一招

用TRUNCATE关键字删除表中的数据:

语法格式:

TRUNCATE [TABLE] 表名;

例:用TRUNCATE关键字删除tb_bihu中全部数据

TRUNCATE TABLE tb_bihu;

语法很简单啊 但是有区别!!!

 

TRUNCATE 和 DELETE删除表中记录的区别:

  1. DELETE的语句是DML语句 而 TRUNCATE 的语句是DDL语句
  2. DELETE 的语句可以跟 WHERE 表达式而删除指定记录,TRUNCATE只能删除全部记录
  3. !!! 这条重点: 你用 DELETE删除全部的数据 在向表中加数据的时候 如果有字段自增长(例如ID) 会从上次删除的字段最大值+1;  而TRUNCATE 则不会,他会清空,当你新加入记录时 他会从1开始.  这个要知道!!!

 

 

                 数据表的 增删改  差不多了啊! 慢慢来 还年轻呢!

上一篇:mysql查询某些数据的最小值


下一篇:MYSQL中NULL空值与空字符串区别详解及代码