Mysql知识点

目录

1.数据库管理系统(DBMS)

2.数据库

1) 分类

3. MySQL

 4.数据类型

1)数值类型

2)字符串类型

3)时间类型

5.sql的语言

6.DQL

 7.sql的加载顺序       

8.函数    

9.数据库的约束

 10.存储引擎

11.事务

3)事务的sql

 4)***事务的ACID特性

5)***事务的隔离级别

6)事务的并发问题

12. 视图 view

13.存储过程

14.索引


1.数据库管理系统(DBMS)

是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库。它对数据库进行统一的管理控制,以保证数据库的安全性和完整性。用户通过dbms访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。

2.数据库

长期存放在计算机内,有组织可以共享的大量数据的集合

1) 分类

关系型数据库:Oracle,SQL Server,MySQL

非关系型数据库:hbase

3. MySQL

1)是一个数据库管理系统

2)特点:免费开源,关系型,轻量级,使用方便

3)安装:尽量按照文档步骤安装

 4.数据类型

1)数值类型

tinyint      

非常小的数据  1字节

smallint

较小的数据2字节

mediumint

中等大小的数据3字节

int

标准整数4字节
bigint较大的整数8字节

float

单精度浮点数4字节

double

双精度浮点数8字节

decimal

字符串形式的浮点数M+2个字节

2)字符串类型

字符串类型说明长度
char[(M)]定长字符串M字节
varchar可变字符串可变长度
tinytext微型文本串0~2的8–1次方 字节
text文本串0~2的16–1次方 字节

3)时间类型

日期类型格式
dateYYYY-MM-DD,日期格式
timehh:mm:ss
datetimeYY-MM-DD  hh:mm:ss
timestampYYYYMMDDHHMMSS,时间戳
yearYYYY格式的年份

5.sql的语言

1)DDL(数据定义语言)

        对数据库和表进行增删改查

        增:create        删:drop        改:alter        查:show

2)DML(数据操作语言)

        对具体表内的数据进行增删改操作

        增:insert        删:delete        改:update

3)DQL(数据查询语言)

        对表中数据进行查询操作

        查:select

4)DCL(数据控制语言)

        管理数据库的语言,包括管理权限及事务操作等

        权限:GRANT,提交:COMMIT,回滚:ROLLBACK

6.DQL

    a.普通查询

    b.条件查询  where having

    c.模糊查询  like   %(0-多个任意字符)    _(1个字符)

    d.连接查询 join 表  on 连接条件

        inner join,left outer join,right outer join

    e.子查询(嵌套查询)

 7.sql的加载顺序       

 关键词:

      select xxx 可以存在聚合函数

        from xxx

           join xxx on xxx

        where 不包含聚合函数的过滤条件

        group by xxxxx,xxx

        having 包含聚合函数的过滤条件

        order by xxx (ASC/DESC)

        LIMIT

    顺序:

      from - join on - where - group by

           - hiving - select - order by limit

8.函数    

    a.普通函数:ifnull,floor,rand,abs,ceiling,cast...

    b.聚合函数:sum,avg,count,max,min....

    c.开窗函数:MySQL 8版本支持开窗函数

9.数据库的约束

    创建数据库表的时候不能随意创建,必须遵守默认规定 

名称关键字说明

非空约束

not null

字段不允许为空

唯一约束

UNIQUE KEY(UK)

当前字段值不能重复

主键约束

primary key

当前表的主键,必须是唯一且非空的

复合主键primary key使用两个字段同时作为主键,放在一起唯一才是唯一
外键约束FOREIGN KEY

保证数据的一致性和完整性

默认值约束

DEFAULT

此子段不给值的时候使用的默认值

自动增长AUTO_INCREMENT设置该列为自增字段  默认每条自增1  通常用于设置主键
检查约束mysql不支持

 10.存储引擎

1)存储数据的核心的规则

        a.同一个数据库,不同的表,可以使用不同的存储引擎

        b. 建表的时候可以指定存储引擎

2)常用的存储引擎:InnoDB(默认),Memory(内存存储,不涉及磁盘(优点:速度快,缺点:不安全)),MyISAM

3)不同的存储引擎有不同的存储规则

5)适用场合  

        a.使用MyISAM:   不需事务,空间小,以查询访问为主  

        b.使用InnoDB:     多删除、更新操作,安全性高,事务处理及并发控制

 4)存储索引之间的区别

名称InnoDB(64G)MyISAM(256G)
事务处理支持不支持
数据行锁定支持不支持
外键约束支持不支持
全文索引不支持支持
表空间大小较大,约2倍较小

11.事务

1)事务:事务是一个或多个事件(SQL)的集合,要么都做(执行)要么都不做(执行)

2) mysql中的事务是自动提交,oracle中是手动提交

3)事务的sql

事务sql
开始事务

begin / start transaction

提交事务

commint

回滚(撤销)事务

rollback

关闭/开启自动提交状态

(值为0:关闭自动提交 | 值为1:开启自动提交)

set autocommint=0|1

设置检查点

 savepoint x

 4)***事务的ACID特性

      a.原子性(A):事务被认定为一个不可分割的单元

      b.一致性(C):状态保持一致。体现在外键表和主表的关系中

      c.持久性(I):事务commit之后是不可以回滚的,永久有效

      d.隔离性(D):不同事务之间不会互相干扰

5)***事务的隔离级别

只有支持事务的存储引擎才可以定义隔离级别

事务隔离级别

脏读

不可重复读

幻读

读未提交(read-uncommitted)也叫脏读

不可重复读(read-committed)也叫读已提交

可重复读(repeatable-read)默认级别

串行化(serializable)

6)事务的并发问题

(1)多个用户同时操作事务,可能出现的问题

 a.丢失更新:不同事务对同一个数据进行更新,后提交的数据覆盖了之前提交的数据

b.脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据 ( 隔离级别read-uncommitted )

c.不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。( 隔离级别 read-committed  解决了脏读 )

d.幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。

小结:不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的,解决幻读需要锁

(2) 锁:解决并发产生的问题 

a.不同的存储引擎支持不同的级别锁

行锁表锁页锁
InnoDB        √
MyISAM
MEMORY
BDB

           开销、加锁速度、死锁、粒度、并发性能

表锁:开销小,加锁快;不会出现死锁;锁定力度大,发生锁冲突概率高,并发度最低

行锁:开销大,加锁慢;会出现死锁;锁定粒度小,发生锁冲突的概率低,并发度高

页锁:开销和加锁速度介于表锁和行锁之间;会出现死锁;锁定粒度介于表锁和行锁之间,并发度一般

b.乐观锁和悲观锁

乐观锁:先进性业务操作,操作完,获取锁

悲观锁:先获取锁,在进行操作

12. 视图 view

把麻烦的需要多次操作的完整语句用视图进行表示

1)虚拟表(临时表),通常是作为执行查询的结果而创建的,便于快速检索数据

2)创建视图:CREATE VIEW

3)表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上

4)常用索引:普通索引、唯一索引、主键索引、复合索引、全文索引、 空间索引

13.存储过程

用sql编程

14.索引

1)提高检索速度,改善数据库性能

2)分类:普通索引、唯一索引、主键索引、复合索引、复合索引、空间索引

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值