测试人员需要了解的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 表名称 WHERE 列 IN (值1,值2,...) SELECT 列名称 FROM 表名称 WHERE 列 BETWEEN 值1 AND 值2 ---------这里值1值2可以使数字,文本,日期,不同的数据库可能包含值1值2,也可能不包含
6,ORDER BY 语句(测试中,适用于对结果集进行排序)
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值 ORDER BY 列名称 (DESC/ASC) ---------多列排序,以逗号隔开,并以第一个为准,第一个有重复地再看第二个,以此类推