快捷搜索:  汽车  科技

软件测试流程之SQL基础(软件测试流程之SQL基础)

软件测试流程之SQL基础(软件测试流程之SQL基础)类型MySQL数据库类型SQL分类而最为常用的有DQL、DDL、DML,而测试人员更是常用DQL、DML。不同的数据库,其的类型有些不同,但也是关键字的不同。下面以MySQL数据库的类型为例:

扼要:

1、掌握SQL基础;


前面讲述了数据库的基础、基本的SQL语句。作为软件测试或者数据库的管理、开发人员都需要掌握该章。该章知识点为关系型的数据的起点。

SQL分类

SQL 对结构化查询语言,可以对数据库进行增、删、修、查等操作。具体分类如下图所示:

软件测试流程之SQL基础(软件测试流程之SQL基础)(1)

SQL分类

而最为常用的有DQL、DDL、DML,而测试人员更是常用DQL、DML。

数据库类型

不同的数据库,其的类型有些不同,但也是关键字的不同。下面以MySQL数据库的类型为例:

MySQL数据库类型

类型

大小

用途

TINYINT

1 byte

小整数值

SMALLINT

2 bytes

大整数值

MEDIUMINT

3 bytes

大整数值

INT或INTEGER

4 bytes

大整数值

BIGINT

8 bytes

极大整数值

FLOAT

4 bytes

单精度

浮点数值

DOUBLE

8 bytes

双精度

浮点数值

DECIMAL

对DECIMAL(M D) ,如果M>D,为M 2否则为D 2

小数值

DATE

3

日期值

TIME

3

时间值或持续时间

YEAR

1

年份值

DATETIME

8

混合日期和时间值

TIMESTAMP

4

混合日期和时间值,时间戳

CHAR

0-255 bytes

定长字符串

VARCHAR

0-65535 bytes

变长字符串

TINYBLOB

0-255 bytes

不超过 255 个字符的二进制字符串

TINYTEXT

0-255 bytes

短文本字符串

BLOB

0-65 535 bytes

二进制形式的长文本数据

TEXT

0-65 535 bytes

长文本数据

MEDIUMBLOB

0-16 777 215 bytes

二进制形式的中等长度文本数据

MEDIUMTEXT

0-16 777 215 bytes

中等长度文本数据

LONGBLOB

0-4 294 967 295 bytes

二进制形式的极大文本数据

LONGTEXT

0-4 294 967 295 bytes

极大文本数据

SQL语句

1.CREATE DATABASE - 创建新数据库

例子:CREATE DATABASE IF NOT EXISTS testlq DEFAULT CHARSET utf8;

2.ALTER DATABASE - 修改数据库

例子:ALTER DATABASE testlq RENAME TO test_2021lq

3.CREATE TABLE - 创建新表

例子:CREATE TABLE `testlq_filter` (

`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT

`content` TEXT(10000) COMMENT '过滤词内容'

PRIMARY KEY (`id`)

) ENGINE=MYISAM DEFAULT CHARSET=utf8;

4.ALTER TABLE - 变更(改变)数据库表

例子:alter table `testlq_filter`
add (`title` VARCHAR(80) NOT NULL DEFAULT '' COMMENT '邮件');

5.DROP TABLE - 删除表

例子:DROP TABLE `testlq_filter`

6.CREATE INDEX - 创建索引(搜索键)

例子:CREATE INDEX title_id ON testlq_filter (title)

7.DROP INDEX - 删除索引

8.SELECT - 从数据库表中获取数据

例子:SELECT * from testlq_filter

9.UPDATE - 更新数据库表中的数据

例子:UPDATE testlq_filter SET title=‘lq’WHERE id=1

10.DELETE - 从数据库表中删除数据

例子:DELETE FROM testlq_filter WHERE id = 1

11.INSERT INTO - 向数据库表中插入数据

例子:INSERT INTO testlq_filter(title content) VALUES("测试" "文明用语")

SQL常用操作符和函数

Where:是条件的关键字,如:SELECT * from testlq_filter where title=’测试’;

Like:作为where的条件使用:SELECT * from testlq_filter where title like ‘%测试%’,%为匹配任意字符。

In:作为where的条件使用,表示在一定的范围或者列表内;

Between ... and:作为where的条件使用,表示在两个值之间的数据范围内;

Group by:是指对某个字段或者结果进行分组,也是在where之后;

Having:是指where条件需要用到合计函数时的关键词,在group by之后。

AVG():是返回数值列的平均值的函数;

COUNT():是返回匹配指定条件的行数的函数;

MAX():是返回一列中的最大值的函数;

MIN():是返回一列中的最小值的函数;

sum():是返回数值列的总数(总额);

SQL难点

1) 使用count(列名)当某列出现null值的时候,count(*)仍然会计算,但是count(列名)不会。

2) group by 字句和where条件语句结合在一起使用时:where在前,group by 在后。即先对select xx from xx的记录集合用where进行筛选,然后再使用group by 对筛选后的结果进行分组。

3) having和where的用法区别:

a. having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)。

b. where肯定在group by 之前,即也在having之前。

c. where后的条件表达式里不允许使用聚合函数(count() sum() avg() max() min()),而having可以。

4) 当一个查询语句同时出现了where group by having order by的时候,执行顺序和编写顺序是:

a. 执行where xx对全表数据做筛选,返回第1个结果集。

b. 针对第1个结果集使用group by分组,返回第2个结果集。

c. 针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集。

d. 针对第3个结集执行having xx进行筛选,返回第4个结果集。

e. 针对第4个结果集排序。

猜您喜欢: