数据库
1. 数据 Data
软件测试的对象是 软件
软件的组成 程序 文档 数据
数据的类型 数字 字符 二级制 文本 图形 声音 视频
2. 数据库 DataBase --DB
通俗地说 就是用来存放数据的仓库
物理形态 -- 计算机上的文件
磁盘 -- 硬盘
3. 数据库管理系统 DBMS -- 软件程序
通俗地说 就是管理和维护数据库的软件。
主流的数据库管理系统有哪些
MySQL, Oracle, SQL Server, DB2 , Sybase ...
关系型数据库管理系统 RDBMS
关系 --- 表 table ( ) 行 列
-- 层次型 --- 网状型 --- 关系型 --- 对象型
Oracle 数据库管理系统 ---甲骨文
版本
Oracle 8i , 9i, 10g, 11g, 12c
i internet
g grid
c cloud
Oracle 11g 安装
将其安装到windows7 64bit
虚拟机 -- Vmware 15
安装Vmware 虚拟机
安装oralce数据库管理系统
Oracle home
全局数据库名字 orcl.localdomain
口令 tiger
Database Control URL 为 https://localhost:1158/em
管理资料档案库已置于安全模式下, 在此模式下将对 Enterprise Manager 数据进行加密。加密密钥已放置在文件
D:/app/Administrator/product/11.2.0/dbhome_1/localhost_orcl/sysman/config/emkey.ora 中。请务必备份此文件, 因
为如果此文件丢失, 则加密数据将不可用。
数据库管理员 DBA
普通计算机 ---安装oracle11g软件 并且启动了数据库--- 数据库服务器 DB Server
客户端服务器模型 client server mode C/S
Demon 守护进程 --- 服务
数据库最基本的两个服务
OracleOraDb11g_home1TNSListener 数据库监听服务
OracleServiceORCL 数据库基本服务
oracle 也是一种网络应用层的协议 在传输层 使用的是TCP协议 端口号是 1521
MySQL 端口号 3306
客户端工具
SQL Plus 是oracle自带的一个连接到oracle数据库服务器的一个工具
总结
数据 data 数据库 database 数据库管理系统 dbms 数据库管理员DBA
oracle11g 关系型数据库管理系统 安装 数据库名字 orcl 口令 tiger
客户端工具sqlplus
回顾
data ,database, DBMS, DBA
计算机 --- 服务器 -- 数据库服务器 DB Server
客户端工具 -------- 连接到数据库服务器
自带的工具sqlplus 命令行的方式
启动sqlplus 方式
开始--运行--cmd--sqlplus /nolog
连接到数据库指令格式语法
SQL> connect 用户名/口令 [as 连接身份] ;
connect sys/tiger as sysdba;
connect 可以缩写 conn
连接身份 表示用户连接到数据库之后拥有的权利。
数据库管理员 sysdba
数据库操作员 sysoper
普通用户 normal (默认)
内置用户 sys 必须以SYSDBA或SYSOPER身份登录
system 可以用普通身份登录
Oracle用户模式 user schema
用户zhangsan 表sales
用户lisi 表student 表score -- zhangsan.sales
在Oracle数据库中创建用户指令
创建用户的指令
create user 用户名 identified by 口令 [account lock|unlock] ;
create user jerry identified by tom account unlock;
给用户授权的指令
grant 权限|角色 to 用户;
角色 role 一个或多个权限的集合
默认有三种角色
CONNECT 角色 CREATE SESSION
RESOURCE 角色 可以创建数据库对象 比如 表
DBA 角色 管理员级别权限
建议普通用户 授予 connect 和 resource 角色的权限
grant connect to jerry;
grant resource to jerry;
撤销用户的权限的指令
revoke 权限|角色 from 用户;
revoke connect from jerry;
修改用户的指令
alter user ...
修改用户的口令
alter user 用户名 identified by 新口令 ;
alter user jerry identified by tom123;
修改用户的锁定状态
alter user 用户名 account lock|unlock;
alter user jerry account lock;
alter user jerry account unlock;
SQL 简介
Structuered Query Language 结构化查询语言,关系型数据库对数据存取、数据更新及数据库操作管理等语言。
ANSI 标准 SQL --- 增删改查
SQL分类
数据定义语言DDL : create 创建 , alter 修改 , drop 删除 等
数据操作语言DML : insert 插入 , update 更新, delete 删除 等
数据查询语言DQL : select 查询 order by 排序 group by 分组 等
事务控制语言TCL : commit 提交 savepoint 保存点 rollback 回滚
数据控制语言DCL : grant 授权 revoke 撤销
目前主流的关系型数据库都支持SQL , -- nosql
数据类型
年龄 21 --数字 214
姓名 谢睿 --字符
oralce数据库基本数据类型
字符
char(length) 固定长度 char(5) hello char(6) hello_ char() 默认 2000 字节
varchar2(length) 可变长度 varchar2(6) varchar2() 4000 字节
数字
number(p,s) p 数字的最大位数,最大38位,s指小数位数
number 1234.567 1234.567
number(6,2) 1234.567 1234.57
number(4,2) 12345.67 超出精度数据库不能存储
时间
date 存储日期和时间纪元、4位年、月、日、时、分、秒
timestamp 年月日时分秒 精确到秒后6位 而且包含时区 东8区
文件
clob 存储大的文本如 xml文档
blob 存储二进制对象 图形、声音、视频等
文件的路径---字符串
计算机基本存储单位 --存储设备 内存RAM 磁盘HD
计算机底层是数字存储的 0 1 二进制数 01000001 表示字母A 编码 ASCII
一个二进制位 bit 比特
一个字节 byte 8 bit 比特
1K 1024 byte
1M 1024 KB
1G 1024 MB
在oracle 中有一些内置的函数
sysdate
systimestamp
select sysdate from dual ;
dual 是一个伪表 ,满足select语句的完成性
关系型数据库
二维表的方式 表 table 就是数据库里最基本对象
列 column 实体的属性 key 键
行 row 实体 记录 record
--一行数据 一条记录
表的代表的是实体的集合
满足第一 二 三 范式
模型 E-R 实体-关系 - 员工表 n---1 部门表
约束 限制
主键 primary key 唯一地代表一个实体的键 唯一 不能为空
外键 foreign key 建立表与表之间的关系
非空 not null
唯一 unique
检查 check
使表包括数据能满足数据库完整性一致性
创建表
学生信息表 infos --表示注释
STUID varchar2(7) not null, --学号
STUNAME --姓名
GENDER --性别
AGE --年龄
SEAT --座位编号
ENROLLDATE -- 入学时间
STUADDRESS -- 住址
CLASSNO -- 班号
create table 表名 stuid , stuname .... ;
SQL> create table infos
2 (
3 stuid varchar2(7) not null ,
4 stuname varchar2(10) not null ,
5 gender varchar2(2) not null ,
6 age number(2) not null ,
7 seat number(2) not null ,
8 enrolldate date ,
9 stuaddress varchar2(50) default 地址不详 ,
10 classno varchar2(4) not null
11 )
12 /
设置约束
1 建表的时候指定约束
2 建表后插入数据之前设置约束
alter table 表名 add constraint 约束名 关键字 (列名)
alter table infos add constraint pk_infos_stuid primary key(stuid) ;
案例1创建一个学生信息INFOS表和约束
代码演示Oracle创建表和约束
CREATE TABLE INFOS
(
STUID VARCHAR2(7) NOT NULL, --学号 学号‘S’班号2位序号
STUNAME VARCHAR2(10) NOT NULL, --姓名
GENDER VARCHAR2(2) NOT NULL, --性别
AGE NUMBER(2) NOT NULL, --年龄
SEAT NUMBER(2) NOT NULL, --座号
ENROLLDATE DATE, --入学时间
STUADDRESS VARCHAR2(50) DEFAULT 地址不详, --住址
CLASSNO VARCHAR2(4) NOT NULL --班号 班号学期序号班级序号
)
/ ①
ALTER TABLE INFOS ADD CONSTRAINT PK_INFOS PRIMARY KEY(STUID) ②
/
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_GENDER
CHECK(GENDER 男 OR GENDER 女) ③
/
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_SEAT
CHECK(SEAT >0 AND SEAT <50) ④
/
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_AGE
CHECK(AGE >0 AND AGE<100) ⑤
/
ALTER TABLE INFOS ADD CONSTRAINT CK_INFOS_CLASSNO
CHECK((CLASSNO >1001 AND CLASSNO<1999) OR
(CLASSNO >2001 AND CLASSNO<2999)) ⑥
/
ALTER TABLE INFOS ADD CONSTRAINTS UN_STUNAME UNIQUE(STUNAME) ⑦
/
案例2创建一个成绩表SCORES表和约束
代码演示Oracle创建表和约束
CREATE TABLE SCORES
(
ID NUMBER , --ID ①
TERM VARCHAR2(2), --学期 S1或S2
STUID VARCHAR2(7) NOT NULL, --学号
EXAMNO VARCHAR2(7) NOT NULL, --考号 E班号序号
WRITTENSCORE NUMBER(4,1) NOT NULL, --笔试成绩
LABSCORE NUMBER(4,1) NOT NULL --机试成绩
)
ALTER TABLE SCORES
ADD CONSTRAINT CK_SCORES_TERM CHECK(TERM S1 OR TERM S2)
/
ALTER TABLE SCORES
ADD CONSTRAINT FK_SCORES_INFOS_STUID FOREIGN KEY(STUID) REFERENCES INFOS(STUID) ② --建立外键约束
/
-- 外键约束名字 关键字 列名 引用或参考 表列
-- 注 先设置主键 再设置外键
student( --学生表
sno varchar2(3) not null, --学号
sname varchar2(28) not null, --姓名
ssex varchar2(8) not null, --性别
sbirthday date, --生日
sclass varchar2(5), --班级
constraint pk_student primary key(sno) --设置主键
)
SNO SNAME SSEX SBIRTHDAY SCLAS
--- ---------------------------- -------- --------- -----
108 zenghua male 01-SEP-77 95033
105 kuangming male 02-OCT-75 95031
107 wangli female 23-JAN-76 95033
101 lijun male 20-FEB-76 95033
109 wangfang female 10-FEB-75 95031
103 lujun male 03-JUN-74 95031
course( --课程表
cno varchar2(5) not null, --课程编号
cname varchar2(50) not null, --课程名
tno varchar2(3) not null, --教师编号
constraint pk_course primary key(cno)
)
CNO CNAME TNO
----- -------------------------------------------------- ---
3-105 Introduction to Computers 825
3-245 Operating System 804
6-166 Digital Circuit 856
9-888 Advanced Mathematics 831
score( --成绩表
sno varchar2(3) not null, --学号
cno varchar2(5) not null, --课程编号
degree number(4,1), --分数
constraint pk_score primary key(sno,cno) --主键
)
SNO CNO DEGREE
--- ----- ----------
103 3-245 86
105 3-245 75
109 3-245 68
103 3-105 92
105 3-105 88
109 3-105 76
101 3-105 64
107 3-105 91
108 3-105 78
101 6-166 85
107 6-166 79
108 6-166 81
teacher( --教师表
tno varchar2(3) not null, --教师编号
tname varchar2(28) not null, --教师姓名
tsex varchar2(8) not null, --教师性别
tbirthday date, --教师生日
prof varchar2(50), --职称
depart varchar2(15) not null, --系别
constraint pk_teacher primary key(tno) --主键
)
TNO TNAME TSEX TBIRTHDAY PROF DEPART
--- ---------------------------- -------- --------- -------------------------------------------------- ---------------
804 licheng male 02-DEC-58 associate professor cs
856 zhangxu male 12-MAR-69 lecturer ee
825 wangping female 05-MAY-72 assistant cs
831 liubing female 14-AUG-77 assistant ee
【本文转自:韩国cn2服务器 http://www.558idc.com/kt.html欢迎留下您的宝贵建议】