您的位置:首页 > 数据库

数据库设计

2016-01-24 20:51 141 查看
数据库自考学习中也学过,之前也看过耿建林视频。不过数据库一直都没有自己亲自建过。这一次进行重构要自己亲手建立自己的数据库,要自己动手用EA画一下E-R图。之前自己没有亲手动手做的东西,在这次重构中都想自己认真做一遍。

数据库的创建 有两种方法,一种是很简单的 数据库-新建数据库然后给数据库命名等这一种方法应该大家都比较熟悉。第二种是自己写代码创建数据库。

创建数据库

<span style="font-size:18px;"><span style="font-size:18px;">Create DataBase 机房收费系统
On
(
  Name=机房收费系统_DATA,
  FileName="F:\机房收费数据库\机房收费系统_DATA.mdf",
  size=5MB,
  MaxSize=20MB,
  FileGrowth=5%
)
Log on 
(
  Name=机房收费系统_Log,
  FileName="F:\机房收费数据库\机房收费系统_Log.ldf",
  size=2MB,
  MaxSize=10MB,
  FileGrowth=1MB
)</span></span>


数据库文件列表中包含两个文件,一行是数据文件,一行是日志文件。创建数据库需要设置逻辑名称(也就是数据库名)文件类型:.mdf/log用于区别当前数据库文件所属文件组是数据文件还是日志文件。初始大小:在SQL中数据文件默认值为3MB,日志文件默认值为1MB,自动增长:用于设置文件的容量不够时以何种方式自动增长,数据文件和日志文件的增长方式是不同的。

创建表:

<span style="font-size:18px;"><span style="font-size:18px;">use MotoCharge_sys 
GO 
Create Table 学生信息
(
 StudentNo varchar(14) Primary key ,//隐式约束
 StudentName varchar(8) Null,
 StudentSex  varchar(2) Null,
 StudentGrade int Null,
 //constraint StudentNo Primary key (StudentNo)//显示约束</span></span>


一些简单“约束”

如果约束用于学号和姓名上,则写Primary Key(学号,姓名)就可以了。

主键约束是不允许为空值的,在SQL中我们常见的约束还有Check约束,check 约束可以被定义为表约束和列约束



check约束应用:性别不是男就是女,所以在这个地方可以加一个check约束 性别 varchar(2) check(性别 in ('男','女'))

数据库还有很多东西需要探索,比如说触发器、创建视图等等,这些东西在以后用到的时候在细致的探究吧。

数据类型

我们在创建数据库的时候也发现了,用数据类型的时候我们用到了nchar ,nvarchar 等,数据库都有哪些数据类型呢?

字符串数据类型

char类型:char 数据类新年歌使用固定长度来存储字符,如果实际数据字符长度短于给定的最大长度,则多余的字节会被以空格填充。

varchar数据类型:使用方式和char 数据类型类似,和char不同的是可以存储变长的字符,存储长度会随存储字符数的不同而变化,不会填充空格。我们用的时候大多用这种数据类型,节省数据存储空间。

Unicode字符数据类型

nchar

与char数据类型相似,不同的是nchar 数据类型的取值范围比char类型大,可以存储不同语言的数据(可以将全世界的语言文字包括在内中文、英文等)不会出现编码冲突

nvarchar

与vchar数据类型相似,同样范围比较大,每个国家都有不同语言,nvarchar就好像国际统一语言一样,把所有国家的字符都编进去了。



时间和日期数据类型

datetime

包含日期和时间,存储范围从公元1753年1月1日零时到公元9999年12月31日23:59:59

smalldatetime 范围比较小从1990年1月1日到2079年6月6日

date 只包含日期

time 只包含时间不存储日期部分比如12:00

货币类型的是 money和smallmoney

在创建表的时候,我们就要用到之前学些数据库的一些知识了,创建数据库需要遵循三个范式,在创建表的过程中遇到一些问题, 在1:N一对多的关系中我们可以建两张表,比如说学生---注册----卡号,学生信息一张表,注册一张表。我们之前给的数据库只有一张表。具体创建表可以画E-R图来确定建表的个数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: