|
Oracle: 数据库, 1,认识数据库 数据库:数据的仓库,保存大量数据的地方,有利于对数据的维护。增删改查很方便。 数据库分类: 层次型数据库:现实世界中很多事物是按层次组织起来的。层次数据模型的提出,首先是为了模拟这种按层次组织起来的事物。 网状型数据库:处理以记录类型为结点的网状数据模型的数据库。处理方法是将网状结构分解成若干棵二级树结构,称为系。 关系型数据库:mysql SQLserver oracle 分布式数据库:是指数据分存在计算机网络中的各台计算机上的数据库 oracle 数据库 oracle :甲骨文公司 全球第一大数据库厂商
2 关系型数据库概念 a,由 E.F.Codd博士在1970年提出关系型数据库系统模型 b,它是关系型数据库管理系统的基础 c,关系型数据库模型包含以下3部分内容 i 包含一系列【关系】和【对象】 ii 包含一系列对于关系的操作-->增删改查 iii 包含数据完整性约束 【规范保存到数据库中的数据】
* 关系型数据库中的关系是指: 把实际问题的数据分别归成若干个简单的二元关系, 一个二元关系都可以建一个满足一定条件的二维表格
关系 : 二维表格
3 关系型数据库是由一系列二维表组成 二维表:每张表由行和列组成 可以通过Structured Query Language 操作数据库表中的数据
二维表:一行 一条数据 一列(字段) 一类数据
Primary Key:主键 主键:表中的一个列,随便是什么列 要求:非空且唯一 主要用于 唯一的表示一条数据
Foreign Key:外键 为了表结构的优化,所产生的操作, 使用外键进行表和表的关联 外键:值可以为空,可以重复, 如果有值必须是关联表主键中的值.
4 完整性约束条件
【不满足 完整性,数据不能保存到数据库中】
关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则
在关系模型中,关系完整性主要是指以下三方面:
a、实体完整性(主键约束):所谓的实体完整性就是指关系(所谓的关系就是表)的主键不能取空值; 比如学生表通常是取学号为主键
b、参照完整性(外键约束):是指参照关系中每个元素的外码要么为空(NULL),要么等于被参照关系中某个元素的主码;
比如今天是9月2日是开学日,大学新生刚来报道,在学生表里,有的学生可能还没来得及分配具体的班,所以这些还未来得及分班的学生教务处可以在学生表里的班级属性取空值NULL(空值代表“不确定”),而哪些已分了班的学生就必须取班级表里的某些属性,比如班级类别,即学生属于哪个班。比如取“软件工程”,”计算机技术应用“等等。参照关系也称为外键表,被参照关系也称为主键表。
c、用户定义的完整性(自定义约束):指对关系中每个属性的取值作一个限制(或称为约束)的具体定义。比如 性别属性只能取”男“或”女“ ,再就是年龄的取值范围,可以取值0-130 ,但不能取负数,因为年龄不可能是负数
横着看:就是看行,是一条数据。 竖着看:就是看列,是某一类数据。
看数据库:
圆饼累加的圆柱都代表数据库,
在关系型数据中都是一张一张表存放的。
每一张表放大都是一个二维表
oracle数据库是不区分大小写的
字段/属性 Table Name:S_customer Table Name:s_emp id name phone emp_id id name 201 tom 151000 12 10 市场部 202 jak 152000 14 11 教管部 203 tom 159000 11 12 mis部 204 sport 153000 14 14 教学部
解释: id(Primary key)---主键列(非空且唯一):以后每一个表都有一个id列,因为每一条数据需要一个特殊标示,这个id就是唯一的标示了一条数据。 name:标示这一列都是代表姓名信息 phone:标示这一列都是代表电话信息 rep_id:外键(Foreign key),这样是另一个表的主键(id),表与表之间就是通过这样的外键关联起来。
学习oracle需要了解:
Oracle中的对象
table:表 。重点学习的对象。 view:视图。在表的基础上,以后可能是一个结果作为一个视图 sequence:序列。将来这个序列就是用来产生id主键,主键要求唯一不重复 index:索引,提高我们的检索速度 Program unit:程序单元 在PL/SQL中声明的 存储过程,函数,包Program unit
oracle的组成: oracle 10g:
9I:internet 10G:网格grid 11G 12C:云计算
内 ------------------> 外 Data-------------->operation System --> oracle10g --------->sql,pl/sql----->tools 电脑内存中的数据 打开操作系统 安装oracle软件 执行sql命令 使用各种工具
sql和sqlplus以及plsql区别:
sql:structured query language 有结构的 查询 语言 ---->结构化查询语言 第三代: 高级编程语言 第四代: 有结构的查询语言
只关心做什么 不关心怎么做
sql 命令 需要 ; 结尾,标示一条sql语句结尾
需求 : 得到名字叫张三的学生 所有信息 查询 张三
sqlplus:我们在登录oracle的时候提供一种登入oracle的方式 sqlplus 工具 用于执行 sql语句 sqlplus工具 可以完成的事情: 1,可以登入oracle数据库 2,执行输入的sql语句并且显示结果。 3,提供部分命令
sqlplus:有一些内置的命令,当使用这些命令的时候不需要 ; 结尾,但是有 ; 也不会错
pl/sql:在存储过程中,在sql语言的基础上增加了逻辑控制功能。 BEGIN IF c_id <= 0 THEN RAISE ex_invalid_id; ELSE SELECT name,address INTO c_name,c_addr FROM customers WHERE id = c_id;
DBMS_OUTPUT.PUT_LINE (‘Name: ‘|| c_name); DBMS_OUTPUT.PUT_LINE (‘Address: ‘ || c_addr); END
oralce主要操作: 1.select语句 2.数据操纵语言(DML语句)data manipulation language insert,update,delete 插入 更新 删除 有事务概念-->commit; 3.数据定义语言(DDL语句)data definition language create(创建),alter(修改),drop(删除),rename(重命名),truncate(删除表中的数据) 会提交事务 4.事务控制语句(TCL语句)transction control language commit(提交),rollback(回滚),savepoint(记录点,用来回滚)
5.数据控制语言(DCL语句)data control language grant【授权】,revoke【回收】
安装数据库: 1521端口号 oracle的主服务端口号:使用oracle必须开启oracle主服务 8080端口号 oracle监听端口号:使用网页oracle或者使用工具连接oracle需要开启监听服务
localhost:8080/apex--->网页版oracle
oracle基础前导操作: 1.以管理员方式登录oracle sqlplus system/密码 show user:显示当前登录的用户名字
2.创建新用户briup,密码briup create user briup identified by briup; 3.给新用户briup授权 grant connect,resource to briup;
使用网页版oracle 创建用户: 不推荐 推荐:sqlplus:sql命令创建oracle数据库
3.激活用户: alter user briup account unlock; 4.切换至briup用户 conn briup/briup 5.设置当前会话(session)的日期语言格式 alter session set nls_date_language=english; 6.执行sql文件 start e:/table.txt @路径 7.查询当前用户下有哪些表? select table_name from user_tables;
查看表有哪些列? desc 表名
学习阶段主要涉及表: S_EMP :员工表 id id last_name 后名字 姓 first_name 前名字 名 userid 员工内部编号,没用 start_date 入职日期 comments 注释:记录员工的特点 manager_id 经理的id title 职称 dept_id 所在部门id外键 salary 工资 commission_pct 提成
S_DEPT:部门表 id id name 部门名称 region_id 所在地区id的外键
S_REGION :区域表 id id name 区域名
三张表 主键 外键 关系需要很清楚
oracle二维表中列的数据类型:
1,NUMBER[(p,s)] 数值类型 p代表有效位数 精度(总长度), s代表小数点后位数 刻度 eg: NUMBER(6,2): 123456.00 1234.123 1234.12 123.123
NUMBER(3): 123 12.3 0.123 123.00
2,字符类型: 2.1:CHAR(8) 定长字符类型:占用空间固定 00000tom 0000lisi hello world 不能保存
2.2:VARCHAR(8) mysql 变长字符类型:占用空间 跟着输入有关 2.3:VARCHAR2(8) oracle 变长字符类型:占用空间 跟着输入有关 tom lisi hello world 不能保存 oracle中字符串用 ‘‘表示 oracle关键字不区分大小写,但是字符串区分大小写
3,日期类型:DATE 默认:04-9月-17 3.1:日期类型,世纪年月日时分秒都会保存 3.2:中文语言环境: 系统默认:‘DD-MM-YY‘ eg:‘16-7月-17‘ ---> 2017/7/16 3.3:修改当前语言环境: alter session set nls_date_language=english; 3.4:英文语言环境 系统默认:‘DD-MM-YY‘ eg:‘16-JULY-17‘ ---> 2017/7/16 3.5:修改日期显示格式 alter session set nls_date_format=‘yyyy-mm-dd‘; eg:select sysdate from dual;
【写一个长得和日期一样的字符串】
4,CLOB:超级长字符,整本小说的所有字符串 可以保存
5,BLOB:字节数组:可以用于保存文件的二进制字节数组. 字节数组: byte[]
(编辑:安卓应用网_ASP源码网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|