【MySQL】第一弹----库的操作及数据类型

 笔上得来终觉浅,绝知此事要躬行

🔥 个人主页:星云爱编程

🔥 所属专栏:MySQL

🌷追光的人,终会万丈光芒  

 🎉欢迎大家点赞👍评论📝收藏⭐文章

  

一、SQL 语句分类

DDL:数据定义语句

DML:数据操作语句

DQL:数据查询语句

DCL:数据控制语句

二、基本语句

2.1创建数据库

CREATE DATABASE [ IF NOT EXISTS ] db_name  [ CHARACTER SET charset_name]  [ COLLATE collation_name ];

说明:

(1)红色字体表示必需要有的语句,绿色字体表示可以省略的语句。

(2)IF NOT EXISTS :在创建数据库时先检验db_name数据库是否存在,若不存在则创建,存在则不创建。

(3) CHARACTER SET charset_name :用于指定数据库采⽤的字符集编码,若不指定字符集,默认为utf8。

(4)COLLATE collation_name:用于指定数据库字符集的校验规则(常用的utf8_bin区分大小写、utf8_general_ci不区分大小写。默认为utf8_general_ci)。 

2.2查看、删除数据库

显示数据库语句:SHOW DATABASES;

显示数据库创建语句:SHOW CREATE DATABASE db_name

删除数据库:DROP DATABASE [ IF NOT SXISTS ] db_name

2.3备份恢复数据库

(1)备份数据库

mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库n >路径加文件名.sql

注意:要在mysql安装目录\bin下dos窗口运行

eg:

mysqldump -u root -p -B db01 >D:\\test.sql

(2)恢复数据库

Source 路径+文件名.sql

注意:要在mysql命令行执行

eg:

Source D:\\test.sql

2.4备份恢复数据库的表

(1)备份数据库的表

mysqldump -u 用户名 -p  数据库 表1 表2 表n >路径加文件名.sql

注意:要在mysql安装目录\bin下dos窗口运行

eg:

mysqldump -u root -p db01 users >D:\\test.sql

(2)恢复数据库的表

source 路径+文件名.sql

注意:要在mysql命令行执行

eg:

source D:\\test.sql

2.5创建表

CREATE TABLE table_name 

filed1 datatype,

filed2 datatype,

filedn datatype

)character set 字符集 collate 校对规则 engine 存储引擎;

说明:

(1)filed 指定列名 datatype 指定列类型;

(2)character set 指定字符集,若不指定则默认为所在数据库字符集;

(3)collate 指定校对规则,若不指定则默认为所在数据库校对规则;

(4) engine 引擎。

三、常用数据类型(列类型)

3.1数据值类型

3.1.1类型列表

类型大小说明
BIT(M)默认bit位值类型。M表⽰每个值的位数,取值范围为1~64,如果省略M,则默认为1。
TINYINT(M) 1byte取值范围-2^7~2^7-1,无符号取值范围2^8-1
BOOL1byteTINYINT(1)的同义词,值为0认为是假,非0认为是真
SMALLINT(M)2byte取值范围-2^15~2^15-1,无符号取值范围2^16-1
MEDIUINT(M)3byte取值范围-2^23~2^23-1,无符号取值范围2^24-1
INT(M)4byte取值范围-2^31~2^31-1,无符号取值范围2^32-1
INTEGER(M)4byteINT的同义词
BIGINT(M)8byte取值范围-2^63~2^63-1,无符号取值范围2^64-1
FLOAT(M)4byte单精度浮点型,M是总位数,D是⼩数点后⾯的位数,⼤约可以精确到⼩数点后7位
DOUBLE(M)8byte双精度浮点型,M是总位数,D是⼩数点后⾯的位数,大约可以精确到小数点后15位。
DECIMAL(M,D)动态不存在精度损失,M是总位数,D是小数点后的位数。DECIMAL的最⼤位数(M)为 65,最大小数位数(D)为30。如果省略M,则默认为10,如果省略D,则默认为 0。M中不计算小数点和负数的-号,如果D为0,则值没有小数点和小数部分。

3.1.2数据类型取值范围 

类型⼤⼩有符号最⼩值有符号最⼤值⽆符号最⼩值⽆符号最⼤值
TINYINT(M) 1byte-1281270255
SMALLINT(M)2byte-3276832767065535
MEDIUINT(M)3byte-83886088388607016777215
INT(M)4byte-2147483648214748364704294967295
BIGINT(M)8byte-2^632^6302^64-1

3.1.3数值型的基本使用

(1)整数

使用规范:在能够满足需求的情况下,尽量选择占用空间小的

eg:

create table t1(
 id TINYINT);


create table t2(
 id TINYINTUNSIGNED);

注:

①如果没有指定unsinged,则TINYINT就是有符号-128~127;

②如果指定unsinged,则TINYINT就是无符号0-255。

(2)bit(M)

bit字段显示时,按照位的方式显示;

查询的时候仍然可以使用 添加的数值;

如果一个值只用0,1可以考虑使用bit(1),可以节约空间;

位类型,M指定位数,默认值为1,范围1~64。

(3)浮点数

①FLOAT/DOUBLE[UNSIGNED]

Float单精度浮点数,Double双精度浮点数

②DECIMAL(M,D)

可以支持更加精确的小数位,M是小数位数(精度)的总数,D是小数点(标度)后面的位数。如果省略M,则默认为10,如果省略D,则默认为 0。M中不计算小数点和负数的-号,如果D为0,则值没有小数点和小数部分。M最大是65,D最大是30。

如果希望小数的精度高,推荐使用decimal。

3.2字符串类型 

3.2.1类型列表

类型说明
CHAR[(M)]固定⻓度字符串, M 表示长度,以字符为单位,取值范围 0 ~ 255 , M 省略则长度为 1
VARCHAR(M)可变⻓度字符串, M 表⽰字符最大长度,范围为 0 ~ 65535 ,有效字符个数取决于实际字符数和使⽤的字符集
TINYTEXT小文本类型,最大长度为 255 (2^8-1)个字符,有效字符个数取决于使用的字符集
TEXT(M)⽂本类型,最大长度为 65535 (2^16-1)个字符,有效字符个数取决于使用的字符集
MEDIUMTEXT中⽂本类型,最大长度为 16,777,215 (2^24-1)个字符,有效字符个数取决于使用的字符集
LONGTEXT大文本类型,最大长度为 4,294,967,295 即 4GB (2^32-1)个字符,有效字符个数取决于使用的字符集
BINARY(M)固定⻓度⼆进制字节,于CHAR类似,但存储的是⼆进制字节而不是字符串。 M表示长度,以字节为单位,取值范围 0 ~ 255 , M 省略则长度为 1
VARBINARY(M)可变⻓度⼆进制字节,于VARCHAR类似,但存储的是⼆进制字节⽽不是字符串。M 表⽰⻓度,以字节为单位
TINYBLOB小二进制字节类型,最⼤⻓度为 255 (2^8-1)个字节
BLOB(M)⼆进制字节类型,最大长度为 65535 (2^16-1)个字节
MEDIUMBLOB中⼆进制字节类型,最大长度为 16,777,215 (2^24-1)个字节
LONGBLOB大二进制字节类型,最大长度为 4,294,967,295 即 4GB (2^8-1)个字节
ENUM('value1','valu e2',...)

枚举

•从值列表 'value1','value2' 或 ''( 空字符串 ) 和 NULL 中选⼀个值

•最多可以有 65,535 个不同的元素

•单个元素的最⼤⻓度是 M <= 255 或 (M x w) <= 1020 ,其中 M 是元素字 符⻓度, w 是字符集中字符所需的最⼤字节数

• ENUM的值在内部表⽰为整数

SET('value1','value 2',...)

集合

•从值列表 'value1','value2' 中选零个或多个值

•最多64个元素

•单个元素的最⼤⻓度是 M <= 255 或 (M x w) <= 1020 ,其中 M 是元素字 符⻓度, w 是字符集中字符所需的最⼤字节数

•SET值在内部表⽰为整数

3.2.2字符串的基本使用

(1)CHAR(size)

固定长度字符串最大255字符。

(2)VARCHAR(size)

范围为0~65535字节,可变长度字符串最大65532字节【utf8编码最大21844字符1-3个字节用于记录大小】

如果表的编码是utf8varchar(size)size=(65535-3)/3=21844字符;

如果表的编码是gbkvarchar(size)size=(65535-3)/2=32766字符。

3.2.3字符串使用细节

(1)char(4),这个4表示字符数(最大255),不是字节数,不管中文还是字母都是放4个,按字符来存放的;

(2)char(4),是固定的大小,即尽管你插入“ab”,也会占用/分配4个字符的空间;

(3)varchar(4),这个4表示字符数,不管中文还是字母都是放4个,按字符来存放的;

(4)varchar(4),是可变化的大小,即你插入了“ab”,实际占用空间并不是4个字符,而是按照实际占用空间来分配;

注:varchar本身还需要占用1~3个字节来记录存放内容长度,即实际数据大小+(1~3)个字节。

(5)如果数据是定长,推荐使用char,例如:手机号,身份证号;

(6)如果一个字段的长度不确定,使用varchar,例如:留言,文章;

(7)查询速度:char>varchar。

(8)在存放文本时,可以使用Text数据类型。可以将TEXT列看成VARCHAR列,注意Text不能有默认值,大小为0~2^16字节。

3.3日期类型

3.3.1类型列表

类型大小说明0值
TIMESTAMP( fsp)4 bytes

•时间戳类型

•⽀持范围 1970-01-01 00:00:01.000000 ~ 20388-01-19 03:14:07.499999

0000-00 00 00:00:00
DATETIME(fsp)8 bytes

•⽇期类型和时间类型的组合

•⽀持范围 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.499999

•显⽰格式为 YYYY-MM-DD hh:mm:ss[.fraction]

0000-00-00 00:00:00
DATE3 bytes

•⽇期类型

•⽀持范围 1000-01-01 ~ 9999-12-31

•显⽰格式为 YYYY-MM-DD

0000-00-00
TIME(fsp)3 bytes

•时间类型

•⽀持范围-838:59:59.000000 ~ 838:59:59.000000

•显⽰格式为 hh:mm:ss[.fraction]

00:00:00
YEAR(4)1 byte

•4位格式的年份

•⽀持范围 1901 ~ 2155

•显⽰格式为 YYYY

0

3.3.2的基本使用

• fsp 为可选设置,⽤来指定⼩数秒精度,范围从0到6,值为0表⽰没有⼩数部分,如果省略,默认 精度为0

• CURRENT_DATE 和 CURRENT_DATE() 是 CURDATE() 的同义词⽤于获取当前⽇期

• CURRENT_TIME 和 CURRENT_TIME([fsp]) 是 CURTIME() 的同义词⽤于获取当前时间

• CURRENT_TIMESTAMP 和 CURRENT_TIMESTAMP([fsp]) 是 NOW() 的同义词⽤于获取当前⽇期和时间 

注:TimeStamp在insert和update时,会自动更新。 

结语

感谢您的耐心阅读,希望这篇博客能够为您带来新的视角和启发。如果您觉得内容有价值,不妨动动手指,给个赞👍,让更多的朋友看到。同时,点击关注🔔,不错过我们的每一次精彩分享。若想随时回顾这些知识点,别忘了收藏⭐,让知识触手可及。您的支持是我们前进的动力,期待与您在下一次分享中相遇!

路漫漫其修远兮,吾将上下而求索。

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

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

相关文章

家用电器销售系统|Java|SSM|JSP|

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…

ChatGPT 与 AGI:人工智能的当下与未来走向全解析

在人工智能的浩瀚星空中&#xff0c;AGI&#xff08;通用人工智能&#xff09;无疑是那颗最为璀璨且备受瞩目的星辰。OpenAI 对 AGI 的定义为“在最具经济价值的任务中超越人类的高度自治系统”&#xff0c;并勾勒出其发展的五个阶段&#xff0c;当下我们大多处于以 ChatGPT 为…

28.<Spring博客系统⑤(部署的整个过程(CentOS))>

引入依赖 Spring-boot-maven-plugin 用maven进行打包的时候必须用到这个插件。看看自己pom.xml中有没有这个插件 并且看看配置正确不正常。 注&#xff1a;我们这个项目打的jar包在30MB左右。 <plugin><groupId>org.springframework.boot</groupId><artif…

win11 vs2022 opencv 4.10使用vs Image Watch插件实时可视化内存mat对象

这个本来是非开源工业软件HALCON的一个功能&#xff0c;方便提升图像识别开发效率。原以为opencv没有&#xff0c;需要通过进程间共享内存的方式去实现。 结果在官网帮助文档中发现已经提供了。 opencv 4.10帮助文档https://docs.opencv.org/4.10.0/index.htmlOpenCV Tutorial…

用Python操作字节流中的Excel工作簿

Python能够轻松地从字节流中加载文件&#xff0c;在不依赖于外部存储的情况下直接对其进行读取、修改等复杂操作&#xff0c;并最终将更改后的文档保存回字节串中。这种能力不仅极大地提高了数据处理的灵活性&#xff0c;还确保了数据的安全性和完整性&#xff0c;尤其是在网络…

uni-app微信小程序如何使用高德地图。通过经纬度获取所在城市,涉及到授权获取地理位置权限

高德地图官方是这样介绍的使用方法可以参考&#xff1a;入门指南-微信小程序插件 | 高德地图API 我再介绍一下我得具体应用。 1&#xff0c;首先要在申请高德地图开放平台得账号。然后在这个账号中申请一个应用。类型选择微信小程序。 我的应用 | 高德控制台 获取Key-创建工…

YOLOv5部署到web端(flask+js简单易懂)

文章目录 前言最终实现效果图后端实现 主界面检测函数检测结果显示 前端实现 主界面(index.html&#xff09;显示图片界面 总结 前言 最近&#xff0c;老板让写一个程序把yolov5检测模型部署到web端&#xff0c;在网页直接进行目标检测。经过1个星期的努力&#xff0c;终于实…

使用Locust对Redis进行负载测试

1.安装环境 安装redis brew install redis 开启redis服务 brew services start redis 停止redis服务 brew services stop redis 安装Python库 pip install locust redis 2.编写脚本 loadTest.py # codingutf-8 import json import random import time import redis …

C#-使用StbSharp库读写图片

一.StbSharp StbSharp是基于C/Stb图形处理库封装的C#接口,支持多种格式PNG/JPG等图片的处理. GitHub链接: GitHub - StbSharp/StbTrueTypeSharp: C# port of stb_truetype.hhttps://github.com/StbSharp/StbTrueTypeSharp二.使用StbSharp创建高度图 创建一张500*500的高度图PN…

单周期CPU电路设计

1.实验目的 本实验旨在让学生通过设计一个简单的单周期 CPU 电路&#xff0c;深入理解 RISC-V 指令集的子集功能实现&#xff0c;掌握数字电路设计与实现的基本流程&#xff0c;包括指令解析、部件组合、电路设计以及功能仿真等环节&#xff0c;同时培养verilog HDL编程能力和…

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(五)

****非斜体正文为原文献内容&#xff08;也包含笔者的补充&#xff09;&#xff0c;灰色块中是对文章细节的进一步详细解释&#xff01; 五、 解释评估&#xff08;Explanation Evaluation&#xff09; 在前面的章节中&#xff0c;我们介绍了不同的解释技术和它们的用途&#…

UE5材质节点Camera Vector/Reflection Vector

Camera Vector相机向量&#xff0c;输出像素到相机的方向&#xff0c;结果归一化 会随着相机移动而改变 Reflection Vector 反射向量&#xff0c;物体表面法线反射到相机的方向&#xff0c;x和y和camera vector相反 配合hdr使用

使用Qt中的模型视图框架

本篇文章让你能够在阅读完之后&#xff0c;掌握Qt的模型视图框架的大致使用方法。 问题引入 在我们开发较小的软件的时候&#xff0c;我们可能不会注意到模型视图框架的作用。 因为我们的同一份的数据可能只会在同一个窗口中显示&#xff0c;不会存在数据在一个窗口中更新&a…

跟着逻辑先生学习FPGA-实战篇第一课 6-1 LED灯闪烁实验

硬件平台&#xff1a;征战Pro开发板 软件平台&#xff1a;Vivado2018.3 仿真软件&#xff1a;Modelsim10.6d 文本编译器&#xff1a;Notepad 征战Pro开发板资料 链接:https://pan.baidu.com/s/1AIcnaGBpNLgFT8GG1yC-cA?pwdx3u8 提取码:x3u8 1 知识背景 LED&#xff0c;又名…

2024国城杯 Web

这四道题目Jasper大佬都做了镜像可以直接拉取进行复现 https://jaspersec.top/2024/12/16/0x12%20%E5%9B%BD%E5%9F%8E%E6%9D%AF2024%20writeup%20with%20docker/ n0ob_un4er 这道题没有复现成功, 不知道为啥上传了文件, 也在 /tmp目录下生成了sess_PHPSESSID的文件, 但是就是…

【ArcGISPro/GeoScenePro】检查多光谱影像的属性并优化其外观

数据 https://arcgis.com/sharing/rest/content/items/535efce0e3a04c8790ed7cc7ea96d02d/data 操作 其他数据 检查影像的属性 熟悉检查您正在使用的栅格属性非常重要。

基于Docker基础与操作实战

6.1 Docker容器简介 Docker是一个开源的应用容器引擎&#xff0c;它基于Go语言并遵从Apache2.0 协议开源。 Docker是一个用于开发&#xff0c;交付和运行应用程序的开放平台。Docker能将应用程序与基础架构分开&#xff0c;从而可以快速交付软件。借助Docker&#xff0c;您可…

使用exe4j将jar转成exe、java打包exe

1、maven打包 需要配置以下插件&#xff0c;注意skip为false 插件配置中设置 <skip>true</skip> 时&#xff0c;实际上是告诉 Maven 在构建过程中跳过 spring-boot-maven-plugin 插件的执行。也就是说&#xff0c;Maven 在打包时不会将项目打包成可执行的 JAR 文…

MySQL 的事务与多版本并发控制(MVCC)的那些事

什么是事务原子性:一致性隔离性 问题1: 为什么MySQL要使用mvcc实现隔离性而不使用 锁 解决并发问题?持久性 问题2: MySQL 不是磁盘数据库吗,持久化为什么是 redo log 保证的?问题 3: redo log 储存了什么东西,持久化(崩溃恢复是怎么做的?)问题 4 : MySQL 的 bing log (二进制…

【单片机通讯协议】—— 常用的UART/I2C/SPI等通讯协议的基本原理与时序分析

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、通信基本知识1.1 MCU的参见外设1.2 通信的分类按基本的类型从传输方向上来分 二、UART&#xff08;串口通讯&#xff09;2.1 简介2.2 时序图分析2.3 UART的…