皓学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.hqwc.cn/news/493503.html

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

相关文章

为什么主动学PMP?

项目管理的定义&#xff1a;“为创造独特的产品、服务或结果而进行的临时性工作”&#xff0c;从此刻开始&#xff0c;我们可以把“获得PMP认证”当作我们第一个项目管理工作来推进。 作为一个传统的制造企业的HR&#xff0c;我们在与业务部门沟通时、推进各项活动时、开展改善…

JANGOW: 1.0.1

kali:192.168.223.128 主机发现 nmap -sP 192.168.223.0/24 端口扫描 nmap -p- 192.168.223.154 开启了21 80端口 web看一下&#xff0c;有个busque.php参数是buscar,但是不知道输入什么&#xff0c;尝试文件包含失败 扫描目录 dirsearch -u http://192.168.223.154 dirse…

1.30主成分分析,因子分析

主成分分析 主成分分析&#xff08;Principal Component Analysis&#xff0c;简称PCA&#xff09;是一种常用的多变量数据分析方法。它用于降低数据维度&#xff0c;以便更好地理解和解释数据集中的变化。PCA通过将原始数据投影到新的坐标轴上&#xff0c;使得新的坐标轴上的…

数据安全治理实践路线(下)

数据安全运营阶段通过不断适配业务环境和风险管理需求&#xff0c;持续优化安全策略措施&#xff0c;强化整个数据安全治理体系的有效运转。 数据安全运营 1. 风险防范 数据安全治理的目标之一是降低数据安全风险&#xff0c;因此建立有效的风险防范手段&#xff0c;对于预防…

Batch和momentum

没有并行计算的时候&#xff0c;small batch速度更快&#xff0c;large batch速度要慢一些 有了并行计算的时候&#xff0c;两个速度相同 每一个epoch的时间&#xff0c;small batch更慢&#xff0c;large batch更快 梯度&#xff1a;small batch更多噪音&#xff0c;稳定性…

自定义时间轴组件

前言 开发工作中常常有一个通过启动时间轴切换地图图层切换的功能需求&#xff0c;但是又很难找到一个满足要求的时间轴&#xff0c;所以自己撸了一个&#xff0c;目前还有一些功能需要改进&#xff0c;这里先记录一下代码 代码 /** * AnimationSlider.vue 可以播放的timeLi…

flashback to timestamp 耗时

flashback pluggable database XX to timestamp to_date(2024-02-26 13:11:56,yyyy-mm-dd hh24:mi:ss); 1TB 花费2小时&#xff0c;如果做了还原点好像很快 select trunc( a.FIRST_TIME,HH24),count(*) from v$flashback_database_logfile a group by trunc( a.FIRST_TIME,…

图形系统开发实战课程:进阶篇(上)——7.图形交互操作: 视点控制与动画

图形开发学院&#xff5c;GraphAnyWhere 课程名称&#xff1a;图形系统开发实战课程&#xff1a;进阶篇(上)课程章节&#xff1a;“图形交互操作: 视点控制与动画”原文地址&#xff1a;https://www.graphanywhere.com/graph/advanced/2-7.html 第七章 图形交互操作: 视点控制与…

【精品】OnlyOffice 8.0 版本深度测评

引言 官网链接&#xff1a; ONLYOFFICE 官方网址 OnlyOffice 是一套全面的开源办公协作软件&#xff0c;旨在为用户提供强大、便捷和安全的文档处理和协作环境。最新发布的 OnlyOffice 8.0 版本带来了一系列引人瞩目的新特性和功能改进&#xff0c;进一步提升了其在功能丰富性…

BIO实战、NIO编程与直接内存、零拷贝深入辨析

BIO实战、NIO编程与直接内存、零拷贝深入辨析 长连接、短连接 长连接 socket连接后不管是否使用都会保持连接状态多用于操作频繁&#xff0c;点对点的通讯&#xff0c;避免频繁socket创建造成资源浪费&#xff0c;比如TCP 短连接 socket连接后发送完数据后就断开早期的http服…

prometheus+grafana监控nginx的简单实现

1.编译安装NGINX 加入编译安装nginx-module-vts模块,目的是为了获取更多的监控数据(虚拟主机&#xff0c;upstream等) nginx下载 http://nginx.org/download/nginx-1.20.2.tar.gz nginx-module-vts下载 https://github.com/vozlt/nginx-module-vts/archive/refs/tags/v0.2…

自动驾驶---行业发展及就业环境杂谈

进入21世纪以来&#xff0c;自动驾驶行业有着飞速的发展&#xff0c;自动驾驶技术&#xff08;L2---L3&#xff09;也逐渐落地量产到寻常百姓家。虽然最早期量产FSD的特斯拉有着深厚的技术积累&#xff0c;但是进入2010年以后&#xff0c;国内的公司也逐渐发展起来自己的自动驾…

WebSocket实现聊天

基于webSocket通信的库主要有 socket.io&#xff0c;SockJS&#xff0c;这次用的是 SockJS。 这里我们使用sockjs-client、stomjs这两个模块&#xff0c;要实现webSocket通信&#xff0c;需要后台配合&#xff0c;也使用相应的模块。 WebSocket 1、http&#xff1a;http超文…

2024-2-26-进程线程通信作业

课上代码&#xff1a; sem.h #ifndef _SEM_H_ #define _SEM_H_int open_sem(int semcount); int P(int semid,int semno); int V(int semid,int semno); int del_sem(int semid);#endif sem.c #include <myhead.h> union semun {int val;struct semid_ds *buf;unsign…

【web APIs】1、(学习笔记)有案例!

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、概念二、使用步骤1.获取DOM对象2.操作元素内容3.属性修改3.1.常用属性修改3.2.控制样式属性3.3.操作类名(className) 操作CSS3.4.操作表单元素属性3.5.自定…

【深入理解设计模式】建造者设计模式

建造者设计模式 建造者设计模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;旨在通过将复杂对象的构建过程拆分成多个简单的步骤&#xff0c;使得相同的构建过程可以创建不同的表示。该模式允许您使用相同的构建过程来创建不同的对象表示。 概述…

Leetcode刷题笔记题解(C++):6. Z 字形变换

思路&#xff1a;遍历时候需要更新步进长度 到达0行的时候步进长度为1&#xff1b;到达最后一行numRows-1行的时候步进长度为-1&#xff1b;代码如下所示&#xff1a; class Solution { public:string convert(string s, int numRows) {//如果字符串长度为1或者所给行数为1 …

[c++] char * 和 std::string

1 char * 和 std::string 的区别 char * 字符串是常量字符串&#xff0c;不能修改&#xff1b;std::string 指向的字符串可以修改 实例代码如下图所示&#xff0c;s1 和 s2 均是常量字符串&#xff0c;字符串常量保存在只读数据区&#xff0c;是只读的&#xff0c;不能写&…

Unity类银河恶魔城学习记录7-9 P75 Saw spin sword源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Sword_Skill_Controller.cs using System.Collections; using System.Col…

QT信号槽实现分析

1.宏定义 qt中引入了MOC来反射&#xff0c;编译阶段变成 MOC–>预处理–>编译–>汇编–>链接 1-1、Q_OBJECT 这个宏定义了一系列代码&#xff0c;包括元对象和处理的函数 #define Q_OBJECT \public: \QT_WARNING_PUSH \Q_OBJECT_NO_OVERRIDE_WARNING \static c…