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

news2024/11/27 1:14:53

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

学生选课数据库

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

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

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

创建数据库

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)
);

三、基本表的修改

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根据数据字典中的信息自动检查用户操作是否符合完整性约束条件,从而实现关系的实体完整性、参照完整性和用户自定义完整性

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

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

相关文章

浅析Vue3 实战笔记(一)

本文是结合实践中和学习技术文章总结出来的笔记(个人使用),如有雷同纯属正常((✿◠‿◠)) 喜欢的话点个赞,谢谢! 有问题欢迎指正!! 前面已经讲了基本的Vue生命周期和入门知识,本篇开始使用Vite构建一个demo 1. 创建项目 1.1. 初始化项目 使用Vite初始化项目 yarn create v…

简单了解java中的异常

异常 1、异常的概述 1.1、概述 异常就是程序出现了不正常的情况&#xff0c;程序在执行过程中&#xff0c;数据导致程序不正常&#xff0c;最终导致JVM的非正常停止。语句错误不算在异常体系中。 1.2、异常的存在形式 异常有类型之分&#xff0c;比如我们比较熟悉的数组越…

【C++11】常见的c++11新特性(一)

文章目录 1. C11 简介2. 常见的c11特性3.统一的列表初始化3.1initializer_list 4. decltype与auto4.1decltype与auto的区别 5.nullptr6.右值引用和移动语义6.1左值和右值6.1.1左值的特点6.1.2右值的特点6.1.3右值的进一步分类 6.2左值引用和右值引用以及区别6.2.1左值引用6.2.2…

两台电脑通过网线直连共享数据(超详细)- 我的实践记录

原文链接 按照原文的操作&#xff0c;成功通过直连网线连接了两台windows电脑并共享传输数据。 ping不通可能是防火墙没关闭导致的&#xff0c;但是完全关闭防火墙又不安全。 那么有没有不关闭防火墙&#xff0c;能够上网&#xff0c;又能直连另一台电脑呢&#xff1f; 我们…

tokenization(一)概述

文章目录 背景基于词&#xff08;Word-based&#xff09;基于字符&#xff08;Character-based&#xff09;子词词元化&#xff08;Subword tokenization&#xff09; 背景 tokenization是包括大语言模型在内所有自然语言处理的任务的基础步骤&#xff0c;其目标是将文本数据转…

数据结构:二叉树的实现

目录 二叉树的遍历方式 前序遍历&#xff1a; 中序遍历&#xff1a; 后序遍历&#xff1a; 二叉树的基本结构和功能 基本结构&#xff1a; 基本功能&#xff1a; 二叉树功能的实现思路 二叉树功能的实现 1、构建一个二叉树 2、二叉树的销毁 3、计算二叉树里的节点个数 4、得…

音频数据上的会话情感分析

情感分析&#xff0c;也被称为观点挖掘&#xff0c;是自然语言处理(NLP)中一个流行的任务,因为它有着广泛的工业应用。在专门将自然语言处理技术应用于文本数据的背景下,主要目标是训练出一个能够将给定文本分类到不同情感类别的模型。下图给出了情感分类器的高级概述。 例如,三…

从零开始理解AdaBoost算法:设计思路与算法流程(二)【权值更新与加权表决、数学公式】

设计思路 AdaBoost算法属于Boosting算法家族中的一种&#xff0c;其基本思路是将多个弱分类器组合成一个强分类器。 “强分类器”是指一个分类准确率较高的模型“弱分类器”则是指分类准确率略高于随机猜测的简单模型。 AdaBoost的核心思想是通过 加权 的方式逐步提高分类器…

Tomcat源码解析(八):一个请求的执行流程(附Tomcat整体总结)

Tomcat源码系列文章 Tomcat源码解析(一)&#xff1a;Tomcat整体架构 Tomcat源码解析(二)&#xff1a;Bootstrap和Catalina Tomcat源码解析(三)&#xff1a;LifeCycle生命周期管理 Tomcat源码解析(四)&#xff1a;StandardServer和StandardService Tomcat源码解析(五)&…

keda-P0460. 潜水员

可达信奥 - 登录 - 可达信奥https://kedaoi.cn/p/P0460 代码思路&#xff1a; 01背包DP。 思路也是比较经典的&#xff0c;就是看用这个水缸的最小值小&#xff0c;还是不用这个水缸的最小值小。但是这里涉及到一个初始化的问题&#xff0c;因为要求最小所以初始化理应…

使用NetAssist网络调试助手在单台计算机上配置TCP服务器和客户端

要使用NetAssist网络调试助手在同一台计算机上配置一个实例作为服务器&#xff08;server&#xff09;和另一个实例作为客户端&#xff08;client&#xff09;&#xff0c;可以按照以下步骤进行操作&#xff1a; 前提条件 确保已经安装NetAssist网络调试助手&#xff0c;并了…

streamlit:如何快速构建一个应用,不会前端也能写出好看的界面

通过本文你可以了解到&#xff1a; 如何安装streamlit&#xff0c;运行起来第一个demo熟悉streamlit的基本语法&#xff0c;常用的一些组件使用streamlit库构建应用 大模型学习参考&#xff1a; 大模型学习资料整理&#xff1a;如何从0到1学习大模型&#xff0c;搭建个人或企业…

鞠小云张霖浩闪耀北京广播电视台春晚发布会,豪门姐弟感爆棚

昨日&#xff0c;2025年北京广播电视台“追梦春晚”全国海选发布会在杭州举行&#xff0c;中国内地青年女演员鞠小云同人气幕后张霖浩&#xff0c;受主办方盛情邀请出席本次活动。从现场流露出的照片中可以看出&#xff0c;鞠小云一袭白色长裙灵动温婉素雅&#xff0c;而张霖浩…

springboot与flowable(1):介绍、Flowable-ui使用

一、工作流引擎使用场景 工作流在企业管理系统中是高频使用的功能&#xff0c;一个最常见的例子是请假加班申请与审批的过程。事实上&#xff0c;工作流引擎能支持的业务场景远远不止单据审批&#xff0c;几乎所有涉及到业务流转、多人按流程完成工作的场景背后都可以通过工作流…

Vue3【二】 VSCode需要安装的Vue语法插件

VSCode需要安装的 适配Vue3的插件 Vue-Official插件安装

A股所有公司ZL申请与创新绩效分析(2000-2022年)

数据简介&#xff1a;专利是创新成果的主要载体&#xff0c;专利所包含的技术、经济、法律等信息主要通过结构化专利专利文献著录项的形式加以呈现。专利申请与创新绩效已成为衡量上市公司竞争力的重要指标。目前&#xff0c;各国ZSCQ管理部门开发管理的开放式平台是获取ZL数据…

PyQt5 多进程 多任务 多线程实现进度条功能 无边框 含源码

概述&#xff1a; 在项目 中我们常遇到&#xff0c;大量计算或者加载数据时&#xff0c;需要用到多线程&#xff0c;此时只能等待&#xff0c;我们这个时间需要添加一下进度条&#xff0c;告诉用户当前需要等待&#xff0c;这时间就需要用到多线程和等待进度条&#xff1b; 效…

【STM32】GPIO输出(江科大)

一、GPIO简介 1.GPIO&#xff1a;通用输入输出口 2.可配置为8种输入输出模式 3.引脚电平&#xff1a;0-3.3V&#xff08;输出最大3.3V&#xff09;&#xff0c;部分引脚可容忍5V&#xff08;输入&#xff0c;有FT&#xff09; 4.输出模式下&#xff0c;可控制端口输出高低电平…

94、二叉树的迭代遍历

实现对二叉树的前后序非递归遍历 题解&#xff1a; 递归的实现就是&#xff1a;递去&#xff0c;归来。每一次递归调用都会把函数的局部变量、参数值和返回地址等压入调用栈中&#xff0c;然后递归返回的时候&#xff0c;从栈顶弹出上一次递归的各项参数&#xff0c;所以这就是…

MySQL系列-安装配置使用说明(MAC版本)

1、前言 本文将介绍MySQL的安装配置以及基本语法操作说明 环境&#xff1a;mac 版本&#xff1a;MySQL 8.0.28 之前电脑安装卸载过&#xff0c;后面在装的时候遇到一些问题&#xff0c;用了四五天才解决&#xff0c;主要是参考 https://blog.csdn.net/zz00008888/article/deta…