六. SQL数据定义、更新及数据库编程
6.1 SQL数据定义语言
1. SQL数据定义语言DDL包括:
- 数据库的定义:创建、修改和删除 基本表的定义:创建、修改和删除视图的定义:创建和删除索引的定义:创建和删除
6.1.1 数据库的定义
1. 数据库的创建
-
数据库作为一个整体存放在外存的物理文件中
- 物理文件(即磁盘文件)有两种:
- 数据文件,存放数据库中的对象数据
- 日志文件,存放用于恢复数据库的企业冗余数据
- 物理文件可以是多个,可以将一个或若干个物理文件设置为一个逻辑设备
- 数据库可以有多个逻辑设备,必须在定义数据库时进行定义
- 数据库的对象存放在逻辑设备上,由逻辑设备与物理文件进行联系,从而实现数据库的逻辑模式与存储模式的独立
-
个数据库创建在物理介质的一个或多个文件上,它预先分配了将要被数据库和事务日志所使用的物理存储空间
- 存储数据的文件叫做数据文件(data file)
- 存储日志的文件叫做日志文件(log file)
- 创建一个新的数据库时,仅创建了一个空壳,必须在这个空壳中创建对象(如表、索引、约束等),才能使用这个数据库
- 当创建了一个数据库,与该数据库相关的描述信息会存入到数据字典(即数据库系统表)
- 在创建数据库的时候,必须定义数据库的名字、磁盘文件(含数据文件、日志文件)的逻辑设备名(别名)和物理文件名
2. 创建数据库:
CREATE DATABASE <被创建数据库名> ON -- 指定数据库中的数据文件:主数据文件、用户数据文件 -- 定义主逻辑设备的数据文件 [PRIMARY] { <filespec> [, ... n ] } -- 定义用户逻辑设备组的数据文件 [, { FILEGROUP <filegroupName> {<filespec> [, ... n ]} [, ... n ]} ] ] -- 定义数据库日志逻辑设备的日志文件 [LOG ON { <filespec> [, ... n ] } ]
-- <filespec>描述磁盘文件(含数据文件和日志文件) <filespec> ::= 主要包含以下内容 ( [ NAME = <logicalFileName>, ] -- 逻辑文件名(即别名) FILENAME = '<osFileName>' -- 物理文件名 [, SIZE = <size> ] -- 磁盘文件初始大小 [, MAXSIZE = { <maxSize> | UNLIMITED } ] -- 最大可扩展大小 [, FILEGROWTH = <growthIncrement> ] ) -- 每次扩展的步长
eg:创建一个复杂的数据库TempDB
CREATE DATABASE TempDB ON -- 定义数据文件 PRIMARY --定义主逻辑设备的数据文件(共一个) ( NAME = TempDev, FILENAME = 'd:\TempData\TempDev.mdf' , --数据文件的物理文件名 SIZE = 5, FILEGROWTH = 2), FILEGROUP TempHisDev -- 定义第1个用户逻辑设备组1的数据文件(共一个) ( NAME = TempHisDev, FILENAME = 'd:\TempData\TempDev.mdf' , --用户逻辑设备(组1)的物理文件名 SIZE = 10, FILEGROWTH = 5) FILEGROUP TempHisDev1 -- 定义第2个用户逻辑设备组2的数据文件(共两个) ( NAME = TempHisDev1, FILENAME = 'd:\TempData\TempDev1.mdf' , --用户逻辑设备(组2)的第1个物理文件名 SIZE = 20, FILEGROWTH = 10), ( NAME = TempHisDev2, FILENAME = 'd:\TempData\TempDev2.mdf' , --用户逻辑设备(组2)的第2个物理文件名 SIZE = 20, FILEGROWTH = 10) LOG ON -- 定义数据库日志逻辑设备的日志文件(共两个) ( NAME = 'TempLogDev1', FILENAME = 'd:\TempData\TempLogDev1.ldf' , --第1个日志文件的物理文件名 SIZE = 5MB, FILEGROWTH = 2MB), ( NAME = 'TempLogDev2', FILENAME = 'd:\TempData\TempLogDev2.ldf' , --第2个日志文件的物理文件名 SIZE = 10MB, FILEGROWTH = 5MB)
3. 修改数据库:
(一次只能修改其中一个选项)
ALTER DATABASE <被修改的数据库名> -- 添加 数据文件/逻辑设备(组)/日志文件 到数据库 { ADD FILE {<filespec> [, ...n]} | ADD FILEGROUP <filegroupName> | ADD LOG FILE {<filespec> [, ... n]} -- 指定文件添加到<filegroupName>逻辑设备(组)中 [TO FILEGROUP <filegroupName>] -- 从数据库系统表中删除文件,并物理删除该文件 | REMOVE FILE <logicalFileName> -- 从数据库系统表中删除该逻辑设备(组),并删除其中所有数据文件 | REMOVE FILEGROUP <filegroupName> -- 指定要修改的 文件/逻辑设备(组)(包含文件名、大小、增长量、最大容量) | MODIFY FILE <filespec> | MODIFY FILEGROUP <filegroupName> <filegroupProperty> }
eg:修改TempDB数据库:将逻辑文件名(即别名)为TempHisDev1的磁盘文件的初始大小修改为20M
ALTER DATABASE TempDB MODIFY FILE ( NAME = TempHisDev1, SIZE = 20MB )
4. 删除数据库:
DROP DATABASE <被删除的数据库名>
6.1.2 基本表的定义
未完待续...
标签:文件,数据文件,--,数据库,编程,SQL,逻辑设备,数据库系统,日志 From: https://www.cnblogs.com/ZWJ-zwj/p/16934686.html