查看MySQL提供的所有存储引擎命令:show engines


MySQL的默认存储引擎是InnoDB,它是事务性存储引擎

MyISAM与InnoDB的区别

  • 是否支持行级锁:MyISAM只具有表级锁,而InnoDB既具有行级锁也有表级锁
  • 是否支持事务和崩溃后的安全恢复:MyISAM强调性能,不支持事务

索引

MySQL使用的索引:BTree索引和哈希索引。需求为单条记录查询时,使用哈希索引

事务

  • 事务是逻辑上的一组操作,要么全都执行,要么都不执行
  • 事务的四大特性:原子性、一致性、隔离性、持久性
  • 并发事务带来的问题:脏读、丢失数据、不可重复读、幻读
  • 事务隔离级别:
脏读 不可重复读 幻读
读未提交 会发生 会发生 会发生
读已提交 不会发生 会发生 会发生
可重复读 不会发生 不会发生 会发生
序列化 不会发生 不会发生 不会发生

MySQL的默认隔离级别是可重复读

大表优化

当MySQL单表记录数过大时,数据库的CRUD性能会明显下降,一些常见的优化措施:

  • 限定数据范围:查询要带限定条件
  • 读写分离
  • 重复分区:将一个表竖着分成多张表
  • 水平分区

表的操作

1.DELET与DROP

  • DROP主要用于删除结构。如库、表;DELET用于删除数据
  • 二者都会释放空间

列属性(列约束)

Primary Key(主键):能唯一标识记录的字段,作为主键

特性:
  • 一个表只能有一个主键
  • 主键具有唯一性
声明方式:
  • 在声明字段时用primary key标识
  • 在字段列表之后声明:
create table tablename(id,name,...primary key(id))

UNIQUE唯一约束(唯一索引):使某个字段的值不可以重复

特性
  • UNIQUE约束唯一标识数据库的每条记录
  • 每个表可以有多个UNIQUE约束,但只能有一个主键
使用方式

创建表时指定UNIQUE

create table tablename(id,name,...unique(id))

NULL约束

comment:注释字段(comment “注释内容")

建表规范

Normal Format(NF)
  • 每个表保存一个实体信息
  • 每个具有一个ID字段作为主键
  • ID主键+原子表
1NF:字段不可再分,就满足第一范式
2NF:
  • 满足1NF的前提下,不能出现部份依赖
  • 消除复合主键可避免部分依赖
3NF:
  • 满足2NF的前提下,不能出现传递依赖
  • 传递依赖概念:某字段依赖主键,而其他字段依赖该字段

Select

select

  • 可用*表示所有字段
  • 可以使用表达式(计算公式、函数调用、字段也是表达式)
  • 可以用别名表示列名

where

  • 单筛选条件:使用运算符=、<、>、<>等
  • 多筛选条件:使用and、or等逻辑连词

having

  • 作用与where相同,但机制不同

having与where的区别

  • where是一个约束声明,使用where来约束来自数据库的数据
  • where是在结果返回之前起作用的
  • where中不能使用聚合函数
  • having是一个过滤声明,在查询到结果后对结果进行过滤

group by子句、分组子句

使用方式:

group by 字段/别名

特性:

  • 聚合函数要配合group by使用
  • 可以去除重复列

DISTINCT:去除重复列,返回不重复的列

使用方式:

select distinct 列名

order by子句:排序子句

使用方式:

order by 排序字段/别名  DES/ANS [排序字段/别名]

limit子句:限制结果数量子句

仅对处理好的结果进行数量限制
使用方式:

limit A,B

Java面试必备MySQL知识(一)相关推荐

  1. java面试必备小知识_Java面试应该准备的知识点系列一

    当然,我是想换个平台,换个方向,想清楚为什么要跳槽,如果真的要跳槽,想要拿到一个理想的offer,除了运气,基本功也要足够的扎实,希望下面的面试经验能给你们能够提供一些帮助. 项目经验 面试官在一开始 ...

  2. Java面试复习---MySQL(狂神版)

    Java面试复习---MySQL(狂神版) 前言 1.初始MySQL 1.1.为什么学习数据库 1.2.什么是数据库 1.3.数据库分类 1.4.MySQL简介 1.5.安装MySQL 1.6.安装S ...

  3. 超超超级详细的java入门必备基础知识

    一.JAVA运行机制 Java程序的运行必须经过编写.编译.运行三个步骤. 编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名为.java的Java源文件. 编译是指使用Java编译器(J ...

  4. 成功“拿捏”金三银四!汇总Java面试突击班知识

    最近很多同学已经成功"拿捏"了今年的面试,好多同学给老师说,最新版的Java面试突击班的内容给自己提供了很大的帮助,在这里很感谢这些同学对老师的认可,老师会持续奋战在Java教培的 ...

  5. CS 就业寒冬?这里有一份面试必备基础知识

    作者 | 阿司匹林 2017 年国家统计局发布消息称,2016 年信息传输.软件和信息技术服务业的平均工资为 122478 元,首次打败金融业成为新霸主,是全国城镇单位就业人员平均水平 57394 元 ...

  6. java面试宝典(综合知识)

    Java程序员面试题集 (对原有面试题集的答案进行了全面修订,参照了JDK最新版本,删除了重复题目以及EJB2.x等无用内容,补充最新面试题.知识点巩固练习题和经典面试编程题,增加了大型网站技术架构. ...

  7. Java面试必备技能

    前言 又到了一年一度的面试高峰期,想当年这会,博主也是疯狂的投简历,可能是运气比较好,一面即过,哈哈哈哈,在这里,给大家总结一下,面试互联网公司必会的一些技能,这里只针对刚毕业的小伙伴,高手勿喷. J ...

  8. 准备Java面试?mysql用户远程访问授权

    第1章 初识Redis 初识Redis,带领读者进入Redis的世界,了解它的前世今生.众多特性.应用场景.安装配置.简单使用,最后对Redis发展过程中的重要版本进行说明,可以让读者对Redis有一 ...

  9. Java面试必备的集合源码详解,砥砺前行!

    一面(一个小时左右) 算法:写冒泡排序,问如何优化,简单讲了快排和堆排序的原理 数据库:解释左连接 数据库第一第二第三范式,数据库死锁 linux:怎么查看内存:怎么查看进程,ps命令一般在什么情况下 ...

最新文章

  1. 如何查看机器是否为vmware虚拟机
  2. NOIP2020洛谷P7115:移球游戏(分治)
  3. 动态卡片:富媒体内容井喷式增长下,新一代移动端动态研发的模式
  4. Flash of Unstyled Content (FOUC)
  5. c#自定义可拖动变形控件
  6. BiERU: Bidirectional Emotional Recurrent Unitfor Conversational Sentiment Analysis(20.12.10)
  7. 在Linux系统下制作U盘启动盘
  8. 数据可视化图表插件_7个最佳数据可视化WordPress插件(图表和图表)
  9. php thinkadmin自定义一个弹出弹窗批量操作功能
  10. zzulioj1008: 美元和人民币
  11. Shopee平台集成化智能多店管理系统选“shopeeman”
  12. canopen pdo通信c语言,CANopen通信之PDO通信
  13. java 无法找到ant_命令行Ant无法识别
  14. 解决服务器上MSDTC不可用的办法
  15. APP推广的十大法宝,快速提升APP的转化率
  16. 公钥密码体系基于的数学难题
  17. mysql2000清除挂起工具_安装SQL SERVER2000提示注册表文件被挂起的解决方案
  18. ZYNQ 图像处理之千兆网传(一)【寄存器级操作】
  19. 无偏估计、有效性、相合性
  20. 使用Xshell远程下载文件到本地

热门文章

  1. Unity3D3个录屏插件PC,Android,IOS都有
  2. 如何设置打开PDF是固定页面比例
  3. 几大网络电话网站用户体验评测
  4. STM32入门开发: 编写DS18B20温度传感器驱动(读取环境温度、支持级联)
  5. 小米5miui10android,小米又一款手机适配Android 10!MIUI开发版暂停,米粉别着急!...
  6. Mysql连接查询主要分为三种:内连接、外连接、交叉连接
  7. 自动识别移动端电脑端的asp支付宝接口代码带ACCESS数据库版 2018版最新
  8. arduino UNO 与 超声波测距模块 实验详情
  9. 英语发音之音标11---总结()
  10. json解析函数c语言,C语言解析json类型数据