数据库总结

时间:2019-05-15 13:56:45下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《数据库总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《数据库总结》。

第一篇:数据库总结

数据库总结:共三天的课程

数据库的概念:数据库是一组有序的数据的集合; 数据库的作用:为了有效的管理数据; 数据类型:

一 字符串相关的类型:一般用于人名、大于2147483647(10位数)的数字、地址等字符信息

使用格式:字段名 char(存放字符的长度)

或者

字段名

varchar(存放字符的长度)Char:代表的是定长的字符串类型,定义了多长,就分配多长的存储空间,只要不超过定义的长度,分配给char的空间长度就不会改变,余下的部分用空格代替;

Varchar:代表的是可变长度的字符串类型,定义的长度可以理解为是虚拟的空间,只要字符串的长度不超过定义的长度,那么varchar的分配空间长度就是字符串实际的长度,余下的部分自动消失; 二 数字相关的类型:一般用于工资、人数统计等方面; 使用格式:字段名

int/float/double 【此处不用定义字段的长度】 int :取值的范围-2147483648~2147483647,后面可以设置主键及自增长;

float/double:用于带有小数的数据定义 decimal:多用于金钱的数据 三 时间相关的数据类型:一般用于时间的统计,例如登录时间、修改时间、退出时间等;

使用格式:字段名

date/time/datetime/timestamp 【此处不用定义字段的长度】,插入表的时候格式与字符串的插入格式一样,都是用单引号插入

date:日期类型

格式:yyyy-MM-dd time:时间类型

格式:hh:mm:ss Datetime:日期时间

格式:yyyy-MM-dd hh:mm:ss Timestamp:时间戳

格式:yyyy-MM-dd hh:mm:ss 数据库的操作:

一 查看所有数据库:select databases;二 查看所有表:select tables;三 创建数据库:create database 数据库名称;

use 数据库名称;

四 创建表:create table 表名(字段1

类型(长度)[约束], 字段2

类型(长度)[约束], 字段n

类型(长度)[约束])注:字段n的结尾处不需要用逗号分隔

五 删除当前表/数据库:drop table 表名/ 数据库名;

六 向表中插入数据:insert into 表名(字段1,字段2,字段n)values(值1,值2,值n),(值1,值2,值n),(值1,值2,值n),(值1,值2,值n)...注:此处的插入数据可以用逗号隔开,想要插入几条数据就插入几个值。

七 查看当前表的值:select * from 表名

注:*是通配符,代表全部的意思,此处*还可以用表中的字段名代替,那么查看就是相应的字段名下的数据。

约束:

一 主键约束:primary key 代表的是唯

一、不重复,非空的约束 使用格式: 字段名

类型(长度)primary key 自增长:auto_increment 必须与主键约束一同使用,字段的类型是整型,插入数据的时候可以不用向设置自增长的字段添加数据,起始的默认数字是:1 二 唯一约束:unique 不可以重复,唯一 使用格式: 字段名

类型(长度)unique 注:空格是不可以作为字符串使用的,空格相当于null,如果向设置unique的字段内插入数据是存在【‘空格’、null、(‘’)】当中两个或两个以上的时候就会报错【’null’是字符串,不是空】 三 非空约束:not null 插入数据时必须要为设置not null的字段插入数据,这个字段不能为空

使用格式: 字段名

类型(长度)not null 注:空格是不可以作为字符串使用的,空格相当于null,如果向设置not null的字段内插入数据是存在【‘空格’、null、(‘’)】当中一个或一个以上的时候就会报错

四 默认约束:default 为字段设置默认值,当不为设置默认约束的字段插入数据是,系统自动将默认值赋予这个字段 使用格式: 字段名

类型(长度)default 值 五 检查约束:check(检查的内容)使用格式: 字段名

类型(长度)check(检查的内容)注:在SQL语句中没有实际的含义,但是需要会用

六 外键约束:foreign key 必须是另一个表的主键(唯一的),设置了外键的字段,受到关联表中相应主键的字段的约束,当要为外键约束插入数据的时候,必须先为被关联的表插入相应主键的数据;

使用格式: 创建表时候就设置外键约束

字段名

类型(长度),Foreign key(字段名)references 表名(对应主键的字段名)表已经创建完,插入外键约束

Alter table 表名 add constraint fk_f foreign key(要设置外键的字段名)references 被关联的表名(被关联的字段名);表的结构:

查看表结构:desc/describe 表名;修改表名:alter table 表名 rename 新表名 添加新字段:alter table 表名 add 字段名 类型(长度)修改字段:alter table 表名 change 旧字段 新字段 新字段类型(长度)删除字段:alter table 表名 drop 字段名

记录的操作:

一 插入记录:insert into 表名(字段名1,字段名n)values(值1,值n)二 修改记录:update 表名 set 字段名=值 where 条件

注:这里如果不加where条件,那么这个表的这个字段名下的数据全部赋值成为“值”

三 删除记录:delete from表名 where 条件

注:此处删除的是表中的符合where条件的整条记录 注意:使用delete和update的时候要千万注意,必须要写where条件语句,要不然就会将当前表中的所有数据改变,在想改回来的话会非常非常费劲!!!

四 查询记录:select 字段名1,字段名n from 表名 where 查询条件 查询去掉重复的值:关键字 distinct 格式:select distinct 字段名1,字段名n from 表名命别名/赋值表: 关键字 as 命别名:select 字段名 as ‘自定义名’

from 表名 赋值表:create table 新表名 as select * from 旧表名 3 查询条件语句的范围:in(等值判断)/not in select 字段名1,字段名n from 表名 where 字段名

in/not in(值1,值n)4 模糊查询:like

匹配标识符:’_’代表一个字符、%代表多个字符

Select 字段名 from 表名 where 字段名 like ‘_sth%’ 注:like后面的判断值如果是数字的话要加单引号,例如想要查询的条件是12345,可以这样写:’%3%’,单引号必须加 5 区间查询:limit m,n

查询从第m个记录开始,一共n条记录,这里的m指的是类似Java数组里的下标,计数从0开始

Limit m

查询从头开始的一共m条记录

Select */字段名 from 表名 limit m,n 6 查询值是否存在某段区间内:between 最大值 and 最小值(int 型的最大值、最小值)Select 字段名1,字段名n from 表名

where 字段名 between 最大值

and 最小值:

注意这里面的条件含有等于最大值和等于最小值

字段名 between 最大值 and 最小值= 字段名>=最小值 and 字段名<=最大值

逻辑运算符在此处可通用:<

<=

>

>=

=

!=

集合函数: 使用方法与Java中的方法的使用类似,注意的是函数名后面紧跟着(),中间不能有空格 一 符合条件的记录的个数:countil

Select count(字段名)from 表名

where 查询条件 二 求某个字段的值的总和:sum Select sum(字段名)from 表名

where 查询条件 三 求某个字段的值的平均值:avg Select avg(字段名)from 表名

where 查询条件 四 求某个字段的值的最大值:max Select max(字段名)from 表名

where 查询条件 五 求某个字段的值的最大值:min Select min(字段名)from 表名

where 查询条件

多表查询:

笛卡尔积:select(字段1,字段n)from 表1,表n 自己想要的查询(找到所有被查询的表的相同的字段): Select(a.字段1,a.字段n,b.字段1,b.字段n)from 表名 as a,表名 as b where a.字段名=b.字段名;

联合查询:

左连接:select 字段名/* from 左表名

left join 右表名

on 左表名.字段名=右表名.字段名

查询结果:左表全部显示,右表与左表相同的字段名的部分显示 右连接:select 字段名/* from 左表名

right join 右表名

on 左表名.字段名=右表名.字段名

查询结果:右表全部显示,左表与右表相同的字段名的部分显示 内连接:select 字段名/* from 左表名

inner join 右表名

on 左表名.字段名=右表名.字段名

查询结果:只有左表与右表相同的部分才显示

全连接:select 字段名/* from 左表名

full join 右表名 查询结果:’*’的结果是笛卡尔积

‘字段名’的结果是这个字段名下的笛卡尔积

函数:函数名与小括号之间不能有空格,字符串必须用单引号圈起来

一 求字符串长度:length Select

length(字符串)二 字符串的截取:substring(字符串,m)/(字符串,m,n)Select

substring(字符串,m)/(字符串,m,n)三 小写转大写:upper Select

upper(字符串)四 大写转小写:lower Select

lower(字符串)五 加密:MD5 Select

MD5(字符串)六 显示现在的时间:now Select

now()

迷糊中: group by

order by 子查询

第二篇:数据库总结

数据库老师画的重点

数据库:数据库是长期存储在计算机内、有组织、可共享的大数据集合。数据库操纵功能:查询select、插入insert、删除delete、修改update 数据库系统的特点:1数据结构化2数据的共享高,冗余度低,易扩充3数据独

立性高4数据由DBMS统一管理和控制

数据模型的组成要素:数据结构、数据操作、完整性约束 概念模型:要出大体,画图 信息世界中的基本概念————

1、实体:客观存在并可以相互区别的事物称为实体

2、属性:实体所具有的某一特性

3、码(key):唯一标识实体的属性集称为码

4、域(domain):域是一组具有相同数据类型的集合

5、实体型(entity type):具有相同属性的实体必然具有共同的特征和性质。用实体名

及属性名集合来抽象和刻画同类实体,称为实体型。

6、实体集(entity set):同一类型的实体的集合

7、联系:在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中

反应为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指

组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系

最常用的数据模型:

1、层次模型(Hierarchical Model)

2、网状模型(Network Model)

3、关系模型(Relational Model)

4、面向对象模型(Object Oriented Model)

5、对象关系模型(Object Relational Model)其中层次模型和网状模型统称为格式化模型

数据库系统的三级模式结构:

1、模式(scheme):模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。他是数据库系统模式结构的中间层,既不设计涉及数据的物理存储细节和硬件环境,也与具体的应用程

序、所使用的应用开发工具及高级程序设计语言无关。

2、外模式(external schema):外模式也称为子模式(subschema)或用户模式,他是数

据库用户(包括应用程序员和最终用户)能看见和使用

的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

3、内模式(internal scheme):内模式也称存储模式(storage schema),一个数据库只有

一个内模式。他是数据库物理结构和存储方式的描述,是

数据在数据库内部的表达方式。数据库的二级映像功能与数据库独立性————

为了能够在系统内部实现这3个抽象层次的联系和转换,数据库管理系统在这三个模式之间提供了两层映像:

·外模式/模式 映像 ·模式/内模式 映像

正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性 关系(relation):D1*D2*D3··*Dn的子集叫做在域D1、D2、D3···Dn上的关系,表示

为R(D1、D2、D3···Dn)

这里的的R表示关系的名字,n是关系的目或度(degree)关系中每个元素是关系中的元组,通常用t表示 当n=1时,称关系为单元关系(unary relation),或一元关系 当n=2时,称该关系为二元关系(binary relation)

关系是笛卡尔积的有限子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(attribute)。n目关系必有n个属性。

若关系中的某一属性组的值能够唯一的标识一个元组,则称该属性组为候选码(candidate key)

若一个关系有多个候选码,则选定其中一个为主码(primary key)候选码的诸属性称为主属性(prime attribute)。不包含在任何候选码中的属性称为非主属性(non-prime attribute)或非码属性(non-key attribute)P46 没有搞明白干嘛使得!!!!!!!!!!!

关系的三类完整性约束:实体完整性、参照完整性、用户定义的完整性 实体完整性和参照完整性被称作关系的两个不变性

1、实体完整性(entity integrity):主码中的属性即主属性不能取空值

2、参照完整性(referential integrity):

若属性(或属性组)F是基本关系R的外码,它与基本关系S的的主码K相对应(基

本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:

·或者取空值(F的每个属性值均为空值)·或者等于S中某个元组的主码值

SQL(Structured Query Language),即结构化查询语言,是关系数据库的标准语言。SQL 的特点:

1、综合统一

2、高度非过程化

3、面向集合的操作方式

4、以同一种语法结构提供多种使用方式

5、语言简洁、易学易用 SQL的动词:

数据查询:select 数据定义:create、drop、alter(房间)修改表

数据操纵:insert、update(家具)修改数据、delete 数据控制:grant、revoke

绘制ER图————

在ER图中有如下四个成分:

矩形框:表示实体,在框中记入实体名。菱形框:表示联系,在框中记入联系名。

椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下

划一下划线。

连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上

标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1; 对于一对

多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体

连线方向各写N,M。

基本表是本身独立存在的表,在SQL中一个关系就对应一个基本表。一个(或多个)基本表对应一个存储文件,一个表可以带若干索引,索引也可以放在存储文件中。存储文件的逻辑结构组成了关系数据库的内模式。存储文件的物理结构是任意的,对用户是透明的。

视图是从一个或几个基本表导出的表。它本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据。这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。视图在概念上与基本表等同,用户可以在视图上再定义视图。

基本表的定义、删除与修改:

1、定义基本表:create table ***()

2、定义主键:Primary key == not null(中间不用连接符号)unique

3、定义外码的语句:foreign key(某个字段)references 某表(某字段)

4、定义主码语句:primary key(***,***)

5、修改基本表:alter table 某表名 add 列名<数据类型>[完整性约束]

drop <完整性约束名>(字段名)

alter column<列名><数据类型>

6、删除表:drop table 表名[restrict | cascade级联删除]

7、建立索引:create [unique] [clustered] index 索引名

on 表名(列名[asc | desc],······)·clustered 表示是聚簇索引

·unique表明此索引的每一个索引值只对应唯一的数据记录 ·用户可以在最经常查询的列上建立聚簇索引以提高查询效率 ·在一个基本表上只能建立一个聚簇索引

·建立局促索引后,更新该索引列上的数据时,往往导致表中记

录的物理顺序的额变更,代价较大,因此对于经常更新的列不

宜建立聚簇索引

8、删除索引:drop index <索引名>

上机的时候不太一样:drop index 表名。索引名字

9、数据的查询:

select [all | distinct] <目标列表达式>,······ from 表名或者视图名,··· where 条件表达式

group by 列名1 [having 条件表达式] order by 列名2 [asc | desc] ·如果有group by 子句,则结果按“列名1”的值进行分组,该属性列值相

等的元组为一个组。通常会在每组中作用聚集函数。如果group by 子句带

having短语,则只有满足指定条件的组才予以输出。

·如果有order by 子句,则结果表按“列名2”的值的升序或降序排序 ·select Sname Name,‘Year of Birth:’Birth,2013-Sage Birthday,lower

(Sdept)Department

from Student

lower表示小写

常用的查询条件————

较:大于、等于、小于、不等于(< >/!=)、大于/小于等于、不小于、不大于、not+上述比较运算符

确定范围:between and,not between and 确定集合:in,not in 字符匹配:like,not like 空

值:is null,is not null 多重条件(逻辑运算):and,or,not

例子————

·select Sname,Sage

from Student

where Sdept(not)in(‘cs’,‘ma’,‘is’)

字符匹配:[not] like ‘字符串’[escape‘换吗字符’] 百分号表示任意长度、下划线表

示任意单个字符 聚集函数————

count([distinct | all] *)

统计元组个数 count([distinct| all] 列名)

统计一列中值的个数 sum([distinct| all] 列名)

计算一列值的总和(此列必须是数值型)avg([distinct| all] 列名)

计算一列的平局值(此列必须是数值型)max([distinct| all] 列名)

求一列中的最大值 min ·如果指定distinct短语,则表示在计算时要取消指定列中的重复值。如果不指定distinct

短语或者指定all短语(all为缺省值),则表示不取消重复。

·注意在聚集函数遇到空值时,除count(*)外,都跳过空值而只处理非空值。·注意where子句中不能用聚集函数作为条件表达式

group by子句————

where 子句与having 短语的区别在于作用对象不同。Where 子句作用对象作用于基本表或试图,从中选择条件的元组。Having短语作用于组,从中选择满足条件的组。

例子:select Sno from SC

group by Sno having count(*)>3 查询了选修3门以上课程的学生学号 链接查询—————— 例子:

非自然链接

·select Student.*,SC.*

from Student,SC

Where Student.Sno=SC.Sno

自然链接

·select Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade

from Student,SC

where Student.Sno=SC.Sno

自身链接

·select FIRST.Cno,SECOND.Cpno

from Course FIRST,Course SECOND

where FIRST.Cpno=SECOND.Cpno

外连接

·select Student.Sno,Sname,Sage,Sdept,Cno,Grade

from Student left outer join SC

on Student.Sno=SC.Sno ·左外链接列出左边关系中所有的元组,右外连接列出右边关系中的所有元组

嵌套查询

·select Sname from Student

where Sno in(select Sno from SC where Cno=‘2’)

·找出每个学生超过他选修课程平均成绩的课程号

Select Sno,Cno From SC x Where Grade >=(select avg(Grade)

From SC y Where y.Sno=x.Sno)

授权————

Grant 权限,····· On 对象类型 对象名,····· To 用户,·····

[with grant option]只一句表示权限的传递

例子: ·Grant all privileges

On Student,Course

To U1,U2

·grant update(Sno),select

on Student

to u4

·revoke update(Sno)

on table Student

from u4

一个满足BCNF的关系模式有:

·所有非主属性对每一个码都是完全函数依赖

3NF 编辑

3NF,即第三范式是要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。满足第三范式(3NF)必须先满足第二范式(2NF)

2NF(第二范式)

第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。如图3-2 员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是唯一的,因此每个员工可以被唯一区分。这个惟一属性列被称为主关键字或主键、主码。

第三篇:数据库总结(简答题)

数据的定义 :描述事物的符号记录

数据库的定义:数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合

DBMS的定义:数据库管理系统(Database Management System,简称DBMS):位于用户与操作系统之间的一层数据管理软件(系统软件)。

DBMS的用途:

(1)科学地组织和存储数据(2)高效地获取和维护数据 DBMS的主要功能:

(1)数据定义功能:提供数据定义语言(DDL)定义数据库中的数据对象

(2)数据操纵功能:提供数据操纵语言(DML),实现对数据库的基本操作(查询、插入、删除和修改)。

(3)数据库的运行管理:在数据库建立、运用和维护时对数据库进行统 一控制,以保证数据的完整性、安全性、并在多用户同时使用数据库时进行并发控制,且在数据库系统发生故障后对系统进行恢复。

(4)数据库的建立和维护功能(实用程序):数据库数据批量装载、数据库转储、恢复、数据库的重组织、性能监视等

(5)数据库系统(Database System,简称DBS):指在计算机系统中引入数据库后的系统 在不引起混淆的情况下常常把数据库系统简称为数据库

数据库系统的构成(1)数据库

(2)数据库管理系统(及其开发工具)

应用系统

数据库管理员(DBA)和用户

数据管理是指对数据的组织、分类、编码、存储、检索和维护。数据管理技术的发展过程 人工管理阶段特点:

(1)数据不保存

(2)系统没有专用的软件对数据进行管理

(3)数据不共享

(4)数据不具有独立性 文件系统阶段特点:

(1)数据以文件形式长期保存(2)数据由文件系统统一管理(3)应用程序直接访问数据文件(4)数据的存取基本上以记录为单位 缺点:(1)数据冗余度大(2)数据独立性低(2)数据一致性差

数据库系统阶段特点:(1)数据共享性高、冗余少(2)数据结构化(3)数据独立性高

(4)由DBMS进行统一的数据控制功能 A)数据的安全性(security)控制 B)数据的完整性(integrity)控制 C)并发(concurrency)控制 D)数据恢复(recovery)

数据模型分成两个不同的层次:

(1)概念模型(概念层数据模型,也称信息模型):它是按用户的观点来 对数据和信息建模。

(2)数据模型(组织层数据模型):它是按计算机系统的观点对数据建模,主要用于DBMS的实现。

抽象过程---两步抽象

(1)现实世界中的客观对象抽象为概念模型;

(2)把概念模型转换为某一DBMS支持的数据模型。

数据模型通常由数据结构、数据操作和数据的约束条件三个要素组成(7)联系(Relationship)

实体内部的联系:组成实体的各属性之间的联系。实体之间的联系:不同实体集之间的联系。(1)一对一(2)一对多(3)多对多 目前最常用的数据模型有

层次模型(Hierarchical Model)网状模型(Network Model)关系模型(Relational Model)面向对象的数据模型(5)关系模型的优缺点 优点:

1)建立在严格的数学概念的基础上

2)数据结构简单、清晰,用户易懂易用实体和各类联系都用关系来表示。

3)关系模型的存取路径对用户透明具有更高的数据独立性,更好的安全保密性简化了程序员的工作和数据库开发建立的工作 缺点

1)存取路径对用户透明, 导致查询效率往往不如非关系数据模型 2)为提高性能,必须对用户的查询请求进行优化 三级模式结构: 外模式:是数据库中全体数据的逻辑结构和特征的描述

概念模式:是数据库用户使用的局部数据的逻辑结构和特征的描述 内模式:是数据物理结构和存储方式的描述

二级映象

(1)外模式/模式映象:定义外模式与模式之间的对应关系 用途: 保证数据的逻辑独立性

(2)模式/内模式映象:模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。

用途:保证数据的物理独立性 关系数据库的规范化理论主要包括三个方面的内容: 函数信赖

范式(Normal Form)模式设计和模式分解

进行数据库的操作时,会出现以下几方面的问题: 1.数据冗余

2.插入异常 3.删除异常 4.更新异常

一个好的关系模式应该具备以下四个条件: 1.尽可能少的数据冗余 2.没有插入异常 3.没有删除异常 4.没有更新异常

1.第一范式

第一范式(First Normal Form)是最基本的规范形式,即关系中每个属性都是不可再分的简单项。

2.第二范式

定义:如果关系模式R∈1NF,并且R中的每个非主属性都完全函数依赖于主码,则R∈2NF。存在问题:(1)数据冗余

(2)插入异常(3)删除异常(4)更新异常

之所以存在这些问题,是由于在S-L表中存在着非主属性对主码的传递依赖。3.第三范式

定义:如果R(U,F)∈2NF,并且所有非主属性都不传递依赖于主码,则 R(U,F)∈3NF。

关系模式S-L由2NF分解为3NF后,既没有非主属性对主码的部分依赖,也没有非主属性对主码的传递依赖,解决了2NF中存在的四个问题。(1)数据冗余降低(2)不存在插入异常(3)不存在删除异常(4)不存在更新异常值

4.BC范式

(BCNF)

定义:若关系模式R∈1NF,对于关系R的每个函数依赖X→Y且YX,X必含有候选码,则R∈BCNF。

即每个决定属性集都包含候选码。

关系规范化的目的:解决关系模式中存在的插入、删除、更新操作异常,数据冗余问题.关系规范化的方法:围绕函数依赖的主线,对一个关系模式进行分解,使关系从较低级范式变换到较高级范式。模式分解的准则:(1)无损连接性(2)保持函数依赖 SQL语言特点

(1)高度非过程化的语言(2)面向集合的语言(3)能以多种方式使用

(4)具有查询、操作、定义和控制四种语言一体化的特点(5)语言简洁、易学易用

SQL按其功能可分为四大部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能。

(1)数据定义功能用于定义、删除和修改数据库中的对象;(2)数据查询功能用于实现查询数据的功能;

(3)数据操纵功能用于实现对数据库数据的增加、删除和修改;(4)数据控制功能用于实现控制用户对数据库的操作权限 索引:记录的关键字与其相应地址的对应表。

视图(view): 是从一个或者多个表或视图中导出的表。它与基本表不同的是:

(1)基本表(base table):独立存在的表, 基本表中的数据是存在数据库中。(2)视图是一个虚表。即视图所对应的数据不实际存放在数据库中

(3)在数据库中只存放视图的定义,不存放视图包含的数据,这些数据仍存放在原来的基本表中。

(4)基表中的数据发生变化,从视图中查询出的数据也随之改变。视图作用

(1)简化数据查询语句

(2)使用户能从多角度看到同一数据(3)提高了数据的安全性

(4)提供了一定程度的逻辑独立性

一、SQL嵌入到主语言要解决的问题 ①如何识别SQL ②数据传递

③解决SQL一次一集合的操作与主语言一次一记录操作的矛盾.用游标解决。

四、使用游标的步骤

1、说明游标

格式:exec SQL declear <游标名> cursor for