我们为什么要学数据表?
这个回答其实很简单,只要想一想就可以。
解析:
如果没有数据表,那么关键字、主键、索引等也就无从谈起。在数据库画板中可以显示数据库中的所有数据表(即使不是用PowerBuilder创建的表),创建数据表,修改表的定义等数据表是数据库中一个非常重要的对象,是其他对象的基础。
数据表(或称表)是数据库最重要的组成部分之一。数据库只是一个框架,数据表才是其实质内容。如“教学管理系统” 中,教学管理”数据库包 含分别围绕特定主题的6个数据表:“教师”表“课 程”表、“成绩”表、“学生”表、“班级”表和 “授课”表,用来管理教学过程中学生、教师、课程等信息。这些各自独立的数据表通过建立关系被联接起来,成为可以交叉查阅、一目了然的数据库。
建表原则
解析:
为减少数据输入错误,并能使数据库高效工作,表设计应按照一定原则对信息进行分类,同时为确保表结构设计的合理性,通常还要对表进行规范化设 计,以消除表中存在的冗余,保证一个表只围绕一个主题,并使表容易维护。
信息分类原则
解析:
每个表应该只包含关于一个主题的信息
当每个表只包含关于一个主题的信息时,就可以独立于其他主题来维护该主题的信息。例如,应将教师基本信息保存在“教师”表中。如果将这些基本信息保存在“授课”表中,则在删除某教师的授课信息,就会将其基本信息一同删除。
表中不应包含重复信息
表间也不应有重复信息 每条信息只保存在一个表中,需要时只在一处进行更新,效率更高。例如,每个学生的姓名、性别等信息,只在“学生”表中保存,而“成绩”中不再保存这些信息。
说这么多了,你看看这些表,漂亮吧。
接下来介绍数据表的内容:
四种完整性约束
实体完整性:针对数据行设置的完整性
域完整性:针对数据列设置的完整性。
引用完整性:外键约束
自定义完整性:为了满足我们的业务需求,我们自己量身定制的完整性约束,一般
通过存储过程。
SQL Server中数据类型
int:存储整型数字
numeric(18, 2):存储小数
decimal(18, 2):存储小数
nvarchar():存储文字
只要是保存字符串就用nvarchar()类型,n代表的unicode编码,该编码是国际通用编码,可以避免乱码的出现。
var代表长度可变。表中该列真正存储的内容就占它本身的空间,而不会占用该列通过(20)设置的长度所占用的空间。
varchar():存储可变长度的文本
char(4):存储固定长度的文本
nvarchar(Max)
DateTime:保存日期和时间
照片:image(二进制存储)
存储姓名:nvarchar(20)
--存储年龄:int
--存储性别:bit
--存储一篇文章:nvarchar(max)
注意:
使用ntext或者是text,因为text和ntext读取效率非常低。
为表建立约束
主键约束
一张表一定要设置主键
非空约束
03.默认值约束
04.check约束
05.外键约束
注意:外键约束只能设置在外键表中
主键:
用于区别其他实体,在同一个表中主键的值不能重复
外键:
在一张表表A中某列是主键,但是在另外一张表表B中该列不是主键。那么表A称为主键表,表B称为外键表。
主外键建立后注意事项
当主表中没有对应的记录时,不能将记录添加到子表
——成绩表中不能出现在学员信息表中不存在的学号
不能更改主表中的值而导致子表中的记录孤立
——把学员信息表中的学号改变了,学员成绩表中的学号也应当随之改变
子表存在与主表对应的记录,不能从主表中删除该行
——不能把有成绩的学员删除了
删除主表前,先删子表
——先删学员成绩表、后删除学员信息表
通配符:
解析: “_”:有且只有一个字符。
“%”:任意个的任意字符。
以上两种特殊字符一般与Like一起使用。
这些都是我总结的核心内容,还是很辛苦的,有漏的地方望大家补充补充