MySQL数据库(二)

文章目录

  • MySQL数据库
    • 一、字符编码与配置文件
    • 二、存储引擎
      • 1.如何查看存储引擎
      • 2.重要的存储引擎
        • MyISAM
        • InnoDB
        • MEMORY
        • BlackHole
        • 演示
    • 三、创建表的完善语法
    • 四、字段类型之整型
      • 整型分类及存储范围
    • 五、字段类型之浮点型
    • 六、字段类型之字符类型
      • 1.研究两者区别
      • 2.严格模式
      • 3.研究定长、不定长、是否补充空格
      • 4.char VS varchar
    • 七、数字的含义
    • 八、字段类型之枚举与集合
    • 九、字段类型之日期类型

MySQL数据库

一、字符编码与配置文件

		\s 			查看数据库基本信息show engines 	查看所有的存储引擎char_length() 	统计字段数据长度以下是WIN版本我们MySQL刚安装完 发现创建表记录的时候写入字符串Varchar 查看结果乱码解决方法如下:拷贝my-default.ini 					# windows下MySQL默认的配置文件拷贝上述文件并且重命名my.ini			#(随机取名 看见一大堆英文不要慌)由于5.6版本编码不统一 会造成乱码 我们需要统一修改>>>: Utf8[mysqld]							# Mysqld 服务端 character-set-server=utf8		# 编码改成utf8  也可以utf8mb4(mb4表示可以显示表情包)collation-server=utf8_general_ci[client]							# 客户端编码改成utf8default-character-set=utf8[mysql]								# mysql客户端端编码改成utf8default-character-set=utf8user='root'						# 为了每次登录不需要输入密码passoword='123'					# 直接写入配置文件 输入mysql即可直接使用注意如果配置文件涉及到mysqld相关的配置修改 那么需要重启服务端才可以生效以下是MAC版本我们MySQL刚安装完 默认是全部都有加载好的 不需要去配置文件如果需要配置的话 只需要在 /etc/ 文件夹里面 创建一个文件后缀名cnf 内容跟以上win一样(注意该文件权限不能太高 写完之后改成只读 文本里面不要有空格 重启mysql即可)

二、存储引擎

存储引擎我们可以理解成针对相同的数据采用不同的存取策略(show engines;)

1.如何查看存储引擎

使用show engines;命令即可查看
在这里插入图片描述

2.重要的存储引擎

MyISAM

它是MySQL5.5版本及之前的版本默认的存储引擎,它的存取数据的速度很快,但是功能较少(不支持事务,支持表锁),数据安全性较低

InnoDB

它是MySQL5.6及之后的版本默认的存储引擎,存取数的速度没有MyISAM快,但是支持事务、行锁、外键等诸多功能,并且安全性较高

MEMORY

它是基于内存存储的,存取数据极快,但是有着断电数据丢失、重启服务端数据就丢失的特性(基于内存的都是如此)

BlackHole

黑洞,任何写进去的数据都会立刻删除,类似于垃圾站

演示
	ps:MySQL中默认是大小写不敏感的(忽略大小写)格式:create table t1(id int)engine=MyISAM;create table t2(id int)engine=InnoDB;create table t3(id int)engine=MEMORY;create table t4(id int)engine=BlackHole;'ps:windows cmd终端鼠标右键的意思就是粘贴''对于不同的存储引擎,硬盘中保存的文件个数也是不一样的''''另外不同版本的数据库,里面的文件后缀也不一样,向5.6版本的存储表结构文件后缀则是.frm'''(以下以8.0的版本为准)MyISAM:3个文件.sdi 存储表结构.MYD 存储的是表数据.MYI 存索引(当成是字典的目录,加快查询速度)InnoDB:1个文件'在8.0版本中InnoDB不显示表结构文件,在5.6版本中显示'#.frm 存储表结构 (5.6版本中的显示).ibd 存储数据和索引MEMORY:1个文件.sdi 存储表结构(断电或重启丢失数据)BlackHole:1个文件.sdi 存储表结构(放进去的数据立马丢失)

在这里插入图片描述

三、创建表的完善语法

	create table 库名.表名(字段名  字段类型(数字) 约束条件)engine=存储引擎;id		int 0~255	 default		MyISAM1.字段名和字段类型是必须的(至少写一个)2.数字跟约束条件是可选(可有可无) # not_null default3.约束条件可以写多个 空格隔开即可4.最后一个字段的结尾千万不能加逗号

四、字段类型之整型

整型分类及存储范围

在这里插入图片描述

	验证整型默认情况下是否携带正负号?create table ts1(id tinyint);insert into ts1 values(-129),(256)'发现自动填写两个边界值,数据失真,没有实际意义''上述所有的整型类型默认都会带有负号'

在这里插入图片描述

	自定义移除负号'''unsigned 约束条件之一 意思是不需要负号'''create table ts1(id tinyint unsigned);insert into ts1 values(-129)(256);

在这里插入图片描述

五、字段类型之浮点型

在这里插入图片描述

'以下三者都可以存储浮点型数据,但是各自的精确度不一致'float 	double 	decimal folat(255,30) # 总位数255位,小数点后占60位double(255,30) # 总位数255位,小数点后占60位decimal(65,30) # 总位数65位,小数点后占30位create table ts4(id float(255,30));create table ts5(id double(255,30));create table ts6(id decimal(65,30));insert into ts4 values(1.11111111111111);insert into ts5 values(1.11111111111111);insert into ts6 values(1.11111111111111);'''三者的精确度不一样:decimal >>> double >>> float(精确到7位了)'''

在这里插入图片描述

六、字段类型之字符类型

1.研究两者区别

	char 定长'字符串中括号中得数字代表的就是字符串所存储的范围大小'char(4)最大只能存储四个字符,如果超出范围则直接报错如果不超出范围,则用空格填充至四个字符varchar 变长varchar(4)最大只能存储四个字符,如果超过范围则直接报错如果不超出范围,则有几位数就存几位'验证两者的区别'create table ts7(id int ,name char(4));create table ts8(id int, name varchar(4));'''结果验证 超出范围两者都会报错注意sql_mode='strict_trans_tables';''''''如果你想超出范围之后,直接报错,需要设置严格模式'''

在这里插入图片描述

2.严格模式

	插入的数据值超出了数据类型的范围,不应该让其插入并自动修改,没有意义数据库应该直接报错(这个特性其实是有的,只是被我们改掉了>>>:配置文件)方式1:命令临时修改set session sql_mode='strict_trans_tables';'在当前客户端操作界面有效'set global sql_mode='strict_trans_tables';'在当前服务端有效(服务端不重启永久有效)'方式2:配置文件永久修改[mysqld]sql_mode='STRICT_TRANS_TABLES'(不区分大小写)

3.研究定长、不定长、是否补充空格

	'验证定长和变长特性'cahr_length() # 统计字段数据的长度create table ts7(id int ,name char(4));create table ts8(id int, name varchar(4));insert into ts7 values(1,'an');insert into ts8 values(2,'an');'验证是否补充了空格'# ps:char_length()获取字段存储的数据长度select char_length(name) from ts7;select char_length(name) from ts8;'''默认情况下MySQL针对char的存储会自动填充空格和删除空格然后再读取的时候优惠自动将填充的空格移除,如果想取消该机制需要设置严格模式。就可以看到填充了空格set global sql_mode='strict_trans_tables,pad_char_to_full_length'; 不区分大小写上述目录是替换,不是新增,所以之前的配置也要写上'''

在这里插入图片描述

4.char VS varchar

	char 优势:整存整取 速度快劣势:浪费存储空间varchar优势:节省存储空间劣势:存取数据的速度相较char慢'char与varchar的使用需要结合具体应用场景'

七、数字的含义

		数字大部分情况下都是用来限制字段的存储长度 但是整型除外不是用来限制存储的长度 而是展示的长度create table t13(id int(3)); create table t14(id int(3) zerofill);  # zerofill 表示如果数据没有填写超过三位则以0补充支三位总结以后涉及到整型字段的定义 类型后面不需要加括号写数字 除非有业务需求必须固定位数

在这里插入图片描述

八、字段类型之枚举与集合

	枚举多选一eg:性别(男 女 其他)create table ts9(id int,name varchar(32),gender enum('male','female','others'));'只能选择里面的内容,如果没有的则报错'insert into ts9 values(1,'jack','boy');insert into ts9 values(1,'jack','male');

在这里插入图片描述

	集合多选多(包含多选一)eg:爱好(看小说,音乐,篮球)create table ts10(id int,name varchar(32),hobby set('read','music','basketabll'));'''只能选择里面的内容,如果没有的则报错'''insert into ts10 values(1,'jack','jump');insert into ts10 values(1,'jack','music');insert into ts10 values(2,'tom','read,music');

在这里插入图片描述

九、字段类型之日期类型

	 datetime 	   date    time 	 year年月日时分秒  年月日  时分秒	  年create table ts11(id int,reg_time date,reg1_time datetime,reg2_time time,reg3_time year);insert into ts11 values(1,'2023-10-1','2023-11-11 11:11:11','11:11:11',2023);'ps:以后涉及到日期相关字段一般都是系统自动回去,无需我们可以操作'

在这里插入图片描述

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

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

相关文章

读高性能MySQL(第4版)笔记19_云端和合规性

1. 如何构建数据库环境 1.1. 托管MySQL 1.2. VM上构建 1.3. 天下没有免费的午餐,每一个选择都伴随着一系列的权衡 2. 托管MySQL 2.1. 服务商提供了一个可访问的数据库设置程序,而不需要用户深入了解MySQL的具体细节 2.2. 使用托管MySQL将缺乏很多的…

中国艺术孙溟㠭篆刻《绕绕》

孙溟展先生现在的这方篆刻作品,没有使用大篆和小篆文字来篆刻,彰显篆刻的金石魅力。一改以往的不同,以圆形组合设计,用篆刻的刀法刻出,即体现篆刻的美,又达到了作者想表达的感情。这方篆刻作品溟展先生起名…

2023/10/23 mysql学习

数据库修改 show databases; 展示所有数据库 create database 数据库名; 创建数据库 create database if not exists 数据库名; 如果未创建过当前数据库名则创建 drop database 数据库名; drop database if exists 数据库名;用法和创建类似 删除数据库 use 数据库名; 跳…

WPF十六(页面内嵌加载)

在WPF中进行页面内嵌的加载 当存在一定需求时,比如当前页面C左侧是一个A页面,右侧是一个B页面,A页面是一个公用页面时,此时只需要做内嵌A页面,然后B页面进行正常处理,既可以节省时间,又做到了WP…

nodejs+vue备忘记账系统-计算机毕业设计

本文首先介绍了备忘记账系统管理技术的发展背景与发展现状,然后遵循软件常规开发流程,首先针对系统选取适用的语言和开发平台,目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章…

【目标检测】非极大值抑制NMS的原理与实现

非极大值抑制(Non-Maximum Suppression,NMS)是目标检测中常用的一种技术,它的主要作用是去除冗余和重叠过高的框,并保留最佳的几个。 NMS计算的具体步骤如下: 首先根据目标检测模型输出结果,得…

Linux内核的基本工作原理和关键概念

Linux内核是操作系统的核心部分,负责管理系统的硬件资源、文件系统、进程管理、内存管理和设备驱动等功能。以下是有关Linux内核的基本工作原理和关键概念的概述: 1. 体系结构: - Linux内核支持多种硬件架构,包括x86、ARM、MI…

Plooks大型视频在线一起看网站源码

在前段时间,因为想和异地的朋友一起看电影,但是发现有电影的地方没有一起看功能,有一起看功能的视频网站没有电影,所以就想自己做一个一起看网站,于是就有了Plooks。 Plooks是一个完整的视频网站,其中包括…

SpringBoot Web请求响应

目录 前言请求PostmanPostman使用 简单参数原始方式接收普通参数SpringBoot方式接收普通参数参数名不一致问题 实体参数简单实体参数复杂实体对象 数组集合参数数组参数集合参数 日期参数JSON参数路径参数 响应ResponseBody统一响应结果请求响应案例案例需求与准备工作案例实现…

ubuntu实现自动挂载u盘和SD卡

编写shell脚本 vim /home/usb-mount.sh#!/bin/bashACTION$1 DEVBASE$2 DEVICE"/dev/${DEVBASE}"# See if this drive is already mounted MOUNT_POINT$(/bin/mount | /bin/grep ${DEVICE} | /usr/bin/awk { print $3 })do_mount() {if [[ -n ${MOUNT_POINT} ]]; the…

Rust所有权

文章目录 什么是所有权Stack vs Heap所有权规则变量作用域String类型内存与分配所有权与函数 引用与借用可变引用悬垂引用引用的规则 切片字符串切片其他类型的切片 什么是所有权 什么是所有权 所有程序在运行时都必须管理其使用计算机内存的方式: 一些语言中具有垃…

Mr.Alright---MTK安卓13 抬手亮屏功能的逻辑

该功能在系统设置-显示-拿起设备时唤醒 alps\vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\display\LiftToWakePreferenceController.javapublic boolean isAvailable() {SensorManager sensors (SensorManager) mContext.getSystemServ…

分库分表-ShardingSphere 4.x(2)

❤️作者简介:2022新星计划第三季云原生与云计算赛道Top5🏅、华为云享专家🏅、云原生领域潜力新星🏅 💛博客首页:C站个人主页🌞 💗作者目的:如有错误请指正,将…

小知识(6) el-table表格选中行和回显行(vue3)

el-table表格选中行和回显行 官方文档说明 https://element-plus.org/zh-CN/component/table.html#table-%E6%96%B9%E6%B3%95 环境&#xff1a;vue3element-plus 选中行selection <el-table ref"baseTableRef" row-key"id" border :selection"tr…

SpringBoot整合XXL-JOB详解

❤️作者简介&#xff1a;2022新星计划第三季云原生与云计算赛道Top5&#x1f3c5;、华为云享专家&#x1f3c5;、云原生领域潜力新星&#x1f3c5; &#x1f49b;博客首页&#xff1a;C站个人主页&#x1f31e; &#x1f497;作者目的&#xff1a;如有错误请指正&#xff0c;将…

12.4 组播鼠标批量执行

组播模式相比单播模式可以提高网络的效率和带宽利用率&#xff0c;因为组播数据包只需要发送一次&#xff0c;就可以被多个接收者接收&#xff0c;而不需要每个接收者都单独发送一份数据包。这在需要同时向多个接收者发送相同数据的场景下特别有用&#xff0c;如视频会议、在线…

【zookeeper】zk的ZAB原子广播协议

zk的ZAB原子广播协议来源于paxos算法[1]。paxos算法是一种基于消息传递的消息一致性算法&#xff0c;其特点是在可靠的通信环境下&#xff0c;可以保证消息的最终一致性。paxos要求每台server都持有自己的一个事务id的记录&#xff0c;这个事务id会每通过一个提议就自增加一&am…

矢量图形编辑软件 illustrator 2023 mac 中文软件特点

illustrator 2023 mac是一款矢量图形编辑软件&#xff0c;用于创建和编辑排版、图标、标志、插图和其他类型的矢量图形。 illustrator 2023 mac软件特点 矢量图形&#xff1a;illustrator创建的图形是矢量图形&#xff0c;可以无限放大而不失真&#xff0c;这与像素图形编辑软…

Ubuntu - sudo apt update 报错源问题解决方案

sudo apt update 报错…lease’ does not have a Release file. 反正就是觉得是网络的问题 尝试添加国内清华源、阿里源 不行 尝试DNS 为8.8.8.8&#xff0c;114.114.114.114 还是不行 解决方案&#xff1a;设置里面让 Ubuntu 找到适合自己的源 1、Settings -> About…

eval()函数的用法,计算字符串中的值,模板字符串进行计算

eval函数的定义&#xff1a; eval() 函数计算 JavaScript 字符串&#xff0c;并把它作为脚本代码来执行。 如果参数是一个表达式&#xff0c;eval() 函数将执行表达式。如果参数是Javascript语句&#xff0c;eval()将执行 Javascript 语句。 let a1 10; let a2 20; let calcu…