数据库表的管理

  表的基本概念

        表是包含数据库中所有数据的数据库对象。数据在表中的组织方式与在电子表格中相似,都是 按行和列的格式组织的。每行代表一条唯一的记录,每列代表记录中的一个字段。例如,在包含公 司员工信息的表中,每行代表一名员工,各列分别代表该员工的信息,如编号、姓名、身份证号、 职务,出生日期、基本工资等。

3aae6811506540fca2bb1b103102d0fa.png

 

SQL Server 中的表包括下列主要组件

>列:每列代表由表建模的对象的某个属性。例如,员工表有编号列、姓名列和职务列等。

>行:每行代表由表建模的对象的一个单独的实例。例如,公司每名员工在表中均占一行。

 

数据完整性

        数据完整性是指数据的精确性和可靠性,它是为防止数据库中存在不符合语义规定的数据和防止因错误信息的输入/输出造成无效操作或错误信息而提出的,它分为以下四类。

1.实体完整性

        实体完整性将行定义为特定表的唯一实体。实体完整性通过UNOUE(唯一)索引.UNIQUE约束 或PRIMARY KEY(主键)约束,强制表的标识列或主键的完整性。

2.域完整性

        域完整性指特定列的项的有效性。可以强制域完整性限制类型(通过使用数据类型)、限制格式 (通过使用CHECK约束和规则)或限制可能值的范围(通过使用FOREIGN KEY约束、CHECK约束、 DEFAULT 定义、NOT NULL定义和规则)。

3.引用完整性

        输入或删除行时,引用完整性保留表之间定义的关系。在 SQL Server中,引用完整性通过 FOREIGNKEY(外键)和CHECK(检查)约束,以外键与主键之间或外键与唯一键之间的关系为基础。 引用完整性确保键值在所有表中一致。这类一致性要求不引用不存在的值,如果一个键值发生更改, 则整个数据库中对该键值的所有引用都要进行一致的更改。

        强制引用完整性时,SQL Server将防止用户执行下列操作。

        >在主表中没有关联行的情况下在相关表中添加或更改行。

        >在主表中更改值(可导致相关表中出现孤立行)。

        >在有匹配的相关行的情况下删除主表中的行。

4.用户定义完整性

        用户定义完整性可以定义不属于其他任何完整性类别的特定业务规则。所有完整性类别都支持 用户定义完整性,这包括CREATE TABLE 中所有列级约束和表级约束、存储过程及触发器。

 

主键

        主键唯一标识表中的行数据,一个主键值对应一行数据。主键由一个或多个字段组成,其值具 有唯一性,而且不允许取空值(NULL),一个表只能有一个主键。

        如果主键由多个列组成,则其中一个列将允许重复值,但是主键中所有列的值的各种组合必须是唯一的。

        定义主键可以对在不允许空值的指定列中输入的值强制其唯一性。如果为数据库中的某个表定 义了主键,则可将该表与其他表相关联,从而减少对冗余数据的需求。

数据类型

数据类型是数据的一种属性,用于指定对象可保存的数据的类型,如整数数据、字符数据、货 币数据、日期和时间数据、字符串等。

        >SQL Server提供系统数据类型集,该类型集定义了可与SOL Server一起使用的所有数据类型。

        >SQL Server 中的数据类型可以归纳为下列类别:精准数字、近似数字、日期和时间、字符串、 Unicode 字符串、二进制字符串、其他数据类型。下面分别对一些常见的数据类型进行介绍。

精准数字可以分为九种数据类型

669be780b3e1438f8d7b9f3b52e6ae15.png

 

近似数字可以分为两种数据类型 

881cf42abc0c4af895a9be83cfae9a9b.png

 

日期和时间可以分为六种数据类型 

3cddba02897348d5b4c8a3f07ddf6542.png

字符串可以分为三种数据类型 

63aeba870da1450d96d7b3694eccc18e.png

Unicode字符串可以分为三种数据类型

f03073a00eb04c4d9be6cc679e9ca99b.png

二进制字符串可以分为三种数据类型 

4a399754371a4485b74b14de35554cad.png

默认值 

        如果插入行时没有为列指定值,则该列使用默认值。默认值可以是计算结果为常量的任何值, 如常量、内置函数或数学表达式。

        对于表中的每个列,可以指定当用户将该列保留为空白时将在该列中输入的默认值。如果没有 分配默认值,并将该列保留为空白,则:

>如果设置了允许空值的选项,则将向该列中插入NULL。

> 如果没有设置允许空值的选项,则该列将保持空白,但在用户为该列提供值之前,它们将无法保存行。

标识列

        对于每个表,均可创建一个包含系统生成的序号值的标识列,该序号值以唯一方式标识表中的 每行。例如,当在表中插入行时,标识列可自动为应用程序生成唯一的客户回执编号。标识列在其 所定义的表中包含的值通常是唯一的。

        可以使用标识列在表中创建自动递增标识号,所以标识列习惯上又叫自增列,只能为每个表创 建一个标识列。 标识列具有以下三种特点。

     >列的数据类型为不带小数的数值类型。

     >在进行插入(Insert)操作时,该列的值由系统按一定规律生成,不允许空值。

     >列值不重复,具有标识表中每行的作用,每个表只能有一个标识列。

 

创建一个标识列,通常要指定以下三个内容。
 >类型(Type):在SOL Server 2008中,标识列类型必须是数值类型,如decimal、int、numeric. smallint、bigint、tinyint。其中要注意的是,当选择decimal和numeric时,小数位数必须为 零。另外还要注意每种数据类型所表示的数值范围。

>种子(Seed):指派给表中第一行的值,默认为1。

>递增量(Increment):相邻两个标识值之间的增量,默认为1。

 

检查约束

        通过限制列可接受的值,CHECK约束可以强制域的完整性。此类约束类似于FOREIGNKEY约束, 因为可以控制放入列中的值。但是,它们在确定有效值的方式上有所不同:FOREIGNKEY约束从其他 表获得有效值列表,而CHECK约束通过不基于其他列中的数据的逻辑表达式确定有效值。

        可以通过任何基于逻辑运算符返回True 或False的逻辑(布尔)表达式创建 CHECK约束。 

        例如,可以通过创建CHECK约束将age列中值的范围限制为0~150之间的数据,以防止输入的年龄值超出正常的年龄范围。

                逻辑表达式为  “age >=0 and age <=150”

 

视图模式管理表

创建表

        下面将介绍使用SSMS创建数据表的步骤。

案例:某公司需要在名为“class”的数据库中创建表,表名称为"employee”,其中包含列为 编号(int)、姓名(nvarchar(50))、身份证号(varchar(18)).职务(nvarchar(50)).基本工资(money). 备注(nvarchar(2000))。其中,编号自动生成,从1开始,每增加一人则其编号自动加1:要 求输入基本工资的时候,其值必须为0~100000,设置身份证号列为主键。

具体操作步骤如下所述。

(1)打开SSMS,然后展开数据库,右击“表”节点,在弹出的快捷菜单中选择“新建”→ “表”命令。

7741b7309a5f43de976e111e05f58655.png

 

(2)输入第一列的列名为“编号”,数据类型设置为“int",保持“允许NUll值”复选框为默认 的选中状态。

cd387a3ec5d24165a1587238ebeb1856.png

(3)为该列设置标识规范。在“列属性”选项卡中,将“(是标识)”的值改为“是”,“标识增量”和“标识种子”分别设置为“1”,可以发现表的“编号”列的“允许NUll值”复选框被自动清 空,说明标识列自动增量,系统不允许其出现空值。

51855e15dcfb4b008045fa621529f669.png

 (4)分别新建列“姓名”“身份证号”“职务”“基本工资”“备注”。

0c608d2c959b49338e9582cb99055183.png

(5)由于要求输入基本工资的时候,其值必须为0~100000.因此可以在“基本工资”列设置 CHECK约束,即右击“基本工资”,在弹出的快捷菜单中选择“CHECK约束”命令。

477a8fececea4f168c25905e00651466.png

(6)在打开的“CHECK约束”对话框中,单击“添加”按钮,然后在“表达式”右边的文本框 中输入“基本工资>=0 and 基本工资<=100000”,在“(名称)”右边的文本框中修改为“CK_Table_ 基本工资”,确认无误后,单击“关闭”按钮。 

8bfff77a33854170963a1dfe08b7a9c5.jpeg

 (7)右击“身份证号”,在弹出的快捷菜单中选择“设置主键”命令,可将该列设置为主键,主 键列的左边会显示“黄色钥匙”图标。

3af38eb1b99e4e4ea11d0a8f9398bd34.png

(8)设置完成后,保存该表,右击表名,在弹出的快捷菜单中选择“保存”命令,命令保存后在SSMS中可以看到新建完成的表。

c476e38d6f484ad189d0ae419d36ac0e.png

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/192756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

19.字符串——查找三个字符串中的最大字符串(打擂台)

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 四、举一反三总结 前言 本系列为字符串处理函数编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 查找三个字符串中的最大字符串 二、题目分析 打擂台 三、解题 程序运行代码 #include<…

从零开始:PHP实现阿里云直播的简单方法!

1. 配置阿里云直播的推流地址和播放地址 使用阿里云直播功能前&#xff0c;首先需要在阿里云控制台中创建直播应用&#xff0c;然后获取推流地址和播放地址。 推流地址一般格式为&#xff1a; rtmp://{Domain}/{AppName}/{StreamName}?auth_key{AuthKey}-{Timestamp}-{Rand…

如何使用手机制作证件照

1、打开vx搜索小&#x1f34a;x名称&#xff1a;标准证件照免冠照 2、选择你需要的证件照尺寸类型 3&#xff0e;选择手机照片生活照或者点击开始拍摄&#xff08;建议纯色的墙面好换底色&#xff09; 4&#xff0e;选择背景颜色&#xff0c;红底&#xff0c;蓝底奉背景颜色随你…

数据库管理-第121期 我为什么写文章(202301203)

数据库管理-第121期 我为什么写文章&#xff08;202301203&#xff09; 其实呢~大周末我不是太想写文章的&#xff0c;周五HaloDB起了个头还有一堆可以做的事情都计划到下周了&#xff0c;但是昨天发生了一件事情&#xff0c;让我很是不开心&#xff1a;强盗逻辑&#xff0c;白…

前端入门(五)Vue3组合式API特性

文章目录 Vue3简介创建Vue3工程使用vite创建vue-cli方式 常用 Composition API启动项 - setup()setup的执行时机与参数 响应式原理vue2中的响应式vue3中的响应式ref函数reactive函数reactive与ref对比 计算属性 - computed监视属性 - watchwatchEffect Vue3生命周期自定义hook函…

服务器数据恢复—V7000存储raid5崩溃导致上层卷无法使用的数据恢复案例

服务器数据恢复环境&#xff1a; 某品牌V7000存储中有一组由几十块硬盘组建的raid5阵列。上层操作系统为windows server&#xff0c;NTFS分区。 服务器故障&#xff1a; 有一块硬盘出现故障离线&#xff0c;热备盘自动上线替换离线硬盘。在热备盘上线同步数据的过程&#xff0c…

西南科技大学模拟电子技术实验五(集成运算放大器的应用设计)预习报告

一、计算/设计过程 设计一:用集成运放设计一个输入为0.05v,放大为-100的反相比例运算电路。 对于理想电路,反相比例运算电路的输出电压与输入电压之间的关系如下: =-100,所以 =100 若是假定R1为100k,则R2= =1k 为了减小输入级偏置电流引起的运算误差,在同相输入端…

解决:IDEA的debug模式只有第一次能拦截请求进行debug,后续所有请求全部失效

解决&#xff1a;IDEA的debug模式只有第一次能拦截请求进行debug&#xff0c;后续所有请求全部失效 一问题描述&#xff1a;IDEA的debug模式只有第一次能拦截请求进行debug&#xff0c;后续所有请求全部失效二问题原因&#xff1a;对IDEA的debug功能不熟悉或者理解有偏差三解决…

数学字体 Mathematical fonts

Mathematical fonts 数学字体&#xff1a; ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ \\ \mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ} \\ \mathfrak{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzRQSZ} \\ \mathbb{ABC…

HTML标签

1&#xff0c;HTML语法规范 1.1基本语法概述 1&#xff0c;HTML标签是由<>包围的关键词&#xff0c;例如<html> 2&#xff0c;HTML标签通常是成对出现的&#xff0c;例如<html>和</html>,称为双标签。标签对中的第一个标签是开始标签&#xff0c;第…

分治-归并算法——LCR 170. 交易逆序对的总数

文章目录 &#x1f33c;0. 归并排序&#x1f33b;1. 题目&#x1f33c;2. 算法原理&#x1f337;3. 代码实现 &#x1f33c;0. 归并排序 归并排序是典型的分治&#xff0c;将数组分成若干个子数组&#xff0c;数组两两比较&#xff0c;不是很清楚的&#xff0c;可以查看此篇文…

鸿蒙(HarmonyOS)应用开发——容器组件(Grid组件)

前言 前面一篇文章中&#xff0c;已经说了List组件。那么接下来就是容器组件中的Grid组件 #mermaid-svg-oz1b7w45ASmMlZFa {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-oz1b7w45ASmMlZFa .error-icon{fill:#5522…

最大单词数算法分析

题目描述&#xff1a; 算法一&#xff1a; 代码实现&#xff1a; # include<stdio.h> # include<string.h>int main(){//char text[100]"leet code";//char brokenLetters[26]"lt";char text[100]"hello world";char brokenLetters…

HBASE命令行查看中文字符

问题记录 中文显示的是编码字符不方便查看value\xE5\xB8\xB8\xE5\xAE\x89\xE5\xAE\x891修改前中文显示&#xff1a; 解决方法 1、列族 : 列名 : toString ’2、列族 : 列名 : c(org.apache.hadoop.hbase.util.Bytes).toString ’ scan karry:student,{COLUMNS > [info:…

国际语音通知是什么?国际语音通知系统有哪些功能?

一、国际语音通知是什么&#xff1f; 如同国际短信通知&#xff0c;国际语音通知也在多种生活场景中扮演着重要的角色&#xff0c;如会议通知、商品发货通知、物流更新通知、快递取件通知、外卖取餐通知等。那么什么是语音通知呢&#xff1f; 国际语音通知可将通知的文本信息使…

外包干了2年,技术退步明显。。。

前言 简单的说下&#xff0c;我大学的一个同学&#xff0c;毕业后我自己去了自研的公司&#xff0c;他去了外包&#xff0c;快两年了我薪资、技术各个方面都有了很大的提升&#xff0c;他在外包干的这两年人都要废了&#xff0c;技术没一点提升&#xff0c;学不到任何东西&…

Linux驱动开发学习笔记1《字符设备驱动开发》

目录 一、字符设备驱动简介 二、chrdevbase 字符设备驱动开发实验 1.创建驱动程序的目录 2.创建vscode工程 3.编写实验程序 4.编译驱动程序和测试APP代码 &#xff08;1&#xff09;加载驱动模块 &#xff08;2&#xff09;创建设备节点文件 &#xff08;3&#xff…

深度学习 -- 卷积神经网络

1、卷积神经网络的结构 大卫休伯尔( David Hunter Hubel ) 等人研究发现&#xff0c;猫的视皮层上 存在简单细胞( simple cell )和复杂细胞( complex cell )&#xff0c;简单细胞会对 感受野中特定朝向的线段做出反应&#xff0c;而复杂细胞对于特定朝向的钱段移动也能做出反应…

伪原创API,批量创作伪原创文章

内容创作已经成为互联网领域中不可或缺的一环。越来越多的内容创作者和网站管理员开始寻找更高效的伪原创工具&#xff0c;以确保其内容的独特性。 百度文心一言API 我们来了解一下百度文心一言API。作为百度文心推出的一项人工智能服务&#xff0c;通过自然语言处理技术&…

【开源威胁情报挖掘3】开源威胁情报融合评价

基于开源信息平台的威胁情报挖掘综述 写在最前面5. 开源威胁情报关联分析5.1 开源威胁情报网络狩猎&#xff1a;技术、方法和最新研究应用实例和未来方向 5.2 开源威胁情报态势感知关键技术和方法应用实例和未来方向 5.3 开源威胁情报恶意检测关键技术和方法应用实例和未来方向…