null第四课第四课数据库表对象课程回顾课程回顾使用set命令如何设置以显示sql命令的执行时间?
如何显示一个数据库表的结构?
使用show命令如何查看共享池的大小?
user视图、all视图、dba视图之间的区别?
如何从动态视图v$parameter中查看共享池大小?
静态参数与动态参数的区别?
如何修改动态参数,scope选项中三种取值的含义何在?本章案例本章案例在Oracle中创建teacher表和student表,并在此二表上添加相应的约束本章目标本章目标理解E-R实体关系图,熟记实体关系图的表示方式
理解
规范
编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载
化
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
三大范式定义,理解逆范式在实际应用中的作用
掌握Oracle基本三大数据类型和常用约束
熟记使用表DDL进行创建、删除及修改的语法
什么是数据库设计什么是数据库设计现实世界信息世界数据(电脑)世界E-R图E-R图E-R图(Entity Relationship Diagram),中文称为“实体-关系图”,提供了表示实体、属性和关系的图形符号。实体名属性名关系名实体表示关系表示属性表示学生选课系统中的E-R图学生选课系统中的E-R图E-R图如何表示实体之间的关系E-R图如何表示实体之间的关系图1.8 多对多的实体关系范 式范 式范式规则范式规则第一范式(1NF):列的原子性,即列是不可以再分的,同一条
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
的列不能有多个值。
第二范式(2NF):完全依赖性,即非主键属性必须完全依赖于主键属性,不能存在依赖部分主关键字的情况
第三范式(3NF):直接依赖性,即非主关键字属性必须直接依赖于主关键字,而不能存在传递依赖性,即所谓的一个非主属性通过另一个非主属性间接依赖主关键字的情况
修正第三范式(BCNF):该规则是修正的第三范式,在第三范式基础上增加了一条规则,即:主键属性之间不能存在传递依赖性
注:通常情况下,第一范式是必须要满足的,即列的原子性保证表表数据库中主要的数据存储在数据库表中,表在逻辑结构上存储与表空间中,在物理结构上存储于磁盘上的数据文件中,一个表空间可以对应一个或多个数据文件
数据库的表类似于Excel文件中的表,它是一张二维表(即由行和列两部分组成),通常称表中的一行为一条记录,一条记录代表一个实体对象,每个列则描述实体的各个属性
列名行(记录)列(字段)表的命名规范表的命名规范长度必须在30个字符之内
必须以一个字母开头,能包含字母、数字、下划线( _ )、#和$。但Oracle不鼓励在名称汇总使用#和$
Oracle数据类型Oracle数据类型对常用数据类型的解释对常用数据类型的解释number:数值类型,有可选的总位数和小数位数指定,如number(9,1)表示总位数(包括小数点)最长为9位,其中小数位数最长为1位,如果位数超过给定长度将作四舍五入处理
varchar2:字串类型,有可选的最长字节数限制,如:varchar2(10)表示最长为10个字节,当给定字符超出10个字节则发生错误,如果不到10个字节则按实际字节长度存储,注意:字母、数字和英文符号占一个字节,汉字占两个字节
date:日期类型,获取当前日期使用sysdate函数
注意:在Oracle中,数据类型之间可以发生简单的类型转换,当
不能发生类型转换时可以调用to_number、to_char及
to_date等函数类完成类型之间的转换SQL语言初步认识SQL语言初步认识SQL是Structured Query Language(结构化查询语言)的首字母的缩写。
SQL支持如下类别的命令
数据定义语言:create(创建),alter(更改)和drop(删除)命令。
数据操纵语言:insert(插入)、select(选择)、dalete(删除)、和update(更新)命令。
事物控制语言:commit(提交)、savepoint(保存点)和rollback(回滚)命令。
数据控制语言:grant(授予)和revoke(回收)命令。 表的创建表的创建语法:
create table tableName(
column datatype [, column datatype [, …]] );
字段约束字段约束字段约束指的是字段(表中的列)的取值必须被约束在一个给定值或范围内,当字段的值没有满足约束条件而被插入时将发生错误
字段的约束分为匿名约束和命名约束,匿名约束就是没有名字的约束,而命名约束是使用关键字constraint 在约束类型之前定义一个名称的约束,即:
constraint constraint_name constraint_type(fieldList)
在创建表时,对匿名约束可以直接放在字段定义之后,对于命名约束可以放在字段定义之后也可以单独定义字段约束字段约束主键约束:该约束使用primary key定义,此约束要求字段或字段的组合值在主键列上不能为空(null)且唯一,下面分别用匿名和命名两种方式指定主键约束(以后提到的约束类型依次类推):匿名主键约束命名主键约束字段约束字段约束唯一约束:此约束要求列或列的组合在指定唯一约束的列上是唯一的,唯一约束允许空值的存在,指定唯一约束类型使用关键字unique
非空约束:此约束要求指定为非空约束的列不能包含空值(null);指定非空约束类型使用关键字not null
检查约束:此约束要求指定为检查约束的列值必须在校验的值范围内,指定检查约束使用关键字:
check(condition_expression) 如:check(age<25)
外键约束:此约束要求指定为外键约束的列值必须在引用表的引用列中存在,指定外键约束类型需要使用foreign key指定外键列,同时使用references指定引用表和引用列,即:
foreign key(field) references reference_table(reference_field)字段约束实例字段约束实例指定student表中的teacher_id列的值必须能够在teacher表中的teacher_id列上找到默认值定义放在约束之前定义这种情况不要再写成primary key(student_id)字段约束小结字段约束小结字段约束不是表在创建时必须定义的,通常来说,在数据库表中最常用的字段约束是主键约束、非空约束和唯一约束;而主键约束本身可以保证非空且唯一;其余的约束类型一般可以通过在应用层(java或C#)来保证
表的定义主要是对字段名、字段类型和格式、默认值、约束等进行定义,默认值可以通过default关键字直接在字段后面定义(如果没有指定默认值则该字段的默认值为null),如:使用default定义的默认值表的删除与修改表的删除与修改删除表的语法是:drop table tableName
修改表的语法是:
alter table tableName
[add[field datatype|constraint constraint_type]]|
[drop[column field|constraint constraint_type]]|
[modify column datatype]|
[rename[column|constraint] oldName to newName]|
[move tablespace tableSpaceName]|
[pctfree freeValue pctused usedValue]|
[enable[validate|novalidate]|disable constraint constraint_name]|
[read only|read write]表的修改与删除实例表的修改与删除实例student_id字段上添加主键约束
添加一个新列age类型为number
修改name列的大小有varchar2(10)改变为varchar2(20) 表的修改与删除实例表的修改与删除实例删除一个列age
删除主键约束student_pk
删除表student总 结总 结E-R图形表示及三大范式定义
常用的Oracle数据类型:number、varchar2、date
常用的表约束类型:主键约束、非空约束、唯一约束
表的DDL(创建、删除、修改)操作的语法定义:
A、创建表:
create table tableName(
fieldName fieldType constraintType,
........................................................);
B、删除表:drop table tableName
C、修改表:总 结总 结alter table tableName
add fieldName fieldType|constraint contraint_type|
drop column fieldName|constraint constraint_type|
modify fieldName fieldType constraint constraint_type作 业作 业E-R图中的矩形、菱形和椭圆分别代表什么?
三大范式是如何定义的?
Oracle中有哪些常用的数据类型和约束类型?
表的DDL(创建、删除、修改)语法是如何定义的?
创建一张teacher表,表中有teacher_id、name、 gender 、age等字段,其中teacher_id为主键字段,name不能为空,gender默认为男,age的年龄必须在25岁至60岁之间
创建一张student表,表中有student_id,name,age,teacher_id等字段,其中student_id为主键、name不能为空、age必须在15岁至35岁之间、teacher_id列值与teacher表的teacher_id列对应null