MySQL数据管理(一)

news2025/4/6 15:03:48

一、列类型

列类型指规定数据库中该列存放的数据类型

列类型分类

  • 数值类型
  • 字符串类型
  • 日期和时间型数值类型

数值类型

字符串类型

日期和时间类型

MySQL允许“不严格”语法,任何标点符号都可以作为日期部分之间的间隔符,如“24-01-03”、“24.01.03”、“24/01/03”都可以写入数据表

二、创建数据表

字段属性

字段注释

三、表类型

MySQL属于关系型数据库管理系统,其他包括数据库以及数据库访问管理的接口系统。数据库负责存储数据,接口系统负责管理数据库

由于不同用户对数据的容量、访问速度、数据安全性有不同的要求,为了满足不同用户的业务需求,MySQL数据库采用多种存储引擎进行数据存储。表的存储引擎也称为表类型

MySQL5.5支持的存储引擎有MyISAMInnoDB HEAPBOBCSV等

MyISAMInnoDB的区别

MyISAM和InnoDB的区别
名称MyISAMInnoDB
事务处理不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间大小较小较大,约2倍

四、修改表

五、数据完整性

实体完整性

域完整性

引用完整性

使用约束实现数据完整性

数据库采用多种方法来保证数据完整性,包括约束、规则和触发器

在数据表上添加约束

设置唯一约束

六、主键

数据库主键指的是一个列或多列的组合,其值能唯一的标识表中的每一行,通过它可强制表的实体完整性

数据库主键的作用

  1. 保证实体的完整性
  2. 加快数据库的操作速度
  3. 添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复
  4. DBMS自动按主键值的顺序显示记录。如果没有定义主键,则按输入记录的顺序显示记录

注意:

  1. 一个表只能有一个主键,并且主键列不允许出现空值
  2. 尽管有的表中允许没有主键,但是通常情况下,建议为表设置主键

数据库主键的选择规则

  1. 最少性是指列数最少的键。如果可以从单个主键和复合主键中选择,应该选择单个主键,这是因为操作一列比操作多列要快。该规则也有例外,例如,两个整数类型的列的组合比一个很大的字符类型的列操作要快
  2. 稳定性是指列中数据的特征。由于主键通常用来在两个表之间建立联系,所以主键的数据不能进场更新。理想情况下,应该永远不变

设置主键约束

综合代码演示

CREATE DATABASE IF NOT EXISTS MYSCHOOL;
USE MYSCHOOL;

#1.创建学生表
CREATE TABLE IF NOT EXISTS STUDENT(
	STUDENTNO INT(4) UNSIGNED NOT NULL COMMENT '学号',
	LOGINPWD VARCHAR(20) NOT NULL COMMENT '密码',
	STUDENTNAME VARCHAR(50) NOT NULL COMMENT '学生姓名',
	SEX CHAR(1) NOT NULL DEFAULT '男' COMMENT '性别',
	GRADEID INT(4) UNSIGNED COMMENT '年级编号',
	PHONE VARCHAR(50) COMMENT '联系电话',
	ADDRESS VARCHAR(255) DEFAULT '地址不详' COMMENT '家庭住址',
	BORNDATE DATETIME COMMENT '出生年月',
	EMAIL VARCHAR(50) COMMENT '邮箱账号',
	IDENTITYCARD VARCHAR(18) COMMENT '身份证号'
)DEFAULT CHARSET=utf8mb4 COMMENT '学生表';

#2.创建年级表
CREATE TABLE IF NOT EXISTS GRADE(
	GRADEID INT(4) UNSIGNED NOT NULL COMMENT '年级编号',
	GRADENAME VARCHAR(50) NOT NULL COMMENT '年级名称'
) DEFAULT CHARSET=UTF8MB4 COMMENT '年级表';

#3.创建课程表
CREATE TABLE IF NOT EXISTS `SUBJECT`(
	SUBJECTNO INT(4) UNSIGNED NOT NULL COMMENT '课程编号',
	SUBJECTNAME VARCHAR(50) NOT NULL COMMENT '课程名称',
	CLASSHOUR INT(4) UNSIGNED COMMENT '学时',
	GRADEID INT(4) UNSIGNED COMMENT '年级编号'
) DEFAULT CHARSET=UTF8MB4 COMMENT '课程表';

#4.创建成绩表
CREATE TABLE IF NOT EXISTS `RESULT`(
	STUDENTNO INT(4) UNSIGNED NOT NULL COMMENT '学号',
	SUBJECTNO INT(4) UNSIGNED NOT NULL COMMENT '课程编号',
	EXAMDATE DATETIME NOT NULL DEFAULT NOW() COMMENT '考试日期',
	STUDENTRESULT INT(4) UNSIGNED NOT NULL COMMENT '考试成绩'
) DEFAULT CHARSET=UTF8MB4 COMMENT '成绩表';

#5.创建课程表,设置表类型为MyIsam
CREATE TABLE IF NOT EXISTS `SUBJECT`(
	SUBJECTNO INT(4) UNSIGNED NOT NULL COMMENT '课程编号',
	SUBJECTNAME VARCHAR(50) NOT NULL COMMENT '课程名称',
	CLASSHOUR INT(4) UNSIGNED COMMENT '学时',
	GRADEID INT(4) UNSIGNED COMMENT '年级编号'
)ENGINE=myisam DEFAULT CHARSET=UTF8MB4 COMMENT '课程表';

#6.删除课程表
DROP TABLE IF EXISTS `SUBJECT`;

#7.把result表改名为studentresult
ALTER TABLE RESULT RENAME AS STUDENTRESULT;
ALTER TABLE STUDENTRESULT RENAME AS RESULT;

#8.给result表添加一个id字段 
ALTER TABLE RESULT ADD ID INT(4) UNSIGNED NOT NULL COMMENT'成绩编号';

#9.修改result表中的id字段,改为字符串类型,允许有符号,允许为空,注释改为成绩编码
ALTER TABLE RESULT MODIFY ID VARCHAR(16) COMMENT '成绩编码';

#10.修改result表中的ID字段,ID名称改为rid,类型为int(4),零填充,默认值1
ALTER TABLE RESULT CHANGE ID RID INT(4) ZEROFILL DEFAULT 1;

#11.删除result表中的id字段
ALTER TABLE RESULT DROP RID;

#12、给学生表的联系电话字段设置为唯一约束
ALTER TABLE STUDENT ADD CONSTRAINT UQ_PHONE UNIQUE(PHONE);
ALTER TABLE STUDENT ADD CONSTRAINT UQ_STUDENTNAME UNIQUE(STUDENTNAME);

#13、给学生表设置主键,主键列为studentno
ALTER TABLE STUDENT ADD CONSTRAINT PK_STUDENTNO PRIMARY KEY(STUDENTNO);

#14、设置组合主键案例:设置课程表中的课程编号和年级编号为组合主键
ALTER TABLE `SUBJECT` ADD CONSTRAINT PK_SUBJECTNO_GRADEID PRIMARY KEY(SUBJECTNO,GRADEID);

#15、删除主键索引,不需要指定名称,因为一个表中只能有一个主键
ALTER TABLE `SUBJECT` DROP PRIMARY KEY;

#16、删除唯一索引,必须指定唯一索引的名称,因为一个表中可以有多个字段的唯一索引
ALTER TABLE `STUDENT` DROP KEY UQ_STUDENTNAME;

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

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

相关文章

第二百四十五

我们在上一章回中介绍了"修改页面导航中遇到的问题"沉浸式状态样相关的内容,本章回中将介绍如何修改Avatar的大小.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在正常使用CirCleAvatar组件时可以通过该组件的radius属性来修改它的…

Git 对项目更新的时候提示错误 repository not owned by current user

遇到 Git 提示的错误信息为:repository not owned by current user 上图显示的是错误的信息。 问题和解决 出现上面错误信息的原因是当前文件夹的权限和 Git 的执行权限不一直导致的。 我们的问题是我们希望在网盘上使用 Git 更新克隆后的代码,但登录…

KeyError: ‘model_state_dict‘

问题 加载模型权重文件时获取model_state_dict键失败 解决 单步调试发现保存模型权重时正确保存了该键值对,再次调试时发现莫名奇妙又没错了 首先确认保存模型时的状态字典键名:确保在保存模型权重时,正确地使用了 model.state_dict() 方法…

机器学习原理到Python代码实现之LinearRegression

Linear Regression 线性回归模型 该文章作为机器学习的第一篇文章,主要介绍线性回归模型的原理和实现方法。 更多相关工作请参考:Github 算法介绍 线性回归模型是一种常见的机器学习模型,用于预测一个连续的目标变量(也称为响应变…

el-autocomplete远程搜索使用及el-upload上传多个文件流给后端,详情接口返回的是文件地址,前端将文件地址转成文件流,回传文件流给后端

最近遇到一个项目,里面有2个需求我觉得挺常见的,第一个需求是一个表单里,当用户在输入名称后,前端调接口发请求获取到关联名称的企业名称,并展示,然后当用户选中企业后,前端调接口获取选中企业的具体信息,并填充到表单里;第二个需求是,表单里有个上传图片的功能,前端…

【elfboard linux开发板】8. watchdog 和 mpu

1. 用文件IO的方式使用watchdog a. ioctl 命令说明 需要的头文件#include <sys/ioctl.h> 格式&#xff1a;int ioctl(int fd, unsigned long request, …) fd 必须被打开 第二个参数是一个依赖设备的请求代码 第三个参数是一个无类型的内存指针 返回值&#xff1a;成功为…

Python 资源大全中文版

文末有链接 资源列表 环境管理 管理 Python 版本和环境的工具 p&#xff1a;非常简单的交互式 Python 版本管理工具。 pyenv&#xff1a;简单的 Python 版本管理工具。 Vex&#xff1a;可以在虚拟环境中执行命令。 virtualenv&#xff1a;创建独立 Python 环境的工具。 …

【React系列】react-router

本文来自#React系列教程&#xff1a;https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 认识react-router 1.2. 前端路由原理 前端路由是如何做到URL和内容进行映射呢&#xff1f;监听URL的改变。 UR…

Halcon粘连木材图像的目标分割计数

Halcon粘连木材图像的目标分割计数 文章目录 Halcon粘连木材图像的目标分割计数1. 提取面积较小区域2. 分割较大区域3. 区域合并与计数 本文以一个实际场景图片为例&#xff0c;介绍阈值处理与形态学计算的应用。案例图像如图所示,图&#xff08;a&#xff09;为输入的原始图像…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -小程序端TabBar搭建

锋哥原创的uniapp微信小程序投票系统实战&#xff1a; uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

突破技术边界:R与jsonlite库探秘www.snapchat.com的数据之旅

概述 Snapchat是一款流行的社交媒体应用&#xff0c;它允许用户发送和接收带有滤镜和贴纸的照片和视频&#xff0c;以及创建和观看故事和发现内容。Snapchat的数据是非常有价值的&#xff0c;因为它可以反映用户的行为、偏好和趋势。然而&#xff0c;Snapchat的数据并不容易获…

从0开始python学习-40.通过正则表达式/json进行接口关联

目录 1. 正则表达式&#xff1a;使用re库&#xff08;需安装-pip install re&#xff09;&#xff0c;只能提取字符串的数据。 1.1 re.seach&#xff1a;提取一个值&#xff0c;得到的是一个对象&#xff0c;通过下标group(1)取值&#xff0c;如果没有匹配到值则返回None 1.…

优化企业运营,深入探索SAP库存管理解决方案

SAP库存管理是SAP提供的一款领先的企业库存管理解决方案。它致力于帮助企业实现对库存的全面掌控&#xff0c;优化供应链管理&#xff0c;降低库存成本&#xff0c;提高客户满意度。这个功能强大的系统为企业提供了丰富的仓储管理功能&#xff0c;如库存盘点、物料追踪、供应商…

WPF DatePicker与Calendar的使用和样式修改

什么是DatePicker&#xff0c;Calendar Calendar&#xff1a;日历&#xff08;显示年月日视图控件&#xff09;DatePicker&#xff1a;日期选择器&#xff08;是一个更小的控件&#xff0c;点击控件时才会弹出一个日历&#xff09; Calendar使用 常用属性 DisplayMode&#…

MacOS - 苹果电脑程序还能正常启动,但图标消失不见了~

问题描述 网上有一些解决方案说是 killall Finder 命令&#xff0c;重置 Docker 等等&#xff0c;但是发现还是不行&#xff0c;于是必杀技…… 解决方案 方案一、删除该 App&#xff0c;重装即可方案二、如果懒得重装&#xff0c;可以在 Finder 中找到对应的应用程序&#xf…

FPGA高端项目:纯verilog的 10G-UDP 高速协议栈,提供7套工程源码和技术支持

目录 1、前言免责声明更新说明 2、相关方案推荐我这里已有的以太网方案本协议栈的千兆网UDP版本1G 千兆网 TCP-->服务器 方案1G 千兆网 TCP-->客户端 方案10G 万兆网 TCP-->服务器客户端 方案 3、该UDP协议栈性能4、详细设计方案设计架构框图网络调试助手GT资源使用GT…

1.3 金融数据可视化

跳转到根目录&#xff1a;知行合一&#xff1a;投资篇 已完成&#xff1a; 1.1 编程基础   1.1.1 投资-编程基础-numpy   1.1.2 投资-编程基础-pandas 1.2 金融数据处理 1.3 金融数据可视化 文章目录 1. 金融数据可视化1.1. matplotlib1.1.1. 沪深300走势图1.1.2. 日线均线…

06-微服务-SpringAMQP

SpringAMQP SpringAMQP是基于RabbitMQ封装的一套模板&#xff0c;并且还利用SpringBoot对其实现了自动装配&#xff0c;使用起来非常方便。 SpringAmqp的官方地址&#xff1a;https://spring.io/projects/spring-amqp SpringAMQP提供了三个功能&#xff1a; 自动声明队列、交…

力扣刷题-二叉树-验证二叉搜索树

98.验证二叉搜索树 给定一个二叉树&#xff0c;判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征&#xff1a; 节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 思路 中序遍历下&…

【中小型企业网络实战案例 八】配置映射内网服务器和公网多出口、业务测试和保存配置

相关学习文章&#xff1a; 【中小型企业网络实战案例 一】规划、需求和基本配置 【中小型企业网络实战案例 二】配置网络互连互通【中小型企业网络实战案例 三】配置DHCP动态分配地址 【中小型企业网络实战案例 四】配置OSPF动态路由协议【中小型企业网络实战案例 五】配置可…