皓学IT:MySQL02

一、了解表

1.1.概述

表是处理数据和建立关系型数据库及应用程序的基本单元,是构成数据库的基本元素之一,是数据库中数据组织并储存的单元,所有的数据都能以表格的形式组织,目的是可读性强。

1.2.表结构简述

一个表中包括行和列:

  • 行:被称为数据/记录(data)

  • 列:被称为字段(column)

简而言之,所谓表其表现形式和我们平时所使用的Excel表格是一样的

Excel表:

MySQL表:

1.3.连接、库、表

数据库中我们操作最多的就是数据库表,但是在操作表之前我们需要了解一些前置信息,这些有助于我们更好的了解数据库!

1.3.1.连接

Navicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。简而言之就是我们可以通过navicat将数据库表的信息以excel表格的形式来展示在我们面前!

1.3.2.库

数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。

1.3.3.表

表是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。是SQL数据库中用于存储数据的工具。

表是包含数据库中所有数据的数据库对象。

表定义为列的集合。与电子表格相似,数据在表中式按行和列的格式组织排列的。表中的每一列都设计为存储某种类型的信息(例如日期、名称、美元金额或数字)。表上有几种控制(约束、规则、默认值和自定义用户数据类型)用于确保数据的有效性。如图所示:

二、DDL-数据表的定义

DDL(data definition language):对数据表的定义,通过sql语句创建数据表,并对其进行操作

2.1.创建数据表

数据表实际就是一个二维的表格,由多列组成,表格中的每一列称之为表格的一个字段

create table students(stu_num char(8) not null unique,stu_name varchar(20) not null,stu_gender char(2) not null,stu_age int not null,stu_tel char(11) not null unique,stu_qq varchar(11) not null unique
);

在dos命令窗口运行结束显示:

在navicat中运行后的效果如图所示:

2.2.数据表的操作

通过sql语句,来对数据表进行操作,使其达到我们想要的效果

2.2.1.查询数据表
-- 查询数据表的sql语句
show tables;

dos命令窗口查询结果如下:

2.2.2.查询表结构
-- 查询表结构的sql语句
desc <表名>;

dos命令窗口查询结果如下:

2.2.3.删除数据表
-- 用于删除数据表的sql语句
drop table <表名>;
-- 判断该表是否存在,存在就执行删除操作
drop table if exists <表名>;

其执行结果为:

2.2.4.修改数据表
-- 修改数据表名
alter table <原表名> rename to <新表名>;
-- 修改数据表的字符集,其默认字符集和数据库一致
alter table <表名> character set utf8;
-- 添加字段(列)
alter table <表名> add <字段名> varchar(200);
-- 修改字段的列名和类型
alter table <表名> change <原字段名> <新字段名> <新字段类型>;
-- 只修改字段类型
alter table <表名> modify <字段名> <新类型>;
-- 删除字段
alter table <表名> drop <字段名>;

上述sql语句成功运行之后的结果均为:

2.3.数据类型

数据类型,指的是数据表中的列所支持存放的数据的类型

在mysql中有多种数据类型可以存放数据,不同的类型存放的数据的范围或者形式是不同的

2.3.1.数值类型

所谓数值类型其实就是我们所学的数学当中的数字,包括整数、小数

类型内存空间大小范围说明
tinyint1byte有符号 -128~127 无符号 0~255特小型整数(年龄)
smalint2byte(16bit)有符号 -32768~32767 无符号 0~65535小型整数
mediumint3byte有符号 -2^31~2^31-1 无符号 0~2^32-1中型整数
int/integer4byte整数
bigint8byte大型整数
float4byte单精度
double8byte双精度
decimal第一参数+2decimal(10,2) 表示数值一共有10位 小数位有两位
2.3.2.字符串类型

存储字符序列的类型,简单来说就是非数字类型(包括汉字、英文等)

类型字符长度说明
char0~255字节定长字符串最多可以存储255个字符;当我们指定数据表字段为char(n)时,此列中的数据最长为n个字符,如果添加的数据少于n,则补'\u0000'至n长度
varchar0~65536字节可变长度字符串,此类型的类最大长度为65535
tinyblob0~255字节存储二进制字符串
blob0~65535字节存储二进制字符串
mediumblob0~1677215字节存储二进制字符串
longblob0~4294967295字节存储二进制字符串
tinytext0~255字节文本数据(字符串)
text0~65535字节文本数据(字符串)
mediumtext0~1677215字节文本数据(字符串)
longtext0~4294967295字节文本数据(字符串)

2.3.3.日期类型

在mysql数据库中,我们可以使用字符串来存储时间,但是我们需要基于字段进行查询操作(查询在某个时间段内的数据)就不便于查询实现,简而言之就是当我们需要对时间进行计算的时候无法通过字符串来进行计算,就和我们无法计算 “你好”-“哈哈”=?一样

类型格式说明
date2022-10-15日期,只存储年月日
time11:12:13时间,只存储时分秒
year2022年份
datetime2022-10-15 11:12:13日期+时间,存储年月日时分秒
timestamp20221015 111213日期+时间(时间戳)

ps:在mysql中有丰富的数据类型供我们选择使用,但是常用的数据类型其实并不是很多(都加粗了哦!)

2.4.字段约束

在创建数据表的时候,指定的对数据表的列的数据限制性的要求(对表的列中的数据进行限制),简单来说就是对数据表中字段的要求

为什么要给表中的列添加约束呢

  • 保证数据的有效性

  • 保证数据的完整性

  • 保证数据的正确性

字段常见的约束有哪些呢

  • 非空约束(not null)∶限制此列的值必须提供,不能为null

  • 唯一约束(unique)∶在表中的多条数据,此列的值不能重复

  • 主键约束(primary key)∶非空+唯一,能够唯一标识数据表中的一条数据

  • 外键约束(foreign key)∶建立不同表之间的关联关系

其在navicat中的表现形式为:

三、课后小练习

创建购物车表,所需字段:

id(序号),

shop_name(商品名),

shop_price(商品价格),

shop_num(商品数量),

shop_class(商品类别)

表名设置为shopping_car,字段约束自行设定!

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

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

相关文章

Go语言开发小技巧易错点100例(十三)

往期回顾&#xff1a; Go语言开发小技巧&易错点100例&#xff08;一&#xff09;Go语言开发小技巧&易错点100例&#xff08;二&#xff09;Go语言开发小技巧&易错点100例&#xff08;三&#xff09;Go语言开发小技巧&易错点100例&#xff08;四&#xff09;Go…

微服务流量控制组件Sentinel

启动Sentinel控制台 从github下载jar包执行java -Dserver.port9005 -jar sentinel-dashboard-1.8.7.jar 启动控制台登录控制台,账号密码默认 sentinel sentinel.dashboard.auth.username -----指定用户名启动sentinel.dashboard.auth.password -----指定密码启动 微服务引入依赖…

Uncertainty-Aware Mean Teacher(UA-MT)

Uncertainty-Aware Mean Teacher 0 FQA:1 UA-MT1.1 Introduction:1.2 semi-supervised segmentation1.3 Uncertainty-Aware Mean Teacher Framework 参考&#xff1a; 0 FQA: Q1: 不确定感知是什么意思&#xff1f;不确定信息是啥&#xff1f;Q2&#xff1a;这篇文章的精妙的点…

Java面试——锁

​ 公平锁&#xff1a; 是指多个线程按照申请锁的顺序来获取锁&#xff0c;有点先来后到的意思。在并发环境中&#xff0c;每个线程在获取锁时会先查看此锁维护的队列&#xff0c;如果为空&#xff0c;或者当前线程是等待队列的第一个&#xff0c;就占有锁&#xff0c;否则就会…

停止一个正在运行的线程的正确姿势

1、使用退出标志&#xff0c;使线程正常退出&#xff0c;也就是当run方法完成后线程终止。 2、使用stop方法强行终止&#xff0c;但是不推荐这个方法&#xff0c;因为stop和suspend及resume一样都是过期作 废的方法。 3、使用interrupt方法中断线程。 class MyThread extend…

线性代数的几何意义简单总结

矩阵的意义 矩阵既可以理解为一组&#xff08;列&#xff09;基向量&#xff0c;也可以理解为线性变换。 某个向量左乘矩阵表示向量在用新的基向量表示对应在原始坐标系下的坐标&#xff0c;也可以视为经过线性变换后的坐标。 原始基向量都是单位矩阵&#xff0c;其他矩阵都…

284.【华为OD机试真题】二叉树的广度优先遍历(二叉树的构建和层次遍历—JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-二叉树的广度优先遍历二.解题思路三.题解代码P…

idea 2018.3永久简单激活。激活码

1.打开hosts文件将 0.0.0.0 account.jetbrains.com 添加到文件末尾 C:\Windows\System32\drivers\etc\hosts 2.注册码&#xff1a; MNQ043JMTU-eyJsaWNlbnNlSWQiOiJNTlEwNDNKTVRVIiwibGljZW5zZWVOYW1lIjoiR1VPIEJJTiIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaW…

AutoSAR(基础入门篇)11.2-存储处理与Block

目录 一、NVRAM Block NVRAM Block的类型 二、Fee Block 三、Ea Block 四、总结 同通信的PDU一样,存储功能也需要一些特殊的数据结构来存放和管理我们的NV数据(NV data) 一、NVRAM Block NVRAM Block的作用类似于IPDU,但它们两仅仅只是作用上相似,其功能实现是完全…

数据结构知识点总结-线性表(1)-线性表的定义、基本操作、顺序表表示

线性表 定义 线性表是具有相同数据类型的N&#xff08;N>0&#xff09;个元素的有限序列&#xff0c;其中N为表长&#xff0c;当N0时线性表是一张空表。 线性表的逻辑特征&#xff1a;每个非空的线性表都有一个表头元素和表尾元素&#xff0c;中间的每个元素有且仅有一个直…

有趣的CSS - 弹跳的圆

大家好&#xff0c;我是 Just&#xff0c;这里是「设计师工作日常」&#xff0c;今天分享的是用css写一个好玩的不停弹跳变形的圆。 《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码css 部分代码 完整代码如下html 页面css 样式页…

Leetcode题解20.有效的括号

题目 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型…

亿道丨三防平板电脑厂家丨三防平板PDA丨三防工业平板:数字时代

在当今数字化时代&#xff0c;我们身边的世界变得越来越依赖于智能设备和无线连接。其中&#xff0c;三防平板PDA&#xff08;Personal Digital Assistant&#xff09;作为一种功能强大且耐用的数字工具&#xff0c;正在引领我们进入数字世界的全新征程。 三防平板PDA结合了平板…

RabbitMQ消息堆积

消息堆积是指在消息队列中&#xff0c;因为生产消息的速度超过消费消息的速度&#xff0c;导致大量消息在队列中积压的现象。在RabbitMQ中&#xff0c;处理消息堆积的策略通常包括以下几个方面&#xff1a; 增加消费者数量&#xff08;水平扩展&#xff09;&#xff1a;通过增加…

【Elasticsearch专栏 07】深入探索:Elasticsearch的倒排索引如何进行模糊查询和通配符查询

文章目录 Elasticsearch的倒排索引如何进行模糊查询和通配符查询01 模糊查询&#xff08;Fuzzy Query&#xff09;02 通配符查询&#xff08;Wildcard Query&#xff09;03 查询性能优化04 总结 Elasticsearch的倒排索引如何进行模糊查询和通配符查询 Elasticsearch的倒排索引…

LeetCode 0235.二叉搜索树的最近公共祖先:用搜索树性质(不遍历全部节点)

【LetMeFly】235.二叉搜索树的最近公共祖先&#xff1a;用搜索树性质&#xff08;不遍历全部节点&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/ 给定一个二叉搜索树, 找到该树中两个指定节点的最近公…

2024全国水科技大会暨减污降碳协同增效创新与实践论坛(八)

召集人&#xff1a;王洪臣 中国人民大学环境学院教授 姚 宏 北京交通大学教授 为大会征集“绿色低碳污水厂案例”&#xff0c;欢迎各相关单位积极报名&#xff01; 一、会议背景 生态环境部、国家发展和改革委员会等七部门印发《减 污降碳协同增效实施方案》中明确提出推进水…

Linux下minishell项目的编写

项目目标 1.编写函数打印初始界面以及显示输入的命令&#xff08;由于程序一直执行&#xff0c;需要在循环内执行&#xff09; 2.编写接收用户输入的命令的函数 3.编写使命令与功能匹配的函数 4.将界面输入的字符串分割为命令以及传入函数的数据 5.完成minishell的基本功能…

【C++】C++对C语言的关系,拓展及命名空间的使用

文章目录 &#x1f4dd;C简述C融合了3种不同的编程方式&#xff1a;C和C语言关系是啥呢&#xff1f;C标准 &#x1f320;C应用&#x1f320;C语言优点第一个C程序 &#x1f320;命名空间&#x1f320;命名空间的使用命名空间的定义 &#x1f320;怎么使用命名空间中的内容呢&am…

测试C#使用ViewFaceCore实现图片中的人脸遮挡

基于ViewFaceCore和DlibDotNet都能实现人脸识别&#xff0c;准备做个遮挡图片中人脸的程序&#xff0c;由于暂时不清楚DlibDotNet返回的人脸尺寸与像素的转换关系&#xff0c;最终决定使用ViewFaceCore实现图片中的人脸遮挡。   新建Winform项目&#xff0c;在Nuget包管理器中…