数据库

作者: 我竟无言以对_1202 | 来源:发表于2019-05-18 22:40 被阅读0次

    为什么要进行数据库的测试

    数据库是以数据结构来组织、存储、管理数据的仓库,使用数据库可以提高管理、查找的效率,所以数据一般都应该正确的存储在数据库中。而数据库中包含了很多字段,以注册功能为例,注册完成时我们需要登录来验证数据是否被存储到数据库中,我们还应该与开发进行沟通确认每个字段的含义,看看数据存储的位置是否正确,数据的内容是否与界面输入的一致,一些关键的信息是否进行了加密处理,数据库中界面上未填写的字段是从哪里来的,这些字段存储的数据以及数据格式是否正确等。

    在测试过程中,虽然界面提示正确,但不能保证数据没有问题,所以一定要进行数据库测试。

    表的约束

    1.主键约束:primary key

    2.外键约束:foreign key

    3.非空约束:not null

    4.默认约束:default

    5.唯一约束:unique

    6.检查约束:check

    注意:mysql不支持check约束,用枚举类型代替

    常见的数据类型

    1.整数:int

    2.浮点数:float、double

    3.字符串:char(n)、varchar(n) n表示一个正整数

    4.枚举:enum

    5.日期:年 year

    ​ 年月日 date

    ​ 年月日时分秒 datetime

    ​ timestamp

    DOS窗口操作数据库

    1.查看所有的数据库

    show databases;

    2.创建库

    create database 数据库名;

    3.使用数据库

    use 数据库名;

    4.查看所有的表

    show tables;

    5.创建表

    create table 表名(

    ​ 字段名称1 字段类型 约束1,约束2,

    ​ 字段名称2 字段类型 [约束],

    ​ ...

    )

    6.查看表结构

    desc 表名;

    7.修改表结构

    (1)增加一列

    alter table 表名 add 字段名 字段类型 [约束];

    (2)修改字段类型

    alter table 表名 modify 字段名 字段类型 [约束];

    alter table 表名 change 原字段名 新字段名 新字段类型[约束];

    (3)修改字段名称

    alter table 表名 change 原字段名 新字段名 字段类型;

    (4)表重命名

    alter table 原表名 rename 新表名;

    (5)删除字段

    alter table 表名 drop 字段名;

    8.复制表结构

    create table 新表名 like 旧表名;

    9.删除表结构

    drop table 表名;

    10.删除库

    drop database 库名;

    11退出

    quit;

    exit;

    单表查询

    select 查询的内容 from 表名 where 查询的条件 group by 字段名 having 分组后的条件 order by 字段名 asc(desc) limit m,n

    多表查询

    等值连接

    1.原理:将多个表组合成一张逻辑大表

    2.语法:

    select * from A,B where A.主键=B.主键 and 查询条件

    3.优点:相对简单

    缺点:查询效率较低,因为会生成笛卡尔积的表

    4.适用范围:不适合海量数据的查询

    子查询/嵌套查询

    1.原理:将多个查询语句拼接成一条完整的sql语句

    2.优点:查询效率高

    缺点:逻辑比较复杂,需对表结构有清晰的了解

    3.适用范围:查询的结果在一张表中

    内连接

    语法:select * from A inner join B on A.主键=B.主键 where 查询的条件

    左外连接

    语法:select * from A left join B on A.主键=B.主键

    查询结果:左边表的全部记录+右边表的有关记录

    右外连接

    语法:select * from A right join B on A.主键=B.主键

    查询结果:右边表的全部记录+左边表的有关记录

    insert into 表名(字段1,字段2,字段3,...) values(字段1的值,字段2的值,字段3的值,...)

    注意:

    1.字符串和日期类型的数据,要用引号引起来

    2.非空字段在插入数据时必须有值

    3.向表中全部字段插入数据时,字段名可以不写

    4.字段的个数与值的个数要匹配

    5.自增列可以用null代替其值

    update 表名 set 字段名=修改后的值,字段2=修改后的值 where 修改条件

    注意:

    级联更新:当修改主表主键时,所有从表的外键也同时被修改

    设置级联更新:

    ​ 手动设置:选择从表---design table---foreign keys---on update---选择cascade

    ​ 建表设置:在外键关联主键后面加上on update cascade

    删除表中全部记录:

    ​ delete from 表名

    ​ truncate table 表名 (删除速度快,且无法进行数据库回滚)

    删除指定记录:

    ​ delete from 表名 where 删除条件

    注意

    级联删除:当删除主表主键时,所有从表中对应的记录同时被删除

    设置级联删除:

    ​ 手动设置:选择从表---design table --foreign keys---on delete---选择cascade

    ​ 建表设置:在外键关联主键后面加上on delete cascade

    外键关联主键

    foreign key(外键名称) references 主表(主键名)

    联合主键

    primary key(字段1,字段2,...)

    事务

    1.什么是事务?

    事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。

    事务主要用于处理操作量大,复杂度高的数据。

    2.事务的四大特性:

    (1)原子性:一个事务的所有操作,要么全部执行完成,要么全部不执行。如果事务中的某个操作失败,那么其他操作也会被回滚到事务执行前的状态

    (2)一致性:事务的执行使得数据库从一种正确状态转换成另一种正确状态

    (3)隔离性:多个事务并发执行时,一个事务的执行不影响其他事务的执行

    (4)持久性:事务正确提交后,其结果永远保存在数据库中

    3.开启事务begin;

    提交事务commit;

    回滚rollback;

    数据库高级对象

    索引(index)

    1.目的:提高系统的性能,加快对表中记录的查询和排序

    2.定义:数据库索引时对数据库中一列或多列值进行排序的一种结构

    3.查看索引:show index from 表名

    4.创建索引:create index 索引名 on 表名(字段1,字段2)

    5.删除索引:drop index 索引名 on 表名

    存储过程(stored procedure)

    1.存储过程:是一组为了完成特定功能SQL语句集

    2.创建存储过程:

    create procedure 存储过程([参数])

    begin

    ​ 实现特定功能的代码

    end

    参数类型

    ​ in:输入参数

    ​ out:输出参数

    ​ inout:输入输出参数

    3.调用:call 存储过程名称

    4.例子:实现批量构造账号密码的存储过程

    #创建一个存储过程
    create procedure pro_insert1(in num int,in uname char(20))
    begin
        #定义一个变量i,存放id,用来控制循环次数
        declare i int;
    
        #设置i的值为1
        set i=1;
    
        while i<=num do
        insert into test values(i,concat(uname,i),'123456');
        set i=i+1;
        end while;
    end
    #调用存储过程
    call pro_insert1(3000,'bwf')
    

    视图(view)

    1.特点:从一张表或几张表中导出来的表,是一种虚拟表

    2.创建视图:create view 视图名 as select * from 表;

    3.作用:

    ​ (1)帮助用户屏蔽真实表结构变化带来的影响

    ​ (2)能简化用户的操作

    ​ (3)对机密数据提供安全保护

    ​ (4)用户能以多种角度看待同一数据

    游标(cursor)

    触发器(tigger)

    相关文章

      网友评论

          本文标题:数据库

          本文链接:https://www.haomeiwen.com/subject/kbmxzqtx.html