数据技术应用概论
第一章 绪论
数据素质培养意义
数据技术
数据科学应用体系框架
第二章 计算机信息系统
计算机信息系统的构成
计算机信息系统技术路线
第三章 抽样技术
抽样技术概述
网络调查和社会调查
抽样学习
抽样技术的基本概念
第四章 网络爬虫与文本数据生成
网络爬虫概述
网络爬虫技术操作
文本数据生成
第五章 数据库技术
数据库技术概述
数据库系统开发
关系数据库
数据仓库
第六章 SQL语言
SQL概述
SQL关系定义
SQL查询基本结构
数据库修改
视图
第七章 数据预处理技术
数据预处理概述
数据清理
数据集成
数据规约
数据变换
第八章 回归模型
回归模型的基础知识
最小二乘法
其他常用回归模型
第九章 Logistic建模技术
基础知识
梯度上升算法
第十章 关联规则挖掘
关联规则挖掘的基础知识
关联规则挖掘的 Apriori 算法
其它常用关联规则挖掘算法
第十一章 决策树分类规则
决策树分类规则的基础知识
决策树分类规则挖掘的ID3算法
几种常用的决策树
第十二章 K-平均聚类
基础知识
基于划分的K‐平均聚类算法
其他常用的聚类
第十三章 神经网络模型
神经网络模型的基础知识
误差逆传播算法
其他常用的神经网络算法
第十四章 支持向量机
支持向量机的基础知识
支持向量机的SMO算法
其他常用的支持向量机算法
第十五章 集成学习算法
集成学习算法的基础知识
随机森林算法
其他常用的集成学习算法
第十六章 数据可视化
数据可视化的基础知识
可视化设计基础
数据可视化工具
-
+
首页
SQL关系定义
## 6.2.1 基本数据类型 在定义关系过程中需要确定的关系中各属性取值的数据类型。标准SQL支持多种数据类型。具体包括 >• char(n):固定长度的字符串,用户指定长度n。 • varchar(n):可变长度的字符串,用户指定最大长度n。 • int:长整数类型,等价于全称integer。 • smallint:短整数类型。 • numeric(p,d):定点数,精度由用户指定。由p位数字(不包括符号、小数点)组成,其中d为小数位。 • real,double precision:浮点数与双精度浮点数,精度与机器相关。 • float(n):浮点数,精度至少为n位。 • date:日期,包含年、月、日,格式为YYYY-MM-DD • time:时间,包含一日的时、分、秒,格式为HH:MM:SS 每种类型都可能包含一个被称作空值(NULL)的特殊值。 ## 6.2.2 示例 为后续介绍SQL语言这里引用数据库教材中的一个高校教务管理数据库构建的经典示例。 该精简的教务管理数据库包含3个基本表(表的主码加下划线表示): >学生表:S(Sno,Sname,Ssex,Sage,Sdept) 分别对应属性:学号,姓名,性别,年龄,所在系。 >课程表:C(Cno,Cname,Cpno,Ccredit) 分别对应属性:课程号,课程名,先行课号,学分。 >学生选课表:SC(Sno,Cno,Grade) 分别对应属性:学号,课程号,成绩。 ## 6.2.3 创建基本关系 - `定义基本关系`(表),就是创建基本表的结构。 其一般格式为: ```sql CREATE TABLE < r > (\<A1> \<D1> [,\<A2> \<D2>] … … [,\<An> \<Dn>] [,<完整性约束性条件1>]…[,<完整性约束性条件k>]); ``` - 其中,CREATE TABLE的中译就是创建表,r是关系名,每个Ai是关系r中的一个属性名,Di 是属性Ai的域,Di指定了属性Ai的类型以及可选的约束,用于限制所允许的Ai取值的集合 - 如:数据库中创建一个“学生”关系S的命令: ```sql CREATE TABLE S (Sno VARCHAR(9) PRIMARY KEY, /*约束条件,Sno是主码 */ Sname VARCHAR(20) UNIQUE, /* Sname取唯一值 */ Ssex CHAR(2), Sage SMALLINT, Sdept VARCHAR(20) ); ``` - #### 实验环境 使用本平台在线工具进行学习。 地址:首页->工作台[【快捷链接】](https://zenodt.com/workbench "【快捷链接】"),点击按钮,登录即可。 - 创建的关系具有5个属性:Sno是最大长度为9的字符串,Sname是最大长度为20的字符串,Ssex是长度为2 的字符串,Sage是短整形数,Sdept是最大长度为20的字符串。create table命令还指明属性Sno是关系S的 主码,属性Sname不能取重复的值。 - `定义完整性约束条件` 这些条件被存入系统的数据字典中。当用户操作表中数据时,由数据库管理系统自动检查该操 作是否违背完整性约束条件。SQL 支持多种完整性约束。 ①实体完整性声明PRIMARY KEY(Aj1,Aj2,…,Ajm):PRIMARY KEY声明表示属性Aj1,Aj2,…,Ajm构成关系的主码。主码属性必须非空且唯一。主码的声明是可选的,但通常会为每个关系指定一个主码。 ②参照完整性声明FOREIGN KEY(Ak1 , Ak2, …, Akn)REFERENCES S:FOREIGN KEY声明表示关系中任意元组在属性(Ak1 , Ak2, …, Akn)上的取值必须对应于关系S中某元组的主码属性取值。 ③属性的不允许空值约束NOT NULL:要求在该属性上不允许空值。 ④属性的唯一取值约束UNIQUE:要求在该属性上只能取唯一值。 - 创建“学生选课表”: ```sql CREATE TABLE SC (Sno VARCHAR(9), Cno VARCHAR(4), Grade SMALLINT, PRIMARY KEY(Sno,Cno), ``` >/* 主码由两个属性构成,必须作为表级完整性进行定义 */ FOREIGN KEY(Sno) REFERENCES S(Sno) on DELETE CASCADE, /* 表级完整性约束条件,SNO是外码,被参照表是S,并做级联删除操作 */ FOREIGN KEY(Cno) REFERENCES C(Cno) /* 表级完整性约束条件,CNO是外码,被参照表是C */ ); - SQL禁止破坏完整性约束的任何数据库更新。 >例如,如果关系中一条新插入或新修改的元组在任意一个主码属性上有空值,或者元组在主码属 性上的取值与关系中的另一个元组相同,SQL将标记一个错误,并阻止更新。 当违背参照完整性约束时,通常的处理是拒绝执行导致完整性破坏的操作。但是,在FOREIGN KEY子句中可以指明,如果被参照关系上的删除或更新动作违反了约束,那么系统必须采取一些步 骤通过修改参照关系中的元组来恢复完整性约束,而不是拒绝这样的动作。 上例中当学生表S做删除元组操作时,学生选课表SC做级联删除操作以维护参照完整性约束。 SQL还允许FOREIGN KEY子句指明除CASCADE以外的其他动作,如果约束被违反:可将参照域置为 NULL(用SET NULL代替CASCADE),或者置为域的默认值(用SET DEFAULT)。 ## 6.2.4 关系删除与修改 删除关系使用DROP TABLE命令语句可以删除数据库中的一个关系。即删除关系的所有信息。 >DROP TABLE r `r是现有关系名。` 修改关系 使用ALTER TABLE命令语句修改基本表结构,可以为已有关系增加属性。关系中的所有元 组在新属性上的取值将被设为空值(NULL)。 >ALTER TABLE r ADD A D; `其中r是现有关系名,A是待添加属性名,D是待添加属性的域。` 可以通过命令ALTER TABLE r DROP A;从关系中去掉属性。其中r也是现有关系名,A是关系的一个 属性名。很多数据库管理系统并不支持去掉属性,尽管它们允许去掉整个表 $$x^`=x/10^/$$
张龙
2024年8月12日 14:52
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码