基本表的定义:创建表、修改表、删除表

一、创建数据库与打开数据库

学生选课数据库

学生(学号,姓名,性别,出生时间,所在系)

课程(课程编号,课程名,先修课程号)

选课(学号课程编号,成绩)

创建数据库

CREATE DATABASE <数据库名>

create database XSXK;

1、创建数据库的实质功能是向操作系统申请存储数据库所需要的存储空间

2、创建数据库后会生成操作系统文件,每个数据库至少对应有2个文件

(1).MDF文件(数据文件)

包含数据和对象,例如表、存储过程等

(2).LDF文件(日志文件)

包含恢复数据库所有事务所需要的信息

(3)在创建数据库时,可自定义指定这两个文件的位置,如不指定,将会采用默认位置

3、DBMS中有多个数据库时,可采用SQL语句打开指定数据库

USE <数据库名>

use XSXK;

二、基本表的创建

1、使用SQL语言中的CREATE TABLE语句,指定了关系表的表名、属性列的列名和属性域(DBMS所支持的数据类型)

2、格式:

CREATE TABLE <表名>

(

<属性列名1><数据类型>【列级完整性约束条件】

【,<属性列名2><数据类型>【列级完整性约束条件】,...】

【,<表级完整性约束条件>】

)

使用完整性约束可定义主键和外键,实现关系的实体完整性、参照完整性和用户自定义完整性

3、注意:

(1)所定义的表至少有一个属性列

(2)定义表的属性列时需要指定其属性列的数据类型和 长度

4、SQL Server中的数据类型

注意:

CHAR(n)类型和VARCHAR(n)都表示字符串类型,但是前者的字符数目不够n时会默认会用空格补齐到n,而后者字符数目是多少字符串的长度就是多少

5、主键约束

PRIMARY KEY 【(<属性列(组)>)】

定义主键,保证了属性列值的唯一性和非空性

sNo varchar(3) primary key,
 primary key(sNo,cNo) -- sNo和cNo都是主键、也是主属性

6、外键约束

FOREIGN KEY(<外键>)

     REFERENCES <被参照表名> (<与外键对应的主键名>)

表中的外键参照了被参照表中的主键

foreign key(cNo)references c(cNo),
   foreign key(sNo)references s(sNo)

(1)表中添加了外键约束,DBMS会保证关系的参照完整性,使得外键sNo和cNo只能取对应被参照表中元组的主键值

(2)为保证关系的参照完整性不被破环,DBMS会采用一些默认的处理策略

(3)用户也可以在定义外键时自定义处理策略

当对被参照表中的主键进行修改或对元组进行删除操作时,参照表是(CASCADE )否(NO ACTION )产生关联的修改和删除操作

ON UPDATE { CASCADE | NO ACTION  }

ON DELETE { CASCADE | NO ACTION }

7、对属性列的取值进行约束(定义用户自定义完整性)

(1)NOT NULL 或 NULL 约束(允许属性值是否为空),对关系的主属性必须限定为NOT NULL,以满足实体完整性

(2)UNIQUE 约束(不允许属性列中出现重复的属性值),对关系中的候选键属性必须保证为非空且唯一,以保证实体完整性

(3)DEFAULT 约束(默认约束),将关系中属性列的值出现频率高的设置为默认值

(4)CHECK约束(检查约束),通过约束条件表达式设置属性列值应该满足的条件

8、基本表

(1)学生表

create table s(
   sNo char(12) primary key,
   sN varchar(3) not null,
   sex char(1) default'男',
   sB Date,
   sD varchar(8),
   check(sex in('男','女'))
);

(2)课程表

create table c(
  cNo char(3) primary key,
  cN varchar(8),
  pC char(3),
  foreign key(pC) references c(cNo)
);

(3)学生选课表

create table sC(
   sNo char(12),
   cNo char (3),
   grade dec(3,1),
   primary key(sNo,cNo), -- sNo和cNo都是主键、也是主属性
   foreign key(cNo)references c(cNo),
   foreign key(sNo)references s(sNo),
   check(grade between 0 and 100)
);

注意:不能同时为多个属性列在列级约束位置上添加主键约束,即PRIMARY KEY,如果在一个表中由多个属性列同时作为该表的主键,则在表级约束的位置上同时为这多个属性列添加主键约束,使这多个属性列同时作为该表的主键

三、基本表的修改

1、增加列或表约束规则

格式:

ALTER TABLE <表名>

    ADD <属性列名> <数据类型>【完整性约束】|<完整性约束>;

例1:在学生表S中加入属性列SH表示学生的籍贯

alter table s
   add sH varchar(18)

例2:在学生表S中补充定义SNO为主键

alter table s
   add primary key(sNo);

2、修改原有列的类型

格式:

ALTER TABLE <表名>

   ALTER COLUMN <属性列名> <数据类型>;

例:将基本表S中的学生姓名SN长度修改为12

alter table s
   alter column sN varchar(12);

四、基本表的删除

1、删除原来就有的列或约束规则

格式:

ALTER TABLE <表名>

      DROP {【CONSTRAINT】 <完整性约束>|

                 COLUMN <列名>【CASCADE|RESTRICT】 };

注:

CASCADE:在没有视图或约束引用该属性列时,该属性列才能被删除

RESTRICT:表示在删除该属性列时,引用该属性列的视图和约束也会被自动删除

例1:删除基本表s中的sex属性列

alter table s
   drop column sex;

2、删除基本表

格式:

DROP TABLE <表名>

    【CASCADE | RESTRICT】

例1:删除基本表s

drop table s cascade;

五、总结

1、利用CREATE TABLE语句完成了创建表,定义主键和外键,对属性值进行约束三个任务

2、基本表的定义会存入DBMS的数据字典中,由DBMS根据数据字典中的信息自动检查用户操作是否符合完整性约束条件,从而实现关系的实体完整性、参照完整性和用户自定义完整性

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习300问】120、该怎么用RNN来构建语言模型?

一、基本概念补充 在构建语言模型之前补充几个自然语言处理&#xff08;NLP&#xff09;基本概念。 &#xff08;1&#xff09;语料库&#xff08;Corpus&#xff09; ① 语料库的定义 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;语料库是一个经过组织和加工…

二叉树-根据先序遍历和中序遍历序列重建二叉树

目录 一、问题描述 二、解题思路 1.首先明确先序遍历和中序遍历的性质&#xff1a; 2.确定根节点及左右子树 3.对子树进行递归操作 4.递归返回条件 三、代码实现 四、刷题链接 一、问题描述 二、解题思路 1.首先明确先序遍历和中序遍历的性质&#xff1a; 先序遍历&am…

探索比特币多面体

目录 前言 一、比特币挖矿 1.挖矿设备的演化 2.矿池 二、比特币脚本 1.交易结构 2.交易的输入 3.交易的输出 4.P2PK 输入输出脚本的形式 实际执行情况 5.P2PKH 输入输出脚本的形式 实际执行情况 6.P2SH 输入输出脚本的形式 7.进一步说明 8.多重签名 9.脚本执…

Graphviz——安装、绘制可视化协议状态机(Python)

1、简介 Graphviz 是一个开源的图形可视化软件包&#xff0c;特别擅长绘制有向图和无向图等结构化图形。它非常适合用于生成各种图表&#xff0c;例如流程图、网络图、状态机图、层次结构图等。Graphviz 的主要组件 dot: 这是Graphviz最常用的布局程序&#xff0c;用于创建有向…

(杭州中科微)全星座定位导航模块GM32的应用推荐及性能指标解析

1、 关于GNSS的原理&#xff1a; 它是通过接收来自地球轨道上的W星信号&#xff0c;并利用信号传播延迟的原理&#xff0c;计算与接收器之间的距离&#xff0c;从而实现对接收器位置的精确测量。 而GNSS的定位原理&#xff1a;W星导航系统GNSS接收机主要是通过三边测量法&…

Postgresql配置SSL连接

1、系统需要有openssl、openssl-devel包 yum -y install openssl openssl-devel 2、查看当前数据库是否使用openssl编译 pg_config|grep CONFIGURE 如果没有重新编译 make clean make && make install 3、服务器端证书配置 服务器端需生成三个文件: root.crt(根证…

如何用stable diffusion画出这种风景幻视画?

最近出现了一种奇怪的表情包。 看到小图的时候有几个字&#xff0c;点看一看却是一张正常的图片。 比如&#xff0c;看一个有意思的图&#xff0c;这两张图的预览模式下有明显的“银河”两字。 点开放大呢&#xff1f; 竟然是服饰的形状和颜色。 再看一张类似效果的&#xf…

Java_JDK下载与环境变量配置

目录 一、JDK下载安装 二、安装后配置环境变量 三、在编辑器里使用JDK 一、JDK下载安装 JDK 是Java开发工具包&#xff0c;它提供了用于开发和运行Java程序所需的工具和库。JDK包括Java编译器、Java虚拟机、Java标准库等。在IDEA中使用Java语言编写代码时&#xff0c;需要安…

20240617通过串口配置索尼SONY的HDMI OUT输出的8530机芯

20240617通过串口配置索尼SONY的HDMI OUT输出的8530机芯 2024/6/17 15:54 缘起&#xff1a;需要在RK3588开发板OK3588-C上使用SONY的8530机芯。特意熟悉8530的串口命令&#xff01; 目的&#xff1a;需要配置SONY的8530机芯为RGB输出&#xff0c;4K分辨率。 串口波特率&#x…

Redis 管道

Redis的消息交互 当我们使用客户端对Redis进行一次操作时&#xff0c;如下图所示&#xff0c;客户端将请求传送给服务器&#xff0c;服务器处理完毕后&#xff0c;再将响应回复给客户端&#xff0c;这要花费一个网络数据包来回的时间。 如果连续执行多条指令&#xff0c;那就会…

Elixir学习笔记——编写文档

Elixir 将文档视为一等级别类。文档必须易于编写且易于阅读。在本指南中&#xff0c;您将学习如何在 Elixir 中编写文档&#xff0c;涵盖模块属性、样式实践和文档测试等结构。 Markdown Elixir 文档是使用 Markdown 编写的。网上有很多关于 Markdown 的指南&#xff0c;我们…

根据配置的参数规格生成商品SKU

参数规格如下&#xff1a; let specParam [[红色,绿色,白色,黄色], [大,小]]js部分&#xff1a; let getSpecParamCom (specData, index) > {for (let i 0; i < specData[index].length; i) {tempResult[index] specData[index][i];if (index ! specData.length - …

鸿蒙原生App开发之:套用混合app开发思路

2024年&#xff0c;似乎华为迎来了新的企业机遇--鸿蒙独立操作系统。 受到全球国际形势的影响&#xff0c;加之第四次科技革命&#xff08;AI革命&#xff09;冷不丁的出现&#xff0c;在他国AI技术领先的前提下&#xff0c;中国自主研发的独立操作系统再次提上新的战略高度。…

Javaweb08-JDBC数据库连接技术

JDBC数据库连接技术 **原理&#xff1a;**JDBC在应用程序与数据库之间起到了一个桥梁作用&#xff0c;当应用程序使用JDBC访问特定的数据库时&#xff0c;需要通过不同数据库驱动与不同的数据库进行连接&#xff0c;连接后即可对数据库进行相应的操作。 一.Jdbc API 1.Driver…

基于Itô扩散过程的交易策略偏微分方程matlab求解与仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于It扩散过程的交易策略偏微分方程,提出了一种确定It扩散过程。通过根据的第一次通过时间来确定问题在这个过程中&#xff0c;我们推导出交易长度的分布函数和密…

Guava-EventBus 源码解析

EventBus 采用发布订阅者模式的实现方式&#xff0c;它实现了泛化的注册方法以及泛化的方法调用,另外还考虑到了多线程的问题,对多线程使用时做了一些优化&#xff0c;观察者模式都比较熟悉&#xff0c;这里会简单介绍一下&#xff0c;重点介绍的是如何泛化的进行方法的注册以及…

网线不通?瞅瞅这里----关于交叉网线的原理。

最近搞了个项目&#xff0c;UDP对接UDP&#xff0c;死活对接不上。 最后发现是交叉网线的事情&#xff0c;在此记录交叉网线的原理。 先说结论&#xff1a;不同设备用直连&#xff0c;相同设备用交叉网线 细说说 1.原理 网线的原理实际就是TX与RX对接。 正常一个设备同时有…

关于使用命令行打开wps word文件

前言 在学习python-docx时&#xff0c;想在完成运行时使用命令行打开生成的docx文件。 总结 在经过尝试后&#xff0c;得出以下代码&#xff1a; commandrstart "C:\Users\86136\AppData\Local\Kingsoft\WPS Office\12.1.0.16929\office6\wps.exe" "./result…

智能室内空气质量监测预警系统小程序设计说明书

智能室内空气质量监测预警系统小程序设计说明书 一、应用功能与系统设计 &#xff08;一&#xff09; 应用功能 该小程序设计的目的是为了配合环境监测吸顶灯,Mini空气监测仪等硬件设备实时数据展示与远程设备控制等功能&#xff0c;系统框架图如图1-1所示。用户可以从小程序…

生活好物:日常更精彩

我们的日用杂货店&#xff0c;是生活美学的聚集地。这里汇聚了各式各样的生活用品&#xff0c;每一件都蕴含着对生活的热爱与追求。 走进我们的日用杂货店&#xff0c;仿佛打开了一个充满生活气息的宝藏盒。从厨房的锅碗瓢盆&#xff0c;到浴室的洗漱用品&#xff0c;再到客厅的…