暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

软件测试笔记Day01-Oracle数据库

干货资源分享姬 2021-05-18
267

没有过早,也没有太晚,与你遇见自然是恰逢其时。

2021-05-16

宜   窗边看风景

忌   买错礼物

内卷,是一个人默无声息的悲哀。

--伊维勒

之前说过会分享关于软件测试的笔记及在我工作中遇到的很多问题。所以打算开出一个专门的软件测试专栏,之后这里的内容会不断填充。

今天要分享的是数据库的相关内容。

01

数据库介绍

数据库就是一个以某种有组织的方式存储的数据集合。简单理解就是将数据库想象成一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是什么以及如何组织的。

我们一直都在使用数据库,比如当你从自己的电子邮件地址簿里查找名字时,你就在使用数据库的查找功能。如果你在某个完整网站进行搜索,也是在使用数据库,登录网站时还需要数据库验证自己的账户跟密码。即使是在自动取款机上使用ATM卡,也是要利用数据库进行PIN码验证及余额检查。

02

数据库种类

主流数据库:

微软sql server 2008 R2,access

瑞典mysql

美国oracle 10g 11g 12c

小型数据库 access

中型数据库mysql,sql sever

大型数据库 负载级别sysbase<oracle<db2 安全性高 昂贵

03

数据库安装

数据库安装可分为数据库服务器及数据库客户端。

Oracle 11g 相当于服务器

PLSQL Developer 相当于客户端

一般情况下,测试人员只需要用到客户端,所以只需要安装PLSQL Developer就即可。


在工作中,我一般当用到的数据库为mysql,客户端我会用sql yog(所用内存较小,比较方便),但大多数情况下,Navicat用的比较多,因为这个软件支持的数据库种类比较多,比如sql sever 2008,mysql,oracle等。

(sqlyog、navicat等有需要的可后台回复关键字)

01

数据库使用

数据库对象:表、视图、索引、用户、角色、表空间、存储过程、包......


一:创建Oracle数据库对象(DDL:Data Definition Language)

ddl:数据库定义语句

      create   创建

      alter      修改

      drop      删除

      truncate 删除

1、表的创建、修改与删除

表是存储用户数据的基本结果。建立一个表结构的基本任务是对组成表的字段进行定义,指出该表由哪些字段组成,字段值的数据类型及对字段的约束。


******表的创建******


创建表结构的格式:

create  table   表名(

     列名1  数据类型 ,

     列名2  数据类型 ,

     列名3  数据类型 ,

     列名4  数据类型 ,

     列名5  数据类型 ,

     ...

     列名N 数据类型 

);


create table 表名(

     列名1 数据类型 [primary key],

     列名2 数据类型 [unique],

     列名3 数据类型 [not null | null],

     列名4 数据类型 check(条件),

     列名5 数据类型 [references 表名(列名)]

     ...

     列名N 数据类型 [default 默认值] [各种约束]

);


列名命名规则:字母、数字、下划线(_)组成,不要以数字开头 


数据类型:在Oracle中有很多数据类型,我们需要掌握三种:字符串、数字、日期

数字:number 可以表示整数,也可以表示小数 number(5,2) 一个数为5位数的有效数,2位小数 -999.99~999.99 numbe(5) -99999~99999

日期:date

字符串:char、varchar2,在Oracle中,字符串用单引号引起来,用双引号引起来是别名

       char是定长,如char(12),存储内容的最大长度是12个字节,若实际存储内容只有6个字节,该列仍然占用12个字节 char(10) '小明'


       varchar2是可变长,如varchar2(12),存储内容的最大长度是12个字节,若实际存储内容只有6个字节,该列仍然占用6个字节


       字节:字节是由二进制代码组成,二进制代码就是0和1组成,8个二进制位组成1个字节,即1B = 8b


       字符:是由字节经过特定的编码方式组成,编码就相当于一个翻译官,不同的翻译官所掌握的语言也不一样,UTF-8是掌握了8国语言的翻译官,即UTF-8是国际通用字符集数据库服务器可以使用不同的翻译官(即使用不同的字符集)若数据库使用GBK或GB2312做为翻译官,那么1个中文字符占2个字节若数据库使用UTF-8做为翻译官,那么1个中文字符占3个字节建议最保守的做法是:1个中文字符占3个字节对于英文字符来说,一个字符占用1个字节。


主键(primary key):相当于身份证号码,是唯一的,通过身份证号码只能找到一个人,即通过主键列只能找到一行数据,在创建表时,通常要有主键列,主键属于表对象,所以主键有一个名字,若没给主键指定名字,oracle会自动分配一个唯一的名字,在一个表中只能有一个主键对象


约束:就是限制

    唯一约束(unique):值不能重复,但是可以为null。属于表对象(跟列一样),必须要有名字,若没有指定名字,则Oracle随即分配一个唯一的名字

    非空约束(not null):值不能为空,一个列默认是可以为空

    主键(primary key):相当于身份证号码,包含非空约束和唯一约束,也是属于表对象,在设计一张表示,需要有主键列

    检查约束(check):检查值是否满足某个条件,属于表对象,必须要有名字

    外键(references):也属于表对象,必须要有名字

    默认值(default):当没有给列指定值的时候,则取默认值;在创建表时,若没有给列指定默认值,那么该列的默认值是空(即null)


创建一个简单的表

create table t_student(

       id number,

       name varchar2(50),

       sex char(12),

       birthday date

);


create table student_tmp(

       id number,

       name varchar2(50),

       sex char(12),

       birthday date

);


以下两个表有约束关系:

create table t_class(

     classid number primary key,   ---- 主键

     classname varchar2(100)

);


--sysdate:获取系统当前时间,格式是:年月日时分秒

create table t_user(

     t_id number primary key,   ---- 主键

     t_sex varchar2(20) check(t_sex = '男' or t_sex = '女'),   ----- 检查

     t_name varchar2(50) not null,   --- 非空

     t_cardid varchar2(20) unique,  --- 唯一

     t_birthday date default sysdate,   ---- 默认值

     classid number references t_class(classid)   ----- 外键

);


-------- 查看表结构 --------

在 command window(命令窗口)下输入:

desc 表名;


商品售货系统设计案例

现有一个商品的数据、记录客户及其购物情况,由下三张表组成

商品goods(商品号goodsid,商品名goodsname,单价untiprice,商品类别category,供应商provider)

客户customer(客户号customerid,姓名name,住址address,电邮email,性别sex,身份证cardid)

购买purchase(客户号customerid,商品号goodsid,购买数量nums)

1、每个表格要建立主键或外键,客户的姓名不能为空值;单价必须大于0,购买数量必须在1到30之间;

电邮不能重复;客户的性别必须是男或女,默认是男。


******扩展知识:表的修改(A) 


--------修改表:增加列 --------

alter table 表名

add(字段名1 数据类型 [not null | null],字段名2 数据类型 [not null | null]);


如果要新增多个列,则要用逗号将各列定义分开。


例:向t_student表中增加一个性别和住址字段


alter table t_student

add(score number,addr varchar2(50));


alter table t_student

add classid number references t_class(classid);


--------修改列:修改数据类型、约束等等

alter table 表名

modify(列名  数据类型  [default 默认值] [not null | null]);


如果要修改多个列,则要用逗号将各列定义分开。


例:修改t_student的name字段类型为varchar2(50),且默认值为"习大大"。


alter table t_student

modify name varchar2(50) default '习大大' not null;


****** 扩展知识:表的修改(A)  


--------删除列--------

alter table 表名

drop column 列名;


例:

alter table t_student

drop column score;


alter table t_student

drop column addr;


******表的删除*******

删除表结构:drop table 表名

例:删除student_tmp2表

drop table student_tmp2;


delete,truncate,drop的区别:


***********************************

   以上。


文/闪电

编辑/南瓜

图源/干货资源分享姬

界世的你当不

只作你的肩膀

 无畏的太阳 

干货|攻略|推荐|资源|教程

空·



文章转载自干货资源分享姬,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论