mysql数据库

mysql_01(入门基础)

时光怂恿深爱的人放手 提交于 2020-02-14 01:16:30
mysql 入门01 什么是数据库? 数据库的分类 mysql数据库的搭建 mysql介绍 安装软件 初始化 查看初始密码 利用初始密码登录&&修改初始密码 修改密码策略 相关参数 mysql的基础操作 一,数据库专业术语 DB(DataBase) 数据库:依照某种数据模型进行组织并存放到存储器的数据集合 DBMS(DataBase Management System) 数据库管理系统:用来操作和管理数据库的服务软件 DBS(Database System) 数据库系统:拥有数据库和数据库管理系统的计算机系统 二,数据库的分类 ​ ps:mariadb对初学者来说与mysql几乎没有区别 三,mysql的安装和初始化 数据包在官网下载下载:新版centos/redhat不在自带mysql数据包 数据包的功能(部分)完整的数据包 mysql-5.7.17.tar 安装mysql [root@mysql01 ~]# tar - xvf mysql - 5.7 .17 .tar mysql - community - embedded - compat - 5.7 .17 - 1. el7.x86_64.rpm mysql - community - embedded - devel - 5.7 .17 - 1. el7.x86_64.rpm mysql - community -

mysql的SQL语句

前提是你 提交于 2020-02-14 00:05:40
在MySQL当中,SQL语句主要可以分为3类: 1.DDL:数据定义语言。定义不同数据段,数据库,表,列,索引等数据库对象的定义。(create,drop,alter等) 2.DML:数据操纵语言。用于添加,删除,更新和查询数据库记录等,并检查数据完整性。(insert,delete,update,select等) 3.DCL:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。定义了数据库,表,字段,用户的访问权限和安全级别。(grant,revoke等) 接下来会分别者三类. 来源: https://www.cnblogs.com/y3010179969/p/6351309.html

MySQL数据库的SQL语句优化方法

梦想的初衷 提交于 2020-02-13 23:52:10
1、使用 show status 了解各种 SQL 的执行频率 mysql> show status like 'Com%'; 该命令可以查询 sql 命令的执行次数。 2、定位执行效率较低的 SQL 语句 定位执行效率较低的 SQL 一般有两种方法: 通过慢查询日志定位效率低的 SQL,用 --log-show-queries[=file_name] 该选项启动; 慢查询日志在查询结束后才会记录,所以在应用执行效率出现问题的时候慢查询日志不能定位问题,这时可以使用 show processlist 命令查看当前 MySQL 在执行的线程,包括线程的状态、是否锁表等,可以实时地查看 SQL 的执行情况,同时对一些锁表操作进行优化; 3、通过 explain 分析低效 SQL 的执行计划 all < index < range < ref < eq_ref < const, system < null 以上常见的访问类型 从左至右,性能又差到好 。 ALL:全表扫描, MySQL 遍历全表来匹配行; index:索引扫描,MySQL 遍历整个索引来查询匹配的行; range:索引范围扫描,常见于 <、<=、>、>=、between 等操作符; ref:使用非唯一索引扫描或唯一索引的前缀扫描,返回匹配某个单独值的记录行; eq_ref:类似 ref,区别就在使用的索引是唯一索引

从原理到优化,深入浅出数据库索引

半世苍凉 提交于 2020-02-13 23:44:06
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 数据库查询是数据库的最主要功能之一,我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化,这篇文章对索引做一个系统的梳理,希望对大家有帮助。 一、MySQL有哪些索引类型 索引的分类可以从多个角度进行,下面分别从数据结构,物理存储和业务逻辑三个维度进行划分。 1、从数据结构角度 (1)B+树索引(O(log(n))) 关于B+树索引,后面会深入解析 (2)hash索引 仅仅能满足"=","IN"和"<=>"查询,不能使用范围查询 其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引 只有Memory存储引擎显示支持hash索引 (3)FULLTEXT索引 现在MyISAM和InnoDB引擎都支持了 (4)R-Tree索引 用于对GIS数据类型创建SPATIAL索引 2、从物理存储角度 (1)聚集索引(clustered index) 正文内容按照一个特定维度排序存储,这个特定的维度就是聚集索引; Innodb存储引擎中行记录就是按照聚集索引维度顺序存储的,Innodb的表也称为索引表;因为行记录只能按照一个维度进行排序

PHP漏洞全解

一世执手 提交于 2020-02-13 21:54:53
针对PHP的网站主要存在下面几种攻击方式: 1、命令注入(Command Injection) 2、 eval 注入( Eval Injection) 3、客户端脚本攻击(Script Insertion) 4、跨网站脚本攻击(Cross Site Scripting, XSS) 5、SQL注入攻击(SQL injection) 6、跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF) 7、Session 会话劫持(Session Hijacking) 8、Session 固定攻击(Session Fixation) 9、HTTP响应拆分攻击(HTTP Response Splitting) 10、文件上传漏洞(File Upload Attack) 11、目录穿越漏洞(Directory Traversal) 12、远程文件包含攻击(Remote Inclusion) 13、动态函数注入攻击(Dynamic Variable Evaluation) 14、URL攻击(URL attack) 15、表单提交欺骗攻击(Spoofed Form Submissions) 16、HTTP请求欺骗攻击(Spoofed HTTP Requests) 命令注入攻击 PHP中可以使用下列5个函数来执行外部的应用程序或函数 system、 exec 、

.NetCore中EFCore for MySql整理

大憨熊 提交于 2020-02-13 21:06:02
一、MySql官方提供了Ef Core对MySql的支持,但现在还处于预览版 Install-Package MySql.Data.EntityFrameworkCore -Pre Install-Package MySql.Data.EntityFrameworkCore.Design -Pre 当前程序包依赖Microsoft.EntityFrameworkCore,目前没找到API文档啥的,MySql.Data.EntityFrameworkCore.Design的用法也没 找到。 Nuget包地址 : https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/7.0.7-m61 https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore.Design/6.10.1-beta 二、简单使用示例 1.手写数据库上下文 /// <summary> /// 数据库上下文 /// </summary> public class Md5Context : DbContext { protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {

MySQL开发规范与使用技巧总结

为君一笑 提交于 2020-02-13 20:23:52
1.命名规范 1.库名、表名、字段名必须使用小写字母,并采用下划线分割。 a)MySQL有配置参数lower_case_table_names,不可动态更改,linux系统默认为 0,即库表名以实际情况存储,大小写敏感。如果是1,以小写存储,大小写不敏感。如果是2,以实际情况存储,但以小写比较。 b)如果大小写混合使用,可能存在abc,Abc,ABC等多个表共存,容易导致混乱。 c)字段名显示区分大小写,但实际使⽤用不区分,即不可以建立两个名字一样但大小写不一样的字段。 d)为了统一规范, 库名、表名、字段名使用小写字母。 2.库名、表名、字段名禁止超过32个字符。 库名、表名、字段名支持最多64个字符,但为了统一规范、易于辨识以及减少传输量,禁止超过32个字符。 3.使用INNODB存储引擎。 INNODB引擎是MySQL5.5版本以后的默认引擘,支持事务、行级锁,有更好的数据恢复能力、更好的并发性能,同时对多核、大内存、SSD等硬件支持更好,支持数据热备份等,因此INNODB相比MyISAM有明显优势。 4.库名、表名、字段名禁止使用MySQL保留字。 当库名、表名、字段名等属性含有保留字时,SQL语句必须用反引号引用属性名称,这将使得SQL语句书写、SHELL脚本中变量的转义等变得⾮非常复杂。 5.禁止使用分区表。 分区表对分区键有严格要求;分区表在表变大后,执⾏行DDL

fetch_array()与fetch_assoc()的用法

回眸只為那壹抹淺笑 提交于 2020-02-13 19:58:16
fetch_array()与fetch_assoc()用起来没有什么大的差别,主要是怎么用? fetch_array()如果单独作为while的条件,则能够取出结果集中的所有结果。如果单独作用于结果集,只能从结果集中取出数据库结果集一行。 例如: <?php //设置页面显示的文字编码 header("Content-Type:text/html;charset=utf-8"); //设置默认显示新闻的条数 $number = 20; //从GET参数判断是否需要对显示新闻条数进行修改 if (count($_GET)>0) { $number = $_GET('number'); } //连接数据库 $con = mysql_connect("localhost","root","root"); //设置数据库的编码方式,一定要与数据库的编码方式相同 mysql_query("set names utf8"); //json格式的字符串 if ($con) { //选择要使用的数据库 mysql_select_db("news",$con); //数据库查询语句 $query = "SELECT * FROM news_List,news_Neirong WHERE news_List.id = news_Neirong.id ORDER BY news_List.id";

php mysql增删查改

China☆狼群 提交于 2020-02-13 14:33:19
php mysql增删查改代码段 $conn=mysql_connect('localhost','root','root'); //连接数据库代码 mysql_query("set names utf8"); //传输编码 mysql_select_db('sql'$conn); //查找名为sql的数据库 admin为表名; 查找数据代码段: $sql="select * from admin "; //查询表; $sql="select * from admin where id=1 "; //查询表id为1的字段; $sql=" select * from admin limit 0,10"; //查询表limit设置查询从id,0之后查找10条数据; $sql="select * from admin where username='值' and password='值' "; //是否匹配正确可用mysql_num_rows等方法进行判断 添加数据代码段: $sql="insert into admin(id,username,password)values('','值','值')"; 删除数据代码段: $sql="delete from admin where id=1 "; //删除id为1的字段 更改数据代码段: $sql="update admin set

解决mysqldump: [Warning] Using a password on the command line interface can be insecure.

北城以北 提交于 2020-02-13 14:00:05
环境:win7 mysql版本 mysql> select version(); +------------+ | version() | +------------+ | 5.7.26-log | +------------+ 1 row in set 在执行mysqldump命令时,出现如下错误 mysqldump: [Warning] Using a password on the command line interface can be insecure. 解决方法:   添加用户baby,密码 xyz123 并赋予要备份的数据库全部权限   修改my.ini [client] port = 3306 host = localhost user = baby password = 'xyz123' 重启mysql 来源: https://www.cnblogs.com/baby123/p/11889666.html