3.3 数据定义 数据库与系统概论

目录

3.3.1 模式的定义与删除

1. 定义模式

2. 删除模式

CASCADE(级联)

RESTRICT(限制)

3.3.2 基本表的定义、删除与修改

表的定义

2.数据类型

3. 模式与表

4. 修改基本表

5. 删除基本表 

3.3.3 索引的建立与删除

1. 建立索引

2. 修改索引

3. 删除索引

3.3.4 数据字典


SQL的数据定义功能: 定义数据库中的各种对象,模式定义,表定义,视图和索引的定义

现代关系数据库管理系统提供了一个层次化的数据库对象命名机制,一个关系数据库管理系统的实例(Instance)中可以建立多个数据库,一个数据库中可以建立多个模式,一个模式下通常包括多个表、视图和索引等数据库对象。

3.3.1 模式的定义与删除

1. 定义模式

SQL中,模式定义语句如下: CREATE SCHEMA <模式名> AUTHORIZATION <用户名>

[例3.1] 为用户WANG定义一个学生-课程模式S-T

CREATE SCHEMA “S-T” AUTHORIZATION WANG;

如果语句没有指定<模式名>,<模式名>隐含为<用户名>

[例3.2] CREATE SCHEMA AUTHORIZATION WANG;

要创建模式,调用该命令的用户必须拥有数据库管理员权限,或获得了数据库管理员授予CREATE SCHEMA 的权限。

定义模式实际上定义了一个命名空间。在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。

在CREATE SCHEMA中可以接受:CREATE TABLE ,CREATE VIEW ,GRANT子句定义模式

即用户可以在创建模式的同时,在模式定义中进一步创建基本表、视图,定义授权。 

[例3.3]为用户ZHANG创建了一个模式TEST,并且在其中定义一个表TAB1

CREATE SCHEMA TEST AUTHORIZATION ZHANG

CREATE TABLE TAB1 ( COL1 SMALLINT, COL2 INT, COL3 CHAR(20), COL4 NUMERIC(10,3), COL5 DECIMAL(5,2) );

2. 删除模式

SQL中,删除模式语句如下: DROP SCHEMA <模式名><CASCADE|RESTRICT>

CASCADE(级联)

删除模式的同时把该模式中所有的数据库对象全部删除

RESTRICT(限制)

如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝执行该删除语句。

仅当该模式中没有任何下属的对象时才能执行。

[例3.4] DROP SCHEMA ZHANG CASCADE;  

含义:删除模式ZHANG,同时该模式中定义的表TAB1也被删除

3.3.2 基本表的定义、删除与修改

表的定义

定义基本表,基本格式如下:

CREATE TABLE <表名>

(<列名><数据类型>[<列级完整性约束条件>],<列名><数据类型>[<列级完整性约束条件>],...[<表级完整性约束条件>]);

<表名> :所要定义的基本表的名字

<列名>:组成该表的各个属性(列)

<列级完整性约束条件>:涉及相应属性列的完整性约束条件

<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件 

如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。

例子:

CREATE TABLE Course (Cno CHAR(4) PRIMARY KEY, /* 列级完整性约束条件,Cno是主码*/

Cname CHAR(40) NOT NULL, /* 列级完整性约束条件,Cname取值非空*/

Cpno CHAR(4), Ccredit SMALLINT,

FOREIGN KEY (Cpno) REFERENCES Course(Cno) /* 表级完整性约束条件【参照完整性】,外码cpno被参照表为course,被参照列为cno*/

2.数据类型

SQL中域的概念用数据类型来实现

定义表的属性时需要指明其数据类型及长度

选用哪种数据类型,考虑两方面:1.取值范围 如:人的年龄一般在100岁左右,选用短整数;教职工适合年龄 2.要做哪些运算 如,年龄可以用CHAR(3); 计算平均年龄:整数型

3. 模式与表

每一个基本表都属于某一个模式

一个模式包含多个基本表

定义基本表所属模式方法: 3种方法

一:在表名中明显地给出模式名

Create table "S-T".Student(......); /*模式名为 S-T*/

Create table "S-T".Course(......);

Create table "S-T".SC(......);

 方法二:在创建模式语句的同时创建表

方法三:设置所属的模式 (创建表时,表名中无需给出模式名)

创建基本表(其他数据库对象也一样)时,若没有指定模式,系统根据搜索路径来确定该对象所属的模式

关系数据库管理系统会使用模式列表中第一个存在的模式作为数据库对象的模式名

若搜索路径中的模式名都不存在,系统给出错误

显示当前的搜索路径: SHOW search_path;

搜索路径的当前默认值是:$user,PUBLIC

含义:首先搜索与用户名相同的模式名,如果模式名不存在,则使用PUBLIC模式

数据库管理员也可以设置搜索路径,然后定义基本表 SET search_path TO “S-T” , PUBLIC; Create table Student(......); 结果建立了S-T.Student基本表。

含义:关系数据库管理系统发现搜索路径中第一个模式名S-T,就把该模式作为基本表Student所属的模式。

4. 修改基本表

SQL中,修改基本表一般格式:

5. 删除基本表 

3.3.3 索引的建立与删除

建立索引的目的加快查询速度

B+树索引具有动态平衡的优点,HASH索引具有查找速度快的特点

谁可以建立索引:数据库管理员 或 表的属主(即:建立表的人)

谁维护索引:关系数据库管理系统自动完成

使用索引:关系数据库管理系统自动选择合适的索引作为存取路径,用户不必也不能显式地选择索引

索引属于内模式的范畴

索引占用一定的存储空间,当基本表更新时,索引要进行相应的 维护,会增加数据库负担,根据实际需求有选择的创建索引。 SQL标准中没有涉及索引,但商用关系数据库管理系统一般是支 持索引机制。

1. 建立索引

创建索引语句格式如下:

CREATE [UNIQUE] [CLUSTER] INDEX<索引名>

ON <表名>(<列名>[<次序>]);

<表名>:要建索引的基本表的名字

索引:可以建立在该表的一列或多列上,各列名之间用逗号分隔

<次序>:指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASC

UNIQUE:此索引的每一个索引值只对应唯一的数据记录

CLUSTER:表示要建立的索引是聚簇索引

2. 修改索引

修改索引语句格式如下:

ALTER INDEX<旧索引名> RENAME TO<新索引名>

3. 删除索引

索引一经建立就由系统使用和维护,不需用户干预。如果面临频繁的数据增删改,系统需要花费时间来维护索引, 降低了查询效率。需要删除不必要的索引。删除时,系统会从数据字典中删去有关该索引的描述。

删除索引语句格式如下: DROP INDEX <索引名>;

3.3.4 数据字典

数据字典是关系数据库管理系统内部的一组系统表,它记录了数据库中所有定义信息:

关系模式定义、视图定义、索引定义

完整性约束定义

各类用户对数据库的操作权限

统计信息等

关系数据库管理系统在执行SQL的数据定义语句时,实际上就是在更新数据字典表中的相应信息。

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

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

相关文章

如何备考2024年AMC10:吃透2000-2023年1250道真题(限时免费送)

我们今天继续来随机看5道AMC10真题&#xff0c;以及详细解析&#xff0c;这些题目来自1250道完整的官方历年AMC10真题库。通过系统研究和吃透AMC10的历年真题&#xff0c;参加AMC10的竞赛就能拿到好名次。即使不参加AMC10竞赛&#xff0c;掌握了这些知识和解题思路后初中和高中…

2015年认证杯SPSSPRO杯数学建模C题(第一阶段)荒漠区动植物关系的研究全过程文档及程序

2015年认证杯SPSSPRO杯数学建模 C题 荒漠区动植物关系的研究 原题再现&#xff1a; 环境与发展是当今世界所普遍关注的重大问题, 随着全球与区域经济的迅猛发展, 人类也正以前所未有的规模和强度影响着环境、改变着环境, 使全球的生命支持系统受到了严重创伤, 出现了全球变暖…

Flutter 旋转动画 线性变化的旋转动画

直接上代码 图片自己添加一张就好了 import dart:math;import package:flutter/material.dart;import package:flutter/animation.dart;void main() > runApp(MyApp()); //旋转动画 class MyApp extends StatelessWidget {overrideWidget build(BuildContext context) {re…

RMAN 备份恢复、删除归档

RMAN冷备全库 rman target / list backup shutdown immediate startup mount #不要自动备份control file set nocfau; #注意要先备份数据库&#xff0c;然后备份控制文件&#xff0c;因为数据库的备份位置记录在控制文件中。 #备份数据库 backup database format /mnt/disk01/r…

vue 中实现下载后端返回的流式数据

验证是否是blob /*** Event 验证是否为blob格式* */export async function blobValidate(data) {try {const text await data.text();JSON.parse(text);return false;} catch (error) {return true;}}get请求 /*** Event: get请求下载后端返回的数据流* description: url[Stri…

Redis-指定配置启动

基础篇Redis 3.3.5.指定配置启动 如果要让Redis以后台方式启动&#xff0c;则必须修改Redis配置文件&#xff0c;就在我们之前解压的redis安装包下&#xff08;/usr/local/src/redis-6.2.6&#xff09;&#xff0c;名字叫redis.conf&#xff1a; 我们先将这个配置文件备份一份…

利用 Scapy 库编写 ARP 缓存中毒攻击脚本

一、ARP 协议基础 参考下篇文章学习 二、ARP 缓存中毒原理 ARP&#xff08;Address Resolution Protocol&#xff09;缓存中毒是一种网络攻击&#xff0c;它利用了ARP协议中的漏洞&#xff0c;通过欺骗或篡改网络中的ARP缓存来实施攻击。ARP协议是用于将IP地址映射到物理MAC…

警务数据仓库的实现

目录 一、SQL Server 2008 R2&#xff08;一&#xff09;SQL Server 的服务功能&#xff08;二&#xff09;SQL Server Management Studio&#xff08;三&#xff09;Microsoft Visual Studio 二、创建集成服务项目三、配置“旅馆_ETL”数据流任务四、配置“人员_ETL”数据流任…

OM6626低功耗M4内核低睡眠电流BLE5.3 SoC国产ESL蓝牙方案芯片

目录 OM6626简介OM6626主要特性射频特性PUM特性安全性SDK代码微信号&#xff1a;dnsj5343OM6626最小系统Demo板 OM6626简介 OM6626是功能强大、性能稳定、超低功耗的蓝牙SoC芯片&#xff0c;适用于各种低功耗蓝牙和专有的2.4GHz应用场景。OM6626还集成了电源管理单元 (PMU)&am…

机器视觉检测设备的组成要素

机器视觉检测设备是一种先进的自动化检测技术工具&#xff0c;它利用光学、图像处理和计算机硬件及软件技术模拟并扩展人类的视觉功能&#xff0c;以实现对产品或目标物体进行自动化的尺寸测量、缺陷检测、表面质量评估、颜色识别、形状匹配以及位置判断等功能。这种设备通常包…

PyCharm环境下Git与Gitee联动:本地与远程仓库操作实战及常见问题解决方案

写在前面&#xff1a;本博客仅作记录学习之用&#xff0c;部分图片来自网络&#xff0c;如需引用请注明出处&#xff0c;同时如有侵犯您的权益&#xff0c;请联系删除&#xff01; 文章目录 前言下载及安装GitGit的使用设置用户签名设置用户安全目录Git基本操作Git实操操作 Pyc…

Python高阶函数库之functools使用详解

概要 functools是Python标准库中的一个模块,它提供了一系列用于高阶函数:即那些作用于或返回其他函数的函数。这些工具主要用于函数式编程风格,其中包括用于创建函数包装器的装饰器。 functools简介 functools库的目的是为了高阶函数,特别是那些涉及到函数转换的操作提供…

数据仓库的魅力及其在企业中的应用实践

数据仓库&#xff0c;这一创新性的概念来自于比尔恩门&#xff0c;从1980年代末提出以来&#xff0c;便凭借其独特的架构设计和强大的数据处理能力&#xff0c;在全球商业领域中掀起了一场革命。它不仅是解决企业海量数据存储和查询需求的关键技术&#xff0c;更是推动企业实现…

【Java】哈希表

文章目录 一、概念二、哈希冲突2.1概念2.2设计合理的哈希函数-避免冲突2.3调节负载因子-避免冲突2.4闭散列-冲突解决&#xff08;了解&#xff09;2.5开散列/哈希桶-冲突解决&#xff08;重点掌握&#xff09; 三、代码实现3.1成员变量及方法的设定3.2插入3.3重新哈希3.4 获取到…

免费客服系统大揭秘!有什么好用的免费客服系统推荐?

贵的不一定是好的&#xff0c;合不合适才最重要&#xff01;有什么好用的免费客服系统吗&#xff1f;现下服务经济的发展的风潮已经席卷到了各行各业。 企业不仅要提供好的产品&#xff0c;还需要好的服务。客服系统作为企业与客户重要的沟通渠道&#xff0c;越来越多的企业正在…

记录些LLM相关的知识

SOTA SOTA是"State-of-the-Art"的缩写&#xff0c;指的是某个技术或领域中目前最先进的技术或方法。在语音合成领域&#xff0c;SOTA语音合成效果指的是使用最新的研究和技术所达到的最佳语音合成效果。这通常包括高清晰度的语音输出&#xff0c;自然的语音流畅度&a…

面试题-Elasticsearch集群架构和调优手段(超全面)

对于Elasticsearch&#xff08;ES&#xff09;&#xff0c;我了解并有经验。在我之前的公司&#xff0c;我们有一个相对大型的ES集群&#xff0c;以下是该集群的架构和一些调优手段的概述&#xff1a; 1. 集群架构 集群规模&#xff1a;我们的ES集群由15个节点组成&#xff0c…

docker配置镜像加速后容器和镜像消失

一、问题描述 根据阿里云给docker配置镜像加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://gt6j98xi.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl rest…

框架结构模态分析/动力时程分析Matlab有限元编程 【Matlab源码+PPT讲义】|梁单元|地震时程动画|结果后处理|地震弹性时程分析| 隐式动力学

专栏导读 作者简介&#xff1a;工学博士&#xff0c;高级工程师&#xff0c;专注于工业软件算法研究本文已收录于专栏&#xff1a;《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现&#xff0c;并提供所有案例完整源码&#xff1b;2.单元…

[NKCTF 2024]web解析

文章目录 my first cms全世界最简单的CTF解法一解法二 my first cms 打开题目在最下面发现是CMS Made Simple&#xff0c;版本为2.2.19 扫一下发现存在后台登陆界面&#xff0c;直接访问 用字典爆破下admin的密码为Admin123 然后直接登录&#xff0c;去漏洞库搜一下其实存在…