mysql 核心知识要点
整体知识介绍:mysql基本操作和使用,mysql优化(索引,分表等),mysql部署(读写分离,负载均衡等)
数据库基本介绍:数据库概念,常用数据库,web应用三大软件分工,PHP动态语言特点(处理数据),数据的存放(脚本运行时和执行完毕),数据库系统
关系型数据库:概念(关系+二维表),教学系统实例,常见关系型数据库,关系型数据库特点(所有数据相同结构,没有数据也分配存储空间)
非关系型数据库:键值对型,常见非关系型数据库,非关系型数据库特点(内存运行,硬盘同步)
关系型数据库典型概念:行row(记录record),列col(字段field),SQL(概念,DDL,DML(DML+DQL),DCL)
Mysql基本介绍:mysql软件介绍(c/s结构),mysql操作步骤,客户端的工作,mysql单独安装,mysql目录及文件介绍,mysql服务端管理(服务和mysqld.exe),客户端连接服务端(连接认证,执行sql,退出)
Mysql数据对象:mysql服务器à数据库à数据表à字段
基本SQL操作:库操作(create[if not exists][charset,collation],库文件夹介绍,数据库命名规则,特殊名字处理;show[like pattern],通配符,查看库创建语句;drop;alter),表操作(表与字段的依赖性;create [engine,charset],表文件分析,表与库的关系,保留字冲突,从已有表创建[like];show[like pattern],查看表字段[desc/describe/show columns from tb_name],查看表创建语句;drop;alter [操作add/drop/modify/change][位置first after],rename to重命名;数据操作(insert into省略字段和选择字段;select from[where条件],=比较;delete from[where];update set[where];删除和更新不可逆)
字符集:快速解决问题(set names),字符集,mysql字符集(数据存储,数据传输),数据存储字符集(服务器端,库,表,字段,图解),字符集优先级(字段à表à库à服务器端),数据传输过程字符集(图解(客户端clientà连接层connectionà服务器à客户端result),character_set变量,set names分析
校对集:字符比较(ASCII比较),校对集工作(查看show collation),校对集设置(表选项中collate=校对集),校对集命名规则(_bin二进制,_ci[case insensitive],_cs[case sensitive]),utf8&gbk(utf8不支持中文比较,gbk支持拼音)
存储引擎:概览mysql存储引擎,主要引擎[InnoDB和MyISAM],引擎的未来发展,引擎区别(MyISAM[查询和新增,全文索引],InnoDB[更新和删除,事务,5.5之后全文索引],文件区别)
乱码问题解决:(浏览器—PHP--mysql)
字段(列)类型:
mysql数据类型(数值型,字符串型,日期时间型),
数值类型(整型[tinyint,smallint,mediumint,int,bigint],显示宽度,0填充,无符号;
浮点型[float,double],语法float(M,D),浮点支持科学计数法;定点数[decimal(M,D)],定点与浮点的存储方式区别),
字符串类型(char(L);varchar(L);text;char与varchar比较表,mysql记录总长限制,文本不受限制(10字节);枚举enum[值存储,2字节,单选,方便插入[数值或者 字符串],从1开始];集合set[存储方式二进制,多选,8字节];二进制文本),
日期和时间类型(datetime[格式,8字节存储,时间跨度9999];date[];time[时间间隔];year[1字节存储,跨度1900-2155或70-69];timestamp[标准整型存储,表现与datetime一致])
列属性(约束):NULL(概念[与PHP不同],语法NULL/NOT NULL),默认值(default,用法,插入数据时使用default关键字),键(主键[primary key,唯一标识,设计表图解,主键优势,主键语法包括建表和修改,删除主键];唯一键[unique key,优点,增加包含建表时和修改表结构,删除唯一键平[只能通过删除索引方式]]),自动增长(auto_increment,常用主键ID),注释(comment,SQL通用注释语法[--空格,#,/*块注释*/])
关系:关系分类(1:N[学生与班级对应关系,设计];M:N[教师与班级对应关系,设计];1:1[学生与学生关系])
外键(约束):外键(foreign key,学生与班级关系,外键功能,外键定义[外键(逻辑上),外键约束(语法上)],增加外键[创建表时和修改表结构],约束作用,删除约束[约束名],增加约束名[constraint],约束对应的索引),外键约束(主表和从表,约束操作[严格控制restrict,置空set null,级联cascade],约束范围[删除和更新],外键支持[InnoDB,类型严格一致,置空操作字段必须可以为空])
范式:范式定义(Normal Format),范式等级(1到6),数据库范式(满足到第三等级),1NF(原子性),2NF(部分依赖,复合主键),3NF(传递依赖),范式有点(通用,减低数据冗余),逆规范化(设置必要数据冗余,效率与磁盘空间的对抗)
高级数据操作:
插入数据(选择插入[insert into tb_name select子句],主键冲突[insert into … on duplicate key update],替换插入[replace into])
删除数据(搭配orderby和limit,清空表[truncate],delete与truncate区别),修改数据(搭配orderby和limit)
查询数据(
select选项[all和distinct],字段列表[表达式,字段别名],from子句[多表,表别名,虚拟表dual],
五子句[where,group by,having,order by,limit]),
where子句(操作流程,mysql布尔类型和值,表达式[关系运算符 =,in和not in,between and和not between and,is null和is not null;逻辑运算符;like运算符,通配符;运算符优先级]),group by子句(分组统计,合计函数[count(对非空字段统计),max(),min(),sum(),avg()],grou_concat(字段)[分组专用字段连接],
group by[排序asc|desc],多字段分组,回溯统计[with rollup]),
having子句(与where功能相似,可以使用字段别名,可以使用合计函数,与where操作数据不同),
order by子句(排序,多字段排序),limit子句(限制记录数,指定索引位置,分页)
联合查询:联合查询(union,结果间联合,条件简化,union选项[all和distinct],字段数量一致类型无所谓[原因,var_dump看结果],union的select子句分别排序[子句需要括号,需要配合limit])
连接查询:概念,连接分类(内连接[inner join [on],参与连接数据都必须存在,where替代on,默认连接方式,连接原理,where与on的区别,using去重],外连接[left/right join on,参与连接的数据有对应不上[左外保留左表数据,右外保留右表数据],full全外mysql不支持,on和using使用],交叉连接[内连接的无条件模式],自然连接[natural [left/right] join,相当与其他连接使用using,不能使用on])
子查询:子查询概念,功能,子查询分类(位置分类[where,from,exists],返回形式分类[标量子查询[单一值,用于比较],列子查询[配合in和not in,any,all和some],行子查询[使用括号语法构建行],表子查询[典型from子查询]])
视图:概念(虚拟表),视图作用(查询数据,提供接口,隐藏真实数据),视图管理(创建[create view as select子句],删除视图[drop view],修改视图[alter view v_name as select子句],查看视图[show create view v_name,查看视图字段,查看视图创建语句],视图算法[概念,合并算法merge,临时表temptable,未定义undefined,视图指定算法[create algorithm=temptable view]])
数据备份还原:导出(select into outfile ‘路径’,导出文件不能重名,字段分隔符[fields terminated by,enclosed by,escaped by],记录分隔符[lines terminated by/starting by],导出文件编码),导入(load data infile ‘路径’ into table tb_name 选项)
数据备份:MyISAM备份,mysqldump(mysqldump客户端,语法,表备份[库 表 表/ -b 库],数据库备份),还原(source,mysql库名 表名 < sql文件)
事务:事务目的,事务操作(开启[start transaction],提交[commit],回滚[rollback],回滚点[savepoint name,rollback to name]),事务基本原理(mysql执行SQL方式[执行+提交],默认自动提交autocommit),事务安全日志(保存事务执行中间结果ib_logfile,InnoDB支持事务),事务特点ACID(原子性[Atomicity,事务是整体],一致性[consistency,事务前后数据完整性一致],持久性[事务一旦提交,数据改变永久],隔离性[isolation,多用户并发互不干扰,相互隔离])
触发器:概念,语法(创建[create trigger t_name 事件时机 事件类型 on 表 for each row],事件时机[before,after],事件类型[insert,delete,update],mysql不支持在同一事件上创建多个出发程序;删除[drop trigger t_name];获取触发程序相关记录[old,new],分支结构[if 条件 then 代码 end if],多语句[begin,end],语句结束符)
变量:系统变量,自定义变量(set,使用变量,select into,变量赋值符[:=]),变量有效期,变量作用域
SQL函数:内置函数(substring,char_length,length,instr,lpad,insert,strcmp),自定义函数(概念,函数要素[函数名,参数列表,函数体,返回值],语法[创建create function f_name(参数列表) returns 返回值类型],调用函数[select f_name(参数)],分支结构,循环结构[标签],内部定义变量[全局变量@var,局部变量declare var],中断(leave,iterate))
存储过程:概念,与函数的区别,语法(创建[create procedure pr_name(过程参数in out inout)],过程参数类型,过程调用call)
Mysql用户管理:
root密码忘记(重装,mysql管理用户的表user),
重置root密码(带参数重启服务[--skip-grant-tables],无密码登录,修改用户表root密码[update set],加密算法[sha1,md5,password(),重启]),
普通用户管理(创建用户[create user user_name[ identified by ‘密码’],用户名形式[username@host]],删除用户[drop user username@host]),
设置用户权限(添加[grant 权限列表 on 表名 to 用户],权限列表,表名表示方法,特殊权限[all privileges],刷新缓存[flush privileges,flush tables],
删除用户权限[revoke 权限列表 on 表名 from 用户])
索引:概念,mysql索引类型[主键索引,唯一索引,全文索引,普通索引,复合索引]
PHP操作mysql:
PHP变身客户端,开启该扩展,典型扩展(mysql,mysqli,pdo-mysql),libmysql.dll(连接服务提供者),查看mysql是否加载(PHPinfo),
PHP操作mysql(连接认证mysql_connect(),
准备和发送sql语句mysql_query,
处理执行结果mysql_fetch_assoc(),释放资源[结果集],关闭连接mysql_close()),
mysql_query(mysql_query返回值[布尔型,结果集],有返回值的语句[select,show,desc],没有返回值的语句[insert,update,delete ,DDL]),
其他常用函数(mysql_errno(),mysql_error(),常见处理方式,mysql_fetch_array(),mysql_fetch_row()的区别,mysql_data_seek(),Mysql_affected_rows,Mysql_insert_id)
mysql 核心知识要点的更多相关文章
- php核心知识要点
Php:脚本语言,网站建设,服务器端运行 PHP定义:一种服务器端的 HTML 脚本/编程语言,是一种简单的.面向对象的.解释型的.健壮的.安全的.性能非常之高的.独立于架构的.可移植的.动态的脚本语 ...
- MySQL高级知识(六)——索引优化
前言:索引优化的目的主要是让索引不失效,本篇通过相关案例对索引优化进行讲解. 0.准备 创建经典的tb_emp表. DROP TABLE IF EXISTS `tb_emp`; CREATE TABL ...
- 《Mysql高级知识》系列分享专栏
<Mysql高级知识>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201756.html 文章 MySQL数据库InnoDB引擎 ...
- Linux(1)- 服务器核心知识、Linux入门、VMware与centeos安装、远程连接linux、linux基本命令使用
一.服务器核心知识 1.电脑和电脑的硬件组成 现在的人们几乎无时无刻不在使用着电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑,还是智慧型手机等等,这些东西都算是电脑.虽然接触这么多,但是 ...
- [转帖]java注解核心知识总结
java注解核心知识总结 2019-11-01 20:39:50 从事Java 阅读数 2 收藏 文章标签: java注解总结程序员 更多 分类专栏: java 注解 版权声明:本文为博主原创文 ...
- 零基础的学习者应该怎么开始学习呢?Python核心知识学习思维分享
近几年,Python一路高歌猛进,成为最受欢迎的编程语言之一,受到无数编程工作者的青睐. 据悉,Python已经入驻部分小学生教材,可以预见学习Python将成为一项提高自身职业竞争力的必修课.那么零 ...
- Docker 核心知识回顾
Docker 核心知识回顾 最近公司为了提高项目治理能力.提升开发效率,将之前的CICD项目扩展成devops进行项目管理.开发人员需要对自己的负责的项目进行流水线的部署,包括写Dockerfile ...
- Mysql数据库知识-Mysql索引总结 mysql mysql数据库 mysql函数
mysql数据库知识-Mysql索引总结: 索引(Index)是帮助MySQL高效获取数据的数据结构. 下边是自己整理的资料与自己的学习总结,,做一个汇总. 一.真的有必要使用索引吗? 不是每一个性能 ...
- 网络基础知识、ASP.NET 核心知识(1)*
为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...
随机推荐
- class.forName的作用?
调用该访问 返回一个以字符串指定类名的类的对象. 返回字节码,返回字节码的方式有几种: ①:这份字节码曾经被加载过已经存在java虚拟机中了直接返回. ②:java虚拟机中还没有这份字节码,用类加载器 ...
- racket 学习笔记
length: (define (my-length lst) (if (empty? lst) 0 (+ (my-length (rest lst)) 1))) map: (define (my-m ...
- kolla之docker私有仓库创建
kolla镜像自从P版以后就没有向之前版本直接下载一个tar然后放入仓库那么简单了. 正式开始搭建仓库: 1.启动仓库容器 docker run -d -v /opt/registry:/var/l ...
- BZOJ.4903.[CTSC2017]吉夫特(Lucas DP)
题目链接 首先\(C(n,m)\)为奇数当且仅当\(n\&m=m\). 简要证明: 因为是\(mod\ 2\),考虑Lucas定理. 在\(mod\ 2\)的情况下\(C(n,m)\)最后只会 ...
- BZOJ.2301.[HAOI2011]Problem B(莫比乌斯反演 容斥)
[Update] 我好像现在都看不懂我当时在写什么了=-= \(Description\) 求\(\sum_{i=a}^b\sum_{j=c}^d[(i,j)=k]\) \(Solution\) 首先 ...
- C#获取类名为Internet_Explorer_Server控件的内容
为了让大家都能够使用demo,我以IE为测试对象,另外为了突出重点,所以如何获取窗口句柄我就不做演示了(不清楚的童鞋,可以去Google下哈),句柄值我使用spy++获得 大家可以下载demo(附:s ...
- 【linux】linux下对java程序生成dump文件,并使用IBM Heap Analyzer进行分析,查找定位内存泄漏的问题代码
1.首先,java程序启动在linux,怎么生成dump文件? 1>第一步,首先你需要得到java程序的PID,最简单的方法使用如下命令 ps -ef|grep java 或者如果是docker ...
- CentOS7 下 keepalived 的安装和配置
安装前准备:yum -y install gcc gcc-c++ autoconf automake make yum -y install zlib zlib-devel openssl opens ...
- Apktool编译找不到“keyboardNavigationCluster”
喜欢用使用apktool来反编译.编译安卓程序,然后用其他工具来分析.签名.优化等,它比其他工具的优点是不易出错. 命令 反编译命令:apktool d -f XX.apk -o 反编译输出的目录(如 ...
- [BetterExplained]书写是为了更好的思考
我经常在走路和睡前总结所学过的内容,思考遗留的问题,一段时间的阅读和思考之后,一个总体的知识框架就会逐渐浮现在脑海中.然后我会将它书写下来,然而,我往往非常惊讶地发现,当我书写的时候,新的内容仍然源源 ...