代码改变世界

测试人员需要了解的sql知识(基础篇)

2018-09-19 15:19  第二个卿老师  阅读(3257)  评论(0编辑  收藏  举报

这是第一篇关于数据库的,本着详细的原则,基础的还是不能放过,还是那句话,有问题,欢迎指出!

-------------------------------------------------------------自然的分割线-------------------------------------------------------------------

一,什么是数据库(Database)

数据库也是一种软件,是按照数据结构来组织、存储和管理数据的仓库;类比存货的仓库, 其中数据结构可能是货物的类型(食物,器材等),放货物的容器(箱,包等),货物的堆放方式(横着堆,竖着堆)以及货物之间的排列方式等等。假如在淘宝上买东西,你的个人信息,收货地址,商品信息,订单信息等都可以放在数据库中。

二,什么是SQL

结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;说白了就是可以编写一串命令来操作数据库的语言。

三,常用的数据库

目前商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟,如微软的Access(小型),SQL server(仅windows,中大型);免费开源的MySql(中小型),成熟稳定的Oracle(中大型),流行而又陌生的DB2(中大型)和开源的postgresql(中大型)。其他非关系型数据库如MongoDB,Redis,Hbase等,可以自行了解下。

四,SQL的增删查改

借鉴w3school,虽然不同的数据库使用sql有着不同差异,但是都兼容标准,注:w3school说SQL 对大小写不敏感!如SELECT 等效于 select

1,查询 SELECT (测试中,适用于查询表的所有信息)

执行后,结果被存储在一个结果表中(称为结果集)

SELECT 列名称(或*) FROM 表名称                  ---------*代表全部列

2,插入 INSERT(测试中,适用于在表中插入新的行)

INSERT INTO 表名称 VALUES (值1, 值2,....)        ---------值与列相对应

也可以指定所要插入数据的列:

INSERT INTO 表名称 (列1, 列2,...) VALUES (值1, 值2,....)  ---------未包括列的值为空 

3,修改 UPDATE(测试中,适用于修改表中的值,需要where条件)

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值        ---------修改多列,列名称=新值,列名称=新值,...

4,删除 DELETE(测试中,适用于删除表中的某一行,可需要where条件)

DELETE FROM 表名称 WHERE 列名称 = 值                   ----------不加where条件,删除所有行数据

五,常用辅助查询

1,DISTINCT 语句(测试中,适用于去除重复值,并返回列)

SELECT DISTINCT 列名称 FROM 表名称      ----------针对多列重复,列名称,列名称,...

2,WHERE 语句(测试中,适用于有条件选取语句)

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

部分运算操作符如下:

3,AND 和 OR 语句(测试中,适用于结合多个where条件)

 AND 显示多个条件都满足的记录,而OR 只要有一个条件满足则显示。

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值 AND/OR 列 运算符 值     ---------可用圆括号来组成复杂的表达式

4,LIKE与通配符(测试中,适用于查找特定的某一值)

SELECT 列名称 FROM 表名称 WHERE 列 LIKE 值            -----------如查找姓氏为李的所有记录,where name like '李%'     

 值可以使用一下通配符组成:

5,IN与BETWEEN操作符(测试中,in适用于设置多个值,between适用于值的区间)

SELECT 列名称 FROM 表名称 WHEREIN (值1,值2,...)       

SELECT 列名称 FROM 表名称 WHEREBETWEEN 值1 AND 值2        ---------这里值1值2可以使数字,文本,日期,不同的数据库可能包含值1值2,也可能不包含

6,ORDER BY 语句(测试中,适用于对结果集进行排序)

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值  ORDER BY 列名称 (DESC/ASC)   ---------多列排序,以逗号隔开,并以第一个为准,第一个有重复地再看第二个,以此类推