【MySQL】——用SQL语句实现数据库和基本表的创建

news2025/2/2 21:02:47

🎃个人专栏:

🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客

🐳Java基础:Java基础_IT闫的博客-CSDN博客

🐋c语言:c语言_IT闫的博客-CSDN博客

🐟MySQL:数据结构_IT闫的博客-CSDN博客

🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客

💎C++:C++_IT闫的博客-CSDN博客

🥽C51单片机:C51单片机(STC89C516)_IT闫的博客-CSDN博客

💻基于HTML5的网页设计及应用:基于HTML5的网页设计及应用_IT闫的博客-CSDN博客​​​​​​

🥏python:python_IT闫的博客-CSDN博客

🐠离散数学:离散数学_IT闫的博客-CSDN博客

​​​​​​🥽Linux:​​​​Linux_Y小夜的博客-CSDN博客

欢迎收看,希望对大家有用!

目录

🎯目的:

🎯内容:

🎯运行结果:

🎯问题及解决:


🎯目的:

        熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性的定义和维护方法;掌握用户自定义完整性的定义和维护方法。

🎯内容:

(一)用SQL语句建立如下mystudent数据库,包括student、course、sc三个基本表,要求实现关系的三类完整性。

学生表student由学号Sno、姓名Sname、性别 Ssex、年龄 Sage、所在系Sdept组成。

表1-1 student表

Sno

Sname

Ssex

Sage

Sdept

201215121

李勇

20

CS

201215122

刘晨

19

CS

201215123

王敏

18

MA

201215125

张立

19

IS

代码如下:

CREATE TABLE Student          

      (Sno   CHAR(9)  PRIMARY  KEY,  /* 列级完整性约束条件,Sno是主码*/                  

        Sname  CHAR(20)  UNIQUE,     /* Sname取唯一值*/

        Ssex    CHAR(2),

        Sage   SMALLINT,

        Sdept  CHAR(20)

      )charset utf8;

插入数据:

INSERT INTO student VALUES

("201215121","李勇","男",20,"CS"),

("201215122","刘晨","女",19,"CS"),

("201215123","王敏","女",18,"MA"),

("201215125","张立","男",19,"IS");

课程表course由课程号Cno、课程名Cname、先行课Cpno、学分Ccredit组成。

表1-2 course表

Cno

Cname

Cpno

Ccredit

1

数据库

5

4

2

数学

2

3

信息系统

1

4

4

操作系统

6

3

5

数据结构

7

4

6

数据处理

2

7

PASCAL语言

6

4

代码如下:

CREATE TABLE  Course

          (Cno       CHAR(4)  PRIMARY  KEY,

          Cname  CHAR(40),            

           Cpno     CHAR(4),                                      

            Ccredit  SMALLINT,

            FOREIGN KEY (Cpno) REFERENCES  Course(Cno)

          ) charset utf8;

插入数据:

INSERT INTO course (Cno,Cname,Ccredit) VALUES

("1","数据库",4),

("2","数学",2),

("3","信息系统",4),

("4","操作系统",3),

("5","数据结构",4),

("6","数据处理",2),

("7","PASCAL语言",4);



update course set Cpno = case Cno

when '1' then '5'

when '3' then '1'

when '4' then '6'

when '5' then '7'

WHEN '7' then '6'

end

WHERE Cno IN('1','3','4','5','7');

选课表sc由学号Sno、课程号Cno、成绩Grade组成。

表1-3 sc表

Sno

Cno

Grade

201215121

1

92

201215121

2

85

201215121

3

88

201215122

2

90

201215122

3

80

代码如下:

CREATE TABLE  SC

          (Sno  CHAR(9),

           Cno  CHAR(4),  

           Grade  SMALLINT,

           PRIMARY KEY (Sno,Cno),  

           FOREIGN KEY (Sno) REFERENCES Student(Sno),

           FOREIGN KEY (Cno)REFERENCES Course(Cno)

        ) charset utf8;

插入数据:

INSERT INTO sc(Sno,Cno,Grade) values

("201215121","1",92),

("201215121","2",85),

("201215121","3",88),

("201215122","2",90),

("201215122","3",80);

(二)用SQL语句建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(教材第二章习题5中的四个表),要求实现关系的三类完整性。

S(SNO,SNAME,STATUS,CITY);

P(PNO,PNAME,COLOR,WEIGHT);

J(JNO,JNAME,CITY);

SPJ(SNO,PNO,JNO,QTY)

供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。

表1-4 供应商表S

SNO

SNAME

STATUS

CITY

S1

精益

20

天津

S2

盛锡

10

北京

S3

东方红

30

北京

S4

丰泰盛

20

天津

S5

为民

30

上海

代码如下:

CREATE TABLE S

(SNO CHAR(4) PRIMARY KEY,

SNAME CHAR(4),

STATUS CHAR(4),

CITY CHAR(4)

)CHARSET utf8;

插入数据:

INSERT INTO s VALUES

("S1","精益","20","天津"),

("S2","盛锡","10","北京"),

("S3","东方红","30","北京"),

("S4","丰泰盛","20","天津"),

("S5","为民","30","上海");

零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。

表1-5 零件表P

PNO

PNAME

COLOR

WEIGHT

P1

螺母

12

P2

螺丝

绿

17

P3

螺丝刀

14

P4

螺丝刀

14

P5

凸轮

40

P6

齿轮

30

代码如下:

CREATE TABLE p

(PNO CHAR(4) PRIMARY KEY,

PNAME CHAR(4),

COLOR CHAR(4),

WEIGHT char(4)

)CHARSET utf8;

插入数据:

INSERT INTO p VALUES

("P1","螺母","红","12"),

("P2","螺丝","绿","17"),

("P3","螺丝刀","蓝","14"),

("P4","螺丝刀","红","14"),

("P5","凸轮","蓝","40"),

("P6","齿轮","红","30");

工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。

表1-6 工程项目表J

JNO

JNAME

CITY

J1

三建

北京

J2

一汽

长春

J3

弹 簧 厂

天津

J4

造 船 厂

天津

J5

机 车 厂

唐山

J6

无线电厂

常州

J7

半导体厂

南京

代码如下:

CREATE TABLE j

(JNO CHAR(4),

JNAME CHAR(4),

CITY CHAR(4)

)CHARSET utf8;  

插入数据:

INSERT INTO j VALUES

("J1","三建","北京"),

("J2","一汽","长春"),

("J3","弹簧厂","天津"),

("J4","造船厂","天津"),

("J5","机车厂","唐山"),

("J6","无线电厂","常州"),

("J7","半导体厂","南京");

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商 供应某种零件 给某工程项目的数量为QTY。

表1-7 供应情况表SPJ

SNO

PNO

JNO

QTY

S1

P1

J1

200

S1

P1

J2

5000

S1

P1

J3

100

S1

P1

J4

700

S1

P2

J2

100

S2

P3

J1

400

S2

P3

J2

200

S2

P3

J4

500

S2

P3

J5

400

S2

P5

J1

400

S2

P5

J2

100

S3

P1

J1

200

S3

P3

J1

200

S4

P5

J1

100

S4

P6

J3

300

S4

P6

J4

200

S5

P2

J4

100

S5

P3

J1

200

S5

P6

J2

200

S5

P6

J4

500

代码如下:

CREATE TABLE spj

(SNO CHAR(4),

PNO CHAR(4),

JNO CHAR(4),

QTY char(4),

PRIMARY KEY (SNO,PNO,JNO),

FOREIGN KEY (SNO) REFERENCES s(SNO),

FOREIGN KEY (PNO) REFERENCES p(PNO),

FOREIGN KEY (JNO) REFERENCES j(JNO)

)CHARSET utf8;

插入数据:

INSERT INTO spj VALUES

("S1","P1","J1","200"),

("S1","P1","J2","5000"),

("S1","P1","J3","100"),

("S1","P1","J4","700"),

("S1","P2","J2","100"),

("S2","P3","J1","400"),

("S2","P3","J2","200"),

("S2","P3","J4","500"),

("S2","P3","J5","400"),

("S2","P5","J1","400"),

("S2","P5","J2","100"),

("S3","P1","J1","200"),

("S3","P3","J1","200"),

("S4","P5","J1","100"),

("S4","P6","J3","300"),

("S4","P6","J4","200"),

("S5","P2","J4","100"),

("S5","P3","J1","200"),

("S5","P6","J2","200"),

("S5","P6","J4","500");

SELECT *FROM spj;

🎯运行结果:

(一)用SQL语句建立如下mystudent数据库,包括student、course、sc三个基本表,要求实现关系的三类完整性。

1.创建一张学生表

2.创建一张课程表

3.创建一张选课表

(二)用SQL语句建立如下mySPJ数据库,包括S,P,J,和SPJ四个基本表(教材第二章习题5中的四个表),要求实现关系的三类完整性。

1.创建供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。

2.创建零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。

3.创建工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。

4.创建供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商 供应某种零件 给某工程项目的数量为QTY。

🎯问题及解决:

问题一:主码可以为可以为空吗?

答:主码并不能为空值,必须取值。

问题二:为什么有的主码无法删除,如果想要删除,应如何做?

答:因为有的主码会被其他表中的外码中作为参考,无法删除。要想删除,必须先把其他表中的外码删除,再删除这个主码。

问题三:如果外码和其参考码在同一个表中应如何编辑数据?

答:应该先插入参考码和其他码(外码先不插入数据),插入完成之后,再去更新(一定要是update更新,而不是insert插入)外码的值。

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

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

相关文章

Windows Server 2019 Web服务器搭建

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

【Java】实现图书管理系统

文章目录 1. 设计背景2. 需求分析3. 设计思路4. 实现4.1 book包4.1.1 Book类4.1.2 BookList类(书架) 4.2 user包4.2.1 User 类4.2.2 AdminUser类(管理员用户)4.2.3 NormalUser类(普通用户) 4.3 operation包4.3.1 IOPeration接口4.…

产学研交流 | 广东轻工职业技术学院莅临调研

产学研融合是当前教育发展的重要趋势,通过学校与企业之间的深度合作,提高学生的实践能力和创新精神,同时促进企业的技术进步和产业升级。 近日,广东轻工职业技术学院杨军主任、骨干教师丁向荣莅临科东软件,双方就“产学…

spring-security 默认登录页面

Spring Security是一个强大且高度可定制的身份验证和访问控制框架。天然与Spring整合,易扩展,引入jar包就可以用了,在boot自动装载下,不需要任何配置就可以控制资源访问。那么默认登录页是如何产生的呢? 版本信息 内…

使用 git 将本地文件上传到 gitee 远程仓库中,推送失败

项目场景: 背景: 使用 git 想要push 本地文件 到 另一个远程仓库,执行 git push origin master后此时报错 问题描述 问题: git push 本地文件 到 另一个远程仓库时,运行 git push origin master ,push文件失败&…

k8s之基础组件说明

前言 K8S,全称 Kubernetes,是一个用于管理容器的开源平台。它可以让用户更加方便地部署、扩展和管理容器化应用程序,并通过自动化的方式实现负载均衡、服务发现和自动弹性伸缩等功能。 具体来说,Kubernetes 可以将应用程序打包成…

异构计算关键技术之多线程技术(三)

异构计算关键技术之多线程技术(三) 一、多线程概述 1. 多线程的概念与优劣 多线程是指在程序中同时运行多个线程,每个线程都可以独立执行不同的代码段,且各个线程之间共享程序的数据空间和资源。 优劣: 优点&#…

Leetcode29-最大频率元素计数(3005)

1、题目 给你一个由 正整数 组成的数组 nums 。 返回数组 nums 中所有具有 最大 频率的元素的 总频率 。 元素的 频率 是指该元素在数组中出现的次数。 示例 1: 输入:nums [1,2,2,3,1,4] 输出:4 解释:元素 1 和 2 的频率为 …

模板讲解之进阶

在之前的C入门的博客中我们就学习到了模板初阶,今天我们来学习模板的进阶,以便于更好地将模板运用到代码中 非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的…

使用Docker部署DashDot服务器仪表盘并结合cpolar实现公网监测服务器

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 1. 本地环境检查1.1 安装docker1.2 下载Dashdot镜像 2.…

氟化硼二吡咯甲基四嗪,BDP-FL-methyltetrazine,能够提高检测的灵敏度和特异性

BDP FL methyltetrazine,氟化硼二吡咯甲基四嗪,BDP-FL-methyltetrazine,能够提高检测的灵敏度和特异性 您好,欢迎来到新研之家 文章关键词:BDP FL methyltetrazine,氟化硼二吡咯甲基四嗪,BDP-…

Golang 并发控制方式有哪些

Go语言中的goroutine是一种轻量级的线程,其优点在于占用资源少、切换成本低,能够高效地实现并发操作。但如何对这些并发的goroutine进行控制呢? 一提到并发控制,大家最先想到到的是锁。Go中同样提供了锁的相关机制,包…

Android.bp入门指南之浅析Android.bp文件

文章目录 Android.bp文件是什么?Android.bp的主要作用模块定义依赖关系构建规则模块属性插件支持模块的可配置性 为什么会引入Android.bp语法例子 Android.bp文件是什么? Android.bp 文件是 Android 构建系统(Android Build System&#xff…

第1章 简单使用 Linux

第1章 简单使用 Linux 1.1 Linux 的组成 1.2 远程连接 首先以 root 用户登录到 Linux 系统,然后在 Terminal 终端上输入 ip add 命令,来查看 IP 地址。 上图中的 192.168.72.128 就是 IP 地址。 然后打开 XShell 远程连接工具。 然后在命令提示符下输…

2024年美赛数学建模A题思路分析 - 资源可用性和性别比例

# 1 赛题 问题A:资源可用性和性别比例 虽然一些动物物种存在于通常的雄性或雌性性别之外,但大多数物种实质上是雄性或雌性。虽然许多物种在出生时的性别比例为1:1,但其他物种的性别比例并不均匀。这被称为适应性性别比例的变化。…

计算机设计大赛 深度学习 python opencv 火焰检测识别 火灾检测

文章目录 0 前言1 基于YOLO的火焰检测与识别2 课题背景3 卷积神经网络3.1 卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV54.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 数据集准备5.1 数…

EasyX图形库学习(一)

目录 一、easyX图形库基本介绍 1、easyX的原理 2、easyX的安装 3、easyX的颜色(RGB颜色模型) 颜色模型相关函数: 4、easyX的坐标 二、相关函数介绍: 绘图设备相关函数: 图形颜色及样式设置相关函数: 图形绘制相关函数: 文字输出相关…

VSCode开发常用扩展记录

1、Chinese 2、document this 可以自动为ts和js文件生成jsDoc注释 3、ESLint 能够查找并修复js代码中的问题 4、koroFileHeader 5、Prettier 代码格式化

MATLAB Fundamentals>>>Centering and Scaling

MATLAB Fundamentals>Common Data Analysis Techniques>Polynomial Fitting>Centering and Scaling 数据导入 This code sets up the activity. yr 2000:2007 penguins [5.49 7.03 7.73 7.70 9.29 9.21 11.89 10.85] 附加练习 How does the model look?…

1451A/D/F捷变信号发生器

01 1451A/D/F捷变信号发生器 产品综述: 1451系列捷变信号发生器采用直接数字合成(DDS)技术和直接模拟合成技术(ADS)相结合的设计方案,实现覆盖10MHz~3/20/40GHz全频段的频率捷变,捷变时间小于…