数据库和数据表的创建_第1页
数据库和数据表的创建_第2页
数据库和数据表的创建_第3页
数据库和数据表的创建_第4页
数据库和数据表的创建_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关系数据库语言提供关系数据库的数据定义、查询、更新和控制等功能,是用户和数据库管理员建立、使用数据库的主要工具。基于关系代数的语言是用对关系(表)的运算来表达查询的语言,它的运算基于关系代数,包括一般的集合运算和特殊的关系运算——投影、选择、连接等。结构化查询语言SQL主要是基于关系代数的,还有部分则是其他的。第7章关系数据语言SQL

从字面看SQL只是一个查询语言,而实际上SQL作为一种标准数据库语言,从对数据库的随机查询到数据库的管理和程序设计,SQL几乎无所不能,功能十分丰富;而且SQL是一种陈述性的语言,语言简洁易学,书写非常简单,使用方便。SQL既可以作为交互式语言独立使用,可以作为子语言嵌入宿主语言中使用,增强应用程序的处理能力。第7章关系数据语言SQLHome第7章关系数据库语言SQL7.3SQL语言组成7.4SQL的数据定义7.5数据库的创建Home7.1SQL数据库的体系结构7.2

SQL语法约定7.1SQL数据库的体系结构7.1SQL数据库的体系结构SQL支持数据库的三级模式结构,视图是外模式,基本表是模式,存储文件是内模式。在SQL中一个关系就对应一个表。视图是由若干个基本表或其他视图构成的表的定义。在数据库中只存放视图的定义,不存放视图对应的数据。7.2SQL语法约定1、标识符数据库对象的名称即为其标识符,服务器,数据库和数据库对象都可以有标识符。对象标识符是在定义对象时创建的。2、标识符的类型SQLServer支持两类标识符:常规标识符和分隔标识符,分隔标识符包含在双引号(“”)或者方括号([])内。常规标识符必须遵循下列规则:(1)第一个字符必须是下列字符之一。Unicode标准3.2所定义的字母。Unicode中定义的字母包括拉丁字符a~z和A~Z,以及来自其他语言的字母字符。下划线(-)、at符号(@)或数字符号(#)(2)其他字符可以包括:Unicode标准3.2所定义的字母,十进制数字,at符号(@),美元符号($),数字符号(#)或下划线(-)注意:标识符一定不能是SQL的保留字,不允许嵌入空格和其他特殊字符.7.3SQL语言组成7.3.1关系与表7.3.2SQL的数据类型7.3.3SQL的语句类型Home7.3.1关系与表表(或称关系)具有下列特征:一个表中有一个或多个命名列。各列无从左到右的顺序。一个表中可有零个或多个行行的顺序是无关紧要的。一个表中的每一行都是唯一的。任何行和列的交点都有一个唯一的值。同一列中的所有值都必须取自同一值域。Home7.3.1关系与表教学管理数据库Home每一个表都有一个称为主关键字(PrimaryKey)的列的子集,它的值可以唯一确定每一行。表——关系,行——元组、记录,列——属性、字段。

1.数值型INTEGER简写为INT,占4字节固定长度内存.。

SMALLINT占2字节固定长度.TINYINT占1字节,可存储0~255范围内的任意无符号整数

BIGINT占8字节固定长度.

FLOAT(p)REAL

Home7.3.2SQL的数据类型

2.字符串型

CHAR(n)按n个字节的固定长度存放,小于n,尾部填空格

x1CHAR(30)VARCHAR(n)定义可变长字符串。

3.位串型

BIT(n)只能存放0和1和null,一般用于逻辑判断

Home7.3.2SQL的数据类型4.时间型

DATETIME定义日期。5.布尔型

BOOLEAN定义布尔数,其值可以是:TRUE(真)、FALSE(假)、UNKNOWN(未知)。Home7.3.2SQL的数据类型用户定义数据类型是一个对象类型,是由用户按照一定的规则用预定义数据类型组合定义的自己专用的数据类型。许多SQL产品还扩充了其他一些数据类型,如TEXT(文本)、MONEY(货币)、GRAPHIC(图形)、IMAGE(图像)、GENERAL(通用)、MEMO(备注)等。Home7.3.2SQL的数据类型(1)查询语言(QL)

查询语言用来对已存在的数据库中的数据按照指定的组合、条件表达式或排序进行检索。它的基本结构是由SELECT子句、FROM子句、WHERE子句组成的查询块。(2)数据操纵语言(DML)

DML的命令用来改变数据库中的数据,它有3个基本语句:INSERT(插入)、UPDATE(修改)、DELETE(删除)。7.3.3SQL的语句类型Home(3)数据定义语言(DDL)

DDL用来创建数据库中的各种对象,包括数据库模式、表、视图、索引、存储过程等,它的基本语句有:CREATESCHEMA、CREATETABLE、CREATEVIEW、CREATEINDEX等。(4)数据控制语言(DCL)

DCL用来授予或回收访问数据库的某种特权,控制数据操纵事务的发生时间及效果、对数据库进行监视等。数据控制基本语句有:GRANT、REVOKE、COMMIT等。Home7.3.3SQL的语句类型7.4SQL的数据定义Home7.4.1表的建立和删除7.4.2表的扩充与修改7.4.1表的建立和删除1.表的建立

CREATETABLE

<表名>

(<列定义>…[<完整性约束>…])

<列定义>给出列的名称、数据类型、缺省值。每一个列的数据类型可以是预定义数据类型,也可以是用户定义数据类型。缺省值用默认子句表达:DEFAULT<缺省值>。<完整性约束>可以是对表的约束或对列的约束,以保证数据的完整性。Home完整性约束可用以下语句表达。(1)主关键字子句:PRIMARYKEY(<列名>)(2)外来关键字子句:FOREIGNKEY(<列名>)REFERENCES<表名>(<列名>)7.4.1表的建立和删除例:对于关系模式班级(班号,班名,人数)可以定义如下:

CREATETABLE班级(班号char(10),

班名char(20),人数int)7.4.1表的建立和删除该表没有定义主键

CREATETABLE班级(班号char(10),notnull

班名char(20),人数int)修改NOTNULL代表该列不能为空

CREATETABLE班级(班号char(10)NOTNULL,班名char(20)notnull,人数int

PRIMARYKEY(班号))凡带有NOTNULL的列,不允许出现空值;未带NOTNULL的列,可以出现空值。空值NULL表示“不知道”。当首次用CREATETABLE定义一个新表后,只是建立了一个空表。定义主键例2:student(sno,sname,age,sex,班号)可以定义如下:

CREATETABLESTUDENTS(SNOchar(20)NOTNULL,SNAMECHAR(8)NOTNULL,AGEtinyint,SEXCHAR(2),PRIMARYKEY(SNO),

班号char(10)FOREIGNKEY(班号)REFERENCES

班级(班号)Home7.4.1表的建立和删除定义外键Home7.4.1表的建立和删除2.表的删除

DROPTABLE<表名>例

删除student表。

DROPTABLEstudent7.4.2表的扩充和修改1.在现存表中增加新列

ALTERTABLE<表名>

ADD[COLUMN](<列名><数据类型>[NULL|NOTNULL],…)

在student表中增加住址列。

ALTERTABLEstudentADD(DRCHAR(50))Home2.删除已存在的某个列

ALTERTABLE<表名>

DROPCOLUMN

<列名>例

把STUDENTS表中的age列删除

ALTERTABLESTUDENTSDROPcolumnageHome7.4.2表的扩充和修改3.补充定义主关键字

ALTERTABLE<表名>

ADDPRIMARYKEY(<列名表>)

补充定义student表的主关键字。

ALTERTABLEstudentADDPRIMARYKEY(SNO,SNAME);Home7.4.2表的扩充和修改4.删除主关键字

ALTERTABLE<表名>DROPconstraint主键名5.补充定义外来关键字

ALTERTABLE<表名-1>

ADDFOREIGNKEY(列名)REFERENCES<表名-2>(列名)6.删除外来关键字

ALTERTABLE<表名>

DROPconstraint<外来关键字名>7.4.2表的扩充和修改约束7.5数据库的创建1、数据库的存储结构数据库的存储结构包括逻辑存储结构和物理存储结构。数据库的逻辑存储结构指的是数据库是由哪些性质的信息所组成,SQLServer的数据库不仅仅只是数据的存储,所有与数据处理操作相关的信息都存储在数据库中。这种存储结构是面向数据库使用者的。数据库的物理存储结构则是讨论数据库文件是如何在磁盘上存储的。数据库在磁盘上以文件为单位存储,由数据库文件和事务日志文件组成。一个数据库至少应该包含一个数据库文件和一个事务日志文件。(1)数据库文件是存储数据的文件,由主数据库文件和辅助数据文件两部分组成。主数据文件:一个数据库可以有一个或多个数据库文件,其中一个被定义为主数据库文件,其扩展名为“mdf”,主数据库文件用来存储数据库的启动信息以及部分或者全部数据,也包含指向其他数据库文件的指针。一个数据库只能有一个主数据库文件。辅助数据库文件存储主数据库文件中未能存储的剩余数据和数据库对象。一个数据库可以没有二级数据库文件,也可以同时拥有多个二级数据库文件。其扩展名为ndf。(2)事务日志文件:存储数据库的更新情况等事务日志信息。每个数据库至少必须有一个该文件,也允许拥有多个日志文件,其扩展名为ldf,日志文件的大小至少是1MB。SQLServer2000的文件拥有两个名称,即逻辑文件名和物理文件名。当使用命令访问某一个文件时,必须使用该文件的逻辑名。(3)数据库文件组为了便于管理,允许将多个文件归纳为同一组,并赋予此组一个名称,该组就是文件组,文件组分为主文件组、次文件组和自定义文件组。在创建数据库时没有指定放在哪个文件组中,则将它放在缺省文件组,如果没有指定缺省文件组,则主文件组为缺省文件组。在一个数据库中可以创建多个文件组,一个数据文件只能放于一个文件组中,一个文件组只能被一个数据库使用,日志文件是独立的,不做为任何文件组成员。

(4)

SQLServer2005中数据存储的基本单位是页。为数据库中的数据文件(.mdf

或.ndf)分配的磁盘空间可以从逻辑上划分成页(从0到n连续编号),SQLServer2005读取或写入所有数据页。每页是8KB,页的开头都是用来存储页的系统信息。每8个连续的页即是一个区,一个区可以用来单一的对象,也可以存储多个不同的对象。

2、SQLServer2005数据库中的数据在逻辑上被组织成一系列对象,当一个用户连接到数据库后,所看到的是这些逻辑对象,而不是物理的数据库文件。

SQLServer2005中有以下数据库对象:表(Table)、视图(View)、存储过程(StoredProcedure)、触发器(Trigger)、用户自定义数据类型、函数、索引(Index)、规则(Rule)、默认值(Default)等。3、系统数据库

SQLServer2005包含master、model、msdb、tempdb和Resource5个系统数据库。(1)

master数据库master数据库记录SQLServer2005实例的所有系统级信息。master数据库还记录所有其他数据库是否存在以及这些数据库文件的位置。另外,master还记录了SQLServer的初始化信息。(2)model数据库

model数据库用作SQLServer2005实例上创建的所有数据库的模板。如果修改model数据库,之后创建的所有数据库都将继承这些修改。(3)msdb数据库msdb数据库由SQLServer代理用来计划警报和作业。(4)tempdb数据库tempdb数据库是连接到SQLServer2005实例的所有用户都可用的全局资源,它保存所有临时表和临时存储过程。另外,它还用来满足所有其他临时存储要求

(5)Resource数据库Resource数据库是只读数据库,它包含了SQLServer2005中的所有系统对象。4、数据库的创建创建数据库的过程实际上就是为数据库设计名称,设计所占用的存储空间和存放文件位置的过程。创建数据库基本语法如下:Createdatabase数据库名[on][primary][<文件格式>[,…n]][logon{<文件格式>[,…n]}]<文件格式>::=([name=逻辑文件名,]Filename=‘操作系统下的物理路径和文件名’[,size=文件初始大小][,maxsize={文件最大大小|UNLIMITED}][,filegrowth=增量值])例:创建一个名为BOOK的数据库,它由5MB的主数据文件和1MB的日志文件组成.并且主数据文件以2MB的速度增长,其最大数据文件的大小为15MB,事务日志文件以1MB速度增长,其最大日志文件的大小为10MB.CreatedatabaseBOOKOn(name=book1,Filename=‘d:\book1.mdf’,Size=5,maxsize=15,filegrowth=200KB)Logon(name=book_log,Filename=‘d:\book_log.ldf’,Size=1,maxsize=10,filegrowth=1)文件大小默认单位是MB,程序中省略逻辑文件名物理文件名上面创建了一个名为book的数据库,由于在指定数据文件时,没使用PRIMARY关键字,所以第一个文件(蓝色字体)被默认

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论