SQL的基本概念

基本表:基本表是独立存在的表,一个关系对应一个表,一个或多个基本表对应一个存储文件

视图:视图是从若干个基本表或视图导出的表,它与基本表不同,其本身并不保存数据,数据仍存放在基本表中。在创建视图时,数据库中只能存放视图的定义;在使用视图时,才去求对应的数据,所以视图又称为“虚表”。

索引:索引依赖于表的建立,它提供了数据库中编排表中数据的内部方法。一个表的存储由两部分组成:一部分存放表的数据页面;另一部分存放表的索引页面。这样,在给定某列值查询对应的数据时,就不必逐个扫描表中的每一行,可通过索引查找该值对应的地址指针,从而在数据页面中直接查找,加快了查找速度。没有建立索引的表访问数据时,必须逐个扫描。

注意:

一个基本表可以存储在一个或多个存储文件中,一个存储文件可以存储一个或多个基本表,一个表可以带若干个索引,索引也存储在存储文件中。每个存储文件就是外部存储器上的一个物理文件,存储文件的逻辑结构构成了关系数据库的内模式。

在用户看来,基本表和视图一样,都是关系(即表)。

2 SQL Server中数据库的创建、删除和修改

创建数据库

创建数据库,就是在中、大型数据库管理系统中开辟一片存储空间,用于存放数据库中的数据对象,包括表、视图、存储过程、触发器及数据库安全性有关的控制机制等。

创建数据库命令的语法格式如下:

createdatabase 数据库名

[on /on子句指定数据库文件和文件组属性/

[primary]

[<filespec>[,...n]]

[,filegroup[,...n]]

]

[log on {<filespec>[,...n]}] /log on 子句指定日志文件属性/

[forload|for attach]

<filespec>::=

(name='逻辑文件名',/逻辑文件名是指数据库创建后在所有SQL语句中使用的名称/

filename='数据库文件名'

[,SIZE=size] /数据文件的初始大小/

[,MAXSIZE={max_size|UNLIMITED}] /指定文件的最大容量/

[,FILEGROWTH=growth_inscreament] /文件每次增长的增量,有百分比和空间值两种/

)

举一个例子:创建一个数据库student,数据文件的逻辑名称为student_Data,数据文件物理地存放在D盘根目录下,文件名为student_Data.mdf,数据文件的初始存储空间大小为10MB,最大存储空间为50MB,存储空间自动增长量为5MB。日志文件物理地存放在D盘的根目录下,文件名为student_Log.ldf,初始存储大小为10MB,最大存储大小为25MB,存储空间自动增长量为5MB。

代码1-1 SQL命令如下:

creat database student

on

(

name=student_Data,

filename='D:\student_data.mdf',

size=10,

maxsize=50,filegrowth=5

)

log on

(

name=stident_Log,

filename='D:\student_Log.ldf',

size=5,

maxsize=25,

filegrowth=5

)

修改数据库

修改数据库命令的语法格式如下:

alter database 数据库名

/在文件组中增加数据文件/

{ add file<filespec>[,...n][to filegroup filegroup_name]

|add log file<filespec>[,...n] /增加日志文件/

|remove file logical_file_name /删除日志文件/

|add filegroup filegroup_name /增加文件组/

|remove filegrup filegroup_name /删除文件组/

|modify file<filespec> /更该文件属性/

|nodify name = new_dbname /数据库更名/

}

举一个例子:

代码1-2 将代码1-1中数据库student中数据文件的大小改为不限制,增长方式改为每次增长15MB。

alter databse student

modify file

  (name = 'student_data', 

   maxsize = unlimited)/*第一次修改:将主数据文件大小该为不限制*/ 

alter databse student

modify file

  (name = 'student_Data', 

   filegrowth = 15MB)/*第二次修改:将增长方式改为每次增长15MB*/ 

注意:数据库在修改的时候一次只能修改一项,否则由于数据库的互联关系会导致数据的不安全。

删除数据库

删除数据库命令的语法格式如下:

dropdatabase database_name

此句的功能是删除指定的数据库,其中,database_name是指定要删除的数据库名。