【测试开发学习历程】MySQL数据类型 + MySQL表创建与操作

前言:

半夜梦到自己没有写今天的博客,结果惊醒起来看一看。

得,真的没写。QWQ

可谓垂死病中惊坐起了。

看看发博的时间6:16,而不是什么整点的,就知道我4点就起来了,不是定时发布!!!!!

博主这么辛苦,行行好,点赞 + 关注行不行啊

目录

1.MySQL数据类型

1.1 数值型

1.1.1 整型

1.1.1.1 定义

1.1.1.2(无)符号整型数

1.1.1.3 int(11)与int(10)的含义

1.1.2 浮点型

1.1.3 各数值类型的存储范围

1.2 字符串型

1.2.1 定义

1.2.2 CHAR与VARCHAR

1.3 日期时间型

1.4 TIMESTAMP-特殊类型

2 MySQL表创建与操作

2.1 CRASHCOURSE数据库表介绍

2.2 SELECT语句

2.3 数据查询

 2.3.1 查询列

2.3.2 避免重复数据

2.4 查询结果排序

2.5 LIMIT的用法


1.MySQL数据类型

MySQL字段表类型

MySQL数据库的表是一个二维表,由一个或多个数据列构成;

每个列都有相应的数据类型,数据类型定义列可以存储的数据种类。例如,如果列中存储的为数字(或许是订单中的物品数),则相应的数据类型应该为数值类型。如果列中存储的是日期、文本、注释、金额等,则应该用恰当的数据类型规定出来;

数据类型(datatype):每个列所容许的数据的类型。每个列都有相应的数据类型,它限制(或容许)该列中存储的数据;

MySQL支持多种数据类型,大致可分为三类:

  • 数值类
  • 字符串类
  • 日期/时间类

1.1 数值型

数值型包括:

  • 整型
  • 浮点型

1.1.1 整型

1.1.1.1 定义

TINYINT:1字节,非常小的整数,带符号:-128~127,不带符合:0~255;

INT:4字节,标准整型,带符号:-2147483648~2147483647,不带符号:0~4294967295;

其他类型:SMALLINT(2字节)、MEDIUMINT(3字节)、BIGINT(8字节);

1.1.1.2(无)符号整型数

带符号的整型,符号位为0表示正数,符号位为1表示负数,以TINYINT为例:

在创建表的时候,可以通过signed和unsigned来指定某列的数据类型是否带符号;如果没指定数据类型是否带符号,默认是带符号;

1.1.1.3 int(11)与int(10)的含义

括号里的数字表示int类型的显示宽度,并非数据的长度;

比如当某字段为int(11) unsigned zerofill,当存入的数据为1时,会显示成00000000001;

同样地,如果某字段为int(10) unsigned zerofill,当存入的数据为1时,会显示成0000000001。

1.1.2 浮点型

FLOAT:4字节,单精度浮点数;

DOUBLE:8字节,双精度浮点数;

DECIMAL(M,D):M表示整数加小数的总位数,D表示小数位数,比如DECIMAL(4,2);

其中,FLOAT与DOUBLE存储的是近似值,DECIMAL存储的是准确值。

1.1.3 各数值类型的存储范围

1.2 字符串型

1.2.1 定义

字符串可以用来表示任何一种值,所以它是最基本的类型之一;

我们可以用字符串类型来存储图像或声音之类的二进制数据,也可以存储用gzip压缩的数据。

1.2.2 CHAR与VARCHAR

CHAR和VARCHAR是最常用的两种字符串类型,区别是:

CHAR是固定长度的,每个值占用相同的字符数,不够的位数MySQL会在它的右边用空格字符补足。

VARCHAR是一种可变长度的类型,每个值占用其刚好的字符数再加上一个用来记录其长度的字节即L+1个字节。

CHAR(4)

需要存储

VARCHAR(4)

需要存储

''

'    '

4字节

''

1个字节

'ab'

'ab  '

4字节

'ab'

3个字节

'abcd'

'abcd'

4字节

'abcd'

5个字节

如果数据都有相同的长度(比如手机号码),选用VARCHAR会多占用空间,因为有一位用来存储其长度。如果数据长度不一,选用VARCHAR能节省存储空间;

而CHAR不论字符长短都需要占用相同的空间,即使是空值也不例外。

1.3 日期时间型

MySQL总是把日期和日期里的年份放在最前面,按年月日的顺序显示

DATE、TIME、DATETIME类型分别存放日期值、时间值、日期和时间值的组合。格式分别是

  • “CCYY-MM-DD”
  • “hh:mm:ss”
  • “CCYY-MM-DD hh:mm:ss”

1.4 TIMESTAMP-特殊类型

如果某列的数据类型为TIMESTAMP且该列为NOT NULL,当插入数据时不指定该列的值,那么这个列就会自动取值为当前的日期和时间;

在创建和修改数据行时,如果没有明确对TIMESTAMP数据列进行赋值,则它就会自动取值为当前的日期和时间。如果表中有多个TIMESTAMP列,只有第一个会自动取值。

2 MySQL表创建与操作

2.1 CRASHCOURSE数据库表介绍

  • customers  客户表,存储客户信息;
  • vendors  供应商表,存储供应商基本信息;
  • orders  订单表,存储客户订单信息,如订单编号、订单日期、  客户ID;
  • orderitems  订单明细表,存储订单明细,如订单编号、明细编号、  产品编号、数量、价格;
  • products  产品表,存储产品基本信息,如产品编号、供应商、  价格等;
  • productnotes  产品说明表;

2.2 SELECT语句

MySQL使用select语句查询数据;

select语句的作用是从一个或多个表中查询信息;

使用select语句,必须给出至少两条信息:

  • 选择什么?
  • 从什么地方选择?

注意:SQL语言中,不区分大小写,每一条SQL语句,使用英语分号“;”表示结尾。

2.3 数据查询

 2.3.1 查询列

格式:select 列名 from 表名;

说明1:如果在from后面直接使用表名的话,需要先指定使用的是哪个数据库;

 说明2:支持列查询:select 列名1,列名2,列名3,… from 表名;

 说明3:可用“*”表示查询所有列

2.3.2 避免重复数据

如果查询到的两行内容一样,默认情况下,MySQL是会显示这些重复的行,如果需要相同的行只显示一次,可以使用distinct关键字

格式:select distinct 列名 from 表名;

2.4 查询结果排序

为了明确地排序用select语句查询出的数据,可使用order by语句;

order by语句取一个或多个列的名字,根据这些列进行排序;

格式:

select 列名 from 表名 order by 列名;

select 列名 from 表名 order by 列名1,列名2;

例如:

select * from products order by vend_id,prod_name,prod_price;

//先按vend_id排序,vend_id相同的数据,再根据prod_name去排序,然后再根据prod_price排序。

order by语句默认的是按照升序排列(从A到Z),关键字是ASC;

可以给order by语句指定降序(从Z到A)顺序排列,使用关键字DESC;

说明:DESC关键字只应用到直接位于其前面的列名。

  

2.5 LIMIT的用法

如果一个表的行非常多,可以使用limit关键字,指定需要返回多少行

格式1select 列名 from 表名 limit n;

例如:limit 3是指前三行

说明:n是限定的行数

格式2:select 列名 from 表名 limit n,m   //只显示从行号为n的行开始的后面m行

说明:MySQL中的行号是从0开始计算的,limit 2,3是第3行开始往后数3行,也就是第3,4,5行

拓:ORDER BY与LIMIT的组合

使用order by和limit的组合,能够找出一个列中最高或者最低的值;

例1:找出最贵物品的价格

说明:order by子句位于from子句之后,如果使用limit,那么它必须位于order by之后。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

知识积累(五):Transformer 家族的学习笔记

文章目录 1. RNN1.1 缺点 2. Transformer2.1 组成2.2 Encoder2.2.1 Input Embedding(嵌入层)2.2.2 位置编码2.2.3 多头注意力2.2.4 Add & Norm 2.3 Decoder2.3.1 概览2.3.2 Masked multi-head attention 2.4 Transformer 模型的训练和推理2.4.1 训练…

C语言学习过程总结(16)——指针(4)

一、数组名的理解 我们直接使用%p打印出地址来看看&arr【0】 和 arr的不同: int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };printf("&arr[0] %p\n", &arr[0]);printf("arr %p\n", arr);} 、 很容易看出来两者的输出…

ES模块化

Node.js默认并不支持ES模块化,如果需要使用可以采用两种方式。方式一,直接将所有的js文件修改为mjs扩展名。方式二,修改package.json中type属性为module。 导出 默认导出 // 向外部导出内容 export let a 10 export const b "孙悟空…

数据分析 | NumPy

NumPy,全称是 Numerical Python,它是目前 Python 数值计算中最重要的基础模块。NumPy 是针对多维数组的一个科学计算模块,这个模块封装了很多数组类型的常用操作。 使用numpy来创建数组 import numpy as npdata np.array([1, 2, 3]) print…

Unity中UGUI中的PSD导入工具的原理和作用

先说一下PSD导入工具的作用,比如在和美术同事合作开发一个背包UI业务系统时,美术做好效果图后,程序在UGUI中制作好界面,美术说这个图差了2像素,那个图位置不对差了1像素,另外一个图大小不对等等一系列零碎的…

文件包含漏洞(input、filter、zip)

一、PHP://INPUT php://input可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容。从而导致任意代码…

ngnix安装配置

通过yum -y install nginx的方式,有时候会出现No package nginx available的报错。迟迟无法解决。此时要通过下载安装包的方式安装。 1、下载安装包:官方网址 2、解压缩: tar -xzvf nginx-1.23.4.tar.gz cd nginx-1.23.4.tar.gz 3、源码包…

pycharm里test connection连接成功,但是无法同步服务器文件,deployment变灰

如果服务器test connection连接成功,但是无法同步文件。 可以尝试以下方式: 点击tools-deployment-browse remonte host,选择要连接的服务器的文件夹 如果能正常显示服务器文件夹,再点击tools-deployment,注意要把要…

echarts设置柱形图柱间距离

不同系柱形图柱间距离(barGap) {type: bar,itemStyle: {normal: {color: #ddd}},silent: true,barWidth: 40,barGap: 10%, //设置负值 不同系的柱形图会实现重叠效果data: [60, 60, 60, 60] },同系柱形图柱间距离(barCategoryGap&#xff…

谈谈对数据库索引的认识

索引的概念 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。 可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。 索引的作用 默认情况下,进行条件查询操作,就是遍历表&a…

27. 移除元素 (Swift版本)

题目描述 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出…

【蓝桥杯每日一题】填充颜色超详细解释!!!

为了让蓝桥杯不变成蓝桥悲,我决定在舒适的周日再来一道题。 例: 输入: 6 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 输出: 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 2 2 1 1 1 2 2 2 1 1 2 2 2 2 1 1…

渐开线花键环规的几种加工方法

小伙伴们大家好,今天咱们聊一聊渐开线花键环规的几种加工方法。 渐开线花键环规是在汽车、摩托车以及机械制造工业应用非常广泛的一种检测量具。它属于是一种内花键齿轮,其精度和表面粗糙度要求都比较高。采用的加工方法也比较多,下面详细看…

Spring MVC文件上传配置

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 文件上传 Spring MVC文件上传基于Servlet 3.0实现;示例代码如下: Overrideprotected void customizeRegistration(ServletRegistration.Dynamic reg…

C语言-memcpy(不重复地址拷贝 模拟实现)

memcpy&#xff08;不重复地址拷贝&#xff09; 语法格式 在C语言中&#xff0c;memcpy 是一个标准库函数&#xff0c;用于在内存之间复制数据。它的原型定义在 <string.h> 头文件中。memcpy 的语法格式如下&#xff1a; c void *memcpy(void *destination, const voi…

2024全新返佣商城分销商城理财商城系统源码 全开源PHP+VUE源码

2023全新返佣商城分销商城理财商城系统源码 全开源PHPVUE源码 程序安装环境要求&#xff1a; nginx1.16 php7.2 mysql5.6 程序全开源PHPVUE源码 有需要测试的老铁&#xff0c;拿去测试吧

KKVIEW远程: 安卓免费远程控制软件

安卓免费远程控制软件&#xff1a;方便、实用且高效 在数字化日益增长的今天&#xff0c;远程控制软件正变得越来越重要。无论是在家庭环境还是工作环境中&#xff0c;它们都能为我们提供便利。特别是在移动设备上&#xff0c;如安卓设备&#xff0c;这种需求更为明显。幸运的是…

基于高斯模型的运动目标检测(车辆检测),Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

RTC协议与算法基础 - RTP/RTCP

首先&#xff0c;需要说明下&#xff0c;webrtc的核心音视频传输是通过RTP/RTCP协议实现的&#xff0c;源码位于src/modules/rtp_rtcp目录下&#xff1a; 下面让我们对相关的内容基础进行简要分析与说明&#xff1a; 一、TCP与UDP协议 1.1、TCP协议 TCP为了实现数据传输的可…

C到C++的敲门砖-2

文章目录 引用内联函数auto关键字基于范围的for循环指针空值nullptr后记 引用 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空 间&#xff0c;它和它引用的变量共用同一块内存空间。 所谓引用就是给变量起别名&am…