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);
增加就讲那么多 用的最多的还是插入多条!!! 多点练习即可。
- 更新数据
如果信息错了你就改信息即可:那么就要用到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;
- 删除数据
删除数据指的是删除表中指定的记录 或者 删除表中的全部记录:
用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删除表中记录的区别:
- DELETE的语句是DML语句 而 TRUNCATE 的语句是DDL语句
- DELETE 的语句可以跟 WHERE 表达式而删除指定记录,TRUNCATE只能删除全部记录
- !!! 这条重点: 你用 DELETE删除全部的数据 在向表中加数据的时候 如果有字段自增长(例如ID) 会从上次删除的字段最大值+1; 而TRUNCATE 则不会,他会清空,当你新加入记录时 他会从1开始. 这个要知道!!!
数据表的 增删改 差不多了啊! 慢慢来 还年轻呢!