增删改查的增删改

查询( SELECT)语句:

增删改查的查之简单查询

增删改查的查之高级查询

01

NSERT INTO---向表里插入数据

格式一:INSERT INTO 表名(字段名1,字段名2,...字段名n) VALUES (值1,值2,...值n);

注意事项:

1.字段列表与值列表成一一对应的关系

2.字段列表可以少,但是值列表要与字段列表同增同减

3.顺序可变,但要一一对应

班级(student)表结构:

(学号(s_id),姓名(name),性别(sex),年龄(age),手机号(phone),地址(address))

1.向student表中插入一条数据

INSERT INTO student(s_id,username,sex,age,phone,address)

VALUES(1,"TESTER","男",23,"13567554334","成都市高新区");

2.向student表中再插入一条数据

格式二:INSERT INTO 表名 VALUES (值1,值2,...值n);

规则:表名后可以不跟上字段列表,但是值列表中值必须与表结构中字段的顺序成一一对应的关系

(1)按规则插入数据

INSERT INTO student

VALUES(2,"TESTER1","男",24,"13567554335","成都市高新区1");

结果:插入成功

(2)将值列表中值1与值2互换

INSERT INTO student

VALUES("TESTER2",3,"女",25,"13567554336","成都市高新区3");

1366 - Incorrect integer value: 'TESTER2' for column 's_id' at row 1

结果:插入失败

失败原因:提示插入的数据类型与字段s_id不符

但是表名后面没有跟字段列表,VALUES后的值列表默认是从字段列表中的第一位插入

(3)值列表中遗漏值1数据

INSERT INTO student

VALUES("TESTER2","女",25,"13567554336","成都市高新区3");

1136 - Column count doesn't 'match value count at row 1

结果:插入失败

失败原因:提示值列表与字段列表不匹配

3.向student表再插入数据,跟上字段列表,但是字段列表不全

格式:INSERT INTO 表名(字段名1,字段名2,...字段名n) VALUES (值1,值2,...值n);

规则:1.字段列表与值列表成对应关系

2.字段列表顺序可变,但是字段列表的顺序必须与值列表的顺序一致

(1)插入数据,字段列表个数减少

INSERT INTO student (username,sex,age) VALUES("TEST12","女",31);

结果:插入成功

注意:字段列表顺序变化后,值列表的顺序跟着一起变

(2)插入数据,字段列表位置变化

INSERT INTO student (sex,username,age) VALUES("女","TEST13",31);

结果:插入成功

(3)插入数据,字段列表位置变化,列表不跟着变

INSERT INTO student (sex,username,age) VALUES("TEST14","女",31);

1406 - Data too long for column 'sex' at row 1

结果:插入失败

失败原因:提示插入的数据“TEST14”对字段sex来说数据太长

(4)插入数据,字段列表位置变化,列表不跟着变

INSERT INTO student (sex,username,age) VALUES("TE","女",31);

结果:插入成功

注意:虽然数据插入成功,但是数据显示与我们设想的不一致,sex字段的值有是“TE"的么?

结论:1.表名后面加完整字段列表,后面的值列表也必须完整,位置且与字段列表一一对应

2.表名不加字段列表,后面的值列表必须完整,位置且与字段列表一一对应

3.表名后加部分字段列表,值列表的值顺序要与字段列表的字段顺序和个数保持一致,同增同减,字段列表与值列表只要保持一致,可以只插入必填的数据

从以上三种方法插入数据,最推荐使用的是第一种

02

UPDATE --修改表中的数据

UPDATE格式:

UPDATE 表名称 SET 列名称=新值 WHERE 列名称=某值;

UPDATE ---表示修改表中的数据

表名称----表示要修改哪个表中的数据

SET 列名称=新值----表示被修改的数据的新值

WHERE 列名称=某值----条件语句,通过条件语句去确定表中被修改的数据

1.修改表中一条数据中的一个值

(1)将student表中id为2的学生,性别修改成女

UPDATE student SET sex ="女" WHERE s_id = 2;

(2)将address修改成西安,student表中id为8的学生

UPDATE student SET address = "西安" WHERE s_id = 8;

2.修改表中多条数据

(1)修改student表中年龄大于20,小于25的学生的家庭地址为西安

UPDATE student SET address = "西安"

WHERE age >20 AND age <25;

(2)修改student 表中年龄大于等于20,小于等于25的学生的家庭地址为成都高新区

方法一: UPDATE student SET address = "成都高新区"

WHERE age >=20 AND age <=25;

方法二:UPDATE student SET address = "高新区"

WHERE age BETWEEN 20 AND 25;

(3)修改student 表中年龄大于等于20,小于等于25,且性别为女的学生的家庭地址为大成都

UPDATE student SET addr = "大成都"

WHERE (age BETWEEN 20 AND 25) AND SEX = "女";

(4)修改st表中年龄大于等于20,小于等于25,或者性别为女的学生的家庭地址为大成都

UPDATE student SET addr = "小成都"

WHERE (age BETWEEN 20 AND 25) OR SEX = "女";

3.修改一条数据中多个值

(1)在student 表中ID为5 的学生,修改其姓名为"张三",性别为女

UPDATE student SET name = "张三" ,sex = "女"

WHERE s_id = 5;

4.修改表中某个列名称 或多个列名称 所有的数据

(1)修改student表中所有学生年龄为20

UPDATE student SET age = 20;

03

DELETE --- 删除表中的数据

DELETE格式:

DELETE FROM 表名 WHERE 列名称=某值;

(1)删除id为7的数据

DELETE FROM student WHERE s_id = 7;

(2)删除姓名为tester,分数为71的数据

DELETE FROM student WHERE name ='tester' AND score = '71';

(3)删除一组数据

删除分数小于70的数据

DELETE FROM score WHERE score < 70;

(4)删除整张表的数据

1.DELETE

格式:DELETE FROM 表名;

DELETE FROM student;

2.TRUNCATE

格式:TRUNCATE TABLE 表名;

TRUNCATE TABLE student;

区别:1.如果表中的数据有自动增长的,删除数据的同时也会将计数器清零

2.删除速度,DELETE比TRUNCATE慢

3.TRUNCATE只能删除整张表的数据,DELETE可以删除某条数据或某些数据。

SQL语言中针对数据操作的增删改查语句是软件测试人员的必备技能,作为软件测试人员一般与表结构打交道得少,操作最多的就是数据,虽然现在很多数据库远程工具都可以可视化操作数据,不需要语句,但这种方式操作慢且一次只能操作一条数据,如果是要做自动化测试就一定要用到sql语句。

原文发布于微信公众号 - 资深Tester(zishentester)

原文发表时间:2017-11-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员历小冰

Mysql探索(一):B-Tree索引

MySQL是目前业界最为流行的关系型数据库之一,而索引的优化也是数据库性能优化的关键之一。所以,充分地了解MySQL索引有助于提升开发人员对MySQL数...

24630
来自专栏文渊之博

探索SQL Server元数据(三):索引元数据

在第一篇中我介绍了如何访问元数据,元数据为什么在数据库里面,以及如何使用元数据。介绍了如何查出各种数据库对象的在数据库里面的名字。第二篇,我选择了触发器的主题,...

24210
来自专栏java一日一条

理解MySQL——索引与优化

写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记 录,DBMS的页面大小为4K...

8420
来自专栏Pythonista

Mysql基础

数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据...

26020
来自专栏逍遥剑客的游戏开发

汉字转成拼音首字母

51460
来自专栏PHP在线

mysql索引的类型和优缺点

现在来介绍了数据库索引,及其优、缺点。针对MySQL索引的特点、应用进行了详细的描述。分析了如何避免MySQL无法使用,如何使用EXPLAIN分析查询语句,如何...

40070
来自专栏抠抠空间

MySQL之表的约束

一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性 主要分为: PRIMARY KEY (PK) 标识该字段为该表的...

29860
来自专栏aoho求索

Mysql探索(一):B-Tree索引

MySQL是目前业界最为流行的关系型数据库之一,而索引的优化也是数据库性能优化的关键之一。所以,充分地了解MySQL索引有助于提升开发人员对MySQL数据库的使...

13310
来自专栏大数据

mysql联合索引详解

上一篇文章:mysql数据库索引优化 比较简单的是单列索引(b+tree)。遇到多条件查询时,不可避免会使用到多列索引。联合索引又叫复合索引。 b+tree结构...

2K90
来自专栏个人随笔

MySQL 关于索引那点事

索引 其实数据库中的数据是按页存放的 其实索引也是按页存放的 所以本质上索引也占硬盘空间(以最小的消耗,换取最大的利益) 索引是一种有效组合数据的方式!为快速...

30590

扫码关注云+社区

领取腾讯云代金券