1、数据库数-据-库一、数据库介绍数据是对客观存在的事物特征的一种符号化的、抽象的表示。而信息则是加工处理过的数据,也就是说信息是对大量数据进行分析处理后的结果。信息来源于数据,而同时信息又以数据的形式表示出来。现在,世界各国都在加快本国的信息化建设,为的是能够节约并充分利用资源、提高各行各业的作业效率。而衡量一个国家信息化的水平,往往要看这个国家数据库的建设规模,数据库中信息量的大小以及数据库的使用程度。中国是从七十年代引进的数据库技术。经过近三十年的发展,取得了很大的进步,但和发达国家相比还有着一定的差距。我们国家也一直非常重视信息化的建设,这些年还特别提出了要通过表是关系型数据库中的一个重要
2、对象。它是以行和列所组成的二维表格形式来存储、显示、组织数据库中的所有数据信息。SQL Server 的每一个数据库最多可以创建20 亿个表,每个表可以有250个字段,而对每张表的数据个数则没有做限制。表的设计应遵循下列几个范式:第一常规表单(第一范式)1.去掉各个表中的重复组。2.为每组关联数据创建独立的数据。3.使用主关键字确定每组关联数据。第二常规表单(第二范式)1.为应用到多个记录的多组数值创建独立表。2.使用外部关键字将这些表关联起来。第三常规表单(第三范式)去掉了不取决于关键字的字段。其它标准化表单(范式)也有第四常规表单(第四范式)(也称为BoyceCodd常规表单(范式)(BC
3、NF))与第五常规表单(第五范式)存在,但是在实际设计中很少考虑。忽视这些规则可能使得数据库的设计不太完美,但这不应影响功能。将示例表标准化这些步骤说明将一个虚构的汽车信息表进行标准化的步骤。非标准化的表:品牌厂家顶级版尊贵版豪华版别克上海通用别克君威别克凯越别克赛欧大众上海大众帕萨特波罗桑塔纳2000红旗一汽红旗旗舰世纪星明 仕第一常规表单(第一范式):无重复组Id品牌厂家类型系列1别克上海通用顶级版别克君威2别克上海通用尊贵版别克凯越3别克上海通用豪华版别克赛欧4大众上海大众顶级版帕萨特5大众上海大众尊贵版波罗6大众上海大众豪华版桑塔纳20007红旗一汽顶级版红旗旗舰8红旗一汽尊贵版世纪星
4、9红旗一汽豪华版明 仕第二常规表单(第二范式):去掉冗余数据以下两个表说明第二常规表单(第二范式):factory表id(主键)品牌厂家1别克上海通用2大众上海大众3红旗一汽car表s_id(主键)id(外键)类别系列11顶级版别克君威21尊贵版别克凯越31豪华版别克赛欧42顶级版帕萨特52尊贵版波罗62豪华版桑塔纳200073顶级版红旗旗舰83尊贵版世纪星93豪华版明 仕第三常规表单(第三范式):去掉不取决于关键字的数据也就是说可以将诸如颜色再单独建一个表,每个颜色都有一个代码来表示如下表所示:c_id(主键)颜色代码颜色10001雅黑20002峡谷红30003钻石银这时候,将原来car表中
5、的颜色列改为颜色代码,让car表原来直接保存颜色,改为保存颜色的代码,每一种颜色都有一个唯一的代码与之相对应。这个代码就需要我们来保证它的唯一性了。这样做的目的是为了保证数据的完整性,一致性。因为有的人喜欢输入简称,比如“西安”,而有的人比较严谨,会写“西安市”,这样就会出现数据的不一致,这在数据库看来是两个不同的数据,而不是指的同一个城市。如果我们用代码来表示,就不会出现这种问题。三、SQL语句SQL(STRUCTURED QUERY LANGUAGE) 语言,中文名叫结构化查询语言,是关系型数据库的核心,具体到SQL Server所使用的数据库查询语言称为Transact-SQL,它是SQ
6、L Server的核心,是增强版的SQL,或者说是扩展的SQL。Transact-SQL强化了原有的SQL关键字以进行数据的存取,储存及处理等功能,Transact-SQL扩充了流程控制指定,可以使你方便的编写功能强大的存储过程SQL语言又分为DDL(data definition language)数据定义和DML(data manipulation language)数据操纵语言两种。1DDL:用于创建和修改对象:注:下列语句中的中圆点代表空格的意思。create database ttttgouse ttttcreate table table1(id int identity(1,1)
7、 not null,aa varchar(50) null,bb varchar(50) null)create table table2(s_id int identity(1,1) not null,id int null,cc varchar(50) null,dd varchar(50) null)alter table table1 add constraint df_table1_aa default () for aa, constraint df_table1_bb default () for bb, constraint df_table1 primary key clus
8、tered (id)alter table table2 add constraint df_table2_id default (0) for id, constraint df_table2_cc default () for cc, constraint df_table2_dd default () for dd, constraint df_table2 primary key clustered(s_id)3.DML:用于操纵数据库中的数据所能完成功能主要有检索(select)、插入(insert)、删除(delete)以及更新(update)四种。格式如下:检索语句的格式如下:S
9、elect 字段1,字段2,字段3 from 表名 where 字段名=值 order by 字段 desc group by 字段插入语句的格式如下:Insert into 表名(字段1,字段2,字段3)values(值1,值2,值3)删除语句的格式:delete from 表名 where 字段名=值修改语句的格式:update 表名set 字段1=值1,字段2=值2,字段3=值3 where 字段名=值四、存储过程存储过程是SQL Server服务器上一组预先定义并编译好的Transact-SQL语句,它可以接受参数、返回状态值和参数值,并且可以嵌套调用。存储过程的基本格式如下:CREA
10、TE PROCEDURE 存储过程名参数名 参数类型(大小),参数名 参数类型(大小), 参数名参数类型(大小) AS declare 变量名 变量类型(大小) declare 变量名 变量类型(大小) declare 变量名 变量类型(大小),变量名 变量类型(大小)存储过程的具体语句五、触发器触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化时自动执行,唤醒调用触发器以响应 INSERT、UPDATE 或 DELETE 语句。触发器的基本格式如下:CREATE TRIGGER 触发器名 ON 表名 FOR INSERT(DELETE ,UPDATE)AS declare 变量名 变量类型(大小) declare 变量名 变量类型(大小) declare 变量名 变量类型(大小),变量名 变量类型(大小)触发器的具体语句
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2