Mysql总结思维导图
- 格式:xmin
- 大小:8.23 KB
- 文档页数:1
MySQL基础快速⼊门知识总结(附思维导图)⽬录前⾔⼀.数据库基础知识1.什么是数据库2.数据库的分类3.数据库的常⽤语⾔4.数据库的常⽤操作⽅式5.MySQL的架构⼆.数据库的增删改查1.创建数据库2.查询数据库3.修改数据库4.删除数据库三.表的增删改查1.创建表2.查询表3.修改表4.删除表四.记录的增删改查1.插⼊记录2.查询记录(最常⽤)3.修改记录4.删除记录五.字段类型1.数字型1.1整数型1.2⼩数型2.⽂本型3.⽇期时间六.字段属性总结前⾔本⽂是我这段时间⾃学MySQL之后,⾃⼰总结的⼀些MySQL的⼊门基础知识.我⾃⼰⽤的是MySQL 5.7.⼀.数据库基础知识1.什么是数据库数据库是按照⼀定数据结构,进⾏组织,存储,管理数据的仓库数据的仓库,是⼀种对⼤量信息进⾏管理的⾼效解决⽅案.数据库系统DBS=数据库DB+数据库管理系统DBMS.2.数据库的分类数据库的分为关系型数据库和分关系型数据库.关系型:是建⽴在关系模型上的数据库,关系模型顾名思义就是⼆维表模型,⽤来记录实体和实体与实体信息之间的关系信息.常见的关系型数据库有Oracle ,MySQL ,SQL Server.⾮关系型数据库:不建⽴在关系模型上的数据库.主要有MongoDB Redis3.数据库的常⽤语⾔数据库系统DBS结构化查询语⾔SQL数据库DB数据库管理系统DBMS表table⾏row => 记录record列column => 字段field4.数据库的常⽤操作⽅式DOS命令:连接远程主机:mysql -h 主机名/IP地址 -P端⼝号 -u ⽤户名 -p 密码连接本机主机:mysql -u⽤户名 -p密码客户端(可视化软件):Navicat代码:Web⽹页:PHPMyAdmin5.MySQL的架构C/S架构:服务端管理和存储数据客户端发送操作请求⼆.数据库的增删改查1.创建数据库#创建数据库的语法create database `库名` charset=utf8/gbk;创建数据库前,需要先连接进数据库,可以⽤⾃⼰的本地数据库练习.2.查询数据库#查询所有数据库show databases;#按条件查询like ,其中%表⽰任意多个字符,-表⽰任意⼀个字符.create databases like '%-';#查询建库语句show create database;3.修改数据库#修改数据库(仅能修改选项,也就是字符集这些)alter database `库名` [新选项];4.删除数据库#删除数据库(语法很简单,但后果很严重.⼀般你也没有权限,哈哈.)drop database `库名`;三.表的增删改查1.创建表#创建表前,先指定数据库use `指定库名`;#创建表的create table `表名`(`字段1` 字段1类型字段1属性,...`字段N` 字段N类型字段N属性);[选项]其中的选项主要包括三⼤类:1. 字符集 charset=utf8 / GBK …2. 数据引擎 engine=innodb / mysiam3. 备注 comment='‘备注内容''其它的字段类型和字段属性,后⾯有详细写到.2.查询表#查询所有表show tables;#条件查询show tables like '%-';#查询表结构desc `表名`;#查询建表语句show create table `表名`;3.修改表#修改表选项alter table `表名` [新选项];#修改表名rename table `旧表命` to `新表名`;#修改表内的字段alter table `表名` change `旧字段名` `新字段名` 新字段类型; #添加新字段到字段末尾alter table `表名` add `新字段名` 类型属性;#添加字段到对应字段后alter table `表名` add `新字段名` 类型属性 after `对应字段` #添加字段到最前⾯alter table `表名` add `新字段名` 类型属性 first;4.删除表#如果表存在,则删除表,否则报错drop table [if exists] `表名`;四.记录的增删改查1.插⼊记录#插⼊记录insert into `表名`(`字段1`,...`字段`) values('值1',...,'值N');#当⼀次传⼊所有值时,可以省不写字段insert into `表名` values('值1',...,'值N');#当需⼀次传⼊多条记录时insert into `表名`(`字段1`,...`字段`) values('值1',...,'值N'),('值1',...,'值N'),...,('值1',...,'值N');#当需⼀次传⼊多条记录,且字段全传⼊时insert into `student` values(值列表1),(值列表2),(值列表n); 2.查询记录(最常⽤)#查询语法select [选型] 字段列表 as 别名 from `表名` where 条件表达式;1、条件表达式:逻辑运算符:and or not⽐较运算符:+ - * / < > = !=2、选项:all:查询所有,不写默认就是所有distinct:去重.重复指查询后的数据⾥,记录的所有字段全部相同,才认定为重复.as:别名.给查询后的字段设置⼀个别名,⽅便查阅.常见的聚合函数:count(),Max(),Min(),Sum(),avg()3、连表查询 join1.内连接 inner join#将参与连接的两个表中符合连接条件的记录查询出来,不符合的过滤掉.select * form `表1` inner join `表2` on 连接条件;2.左外连接 left Join#将参与连接的左表中即使不能匹配连接条件的记录也会查询出来,右表不符合的过滤掉select * from `表1` left join `表2` on 连接条件;3.右外连接 right join#将参与连接的右表中即使不能匹配连接条件的记录也会查询出来,左表不符合的过滤掉select * from `表1` right join `表2` on 连接条件;3.修改记录#语法update `表名` set `字段`='新值' where 条件表达式;4.删除记录#语法delete from `表名` where 条件表达式;五.字段类型1.数字型1.1整数型tinyint:占⽤⼀个字节,⼀共能表⽰256个数有符号:-128~127⽆符号:0~255int:占⽤4个字节有符号:-21亿~21亿⽆字符:0~42亿1.2⼩数型浮点数:float(M,D):单精度浮点数double(M,D):双精度浮点数定点数:decimal(M,D):数据不会丢失的⼩数类型,常⽤于记录货币2.⽂本型1. char(M):定长字符,M表⽰最⼤的字符数.优势为运算速度快.常⽤在255个字符内的固定长度的字符.如:⾝份证,电话号码等.2. varchar(M):变长字符,M表⽰最⼤的字符数.优势为节省空间.常⽤在255个字符以内,长度不确定的字符.3. text:常⽤在256个字符以上的⽂本中3.⽇期时间1. datetime:固定的⽇期时间2. timestamp:时间戳:当新增记录或更新记录时⾃动更新为当前系统时间,⽤于记录最后⼀次修改的时间或新插⼊记录的时间六.字段属性1. not null:设置该字段的值不能为空,不写就是默认可以为空2. default 默认值:设置⼀个默认值,没有数据传⼊就是使⽤默认值.有数据传⼊则使⽤传⼊的值3. comment:备注⽤汉字备注字段,⽅便后期维护4. unique key:唯⼀值该字段的值不能重复,但可以为空5. primary key 主键:⽤于唯⼀标识⼀条记录⼀个表最能只能有⼀个主键不能为空不能重复6. auto_increment ⾃动增长:在新插⼊记录时,⾃动在本字段最⼤值的基础上加1,条件本字段的类型必须为整数型.常与主键⼀起使⽤,但不是必须与主键⼀起使⽤.总结到此这篇关于MySQL基础快速⼊门知识总结的⽂章就介绍到这了,更多相关MySQL基础⼊门内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
My S QL My S QL概述S QL基础存储引擎索引S QL优化视图/存储过程/触发器锁My S QL管理⽇志视图是一种虚拟存在的表。
视图中的数据并不在数据库中实际存在,只保存了查询的S QL逻辑,不保存查询结果存储过程存储过程是事先经过编译并存储在数据库中的一段 S QL语句的集合,就是数据库 S QL 语言层⾯的代码封装与重⽤触发器触发器是与表有关的数据库对象,指在i nser t/u pd a t e/d ele t e 之前或之后,触发并执⾏触发器中定义的S QL语句集合。
触发器的这种特 性可以协助应⽤在数据库端确保数据的完整性 , ⽇志记录 , 数据校验等操作特点创建调⽤查看删除参数游标游标(C U RS O R)是⽤来存储查询结果集的数据类型 , 在存储过程和函数中可以使⽤游标对结果集进⾏循环的处理。
游标的使⽤包括游标 的声明、OPE N、FET CH(数据获取) 和 C LO S E条件处理程序可以⽤来定义在流程控制结构执⾏过程中遇到问题时相应的处理步骤存储函数是有返回值的存储过程,存储函数的参数只能是I N类型的注:在命令⾏中,执⾏创建存储过程的S QL时,需要通过关键字d el imit er指定S QL语句的结束符作⽤创建查询修改删除检查选项更新视图包含以下任何一项,则该视图不可更新当使⽤WIT H CH E C K OPTIO N⼦句创建视图时,My S QL会通过视图检查正在更改的每个⾏,例如 插⼊,更新,删除,以使其符合视图的定 义。
My S QL允许基于另一个视图创建视图,它还会检查依赖视图中的规则以保持一致性。
为了确定检查的范围,my s q l提供了两个选项:C A SC ADED(级联) 和 LO C AL ,默认值为 C A SC ADED 。
1.聚合函数或窗⼝函数(S UM()、 MI N()、 MAX()、C OU N T()等)2.DI S TI NC T3.G R OUP BY4.H AVI N G5.U N IO N 或者 U N IO N ALLD R OP VIEW [IF EXI S T S] 视图名称 [,视图名称];⽅法一:crea t e [or re p lace] vi e w 视图名称 [(列名列表)]as selec t 语句 [with [casca d e|local] c h ec k o pti on];⽅法⼆:ALTE R VIEW 视图名称[(列名列表)] A S S ELE C T语句 [WIT H[C A SC ADED|LO C AL]CH E C K OPTIO N];查看创建视图语句:s h o w crea t e vi e w 视图名称;查看视图数据类型创建查看删除selec t * f ro m 视图名称;D R OP T R IGGE R [sc h e m a_na m e.]t r i gger_na m e; -- 如果没有指定t r i gger_na m e,默认为当前数据库SH OW T R IGGE RS;触发器是与表有关的数据库对象,指在i nser t/u pd a t e/d ele t e 之前或之后,触发并执⾏触发器中定义的S QL语句集合。
My S QL My S QL概述S QL基础存储引擎索引S QL优化视图/存储过程/触发器锁My S QL管理⽇志介绍优缺点结构分类语法S Q l性能分析索引使⽤最左前缀法则范围查询索引列运算字符串不加引号模糊查询or连接条件数据分布影响S QL提⽰是优化数据库的一个重要⼿段,简单来说,就是在S QL语句中加⼊一些⼈为的提⽰来达到优化操作的⽬的覆盖索引尽量使⽤覆盖索引(查询使⽤了索引,并且需要返回的列,在该索引中已经全部能够找到),减少selec t *前缀索引当字段类型为字符串(v arc h ar,t e xt等)时,有时候需要索引很⻓的字符串,这会让索引变得很⼤,查询时,浪费⼤量磁盘IO,影响查询效率。
此时可以只将字符串的一部分前缀,建⽴索引,这样可以⼤⼤节约索引空间,从⽽提⾼效率单列索引与联合索引在业务场景中,如果存在多个查询条件,考虑针对查询字段建⽴索引时,建议建⽴联合索引索引设计原则S QL执⾏频率慢查询⽇志记录了所有执⾏时间超过指定参数的所有S QL语句的⽇志p ro fi le详情e xp la i n执⾏计划e xp la i n或者d esc命令获取My S QL如何执⾏selec t语句的信息,包括在selec t语句执⾏过程中表如何连接和连接的顺序1.针对于数据量较⼤,且查询⽐较频繁的表建⽴索引。
2.针对于常作为查询条件(wh ere)、排序(or d erby)、分组(grou p by)操作的字段建⽴索引。
3.尽量选择区分度⾼的列作为索引,尽量建⽴唯一索引,区分度越⾼,使⽤索引的效率越⾼。
4.如果是字符串类型的字段,字段的⻓度较⻓,可以针对于字段的特点,建⽴前缀索引。
5.尽量使⽤联合索引,减少单列索引,查询时,联合索引很多时候可以覆盖索引,节省存储空间,避免回表,提⾼查询效率。
6.要控制索引的数量,索引并不是多多益善,索引越多,维护索引结构的代价也就越⼤,会影响增删改的效率。
这部分内容分为9部分,涉及从基础学习到进阶,并推荐了相关书籍以及练习网站,帮助从理论到实践掌握M y s q l.准备工作学习M y s q l,前提的准备一个M y s q l的环境,这个安装方式可以采用软件的方式安装也可以采用容器d o c k e r 的方式安装,强烈推荐使用容器来安装M y s q l。
基础语句环境准备好之后,开始了解M y s q l基本构成,构成包含数据类型,经常要用到的增删改查。
可以说很多时候都是在写S Q L的增删改查。
多表连接基础单表操作后,负责的S Q L都是围绕在多表操作,强大的s q l中提供了连接的方式l e f t j o i n,r i g h t j o i n,i n n e r j o i n,子查询,w h e r e表查询。
索引索引可以说是数据库中强大的工具,它用来帮助提高程序的检索速度,在
程序对数据量大的情况下,索引发挥的作用越大。
事务事务是数据库中保持数据操作正确的序列,这些操作要么是执行成功,要
么执行失败。
而事务也有不能的隔离级别,用来保证多个事务操作的影响范围。
数据库引擎M y s q l中常用的数据库引擎有两个I n n o d b,M y I A S M,不同的操作
中对应的锁操作也不同。
高可用数据库高可用一般都是用主从,设计主从,读写分离,b i n l o g操作。