SQL学习之创建学生管理数据库
1、首先,学习创建数据库之前,如下图所示,我们先介绍一下数据库的类型:
从数据库的应用管理角度来看,SQL server数据库分为系统数据库和用户数据库
其次,那什么是系统数据库和用户数据库呢?它们分别有什么作用呢?
系统数据库:(1)定义:它是SQL server数据库管理系统自带和自动维护的,用于存放维护系统正常运行 的信息
(2)组成:master, 它是做重要的数据库,用于记录数据库管理系统中的所有系统级信息; 若其损坏,则SQL server无法正常工作
model, 提供创建用户数据库所需的模板和原型
tempdb, 保存临时表和其他临时存储过程,是sql server上所有数据库共享的工 作空间。每次sql server启动时,都会重新创建一个tempdb数据库, 以保证该数据库总是空的;当用户断开数据库连接时,系统会自动删 除临时表和存储过程。
msdb, 提供调度信息和作业历史记录所需的存储区,用于代理程序调度警报 和作业等。
用户数据库:它用于存放用户业务有关的数据,其中的数据由用户自身来维护
注意:通常我们所说的建立数据库都是用户数据库,一般对系统数据库没有操作权限
2、什么是数据库呢?它的概念是什么?
先看看数据库的组成:
数据文件和日志文件的功能:
数据库文件 | 功能 |
主要数据文件 | 存放DB的启动信息、部分或全部数据和数据库对象 |
次要数据文件 | 存放除主数据库文件外的数据和数据库对象 |
日志文件 | 用来存放恢复数据库所需的事务日志信息,记录数据库更新情况 |
注意:次要数据文件和注意数据文件的使用对用户来说没有区别的,用户不需要关心自己的数据文件是被放在哪个数据文件上的
3、关于数据库的存储分配:
(1)在考虑数据库的空间分配时,需要了解下面一些规则:
a、所有数据库都包含一个主要数据文件与一个或多个事务日志文件,也还可以包含零个或多个次要数据 文件
b、在创建用户数据库时,model数据库自动被复制到新建用户数据库中,而且是复制到主要数据文件 里;所以,主要数据文件的大小至少是5MB大小
c、数据库中数据的存储分配单位是数据页;
一页是一块8KB(8*1024字节)的连续磁盘空间
页是存储数据的最小空间分配单位,页的大小决定数据库表中一行数据的最大大小
d、在SQL server中不允许表中的一行数据存储在不同的页上
4、数据库文件的属性:
(1)文件名及其位置,数据库文件每个数据文件和日志文件都有一个逻辑文件名和物理存储位置
(2)初始大小,主要数据文件的大小必须大于model数据库主要数据库文件大小(通常是5MB)
(3)增长方式
(4)最大大小
5、以界面方式创建学生数据库:
创建数据库可以在SSMS工具中,在这里是以SQL Server2014为例子举例的
首先,启动SSMS工具(SSMS工具在你安装SQL Server位置的磁盘里搜索SSMS工具,然后创建一个快捷方式以方便以后使用它),确定服务器连接正确后,进入SSMS的主界面
接着,在SSMS的窗口中,右击"数据库"对象,在弹出的快捷菜单中选择"新建数据库"命令,打开"新建数据库"窗口。在其中输入数据库名称"student",并按照一定的要求分别修改数据库文件的逻辑名称、文件类型、文件组、初始大小、自动增长和路径等相关属性。效果如图:
其次,按要求设置数据库基本属性:单击"自动增长"列,有'三个点'的按钮,打开"更改student的自动增长设置"对话框,在该对话框可以更改文件的自动增长方式是按兆字节或者按百分比。如图
然后,设置数据库的高级属性(排序规则):单击"新建数据库"窗口左上角的"选项",该窗口右半边会出现"选项"选项卡,可以用来设置数据库的排序规则、恢复设置、兼容级别等选项。如图,在"排序规则"下拉列表框中选择"Chinese_PRC_CI_AS"其他项目采用默认值。其中,Chinese_PRC是中文简体字符集,CI表示不区分大小写,AS表示区分重音。
最后,单击"确定"按钮,显示创建进度。创建成功后,会自动关闭"新建数据库"窗口,并在"对象资源管理器"窗口的数据库节点下增加名为"student"的子节点(鼠标右击点刷新),如图
6、以命令方式创建学生数据库:
(1)创建数据库的T-SQL语句语法基本格式,
create database 数据库名字
on
(
......
)
log on
(
......
)
注意:如果有多个数据文件或日志文件要用,隔开;但是数据文件和日志文件间不用,隔开
(2)以一道具体例题为例子:创建数据库rsgl,包括二个数据库文件和两个日志文件
create database rsgl
on
(
name = rsgl_data1,
filename = "c:\rsgl1.mdf",
size = 5MB,
maxsize = 10MB,
filegrowth = 1MB
),
(
name = rsgl_data2,
filename = "c:\rsgl2.ndf",
size = 5MB,
maxsize = 10MB,
filegrowth = 1MB
)
log on
(
name = rsgl_log3,
filename = "c:\rsgl3.ldf",
size = 1MB,
maxsize = 5MB,
filegrowth = 10%
),
(
name = rsgl_log4,
filename = "c:\rsgl4.ldf",
size = 1MB,
maxsize = 5MB,
filegrowth = 10%
)