数据库的存储引擎,数据类型,约束条件,严格模式

【一】存储引擎
1.什么是存储引擎存储引擎可以理解为处理数据的不同方式
2.查看存储引擎show engines;
3.须知的引擎MyISAM5.5之前版本MySQL默认的存储引擎特点:存取数据的速度快 但是功能很少 安全性较低速度快因为自带索引InnoDB5.5之后版本MySQL默认的存储引擎特点:有诸多功能 安全性较高 存取速度没有MyISAM快BlackHole(吃数据的黑洞)任何写入的数据都会立刻消失(类似于垃圾回收处理站)Memory(比作是缓存)以内存作为数据存取地 速度快但是断电立刻丢失 
4.自定义选择存储引擎语句create table t1(id int)engine=myisam;
【二】各个引擎的特点
1.innodb引擎frm : 存储的表结构ibd : 存储表的数据特点:存储数据持久化存储退出也存在
2.myisam引擎frm : 存储的表结构MYD : 表的数据MYI : 表的索引结构特点:存储数据持久化存储,退出也存在
3.blackhole引擎frm :存储的表结构特点:存储数据不会有任何反应,不会存储任何数据
4.memory引擎frm:存储的表结构特点就是基于内存存储,只要服务重启,所有数据丢失
【三】创建表的完整语法
create table 表名(字段名1 字段类型(数字) 约束条件,字段名2 字段类型(数字) 约束条件,字段名3 字段类型(数字) 约束条件
);
1.字段名和字段类型是必须的
2.数字和约束条件是可选的
3.约束条件可以写多个 空格隔开即可(后面详细讲解)字段名1 字段类型(数字) 约束条件1 约束条件2 约束条件3
4.最后一行字段结尾不能加逗号极其容易被忽略!!!
【四】约束条件(null)
约束条件之为空和不为空---》意思为这个字段的数据可以空还是不空
【五】严格模式
它要求数据库在执行某些操作时遵循更严格的规则和限制
sql_mode(严格模式)
show variables like "%mode";
show variables like "_mode";%匹配任意个字符_只能匹配单个字符
-- 临时修改 : 退出客户端重新连接,修改后严格模式还是原来的
set session sql_mode = 'STRICT_TRANS_TABLES'
-- 永久修改 : 退出客户端重新连接,严格模式修改会一直生效
set global sql_mode = 'STRICT_TRANS_TABLES'
【六】数据类型
【1】整型
整数类型字节无符号数的取值范围有符号数的取值范围
TINYINT10~255-128~127
SMALLINT20~65535-32768~32767
MEDIUMINT30~16777215-8388608~8388607
INT40~4294967295-2147483648~2147483647
BIGINT80~18446744073709551615-9223372036854774808~9223372036854774807
1.是否有符号 默认情况下是带符号的
2.超出最大范围会如何 超出限制只能存最大接受值
3.字段类型后面跟着的宽度只是显示的宽度int(4)只显示四位
4.插入的长度是按照谁,当前字段的最大长度进行限制
5.约束条件之 zerofill会左填充0直到满足我所给的长度,比我所给的长度长只要没超限制显示不用填充
【2】浮点型
数据类型字节数取值范围
FLOAT4-2^128~2 ^128,即-3.40E+38~+3.40E+38
DOUBLE8-2^1024~ 2^1024,即-1.79E+308~1.79E+308
DECIMAL设置位数和精度。65 ~ 30
  decimal>double>float
"""
虽然三者精确度有差距 但是具体用哪个应该结合实际情况比如正常业务 使用float足够如果是高精尖 可以使用decimal
"""
【3】字符
1.char定长,给长度 4 位,超出会报错,不够默认用空格补全,前提是严格模式开启
2.varchar变长,给 4 个长度,超过四个直接报错,有几个存几个
比较:
(1)char
缺点:浪费空间
优点:存储简单 
直接按照固定的字符存储数据即可
(2)varchar
优点:节省空间
缺点:存储麻烦 
存的时候,在真正数据的前面加报头(表示数据真正大小)
取的时候,需要先读取报头,才能读取真实的数据
【4】日期时间类型
date : 年月日
datetime : 年月日时分秒
time : 时分秒
year : 年份
mysql> create table student(->  id int,->     name varchar(16),->     born_year year,->     birth date,->     study_time time,->     reg_time datetime-> );
insert into student values(1,'dream','2024','2024-5-31','11:11:11','2023-6-30 11:11:11'
);
【5】枚举和集合类型
枚举:多选一 用枚举类型给多个备选项,但是你只能选一个 enum
集合:多选多 用集合类型给多个备选项,但是你能选多个 set
1.枚举类型 enum:
create table user(id int,name char(16),gender enum('male','female','others')
);
insert into user(id,name,gender) values(1,'dream','male');插数据的时候再枚举选项中选一个否则会报错
2.集合类型 set
create table teacher(id int,name varchar(16),gender enum('male','female','others'),hobby set('read books','listen music','play games')
);
insert into teacher values(2,'chimeng','female','read books,listen music'
);
【七】MySQL中有哪些约束条件
1.约束条件之 zerofill会左填充0直到满足我所给的长度,比我所给的长度长只要没超限制显示不用填充
2.null或not null插入的数据是否可以为空
3.DEFAULT(默认约束)为列指定默认值,当插入新记录时,如果没有为该列指定值,则使用默认值。
4.UNIQUE(唯一约束),确保列中的所有值都是唯一的。
注意:唯一约束允许NULL值,但最多只能有一个NULL值。
5.PRIMARY KEY(主键约束),唯一标识表中的每一行数据,确保主键列中的值唯一且不为NULL。
注意:一个表只能有一个主键,但主键可以由多个列组成(复合主键)。
6.FOREIGN KEY(外键约束),用于限制两个表之间的关系,确保从表中的外键值在主表中存在。
注意:外键约束指向的表必须存在一个对应的主键或唯一约束。
7.CHECK(检查约束),规定一个必须为真的逻辑条件,确保插入到表中的所有数据都满足这个条件。
注意:MySQL 8.0.16及以后版本开始支持CHECK约束。

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

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

相关文章

工程施工合同无效但竣工交付,应当参照合同关于工程价款的约定计算折价补偿款

审判实践中,对于建设工程施工合同无效但工程竣工并交付使用的,应以何种标准计算折价补偿款的问题,认识不一致。【法官会议意见】:建设工程施工合同是承包人进行工程建设、交付工作成果即建设工程并由发包人支付价款的合同。建设工…

httpd目录显示乱码问题

vim /etc/httpd/conf/httpd.conf 在<Directory “/var/www/html”>下添加&#xff1a; IndexOptions CharsetUTF-8重启httpd: systemctl restart httpd.service还是不好看&#xff0c;调整下显示宽度&#xff0c;还是这个位置&#xff1a; <Directory “/var/www/ht…

区块链论文速读A会-ISSTA 2023(2/2)如何检测DeFi协议中的价格操纵漏洞

Conference&#xff1a;ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA) CCF level&#xff1a;CCF A Categories&#xff1a;Software Engineering/System Software/Programming Languages Year&#xff1a;2023 第1~5篇区块链文章 请点击此…

09视图,触发器,事务,存储过程,函数,流程控制,索引,隔离机制,锁机制,三大范式

【一】视图 (1)视图须知概念 1.什么是视图&#xff1f; 视图就是通过查询得到一张虚拟表&#xff0c;然后保存下来&#xff0c;下次可以直接使用 2.为什么要用视图&#xff1f; 如果要频繁操作一张虚拟表(拼表组成)&#xff0c;就可以制作成视图&#xff0c;后续直接操作 注意…

IDEA 创建springboot项目杂记-更新中

一、工具使用杂记 1、使用maven 创建新springboot项目时&#xff0c;因为https://start.spring.io/ 连接不上项目无法创建。直接把脚手架地址换为国内的 http://start.aliyun.com

田忌赛马 贪心

本题是更难的那道,一场50 最低为o 第一行一个整数 &#x1d45b;n &#xff0c;表示他们各有几匹马&#xff08;两人拥有的马的数目相同&#xff09;。第二行 &#x1d45b;n 个整数&#xff0c;每个整数都代表田忌的某匹马的速度值&#xff08;0≤0≤ 速度值 ≤100≤1…

Python】从文本字符串中提取数字、电话号码、日期、网址的方法

关于从文本字符串中提取数字、电话号码、日期和网址的方法&#xff1a; 提取数字&#xff1a; 在 Python 中&#xff0c;使用正则表达式 \d 来匹配数字。 \d 表示匹配一个数字字符&#xff08;0-9&#xff09;。如果要匹配连续的数字&#xff0c;可以使用 \d 。 import re def …

C++面向对象的常见面试题目(一)

1. 面向对象的三大特征 &#xff08;1&#xff09;封装&#xff1a;隐藏对象的内部状态&#xff0c;只暴露必要的接口。 #include <iostream> #include <string>// 定义一个简单的类 Person class Person { private: // 私有成员&#xff0c;外部不可直接访问std…

Mac OS ssh 连接提示 Permission denied (publickey)

这错误有点奇葩&#xff0c;MacBook的IDE(vscode和pycharm)远程都连不上&#xff0c;terminal能连上&#xff0c;windows的pycharm能连上&#xff0c;见鬼了&#xff0c;所以肯定不是秘钥的问题了&#xff0c;查了好久竟然发现是权限的问题。。 chmod 400 ~/.ssh/id_rsa http…

华为机试HJ37统计每个月兔子的总数

华为机试HJ37统计每个月兔子的总数 题目&#xff1a; 想法&#xff1a; 上述题目实际是一个斐波那契数列&#xff0c;利用斐波那契数列对问题进行求解 input_number int(input())def fib(n):if n < 2:return 1else:n_1 1n_2 1count 2while count < n:n_1, n_2 n_…

【Android】【多屏】多屏异显异触调试技巧总结

这里写目录标题 如何获取多屏IDs获取多屏的size/density如何启动应用到指定DisplayId多屏截屏/录屏screencapscreenrecord发送按键到指定DisplayId 如何获取多屏IDs dumpsys display | grep mDisplayIdtrinket:/ # dumpsys display | grep mDisplayIdmDisplayId0mDisplayId2 t…

【AI资讯】可以媲美GPT-SoVITS的低显存开源文本转语音模型Fish Speech

Fish Speech是一款由fishaudio开发的全新文本转语音工具&#xff0c;支持中英日三种语言&#xff0c;语音处理接近人类水平&#xff0c;使用Flash-Attn算法处理大规模数据&#xff0c;提供高效、准确、稳定的TTS体验。 Fish Audio

区块链技术的应用场景和优势。

区块链技术具有广泛的应用场景和优势。 区块链技术的应用场景&#xff1a; 1. 金融服务&#xff1a;区块链可用于支付、跨境汇款、借贷和结算等金融服务&#xff0c;提高交易效率、降低成本并增强安全性。 2. 物联网&#xff08;IoT&#xff09;&#xff1a;区块链可以用于物…

机器学习Day12:特征选择与稀疏学习

1.子集搜索与评价 相关特征&#xff1a;对当前学习任务有用的特征 无关特征&#xff1a;对当前学习任务没用的特征 特征选择&#xff1a;从给定的特征集合中选择出相关特征子集的过程 为什么要特征选择&#xff1f; 1.任务中经常碰到维数灾难 2.去除不相关的特征能降低学习的…

Git注释规范

主打一个有用 代码的提交规范参考如下&#xff1a; init:初始化项目feat:新功能&#xff08;feature&#xff09;fix:修补bugdocs:文档&#xff08;documentation&#xff09;style:格式&#xff08;不影响代码运行的变动&#xff09;refactor:重构&#xff08;即不是新增功能…

NodeJs获取文件扩展名

path.extname 是 Node.js 路径模块 (path) 中的一个方法&#xff0c;用于获取文件路径的扩展名。扩展名是指文件名中最后一个 .&#xff08;点&#xff09;之后的部分&#xff0c;包括这个 .。 const path require(path);const filename example.txt; const ext path.extna…

计算机网络之令牌环

1.令牌环工作原理 令牌环&#xff08;Token Ring&#xff09;是一种局域网&#xff08;LAN&#xff09;的通信协议&#xff0c;最初由IBM在1984年开发并标准化为IEEE 802.5标准。在令牌环网络中&#xff0c;所有的计算机或工作站被连接成一个逻辑或物理的环形拓扑结构。网络中…

排序(2)

我们在排序&#xff08;1&#xff09;中说到选择排序的代码&#xff1a; void SelectSort(int* a,int n) {int begin0,endn-1;int minibegin,maxbegin;for(int ibegin1;i<end;i){if(a[i]>a[max]){maxii;}if(a[i]<a[mini]){minii;}begin;--end;}Swap(&a[beign],&a…

SKF轴承故障频率查询

1&#xff0c;第一步&#xff1a;搜索轴承型号 skf官网 2&#xff0c;第二步&#xff1a;查询故障频率。 第三步&#xff1a;

尚品汇-(十四)

&#xff08;1&#xff09;提交git 商品后台管理到此已经完成&#xff0c;我们可以把项目提交到公共的环境&#xff0c;原来使用svn&#xff0c;现在使用git 首先在本地创建ssh key&#xff1b; 命令&#xff1a;ssh-keygen -t rsa -C "your_emailyouremail.com" I…