创建数据库数据插入、更新与删除

创建数据库和创建表

一、实验目的

(1)熟悉和掌握数据库的创建和连接方法;

(2)熟悉和掌握数据库表的建立、修改和删除;

(3)加深对表的实体完整性、参照完整性和用户自定义完整性的理解。

二、实验内容

(1)创建一个教学数据库,数据库的名称为MIS

(2)创建MIS数据库中的5个关系模式,要求包含完整性约束的定义。

  • 系(系编号,系名称)
  • 教工(教工号,姓名,性别,职称,工资,系编号)
  • 学生(学号,姓名,性别,出生年月,专业,家庭地址,系编号)
  • 课程(课程编号,课程名称,学时,系编号)
  • 成绩(学号,课程编号,分数)

三、实验平台

操作系统:Windows x64 

DBMS:SQL Server 2016 

四、代码清单

PS:go的命令可以不要,“go”是SQL Server2000批处理的结束标志,不是SQL语句。

/* 注释:实验一中文脚本.sql 创建数据库  */
create  database MIS
go
/*  打开数据库   */
use MIS
/*  创建5个表  */
create table 系
(系编号  smallint not null ,
系名称   char(12),
primary key (系编号))
go
create table 课程(
课程编号 char(8)  not null,
课程名称  char(16),
学时     smallint,
系编号   smallint,
primary key (课程编号),
foreign key  (系编号) references 系(系编号))
go
create table 教工(
教工号 smallint,
姓名 char(8),
性别 char(2),
职称 char(10),
工资 numeric(8,2),
系编号  smallint, 
primary key (教工号),
foreign key (系编号)references 系(系编号))
go
create table 学生(
学号 char(6),
姓名 char(8),
性别 char(2),
出生年月  datetime, 
系编号  smallint, 
primary key (学号),
foreign key (系编号) references 系(系编号))
go
create table 成绩( 
学号 char(6)  not null,   
课程编号 char(8)  not null,   
分数 numeric(4,1), 
primary key (学号 ,课程编号), foreign key (学号) references 学生(学号), foreign key (课程编号) references 课程(课程编号)) 
go

注意:当多个SQL语句执行时,可能出现的逻辑错误,即就单个语句来说,语句没有错误,但多条语句顺序执行时可能出错。例如,上述5个表创建的顺序必须是“先父后子”,而删除的顺序则是“先子后父”。

DROP TABLE  成绩DROP TABLE  学生DROP TABLE  教工DROP TABLE  课程DROP TABLE  系

数据插入、更新与删除

一、实验目的

(1)熟悉和掌握数据表中数据的插入、修改、删除操作和命令的使用。

(2)加深理解表的定义和数据更新的作用。

 二、实验内容

系编号

系名称

101

数学

102

计算机

103

外语

104

经济

课程

课程号

课程名

学时

系编号

C101

数学

68

101

C102

英语

85

103

C103

计算机

102

102

C104

经济学

51

104

教工

教工号

 

性别

职称

系编号

2101

葛小平

教授

3420.00

101

2203

李长江

副教授

3190.00

102

2405

姜立伟

副教授

3140.00

104

2104

张丽丽

讲师

2243.00

101

2302

康立华

教授

3740.00

103

2205

王伟平

讲师

2130.00

102

成绩

 

课程编号

分数

991022

C101

88

991022

C102

67

992124

C101

77

992124

C102

95

992124

C103

45

994021

C104

87

学生

 

 

性别

出生年月

系编号

族别

991022

田平平

08/05/1980

101

992124

郭黎明

03/04/1981

102

994021

何明慧

04/12/1982

104

991223

姜明明

12/05/1980

101

993012

何漓江

10/05/1979

103

992104

康纪平

03/04/1981

102

994125

康嘉家

07/05/1980

104

学生            

三、实验平台

操作系统:Windows x64 

DBMS:SQL Server 2016 

四、程序清单

(1)在5个表中插入数据

insert into 系 values(101,'数学')insert into 系 values(102,'计算机')insert into 系 values(103,'外语')insert into 系 values(104,'经济')goinsert into 课程 values('c101','数学',68,101)insert into 课程 values('c102','英语',85,103)insert into 课程 values('c103','计算机',102,102)insert into 课程 values('c104','经济学',51,104)goinsert into 教工 values('2101','葛小平','女','教授',3420.00,101)insert into 教工 values('2203','李长江','男','副教授',3190.00,102)insert into 教工 values('2405','姜立伟','男','副教授',3140.00,104)insert into 教工 values('2104','张丽丽','女','讲师',2243.00,101)insert into 教工 values('2302','康立华','女','教授',3740.00,103)insert into 教工 values('2205','王伟平','男','讲师',2130.00,102)goinsert into 学生 values('991022','田平平','女','08/05/1980',101)insert into 学生 values('992124 ','郭黎明','男','03/04/1981',102)insert into 学生 values('994021 ','何明慧','女','04/12/1982',104)insert into 学生 values('991223 ','姜明明','男','12/05/1980',101)insert into 学生 values('993012 ','何漓江','男','10/05/1979',103)insert into 学生 values('992104 ','康纪平','女','03/04/1981',102)insert into 学生 values('994125 ','康嘉家','男','07/05/1980',104)insert into 学生 values('991134 ','包立琪','女','03/14/1981',101)insert into 学生 values('994115 ','王海洋','男','04/13/1982',104)insert into 学生 values('991354 ','王立平','女','12/05/1981',101)goinsert into 成绩 values('991022','c101',88)insert into 成绩 values('991022','c102',67)insert into 成绩 values('992124','c101',77)insert into 成绩 values('992124','c102',95)insert into 成绩 values('992124','c103',45)insert into 成绩 values('994021','c104',87)insert into 成绩 values('994021','c102',78)insert into 成绩 values('994021','c103',67)insert into 成绩 values('991223','c101',66)insert into 成绩 values('991223','c102',89)insert into 成绩 values('993012','c102',93)insert into 成绩 values('993012','c103',84)

(2) 完成实验操作的SQL语言

1)在系表中插入一行数据{105,’管理’}

insert into 系 values (105,'管理')

2)向教工表中插入一行数据{2001,’葛小平’,’女’,’教授’,3420.00,102}

insert into 教工 values (2001,’葛小平’,’女’,’教授’,3420.00,102)

3)向教工表中插入一个教工号、姓名和工资,数据是{2109,’田新民’,2650}

insert into 教工(教工号,姓名,工资)  values (2109,'田新民',2650)

4)将教工表的姓名和工资拷贝到一个酬金表中

创建一个酬金表

create table 酬金 (教工姓名 char(8), 工资  numeric(8,2))

将教工表中姓名和工资两列数据拷贝到酬金表中

insert into 酬金 (教工姓名,工资)select 姓名,工资from 教工

5) 将教工表中职称为“教授”的工资增加15%

update 教工  set 工资=工资*1.15  where  职称='教授'

6) 将教工表中职称不是教授的人,工资增加10%

 update 教工 set 工资=工资*1.1 where 职称 NOT LIKE '教授'

7) 从教工表中删除教工号为2101的教工

delete  from 教工 where 教工号 = '2101'

8) 删除酬金表的所有数据

delete  from 酬金

9) 删除酬金表

drop table  酬金

10)在系表中添加一个电话号码属性,属性类型为char(8)  

alter table 系 add 电话号码 char(8)

11)修改系表中电话号码属性的宽度为char(13) 

alter table 系 alter column 电话号码  char(13)

12)删除系表中电话号码属性

alter table 系 drop column 电话号码

13)在学生表中删除何漓江同学的信息,包括他选课的信息。

提示:先删除子表中的选课信息,再删除主表中的信息。

思考:为什么必须这样做?

delete  from 成绩 where 学号 = '993012' delete  from 学生 where 学号 = '993012'

回答:当数据表之间存在外键关联的情况下,假如说直接将父表删除,结果将会显示失败。原因是直接删除的话,将会破坏表的参照完整性。如果必须要删除,可以先删除与它关联的子表,再删除父表,只是这样会同时删除两个表中的数据。

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

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

相关文章

【程序员如何送外卖】

嘿,咱程序员要在美团送外卖,那还真有一番说道呢。 先说说优势哈,咱程序员那逻辑思维可不是盖的,规划送餐路线什么的,简直小菜一碟。就像敲代码找最优解一样,能迅速算出怎么送最省时间最有效率。而且咱平时…

Solana 验证节点搭建教程 SOL节点

搭建验证节点 (成功下载快照) 部署 Solana 验证节点 由于项目需求,需要部署一台solana节点,我们从一开始搭建,遇到许多坑,做个记录。 一定要注意服务器配置,配置不够,rpc启动不起来。 一、简介 官网地址…

AIGC 007-E4T基于编码器的域调优用于文本到图像模型的快速个性化!

AIGC 007-E4T基于编码器的域调优用于文本到图像模型的快速个性化! 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 这篇论文提出了一种使用领域特定编码器来快速将文本到图像模型适配到新领域的方案。这种被称为基于编码器的领域微调 (E4T) 的方法,专…

【Linux】使用pip3安装pexpect,解决报错:the ssl module in Python is not available

pip3是python3的包管理工具,安装、卸载、更新等管理python包。 pexpect是其中一个python库,用于自动化与终端交互。 centos7使用pip3安装pexpect,报错: pip3 install pexpect 原因:使用python3解释器导入ssl库检查ss…

常见的JavaScript设计模式(一)

常见的JavaScript设计模式 一、模块模式(Module Pattern)二、单例模式(SingIeton Pattern)三、工厂模式(Factory Pattern)四、观察者模式(Observer Pattern) 常见的JavaScript设计模式包括 模块模式、 在…

Sylar C++高性能服务器学习记录18 【Address模块-代码分析篇】

早在19年5月就在某站上看到sylar的视频了,一直认为这是一个非常不错的视频。 由于本人一直是自学编程,基础不扎实,也没有任何人的督促,没能坚持下去。 每每想起倍感惋惜,遂提笔再续前缘。 为了能更好的看懂sylar&…

分布式事务解决方案(最终一致性【TCC解决方案】)

最终一致性分布式事务概述 强一致性分布式事务解决方案要求参与事务的各个节点的数据时刻保持一致,查询任意节点的数据都能得到最新的数据结果,这就导致在分布式场景,尤其是高并发场景下,系统的性能受到了影响。而最终一致性分布式…

第十七届全国大学生信息安全竞赛创新实践能力赛初赛部分复现

Misc 神秘文件 1.根据提示信息,均需要从ppt中提取信息 2.在ppt的属性中发现一串密文和key,解密之后得到第一部分,根据提示Bifid chipher,为双歧密码解密,使用Bifid Cipher Decode解码 3.在第五张幻灯片,…

Kullback-Leibler (KL)散度

Kullback-Leibler (KL) 散度,又称为相对熵(Relative Entropy),是信息理论和统计学中的一个重要概念,用于衡量两个概率分布之间的差异。KL散度量化了一个概率分布与另一个概率分布之间的距离,通常用于比较一…

【python】python商家会员数据分析可视化(源码+数据集+课程报告论文)

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

Wireshark有哪些常用的过滤器?

Wireshark提供了强大的过滤功能,允许用户根据各种标准筛选和缩小捕获的数据包范围。以下是一些常用的Wireshark过滤器: 协议过滤器: tcp:仅显示TCP协议的数据包。udp:仅显示UDP协议的数据包。icmp:仅显示I…

Midjourney应用场景、特点、生成图片带来影响

Midjourney是一个基于GPT-3.5系列接口开发的免费AI机器人,旨在提供多领域的智能对话服务。本文主要介绍Midjourney的应用场景、功能特点、图片生成后可以做什么? 一、Midjourney应用场景 Midjourney的应用场景相当广泛,以下是一些主要的适用…

单链表OJ题(课堂总结)

1.链表的带环问题 上图就是一个典型的带环链表 1.1如何判读链表是否带环? 最常见的方法就是利用快慢指针,快指针追加慢指针,当二者相等的时候即可判断链表带环 其实现的代码如下: bool hasCycle(struct ListNode*head) { s…

nuxt2:自定义指令 / v-xxx / directives / 理解 / 使用方法 / DEMO

一、理解自定义指令 在 vue 中提供了一些对于页面和数据更为方便的输出&#xff0c;这些操作就叫做指令&#xff0c;以 v-xxx 表示&#xff0c;比如 html 页面中的属性 <div v-xxx ></div>。自定义指令很大程度提高了开发效率&#xff0c;提高了工程化水平&#x…

通过键值对访问字典

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在Python中&#xff0c;如果想将字典的内容输出也比较简单&#xff0c;可以直接使用print()函数。例如&#xff0c;要想打印dictionary字典&#xff…

【AI】DeepStream(07):deepstream-app-示例演示

【AI】AI学习目录汇总 1、简介 deepstream-test1:演示各种 DeepStream 插件构建 GStreamer 管道。从文件中获取视频、解码、批处理,然后进行对象检测,最后在屏幕上渲染框。 deepstream-test2:和deepstream-test1相比,多了目标跟踪和分类,对目标跟踪并使用数字做编号,并…

【ARMv8/v9 异常模型入门及渐进 10 -- WFI 与 WFE 使用详细介绍 1】

请阅读【ARMv8/v9 ARM64 System Exception】 文章目录 WFI 与 WFE等待事件&#xff08;WFE&#xff09;发送事件&#xff08;SEV&#xff09;本地发送事件&#xff08;SEVL&#xff09;WFE 唤醒事件 WFE 使用场景举例与代码实现wfe睡眠函数sev 事件唤醒函数全局监视器和自旋锁 …

【Text2SQL 论文】IncSQL:通过增量式生成 action 序列来得到 SQL

论文&#xff1a;IncSQL: Training Incremental Text-to-SQL Parsers with Non-Deterministic Oracles ⭐⭐⭐ ICLR 2019&#xff0c;arXiv:1809.05054, Microsoft Research 一、论文速读 本文提出了 IncSQL&#xff0c;一个使用 Non-Deterministic Oracles 思路的增量式 Text…

[[nodiscard]]--c++17

作用 用于标记某个函数或者类的成员函数的返回值需要处理。 被标记的函数和类的函数被调用&#xff0c;但是返回值没有接收的时候&#xff0c;编译器会warning. 标记函数 #include <iostream>[[nodiscard]] int square(int x) {return x * x; }int main() {// 注意&am…

C++青少年简明教程:switch语句

C青少年简明教程&#xff1a;switch语句 在C中&#xff0c;switch语句用于基于一个表达式的值来执行不同的代码块。这个表达式通常是一个整数类型&#xff08;如int&#xff0c;char&#xff0c;或枚举类型&#xff09;&#xff0c;并且case标签必须是整数常量表达式。 语法格…