1、事务

mysql事务是用于处理操作量大、复杂性高的数据

    1. 事务特性

        原子性:保证每个事务所有操作要么全部完成或全部不完成,不可能停滞在中间环节;如事务在执行过程中出现错误,则会回滚到事务开始之前状态。

        一致性:事务开始结束后保证数据库的完整性没有被破坏,数据都是按照数据库要求的规范写入。

        隔离性:数据库允许多个事务同时对数据进行读写改操作,隔离性则可以防止多个事务由于交叉执行时导致数据不一致;事务中隔离分为4个级别。【出现:√ 不会出现:×】

 
脏读
不可重复读 幻读
读未提交
读已提交
可重复读
串行化

        

        持久性:事务提交后对数据库中的修改则是永久性的。

    2. 事务并发时出现的问题

     脏读:一个事务在处理过程中读取了另一个未提交的事务数据,当未提交的数据提交后,最终导致数据不一致。

        不可重复读:一个事务在多次进行查询返回数据时,另一个事务将数据修改后提交,导致前事务数据产生不同的结果。

        幻读:A事务将数据修改完毕时,同一时间B事务新增一条数据,A事务提交后查询发现还有一条数据没有进行修改,好似产生幻觉一样则为幻读。

  3、索引

    索引能加快数据库的查询速度并高效获取指定的数据。

    • 优势

      • 提高数据检索效率,降低数据库IO成本
      • 通过索引列可以对数据进行排序,降低CPU消耗
    • 劣势
      • 占据磁盘空间
      • 降低更新表的效率
1. 索引使用

代码如下

        创建索引
普通索引:
create index 索引名称 on 表名(列名) 其他索引(举例唯一索引unique):
公式:
create unique index 索引名称 on 表名(列名)
实例:
create table Demo(id int,
name varchar(20),
sex int,
unique index Demo_id(id ASC));
删除索引
删除:
公式:
drop index 索引名 on 表名;
实例:
drop index Dmoe_id on Demo;
2. 索引类型
    • 主键索引:对主键进行索引,主键不允许空值。
    • 普通索引:默认类型,无限制,允许定义索引时有重复值和空值。
    • 唯一索引:专注于对唯一类型数据进行索引,允许空值。 
    • 全文索引:用于数值比较、范围过滤、关键字匹配的范围性快速查询。 
    • 联合索引:多列值组成索引,用于多列组合查询。

       
4、SQL语法&关键字

SQL是一种结构化查询语言,用于对数据进行插入、查询、更新、删除操作来管理数据库系统。

    • insert into:数据插入操作,语法为insert into 表名(列1,列2)value(值1,值2),插入时列名和值需要一一对应。
    • select from:数据查询操作,语法为select * from 表名;*则代表全部列名,可通过输入列名来查询特定数据。
    • update set:更新操作,语法为update 表名 set 条件A where 条件B,条件A为修改条件,条件B为修改操作。
    • delete from:删除操作,语法为delect from 表名 where 条件A,条件A为删除条件。
    • where:用于sql中条件判断、条件过滤等操作。
    • having:类似于where,一般使用于group by之后,与where区别在于where过滤行,having过滤组。
    • like:用于模糊查询,主要只针对于“字符型”字段,常用"_"和"%"这两种通配符,前者充当占位符,后者代表匹配任意字符。
    • order by:用于数据排序,常用ASC升序排列和DESC降序排列。
    • group by:用于对字段进行分组。
    • not:用于判断表达式真假,类似于java语言中boolean。
    • and:用于在where子句后面将多个条件结合起来。
    • between:用于取两个值之间的数据范围。
    • lnner join:内连接,多表连接时只会显示满足条件的数据结果。
    • left join:左连接,多表连接时只会以左表为基准显示左表全部数据,右表只会显示对应数据,若无对应数据显示null。
    • right join:右连接,与左连接相反;多表连接时只会以右表为基准显示左表全部数据,左表只会显示对应数据,若无对应数据显示null。
    • in:用于嵌套语句查询,常用语子查询中。
5、数据库设计
1. 数据库三大范式
    • 每个字段具有原子性不可再分。
    • 建立在第一范式的基础上,确保数据库表列中只保存一种数据,不可以把多种数据保存在一个数据库表列中。
    • 建立在地二范式的基础上,数据不能存在传递关系,数据库中每个字段和主键都是直接关系。
2. 数据库规范设计
    • 系统需求分析
    • 概念结构设计
    • 逻辑结构设计
    • 物理结构设计
    • 数据库实施
    • 数据库运维

最新文章

  1. ASP.NET Core 中文文档 第四章 MVC(4.3)过滤器
  2. java基础知识小总结【转】
  3. 2016-2017 ACM-ICPC, NEERC, Moscow Subregional Contest
  4. JavaScript挑战复杂报表——1总述
  5. SpringMVC实现一个controller里面有多个方法
  6. URL的语法及HTTP报文
  7. [LeetCode] 204. Count Primes 解题思路
  8. 一张图看懂dex
  9. (转)Java 的swing.GroupLayout布局管理器的使用方法和实例
  10. Hive函数:CUME_DIST,PERCENT_RANK
  11. Git常用命令集锦
  12. 【转】android笔记--保存和恢复activity的状态数据
  13. day10学习笔记整理
  14. 数据库连接池DBUtils使用
  15. PHP 调用ffmpeg
  16. Json中相同或者重复记录的值相加组成新的Json
  17. sqlite数据库部署到服务器上的问题
  18. ADC相关参数之---分辨率和精度
  19. redis-server.exe双击闪退 win10系统
  20. ubuntu16.04 64位安装tftp服务器

热门文章

  1. JUC之线程间的通信
  2. 在Apache上用mod_wsgi部署Flask (python 3.8, Ubuntu)
  3. Elasticsearch单机安装Version7.10.1
  4. 大厂必问的JVM面试题
  5. Spring @Valid 和 @Validated 的区别和使用
  6. 03.python封装与解构
  7. WebLogic任意文件上传漏洞(CVE-2019-2725)
  8. Python多线程、线程池及实际运用
  9. SSRF漏洞用到的其他协议(dict协议,file协议)
  10. Web开发之Servlet