【java】MySQL复习

MySQL   -重点

数据类型

整型:

 tinyInt很小的整数(8位二进制)
smallint小的整数(16位二进制)
mediumint中等大小的整数(24位二进制)
int(integer)普通大小的整数(32位二进制)
bigint很大大小的整数(64位二进制)
小数类型float单精度浮点数
double双精度浮点数
decimal(m,d)压缩严格的定点数 m是总位数 d是小数位数
日期类型yearYYYY 1901~2155
timeHH:MM:SS -838:59:59~838:59:59
dateYYYY-MM-DD 1000-01-01~9999-12-3
datetimeYYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59
timestampYYYY-MM-DD HH:MM:SS 19700101 00:00:01 UTC~2038-01-19 03:14:07UTC
文本、二进制类型CHAR(M)M为0~255之间的整数 定长
VARCHAR(M)M为0~65535之间的整数 不定长 不要超过5000,性能变低
TINYBLOB允许长度0~255字节
BLOB允许长度0~65535字节
MEDIUMBLOB允许长度0~167772150字节
LONGBLOB允许长度0~4294967295字节
TINYTEXT允许长度0~255字节
TEXT允许长度0~65535字节
MEDIUMTEXT允许长度0~167772150字节
LONGTEXT允许长度0~4294967295字节
VARBINARY(M)允许长度0~M个字节的变长字节字符串
BINARY(M)允许长度0~M个字节的定长字节字符串

1.float和double的区别

float是4字节单精度   double是8字节双精度, 但是float和double都不是绝对精确

2.char和varchar的区别

CHAR(M)M为0~255之间的整数 定长
VARCHAR(M)M为0~65535之间的整数 不定长 不要超过5000,性能变低

char定长 以空间换时间   性能好

varchar  不定长,动态计算数据的实际长度  以时间换空间

varchar的性能没有char好但是varchar更节约空间

3.char(32)和varchar(32)括号里面的长度是字节还是字符

mysql   5.0版本之前是字节,假设字符集是UTF- 8 ,一个中文3个字节那么char(32)只能存储10个中文字符             之后改为字符

4.用什么数据类型存储金额

decimal(m,d)压缩严格的定点数 m是总位数 d是小数位数

数据库严禁使用float和double存储金额

        decimal定点数类型,绝对精确

        使用长整型存储到金额的最小单位

5.超长文本(博客、文章)怎么存储

严禁使用varchar存储超长文本,用Blob型或者Text存储,并且把超长文本从当前表中拆分独立使用一张表,与主表做外键连接,防止出现超长文本影响查询效率,超过5000看成超长文本

6.二进制文件(图片、音频、视频)怎么存储

mysql可以用BINARY(M)存储二进制文件  但是性能差,二进制文件直接以文件存储在磁盘,在数据库创建字段记录文件路径

7.MySQL的整型支持无符号,使用关键字UNSIGNED

age tinyint                       -- age 字段取值范围是-128到127

age tinyint unsigned            --age 字段取值范围是0-255

约束

1.非空约束  NOT NULL

2.检查约束 CHECK (MySQL不支持)

3.唯一约束 UNIQUE

4.主键约束 PRIMARY KEY

5.外键约束FOREIGN KEY

SQL分类- 语法整理(DDL | DML | DQL | DCL)

数据查询语言DQL(Data Query Language)

SELECT,FROM,WHERE,GROUP BY,ORDER BY

这个较为好理解 即查询操作,以select关键字。各种简单查询,连接查询等 都属于DQL。

数据操纵语言DML(Data Manipulation Language)

INSERT,UPDATE,DELETE

主要为以上操作 即对数据进行操作的,对应上面所说的查询操作 DQL与DML共同构建了多数初级程序员常用的增删改查操作。而查询是较为特殊的一种 被划分到DQL中。

事务控制功能TCL(Transaction Control Language)

 COMMIT,ROLLBACK

用于操作事务,以及事务的提交和回滚操作

数据定义语言DDL(Data Ddefinition Language)

CREATE,DROP,ALTER,show 

主要为以上操作 即对逻辑结构等有操作的,其中包括表结构,视图和索引。

数据控制功能DCL(Data Control Language)

GRANT,REVOKE,                                 

用来对数据库用户授予或回收访问数据库的某种权限。

连表查询的方式

关系类型和三范式、反三范式

数据库表关系 一对一 ,一对多(多对一),多对多

三范式 - 以时间换空间(增加关系来减少冗余数据)

反(打破)三范式 - 以空间换时间(允许适量的冗余数据,减少关系)

事务四大特性和四种隔离级别

锁的种类

死锁、如何防止死锁

索引

MySQL   -了解

存储引擎的区别

        InnoDB

        MyIsam

        Memory

关系型数据库与NoSQL(非关系型)数据库的区别

主流的关系型数据库:MySQL Oracle

主流的NoSQL数据库:Redis

MySQL和Redis的关系不是谁能替代谁,而是在数据量非常大,数据库并发操作非常频繁的情况下,可以通过Redis搭建缓存服务器分担MySQL的压力

视图、存储过程、存储函数、触发器

SQL语句优化、数据库优化的思路

数据库的冷热备份

冷备份 -停机(关闭数据库服务)后备份  - 此时服务不可用

热备份 - 不停机备份   -   此时服务可用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码老祖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值