数据库入门教程(SQL Server 2005)----数据库是如何存储数据的
作者: 大蜀黍946
|
- 数据库中表的每一行称为记录
- 数据库中表的每一列称为字段
- 不允许重复元素,避免了数据的冗余,主键上的这个非重复的约束是默认的。
- 且主键值不允许为null值。
- 通过外键约束从语法上保证了本事物所关联的其他事物一定是存在的
- 事物与事物之间的关系是通过外键来体现的
- 保证事物属性的取值在合法的范围之内。
- 保证某个字段的取值是在check语句的规定范围内的
- 保证事物的属性一定会有一个值。
- 保证了事物属性的取值不允许重复,但允许其中一列且只能有一列为空。
- 要求用户必须的为该属性赋值,否则语法出错!
- 如果一个字段不写null,也不写not null----则默认是null,即默认允许为空,用户可以不给该字段赋值----如果用户没有为该字段赋值,则该字段的值默认为null。
- 表和表之间的联系
- 通过设置不同形式的外键来表示表和表的不同关系
- 一对一-----既可以把表A的主键充当表B的外键,也可以把表B的主键当作表A的外键。
- 一对多-----建立了两个表中的一对多的关系,是此时外键在“多”的表中进行设立。把表A的主键充当表B的外键----或者是把表A的主键添加到B中充当外键-----在多的一方添加外键
- 例如:用户和账户的关系,一个用户对应多个账户,其中账户就是多表,可以在多表中建立外键,表达这种一对多的关系,此时多表是从表,如果在用户表中建立外键,可能有的用户不存在账户,而这个外键又是从表的主键置空不合适,所以一般在从表中建立外键,来表达一对多的关系
- 多对多-----需要建立第三个表来表示两个表之间的多对多的关系,且需要在第三个表中定义多个字段组合作为主键,此时多个外键并存。
- 对于多个字段组合主键的理解:在第三方表中标识两表之间的关系,比如三方表指示同学和老师之间的关系,其中a同学----jack老师,b同学----jane老师,在三方表中这样两个字段才能表达出多对多的关系,此时的主键我们不在是一个单独的字段,此时同学列和老师列同时组合起来作为主键,同时这两列又是外键,来表达这种多对多的关系。
- 多对多必须通过一个单独的表来进行表示,
- 能够唯一标识一个事物的字段或者多个字段的组合,被称为主键
- 含有主键的表叫做主键表
- 主键通常都是整数,不建议使用字符串当主键,除非主键是用于集群式的服务,
- 主键的值通常都不允许修改,除非本记录被删除
- 主键不要定义成id,而是要定义成表名ID或者表明_id;
- 要使用代理主键,就是另外建立一个字段,尽量是整型且与其他值无关,不会被修改;
- 任何一张表,强烈建议不要使用有业务含义的字段充当主键;
- 业务主键在使用过程中可能会存在变动,一旦变动可能关联数据将出现问题,因此常采用业务主建
- 我们通常都是在表中单独添加一个整型的标号充当主键字段。
- 如果一个表中的若干个字段是来自另外若干个表的主键或唯一键,则称这若干个字段就是外键。
- 外键通常是来自了另外表的主键而不是唯一键,因为唯一键可能为null;
- 外键不一定是来自另外的表,也可能来自本表的主键;
- 含有外键的表叫做外键表,外键字段来自的那一张表叫做主键表。
- 先删除外键表,如果先删除主键表,会导致外键表中的数据引用错误,而操作失败。
格式:变量名 int(M), 其中M数值表示整数的字符长度,其中M值可省略。1、对于整形数据类型默认为有符号数,可以通过使用关键字unsigned定义无符号数。2、每个类型在内存中占用的字节数是一定的,当插入的数据超出可以表达的范围会出现out of range异常,并且插入临界值。3、如果不设置长度,会默认长度,当使用关键字zerofill,如果长度不够会使用0向左进行填充。
格式:变量名 数据类型(M,D);M,D的值不指定时,将会使用默认值。1、M:整数部位+小数部位D:小数部位长度如果插入数值超出范围,则插入临界值2、M和D都可以省略如果是decimal,则M默认为10,D默认为0如果是float和double,则会根据插入的数值的精度来决定精度3、定点型的精确度较高,如果要求插入数值的精度较高如货币运算等则考虑使用
格式:变量名 数据类型(M)特点:1、对于char其中的M值可以省略,默认为1,相对于varchar空间分配固定长度的字符,而varchar则根据需要进行分配可变长度的字符。varchar中的M数值不可以省略。
日期类型的特点格式:变量名 数据类型特点:1、datetime(占用8字节)年份范围(1000-9999),不受时区的影响。2、timestamp(占用4字节,相当于时间戳),年份范围(1970-2038),受时区影响。
数据库入门教程(SQL Server 2005)----数据库是如何存储数据的相关推荐
- 数据库入门教程(SQL Server 2005)----数据库是如何查询数据的
数据库入门教程(SQL Server 2005)----数据库是如何查询数据的----查询:逻辑顺序 1.计算列 //以scott数据库中的emp表为例-----where可译为查找,其本质是在进行表 ...
- SQL Server 2005数据库教程
SQL Server 2005数据库教程 此主题相关图片如下:000.jpg 下载信息 [文件大小:1.4 MB 下载次数:67] 点击浏览该文件:sql server 2005数据库简明教程 ...
- 烂泥:SQL Server 2005数据库备份与恢复
本文首发于烂泥行天下. 服务器的迁移,因为业务使用的数据库是SQL Server 2005,所以就要首先对数据库进行备份. 备份可以分为手动备份和自动备份,我们先来介绍手动备份. 打开SQL Serv ...
- SQL Server 2005 数据库邮件 使用要点
1 利用SQL Server 2005数据库邮件,首先启用数据库邮件服务, 如下:打开SQL Server"配置工具"中的"外围应用配置器",选择"功 ...
- SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库
在某些偶然的情况下,会引起SQL Server 2005数据库日志文件的损坏,比如:硬件故障.计算机非正常重启或关机. 当SQL Server 2005数据库日志文件损坏时,可能会出现以下情况: 1. ...
- Microsoft SQL Server 2005数据库安装
Microsoft SQL Server 2005数据库,电脑里原有的mssql2000已经不适用了,到网上寻找SQL Server 2005简体中文开发版的下载地址,一开始下载了个学习版的expre ...
- Eclipse如何连接SQL Server 2005数据库
做管理系统当然少不了经常与数据库打交道,在网上搜了很多数据库版本都不小,大的有好几个G的,小的也有几百兆的,我这可怜的内存,最终找了个精简版中的精简版的Sql server2005,只有80几兆,本来 ...
- SQL Server 2005数据库快照
SQL Server 2005数据库快照 -------------------------------------------创建数据库DemoDB create database DemoDB o ...
- Visual C# 2008+SQL Server 2005 数据库与网络开发-- 9.1 对XML的支持
和以前的SQL Server数据库版本相比较,SQL Server 2005在XML支持方面有了很大的改善,如支持XML数据类型等.经过这些显著的改善,开发人员可以通过SQL Server 2005更 ...
最新文章
- opencv 自带库Canny边缘检测
- 诺奖10年,干细胞领域再突破!华大单细胞技术助力获得人类体外诱导全能干细胞...
- 10 过滤器和监听器
- c语言链表错误,C语言创建链表错误之通过指针参数申请动态内存实例分析
- 麦克纳姆轮全向移动机器人速度空间分析
- NLP—3.文本特征工程及工具使用举例
- 分布式系统理论(二):一致性协议Paxos
- 怎么让你开发的安卓软件适应更多尺寸的设备
- 如何设置无线路由器提高迅雷下载速度
- WZOI-264合唱队形
- UVM学习笔记--sequence和sequencer
- 基于C90标准的C语言开发工具
- 搭建代理服务器获取大量IP
- zuk android os 流量,原生用户最爱 Cyanogen OS版ZUK Z1固件
- SpringSecurity整合springBoot、redis——实现登录互踢
- 国外程序员整理的 PHP 资源大全
- android虚拟设备模拟,适用于Android虚拟设备(AVD)的NFC标记模拟
- Mysql存储过程语法讲解,以及如何用Java调用!
- 再见了《越狱》——永恒的经典!
- 构建ubuntu根文件系统
热门文章
- 解决STM32新增加函数出现Undefined symbol HAL_ADC_Init (referred from main.o). 问题
- 算法竞赛入门习题2-3倒三角
- 手淘图片库新特性解析
- 电子文档翻译工具实现文章的批量翻译
- Echarts实现3d 地图实现飞线效果
- Registration
- ppc64le处理器国产power8服务器CentOS7.2安装open-jdk
- 东南大学计算机科学与技术夏令营,保研经验 | 排名第一,七项专利,拿到多个夏令营offer,成功上岸985!...
- coda html5,Mac Coda 前端开发插件 F2E Tools - YangJunwei
- angular7中使用ckplayer插件实现各大浏览器视频播放功能