IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL (2) -> 正文阅读

[大数据]MySQL (2)

MySQL (2)

前言:

在 进入MySQL 第二部分开始,我们 回忆一下上文的内容.

数据库 是 一类软件 往往 把数据存储在硬盘上(持久化储存) ,方便进行 增删查改.

另外 MySQL 是一个客户端 服务 器 结构的软件

在控制台输入的任何一个命令 ,本质上都是通过网络的方式,和服务器进行交互。

服务器 :被动接收请求的一方

客户端 :主动发起请求的一方

请求 :客户端给 服务器发的数据

响应 : 服务器给 客户端返回的数据

SQL

关于数据库的操作 (此处所提到的数据库,指的是一些逻辑上的数据集合) 一个MySQL 服务器上可以同时管理多组这样的数据集合。

如 e 宝的 商城 和库 。

  1. 显示 数据库

    show databases;

  2. 创建数据库

    create database 数据库名;

    如果 数据库名 为 关键字可以通过反引号 (``)来创建

  3. 选中 数据库

    use 数据库名;

  4. 删除 数据库(非常危险操作)

    drop database 数据库名;

    这里 一旦删除数据极有可能无法恢复。

    接下来让我 进入 MySQL 的 第二部分

数据表操作

在学习 数据表操作 开始前,我们先来了解一mysql 管理数据的方式

在这里插入图片描述

看到了这里 mysql 管理的数据的方式

那么这里的 数据表又是什么呢?

在这里插入图片描述

这里我们 要如何 去 描述 数据表的信息呢?

描述数据表信息

这里我们 为了 描述这个数据表中列的信息,在创建表的时候,就需要指定“ 表头

(表头 就是一个表格 第一行的描述 信息)

如:

学生表:

学号 姓名 班级 班级

这 就叫表头 (这个表头是不是 就描述了 有 几列,每一列 是啥意思,每一列是啥类型)

注意: 这里不是 所有的数据 都是 按照 表格 的方式来组织数据的 、 比如 这里 Redis , HBase ,MongoDB 就不要求使用表格的方式组织(类似 文档 / 键值对) 称为 “非关系型数据库”

而 我们的 MySQL , Oracle ,SQL Server 都是 按照表格来组织 ,称为“关系型数据库”

下面我们在学习 MySQL 中对于数据表的操作

这里我们 先要了解一下 MySQL 中的数据类型、

MySQL 中的数据类型

数值类型

分为 整形 和 浮点型

数据类型大小说明对应java类型
bit[(M)]M指定的位数,默认为1二进制数,M范围从1到64,
存储数值范围从0到2^M-1
常用Boolean对应BIT,此时
默认是1位,即只能存0和1
tinyint1字节Byte
smallint2字节Short
int4字节Integer
bigint8字节Long
float4字节单精度,M指定长度,
D指定小数位数。会发生精度丢失
Float
double(M,D)8字节Double
decimal(M,D)M/D最大值+2双精度,M指定长度,
D表示小数点位数。精确数值
BigDecimal
numeric(M,D)M/D最大值+2双精度,M指定长度,
D表示小数点位数。精确数值
BigDecimal

decimal 表示 更加精确的小数。

回忆 一下 浮点数 (double ,float) 是不是 都基于 IEEE 754 标准来 进行使用的 ,但是 基于 IEEE 754 规则表示的浮点数 , 会有 一个 很大的问题

对于某些数字来说是不能够精确的表示的 (存在误差)

如 : 1.70

实际可能 就 为 1.7000000002

这里 decimal 就能够 精确的表示 小数, 对应 在 Java中 的 BigDecimal 这个类 就实现了 对应的功能。

回忆一下 :

我们的 float 和 double 是不是 不能 直接使用 == 来比较

这里 需要 作差然后判定结构 是不是 小于预期的误差范围。

补充:

数值类型可以指定为无符号(unsigned),表示不取负数。

这里 java 相比 c 是 没有 unsigned 回忆一下 我们 c 中 是不是 踩过 这个 unsigned

如果 a = -10 b = -20 这里b - a 是 等于 -10 吗,这里 就是一个坑,这里 会溢出 ,会 是一个很大的数字

1字节(bytes)= 8bit。
对于整型类型的范围:

  1. 有符号范围:-2(类型字节数*8-1)到2(类型字节数*8-1)-1,如int是4字节,就
    是-231到231-1
  2. 无符号范围:0到2(类型字节数*8)-1,如int就是232-1
    尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其
    如此,还不如设计时,将int类型提升为bigint类型。

字符串类型

数据类型大小说明对应java类型
varchar(size)0-65,535字节可变长度字符串String
text0-65,535字节长文本数据String
mediumtext0-16 777 215字节中等长度文本数据String
blob0-65,535字节二进制形式的长文本数据byte[]

varchar(size) 可以 根据实际需要,来指定要占用多少空间 ,这里 size 的单位是 字符(字符 可能是由多个字节构成);

blob 这里 表示二进制 数据 这里 mp3 文件,jpg文件 class … 都属于我们的 二进制文件 txt , .java .c 都是 文本文件

日期类型

这里 日期 类型的数据我们 是 可以通过 varchar 的形式来表示的.

但是 用 可以varchar 表示 但是是不好,这里 就 缺少 对日期合法性的校验,比如 2022 -03 - 100 ,这里就不是 一个合法的日期。

这里就可以使用MySQL 中的 日期 类型 来创建 日期。

数据类型大小说明对应java类型
datetime8字节范围从1000到9999年,不会进行时区的
检索及转换。
java.util.Date、
java.sql.Timestamp
timestamp4字节范围从1970到2038年,自动检索当前时
区并进行转换。
java.util.Date、
java.sql.Timestamp

补充 : timestamp 时间搓

时间搓 的 概念 : 以 1970 年1月 1日 0分 0秒作为基准时刻 ,来计算当前时刻和基准时刻的秒数/毫秒之差 。

了解完了MySQL 的 数据类型,那么我们就来学习一下 数据表的操作吧。

关于数据表的操作

1.创建数据表

create table 表名 (列名 类型 列名 类型 .....);

这里我们 先来创建一张 表,由 学生 id 学生 姓名, 学生成绩 组成。

进行表操作之前,要先选中数据库(use)

在这里插入图片描述

这里就是没有 选中数据创建表头,就会报出错误(没有选中数据库)。

在这里插入图片描述

这里我们就成功将这张 表创建出来了,

注意:在指定列表的时候,列名在前,类型在后.

这里相比 其他 编程语言是 有区别的 ,大部分的 都是 先类型 后面才是 变量 名.

补充 : 这里 我们 在创建表的时候,可以使用 comment 给某个列后面加上注释。

除了 使用 comment 还可使用** -- 呃呃呃** 这里就算 注释了 呃呃

(这里 不能少了 空格, 少了 是 非法的 这里 与 java 中 的 // 类似表示 这一行就算注释了)

2.查看表

查看表 : show tables;

注: 这个 操作的前提 也是的先选中数据库(use)

在这里插入图片描述

这里就可以看到我们创建的 student 表了

3.查看表结构

查看某个表里面有几列,每一列都是啥类型,每一列都是啥名字 ,每一列其他补充信息。

这里通过 desc 表名; 进行操作。

desc --> describe(描述)

在这里插入图片描述

4.删除表

这里通过 **drop table 表名;** 来进行删除表操作

在这里插入图片描述

这里我们 如果在删除 student2 就会报错这里我们来看一下,眼熟 一下

在这里插入图片描述

了解 了 这些 SQL 操作 那么我们 来做一些练习熟悉一下他们。

SQL 练习

有一个商店的数据,记录客户及购物情况,有以下三个表组成:

商品goods(商品编号goods_id,商品名goods_name, 单价unitprice, 商品类别category, 供
应商provider)

客户customer

(客户号customer_id,姓名name,住址address,邮箱email,性别sex,身份证card_id)

购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,购买数量nums)

补充: 在代码中 表示 “钱” 一般 有两种方式:

1.使用 Decimal/ BigDecimal

2.使用 int(单位是 分) 这是一个常见的手段 (运算效率要比 Decimal 高很多)。

1.创建商品 goods

这里 我们 就 可以 创建 第一个 商品
create table goods(goods_id int, goods_name varchar(50), unitprice int,cataegory varchar(50), provider varchar(50));

在这里插入图片描述

补充 :这里 我们 如果害怕在 控制台 写错 那么我们 就可以在记事本 或 IDEA 上来 编写我们 的SQL 语句

在这里插入图片描述

这里我们就 可以 通过 File 创建 一个 .sql 的文件 如(test.sql) 这里就可以 编写我们的SQL 。

2.创建客户customer

这里我们就现在IDEA 上 编写 在 放到 控制台上 创建 。

在这里插入图片描述

在这里插入图片描述

这可以看到我们就创建出了 我们的客户表。

3.创建购买purchase

在这里插入图片描述

这里我们 的三张表就创建完成了

这里我们 还能通过 desc 加表名来查看表

在这里插入图片描述

这 三张表就 展现出来。

补充 : 在cmd中 复制 是 选中 加回车 才为复制, 而 Ctrl + c 表示 中断 当前的输入(一个 sql 输入 一半 ,你不想要了,Ctrl + c

就可以 重新输入了) 这里 粘贴 还是 Ctrl + v

第二部分就到此,下一部分 我们 将学习 MySQL 中的 增删查改 CURU

C 创建 U修改 R 查询 D 删除。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-07-21 21:37:17  更:2022-07-21 21:37:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 21:37:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码