数据库的定义、作用介绍:
什么是数据库?
按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。
数据库的发展史:
起始于1962年,1968年在IBM出现
数据库在测试过程中的作用:
需求分析阶段:了解测试环境数据库、表、数据等信息、需求
用例设计阶段:测试数据准备
用例执行阶段:测试数据构造、测试结果数据检查、代码逻辑查看
自动化测试:测试脚本、数据、工具
性能压力测试:数据准备、性能数据分析
测试环境搭建:维护数据库、执行配置脚本、备份恢复数据库等
数据库的分类:
层次式数据库
网络式数据库
关系式数据库(常用)
关系型数据库:
常用:
Oracle:Oracle(甲骨文)公司,多平台,性能最高,获得最高安全认证,适用大型
DB2:IBM公司,多平台,性能较高,获得最高安全认证,企业级应用最广
SQL Server:微软、windows平台,中小型网站和电子商务办公系统
MySQL:瑞典my sql AB公司,多平台,开源,中小型网站开发
Access:微软、windows平台,小型系统使用
MariaDB:MySQL的一个分支,完全兼容MySQL,包括API和命令行,使之能够成为MySQL的代替品
不常用:
Informix,Sybase,PostgreSQL
非关系型数据库:
常用:
Redis:开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型数、Key-Value数据库,并提供多种语言的PI
MongoDB:基于分布式文件存储的数据库。有C++语言编写,旨在为WEB应用服务器扩展的高性能数据存储解决方案。支持的查询语言非常强大,单表查询的绝大部分性能,而且还支持对数据建立索引。
Memcached:是一个高性能的分布式内存对象缓存系统,用于动态Web应用数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高数据库驱动网站的速度。
Cassandra:一个开源的、分布式、无中心、支持水平扩展、高可用的KEY-Value的NOSQL数据库。
不常用:
HBase、MemacheDB、BerkeleyDB、Tokyo Cabinnet
Oracle介绍:
公司简介:全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司(被成为“纯软件公司的先驱”。在个人计算机领域,靠卖软件赚钱的公司),总部位于美国加利福尼亚州的红木滩,其创始人是拉里诶里森。
市场份额:Oracle(54%)、IBM-DB2(21%)、MicrosoftMSQL(14%)
相关认证:OCM认证【大师】、OCP认证【专家】、OCA认证【专员】等
版本:免费版、标准版、标准版2、企业版
Oracle Server主要文件目录介绍:
admin:主要存放数据库运行过程中产生的跟踪文件(后台进程,用户sql语句)
bin:包含数据库管理各种命令
ADMIN重要:里面有监听文件(listence.ora tnsnames.ora sqlnet.ora)
Db_1:服务器数据库文件夹,代表Oracle目录树的根, 它包含与Oracle软件运行有关的子目录和网络文件以及选定的组件等
Oradata:数据库物理文件存储在oradata/db_name目录下,该目录主要存储数据库的控制文件、数据文件、重做日志文件。其中*.dbf文件对应数据库中每个表空间;.ctl文件为控制文件;.log文件对应重做日志文件组及其成员
Flash_recovery_area:目录存储并管理与备份和恢复有关的文件。它包含系统中每个数据库的子目录。该目录可用于存储与恢复有关的文件,如控制文件、联机重做日志副本、归档日志、闪回日志以及Oracle数据库恢复管理器(RMAN)备份等。
adump:一般是audit dump
bdump:中有alert文件,和一些后台进程的trace file,bdump文件下放着的是数据库的预警文件,如果数据库出问题,该文件是DBA要查看的首选文件
cdump:一般放置一些核心的trace文件
udump:放着的是用户进程跟踪文件,用于收集客户应用的SQL语句的统计信息。
pfile:文件下放着的自然是数据库的初始化参数文件。
注:如果觉得oracle卡了 ,可以把bdump和udump文件夹下文件删除
Oracle Client主要文件目录介绍:
ORACLE_HOME主要包括的子目录有:
BIN–主要包含用于数据库管理的各种命令等
cdd–与Oracle Cluster Synchronization服务有关的文件
dbs–存放数据库实例模式的脚本等
demo–存放数据库实例模式的脚本等
install–用于存储ORACLE安装后的端口号,iSQL*PLUS以及Enterprise Manager
Database Control启动并登录的方式等
NETWORD\ADMIN–有关监听器listener.ora和sqlnet.ora以及tnsnames.ora等
config–用于与Oracle Enterprise Menagement有关的端口管理等
database–初始化参数与口令文件
Oracle两种用户认证方式:
Sqlnet.authentication_services=(NTS)|(NONE)
NTS:操作系统认证方式,不使用口令文件;
NONE:口令文件认证方式
访问Oracle数据库四种方法:sql*plus工具、dos窗口sqlplus、isql、plsql
Cmd>regedit 进入注册表编辑器快捷命令,红框显示oracle注册信息
Oracle版本号的含义
Oracle产品版本号由5部分数字组成
1、主发布版本号:是版本的最重要的标识号,表示重大的改进和新的特征
2、主发布维护号:维护版本号,一些新的特性的增加和改进
3、应用服务器版本号:Oracle应用服务器的版本号
4、构件特定版本号:针对构件升级的版本号
5、平台特定版本号:标识操作系统平台相关的发布版本
1)Oracle主要版本
Oracle
Oracle 8/Oracle 8i(1CD):“i”表示internet,表示Oracle开始进军网络
Oracle 9i(3CD):属于Oracle 8i的稳定版本,现在依然大范围使用(使用率非常高,因为正好是中国进行电子化信息改革的开始)
Oracle 10g(630M):“g”表示网格Grid技术,使用了网络计算的方式,提升了数据库的分布式的访问性能
Oracle 11g(1.7G):属于Oracle 10g的稳定版本,现在新项目使用较多
plsql语句(Structured Query Language:结构化查询语言)
一、sql编写规范
明确规范
- sql语句的所有表名、字段名全部小写,系统保留字、内置函数名、sql保留字大写。
- 连接符or、in、and、以及=、<=、>= 等前后加上一个空格。
- 对较为复杂的sql语句、过程、函数加上注释,说明算法、功能。
- SQL 语句的缩进风格
1. 一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进
2. where子句书写时,每个条件占一行,语句另起一行时,以保留字或者连接符开始,连接符右对齐。
多表连接时,使用表的别名来引用列。
其他注意事项
SQL 命令是大小写不敏感
- SQL 命令可写成一行或多行
- 一个关键字不能跨多行或缩写
- 子句通常位于独立行,以便编辑,并易读
二、SQL语言基础
SQL语言分类
SQL语句规则
- SQL 语句是大小写不敏感
- SQL 语句可写成一行或多行
- 一个关键字不能跨多行或缩写
- 子句通常位于独立行,以便编辑,并易读
- 空格和缩进使程序易读
- 关键字大写,其他小写
算数表达式:
对NUMBER和DATE型数据可用算数运算创建表达式
例如:select sal+800 from emp;
select sal-200 from emp;
select sal*5 from emp;
select sal/3 from emp;
运算优先级:
乘法和除法的优先级高于加法和减法
同级运算的顺序是从左到右
表达式中使用括号可强行改变优先级的运算顺序
定义空值
空值指不可用,不知道,不实用的值
空值不等于零或空格
包括空值的算数表达式等于空
定义列的别名
改变列的标题头
使用计算结果
列的别名
如果使用特殊字符,或大小写敏感,或有空格时,需加双引号
例如 select ename as name from emp;或select ename name fromemp;
连结操作
将列或字符与其它列连结
用双“||”表示
产生的结果列是一个字符表达式
例如:
SELECT ename||job AS “Employees” FROM emp;
文字字符串
文字字符串是一个包括在SELECT列表中的字符,表达式,或数字
日期和字符型文字字符必须用单引号括起来
每返回一条记录字符被输出一次
例:SELECT ename ||’ ‘||’is a’||’ ‘||job AS “Employee Details” FROM emp;
|
构造命令
SELECT ‘delete from ‘||table_name||’ where 1=0;’||chr(10)
FROM user_all_tables;
显示:
delete from CUSTOMERS where 1=0;
delete from PRODUCT_TYPES where 1=0;
delete from PRODUCTS where 1=0;
delete from PURCHASES where 1=0;
delete from EMPLOYEES where 1=0;
……………
……………
重记录:
缺省情况下查询显示所有行,包括重行
例:SELECT deptno FROM emp;
显示有重复信息
|
不想要重复 用distinct(去重),具体为select distinct deptno from emp;
但是distinct操作会引起排序,通过排序去掉重复记录。
描述表结构
打开command windows , 输入”desc 表名“,显示表结构(不能在sql windows中使用)
三、限定和排序数据
-
限制某一查询所取记录
-
排序查询结果
限定所选的条件
使用where限定查询条件
select [distinct]* from emp where deptno = 20 and mgr = 7788
注:from子句在where子句之后
字符串和日期
-
字符串和日期要用单引号扩起来
-
字符串是大小写敏感的,日期值是格式敏感的
-
缺省的日期格式是 ‘DD-MON-YY’
比较运算符
|
使用比较运算符
|
|
注:空值是直接不参与计算
其它的比较运算符
注:
between默认从小到达,不能输例如“between 1000 and 800”
使用BETWEEN运算符显示某一 值域范围的记录
注:
between默认从小到达,不能输例如“between 1000 and 800”
in的使用
使用IN运算符获得匹配列表值的记录
in 示例:
LIKE使用
使用LIKE运算符执行通配查询
查询条件可包含文字字符或数字
(%) 可表示零或多个字符
( _ ) 可表示一个字符
like 示例:
或
使用组合方式匹配字符
使用ESCAPE 标识符来查找带特殊符号的字符号
is null 使用
查询包含空值的记录
运算逻辑符
|
使用AND
AND需要条件都为TRUE
|
OR 运算符
OR需要条件之一是TRUE
|
使用not in 运算符
|
优先级规则
括号将跨越所有优先级规则
|
ORDER BY 子句
使用ORDER BY 子句将记录排序
-
ASC: 升序,缺省
-
DESC: 降序
ORDER BY 子句在SELECT语句的最后
降序排列:
|
使用列的别名排序
|
使用中文字符的别名排序
|
注:
-
按中文拼音进行排序:SCHINESE_PINYIN_M
-
按中文部首进行排序:SCHINESE_RADICAL_M
-
按中文笔画进行排序:SCHINESE_STROKE_M
通过ORDER BY 列表的顺序来排序
|
四、单组函数
-
描述可在SQL 中使用的各种函数
-
在SELECT语句中使用字符,数字,日期函数
-
描述转换函数的使用
函数过程
|
两种SQL函数
|
单行函数
-
操作数据项
-
接受参数并返回一个值
-
对每一返回行起作用
-
每一行返回一个结果
-
可修改数据类型
-
可使用嵌套
字符函数
字符函数说明
<span style="font-size: 18px; font-family: 宋体; backg