建表的基础知识

目录

1. 数据存储问题

1.1 表的概念

1.2 表,字段,记录,主键,外键

1.3 主键与外键的关系

2. 图形化界面建表

2.1 创建前的基本认识

2.2 设置主键约束 (primary key)

2.3 设置唯一键约束(unique key)

2. 4 设置默认键约束(default key)

2.5 设置外键约束 (foreign key)

2.6 check(检查)约束 

3. 语法代码


1. 数据存储问题
1.1 表的概念

表是数据库的基本单位,所有的数据都是存储在表里的,所有的操作都是对表的操作。

表在数据库中的地位类似于Java中的类。

1.2 表,字段,记录,主键,外键

主键:唯一的标识一个事物的属性称之为主键;

外键:来自其他表的主键;

字段/属性:一个事物的静态特征,如姓名,性别等,(类似于Java中的成员变量)表的每一列信息称为字段;

记录/元组;表的每一行信息称为记录;

如下图,有两个表:员工表和部门表;

为了区分员工表中员工重名的情况,我们添加 “编号” 这一列,表的每一列就是字段,即 “ 100001  100002  100003  100004 ”。并且对于该表来说,这一列也称之为主键,即区分员工的唯一标识的列。张三所在的那一行称之为记录,即 “ 张三  3000  男  29  100001  1 ”;

1.3 主键与外键的关系

外键就是用来连接两个或多个表,表示事物与事物之间的关系;

2. 图形化界面建表

建表的两种方式:手动建表;SQL语言 

 通过 手动建表的方式建表,容易出错,而且不够稳定 ,况且使用的时候他们也是转化为语法代码;

用 语法代码 写的缺点是需要记忆一些命令;

 2.1 创建前的基本认识

右击“表”,选择新建即可,输入 “ 员工 ” 表的列名,数据类型,允许为空一般不勾选

输入完毕后,“ Ctrl+S” 保存,再输入表名,如此创建成功。

 “ dbo 前缀 ”表示他是一个系统的身份,后面会较深入解释。

数据类型:

打开新建的 “ dbo.emp ” 表,打开列,会看到我们刚才创建的东西。

括号中的 nchar(10)代表国际化可存储汉字的字符,长度不超过10.

有的时候可能会出现 nvarchar(max) ,它代表国际化可存储汉字的字符变量,长度不超过 max 。

保存数据

        右击 “ dbo.emp ” ——编辑前两百行。每个记录填满后,直接点击“ Enter ”就可以保存数据,填写下一个记录;如果 右击“铅笔形状”——选择执行,在已填的是三个记录中只能保存两个记录。

数据冗余 

数据冗余:两个或多个记录重复的情况。

这时,我们无法通过点击某个选项去修改或者删除数据,这就是我们前面提到的通过“图形化界面”手动输入库的缺点,即输入数据重复,无法修改

 (我们尝试修改重复记录的数据,可以输入数据,但无法保存,如下图)

遇到这种情况,我们可以尝试通过命令去修改记录。

右击 “ dbo.emp ” 的库“coco”,选择“数据库查询”,通过主键来找到重复的记录,where来确定要修改的具体数据。

但是,这种操作还是失败的!这是因为两个记录完全是一样的,我们无法告诉计算机我们要修改哪一个冗余记录,修改哪一个冗余记录的哪一个数据,总之,计算机无法辨别我们的命令

使用命令重置表 

遇到数据冗余的情况,我们必须删除表的全部内容!

右击 “ dbo.emp ” 的库“coco”,选择“新建查询”,输入“delete from 表名”,点击 “ 执行 ” 即可重置表;

再次打开,可以发现,表重置成功; 

        我们反思一下,当出现数据冗余的时候,我们无论是采取“手动”还是“使用sql命令”的方式都无法修改数据,只能重置表,这在现实应用中特别麻烦,一定存在某种方式可以避免这种情况的出现。

2.2 设置主键约束 (primary key)

必须在创建表之后输入数据之前设置主键:右击“dbo.emp ”——设计——右击“emo_id”——设置主键 即可。

这样,当输入两个“emp_id”相同的人或者重复输入的时候,它会告诉我无法保存,这就避免数据冗余的产生。

2.3 设置唯一键约束(unique key)

 唯一键的功能类似于 “主键” ,但不能与主键重复;

以 stu表为例,将 stu_name 设置为唯一键:右击该记录——选择“索引/键”——添加,列,列名,确定——是唯一的:是;

 (PK_stu是主键,我们点击添加,出现IX_stu*,)

                

        

2. 4 设置默认键约束(default key)

选中该记录,直接设置 “默认值绑定” 即可;

以stu表中的stu_score为例;

2.5 设置外键约束 (foreign key)

        外键是其来自他表的主键,用于两个表的 “连接” ,即让两个表产生某种关系;

        含有外键的表称为外键表;

        也可以这么理解,连接就是设置外键;

        下面以 tea表 和 stu表为例;我们在 stu表中引入  tea表中的 tea_id:(首先tea_id得是tea表的主键)在stu表中,插入tea_id记录——右击“关系”,选择“表和列规范”——在弹窗中选择“主键表,列名”即可,外键表不可修改。

2.6 check(检查)约束 

check约束就是限制列的范围,使其在一个合理的范围;

选中列名,右击,选择 “check约束“——添加,输入表达式 即可;

下面我们以stu_score为例,设置其范围 ”大于等于60小于等于100“ ;

3. 语法代码

接下来通过语法代码来实现一个表;

创建两个表,分别是 moral表,mora表,在 mora表中引用moral中的 id ;

我们通过查看列,键,约束验证一下:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值