SQL数据库原理论文目录:一、前言 (1)二、数据库基本理 (2)三、SQL标准语言 (5)四、数据库设计 (12)五、数据库安全和完整性控制 (16)六、心得体会 (18)七、参考文献: (19)一、前言这学期学习了数据库原理,我从中学到了很多,增长了许多计算机方面知识,开阔了眼界与思路。
数据库技术产生于六十年代末,是数据管理的最新技术,是计算机科学的重要分支,是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透,数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。
数据库技术如此重要,更坚定了我学习的信心。
下面将我所学的主要知识简单介绍如下:共分四大块:数据库基本原理部分、SQL,即结构化查询语言、数据库设计、数据库安全和完整性控制。
二、数据库基本原理数据库技术是应数据管理任务的需要而产生的。
数据管理经历了三个阶段:人工管理阶段、文件管理阶段、数据库系统阶段。
数据库系统与其他两个系统比,有许多优点:1)数据结构化;2)数据的共享性高,冗余度低,易扩充;3)数据独立性高;4)数据DBMS统一管理和控制。
目前,数据库已经成为现在信息系统的重要组成部分。
据有数百G、数百T、甚至数百P子节的数据库已经普遍存在于科学技术、工业、农业、商业服务业和政府部门的信息系统中。
数据库技术是计算机领域中发展最快的技术之一。
数据库技术的发展是沿着数据模型的中线展开的。
现有的数据库系统均是基于某种数据模型的。
数据模型是数据库系统的核心和基础。
数据模型,通俗的讲,即为现实世界的模拟。
数据模型的组成要素为:数据结构、数据操作、数据的完整性约束条件。
常用的数据模型有层次模型、网状模型、关系模型、面向对象模型、对象关系模型。
其中关系模型是目前最重要的一种数据模型。
关系数据库系统采用的就是关系数据模型作为数据的组织方式。
关系数据库是我们掌握的重点。
关系数据库系统是支持关系模型的数据库系统。
要想深入了解关系数据库系统首先要了解关系模型。
关系模型由关系结构、关系操作集合和关系完整性约束3部分组成。
关系模型的数据结构非常简单,只包含单一的数据结构——关系。
在用户看来,关系模型的中的数据的逻辑结构是一张扁平的二维表。
关系模型的数据结构虽然简单但却能表达丰富的语义,描述出现实世界的实体以及实体之间的联系。
关系模型是建立在集合代数的基础上的。
关系数据库中,关系模式是型,关系是值。
关系模式是对关系的描述。
关系数据库也有型与值之分。
关系数据库的型也成关系数据库模式,是对关系数据库的描述。
关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。
关系模型给出了关系操作的能力的说明,但不对RDBMS语言给出具体的语法要求。
关系模型中常用的关系操作包括查询操作和插入、删除、修改操作两大部分。
关系的查询表达能力很强,是关系操作中最主要的部分。
查询又分为:选择、投影、连接、除、并、差、交、笛卡尔积等。
其中选择、投影、并、差、笛卡尔积是基本的操作。
关系操作的特点实际和操作方式,即操作的对象和结果都是集合。
这种操作方式也成为一次以集合的方式。
关系的完整性约束有三个:实体完整性、参照完整性和用户自定义完整性。
其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变形,应该由关系系统自动支持。
用户完整性适应用户需要遵循的约束条件,体现了具体领域的语义约束。
三、SQL标准语言SQL(Structured Query Language),即结构化查询语言,是关系数据库的标准语言。
1986年10美国国家标准局的数据库委员会X3H2批准了SQL作为关系数据库语言的美国标准。
1987年国际标准化组织也通过了这一标准。
SQL标准从1986年公布以来随着数据库技术的发展不断发展,不断丰富。
SQL 功能动词数据定义CREATE,DROP,ALTER数据查询SELECT数据操纵INSERT,UPDATE ,DELETE数据控制GRANT,REVOKESQL之所以能够为用户和业界所接受,并成为国际标准,是因为它是一个综合的、功能极强同时又简洁易学的语言。
SQL集数据查询、数据操纵、数据定义和数据控制功能于一体。
有如下特点:1)综合统一;2)高度过程化;3)面向集合的操作方式;4)以同一种语法结构提供多种使用方式;5))语言简洁,易学易用。
SQL接近英语口语,因此容易学习,容易使用。
字段数据类型:整数数据类型:bigint,int,smallint,tinyint精确数值类型:numeric,decimal近似浮点数值数据类型:float,real日期时间数据类型:datetime,smalldatetime字符串数据类型:char,varchar,textUnicode字符串数据类型: nchar,nvarchar,ntext二进制数据类型:binary、varbinary、image货币数据类型: money,smallmoney标记数据类型: timestamp,uniqueidentifier视图和基本表是SQL语言的主要操作对象,用户可以用SQL语言对视图和基本表进行各种操作。
在用户眼中,视图和基本表都是关系表,而存储文件对用户是透明的。
创建、修改和删除数据表:1.定义基本表CREATE TABLE <表名>(<列名> <数据类型> [列级完整性约束条件] [,<列名> <数据类型> [列级完整性约束条件]]…[,<表级完整性约束条件>])其中<表名>是所要定义的基本表的名字,必须是合法的标识符,最多可有128个字符,但本地临时表的表名(名称前有一个编号符#)最多只能包含116个字符。
表名不允许重名,一个表可以由一个或多个属性(列)组成。
建表的同时通常还可以定义与该表有关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由DBMS自动检查该操作是否违背这些完整性约束条件。
如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。
关系模型的完整性规则:(1)实体完整性①主码(PRIMARY KEY)语法格式:[CONSTRAINT <约束名>] PRIMARY KEY[CLUSTERED|NONCLUSTERED][(column_name[ASC|DESC][,…n])]②空值(NULL/NOT NULL)③唯一值(UNIQUE)(2)参照完整性FOREIGN KEY约束指定某一个列或一组列作为外部键,格式如下:<列名><类型名> [CONSTRAINT <约束名>] FOREIGN KEY REFERENCES <被参照表名(列名)>(3)用户自定义的完整性约束规则格式如下:[CONSTRAINT <约束名>] CHECK <条件>2.修改基本表:ALTER TABLE <表名> {[ ALTER COLUMN column_name { new_data_type [ ( precision [ , scale ] ) ][ COLLATE < collation_name > ][ NULL | NOT NULL ]| {ADD | DROP } ROWGUIDCOL }]| ADD { [< column_definition >]|column_name AScomputed_column_expression } [ ,...n ]|[ WITH CHECK | WITH NOCHECK ] ADD{ < table_constraint > } [ ,...n ]| DROP{ [ CONSTRAINT ] constraint_name | COLUMN column } [ ,...n ]|{CHECK | NOCHECK } CONSTRAINT { ALL | constraint_name [ ,...n ] }|{ ENABLE | DISABLE } TRIGGER { ALL | trigger_name [ ,...n ] }} 其中:<表名> 指定需要修改的基本表,ADD子句用于增加新列和新的完整性约束条件,DROP子句用于删除指定的完整性约束条件或原有列,ALTER子句用于修改原有的列定义。
{CHECK|NOCHECK}CONSTRAINT 指定启用或禁用constraint_name。
如果禁用,将来插入或更新该列时将不用该约束条件进行验证。
此选项只能与FOREIGN KEY 和CHECK 约束一起使用。
{ENABLE | DISABLE} TRIGGER 指定启用或禁用trigger_name。
当一个触发器被禁用时,它对表的定义依然存在;然而,当在表上执行INSERT、UPDATE 或DELETE 语句时,触发器中的操作将不执行,除非重新启用该触发器。
3.删除基本表:DROP TABLE <表名>4. SQL的数据定义语句操作对象操作方式创建删除修改表CREATE TABLE DROP TABLE ALTER TABLE视图CREATE VIEW DROP VIEW索引CREATE INDEX DROP INDEX数据库查询是数据库的核心操作。
也是数据库学习的重点和难点。
SQL提供了SELECT语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。
其一般格式为:SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达式>] …FROM <表名或视图名>[,<表名或视图名> ] …[ WHERE <条件表达式> ][ GROUP BY <列名1> [ HA VING <条件表达式> ] ][ ORDER BY <列名2> [ ASC|DESC ] ];5. SQL数据查询:1)SELECT命令的格式及其含义SELECT [ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]... [INTO <新表名>]FROM <表名或视图名>[,<表名或视图名>] ...[WHERE <条件表达式>][GROUP BY <列名1> ... [HA VING <条件表达式>]][ORDER BY <列名2> [ASC|DESC]] ...2)SELECT子句的基本使用3)分组查询4)查询的排序5)连接查询等值与非等值连接查询当连接运算符为=时,称为等值连接。