软件测试——sql数据库 - 草稿

软件测试——sql数据库



1.数据类型(常用)

  int : 整数

  decimal : 小数

  varchar : 字符串

  datetime : 日期时间




2.约束

primary key : 主键;唯一标识某一条数据,字段值不能为空,一般为id字段(int类型、无符号、自动递增)

foreign key : 外键;维护表与表之间的关联关系.

not null : 非空;该字段不允许存入空值.

unique : 唯一;该字段的值是不允许重复.

default : 默认值;不填值的情况下自动使用默认值.


3.数据库操作

  1)创建数据库

create database dbname

  2)删除数据库

drop database dbname


4.数据表操作

1) 创建表

create table tablename (

字段1 类型 约束

字段2 类型 约束

)

2)删除表

drop table tablename



3)添加数据(增)

语法一:

添加一条完整数据(设置所有字段信息)

insert into tablename values(值1,值2,'值3',…)

  // values( )中的值必须按照字段顺序依次填写对应值,不可缺少任何字段

  //字符串类型的数据需要用单引号‘’.

  //值与值之间用逗号分隔

语法二:

给指定字段(列)设置值

insert into tablename(列1,列2,…)values(值1,值2,…)

//列名与列名之间用逗号分隔

//列名与值一一对应

语法三:

同时添加多条数据

insert into tablename(列1,列2,…)values(数据1),(数据2),(数据3)



4)删除数据(删)

delete from tablename where 条件

例:

删除姓名为张三,id为6的学生数据

delete from student where name='张三',id=6

// 切记:谨慎使用delete,一旦删除失误,数据无法恢复,牢底坐穿(夸张了哈)就在你一念只差!!!在公司我们可以用逻辑删除(操作如下)

1.给表添加一个isdelete的字段,用于代表数据是否删除, 0表示未删除(默认为0),1表示删除

2.需要删除某条数据时,使用update语句将isdelete字段值改为1即可

例:

update student set isdelete=1 where id=2

3.查询未删除的数据时,将查询条件设为isdelete=0

  select * from student where isdelete=0

  //返回的数据就是未做删除处理的数据



5)修改数据(改)

语法一:

update tablename set 列1=值1,列2=值2,… where 条件

例:

将编号(id)为1的分数(score)改为99分,性别(sex)改为女

update student set score=99,sex='女' where id=1



6)查询数据(查)

  简单查询(单表查询):

1)查询一个表的所有数据

  select * from tablename

  // * : 表所有

2)查询指定数据

select 列1,列2,… from tablename

例1:

查询张三的成绩

select score from student where name='张三'

例2:

查询分数在60分以上的学生信息

select * from student where score≥60

4)比较符

>(大于)

<(小于)

≥(大于等于)

≤(小于等于)

!=(不等于)

5)逻辑运算符

and  :  和,并且;    左右两个条件必须同时满足

  or  : 或, 或者;    左右条件满足其一即可

  not : 非,不是,取反;放在某一个条件前,表否定

7)模糊查询

  like : 模糊查询关键字

%  : 百分号,表示任意多个字符

_  : 下划线,表示一个任意字符

8)范围查询

in :非连续范围内查询 (查询一个字段多个非连续(1~3)值时使用)

语法:

select * from tablename where 列名 in('值1','值2','值3')

例:

查询出家在长沙,岳阳,武汉的学生信息

select * from student where home in('长沙','岳阳','武汉')

between and :连续范围内查询

语法:

select * from tablename where 列名 between 小值  and 大值

例:

查询年龄在16~18岁的学生信息

select * from student where age between 16 and 18

//必须是从小到大,所以between 后面必须是比and后面的值小

// 查询出的结果包含设定的最小值和最大值

// 查询范围以外的信息,在字段前前面加上 not即可

9)排序

order by 关键字

升序(从小到大,默认):

select * from tablename order by 列名 asc

// order by 默认排序为升序(从小到大)故asc可省略不写

降序(从大到小,非默认)

select * from tablename order by 列名 desc

10)空判断

is null : 判空

语法:

select * from tablename where 列名 is null

is not null : 判非空

语法:

select * from tablename where 列名 is not null

// 查询是否为null时,不能用比较运算符“=”

// null 不等于 ' '

11)聚合函数

count(*): 总和 (总行数)

语法:

select count(*) from tablename

select count(列名) from tablename

// count括号中可以是“*”也可以是单个字段,多个字段不可以

// 当使用*时,一行数据所以值都为null时不计数

//count指定字段后,这一列数据中存在的null值不计入总数

// 当count()与where条件同时出现时,先统计的是where条件再在满足where条件之后的数据上执行count()

max( ) : 最大值 统计一列数据的最大值

语法:

select max(列名) from tablename


min( ) : 最小值  统计一列数据的最小值

语法:

select min(列名) from tablename


avg( ) : 平均值 统计一列数据的值的平均值,例如班级平均分

语法:

select avg(列名) from tablename


sum( ) : 求和 统计一列数据的值的总和

select sum(列名) from tablename

//聚合函数不能在where语句中使用

// 所有聚合函数可以同时使用,在from前函数与函数之间用逗号分隔开即可


12)分组

group by


语法:

select 列1,列2,… 聚合函数… from tablename group by 列1,列2,… having 列1,列2,… 聚合函数

// group by 语句后不能接where语句,where语句后可以接groupby,where语句必须在from tablename之后,where是对原始数据的筛选,having是对group by分组之后的结果进行筛选

// 凡是遇到“每个”“各个"必定用分组

例:

查询1班以外,数学学科的班级平均分和最高分,最低分分别是多少

select class avg(score),max(score),min(score) from student group by class having class!=1 and kemu='数学'

13)分页查询

语法:

select *from tablename limit 行数

14)给字段取别名

select id as 序号,name as 姓名 ,from student

15)查询结果去重处理

select distinct 列名1,列名2,… from tablename

16)多表查询

1.等值连接查询 

2.左连接查询

3.右连接查询

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容