随笔分类 -  mysql数据库

摘要:记录出哪些sql语句的运行效率较低 需要在mysql的配置中开启慢日志服务开启日志方式一: 添加配置文件文件.ini slow_query_log=ON 打开慢日志 log_queries_not_using_indexes=ON 如果sql语句没有用对索引,也会被记录 long_query_tim 阅读全文
posted @ 2020-11-12 21:06 maday 阅读(146) 评论(0) 推荐(0)
摘要:执行计划能相对准确的表达出当前sql的运行状况,能够被用来查看sql语句的执行效率 创建执行计划:explain sql语句 执行计划会返回一个表格,表格中type和rows比较重要 rows是大概会显示多少行数据 type结果分析: type 为 all时,会扫描数据表里全部的数据 explain 阅读全文
posted @ 2020-11-12 21:05 maday 阅读(271) 评论(0) 推荐(0)
摘要:索引有两个主要功能:约束,加速查找 索引为什么可以加速查找? B-tree 搜索数据库给创建索引的列创建一个文件 ,将该列中的数据标定一个唯一的数字,然后在文件中将数据按照二叉树的形式排列,再查询时,直接在二叉树中搜索数字,简化搜索的次数,通过该数字可以直接在数据库中查找到查询的数据 索引的种类 索 阅读全文
posted @ 2020-11-12 20:50 maday 阅读(139) 评论(0) 推荐(0)
摘要:sqL中的语句也分为内置函数和自定义函数 内置函数: char_length(参数) 计算字符串的长度 concat(参数1,参数2...) 字符串拼接 concat_ws(符号,参数1,参数2) 以指定的符号来拼接字符串 insert(str,pos,len,nevatr) 在str的指定位置插入 阅读全文
posted @ 2020-11-11 22:20 maday 阅读(85) 评论(0) 推荐(0)
摘要:在sql的操作中,一些语句是需要同时执行的,但是如果这些语句执行过程中某一个报错,就会导致一些已经执行,一些没有执行 这时就用使用事物,将sql语句写在在一个事物中,只要语句中有一个报错,就可以将数据库返回事物执行前的状态,即回滚 事物中的语句也被称为原子操作,它们同时执行,不可分散,事物通常被写在 阅读全文
posted @ 2020-11-11 22:06 maday 阅读(122) 评论(0) 推荐(0)
摘要:对某个表进行(增删改)操作的前后如果希望触发某个特定的行为时,可以使用触发器,如当对tb1添加数据时,希望将数据也同时添加到tb2 创建触发器 触发器的关键词: before 表操作在触发器之前after 表操作在触发器之后 创建触发器的步骤: delimiter // create trigger 阅读全文
posted @ 2020-11-11 21:54 maday 阅读(223) 评论(0) 推荐(0)
摘要:在sql中,有些语句的长度过长,如果需要重复使用,每次都要自己写的话,就会降低效率 mysql提供了存储过程,将多条sql语句存储起来,起个别名,将存储过程存储在服务端,在执行其时,服务端根据名称找到其文件,执行并将sql整体结果返回给客户端 存储过程的功能与视图相似,都是讲sql语句起个名称,使用 阅读全文
posted @ 2020-11-11 21:33 maday 阅读(129) 评论(0) 推荐(0)
摘要:在数据的查询时,回创建很多临时表来方便获取数据 如果10条语句中,每条语句都会用到一个相同的临时表,这样搜索语句写起来就会复杂繁琐 mysql提供了一个视图功能,用户可以将重复使用的临时表语句创建为试图,这样每次使用该临时表时,不用写该表的语句,直接写视图的名称即可 在查询语句中,碰每到视图就将试图 阅读全文
posted @ 2020-11-11 20:58 maday 阅读(114) 评论(0) 推荐(0)
摘要:可以通过python代码连接数据库,这种流程通常是固定的: import pymysql #创建连接 con=pymysql.Connect() #创建游标 cursor=con.cursor() #改动一条数据 cursor.execute #改动多条数据 cursor.executemany # 阅读全文
posted @ 2020-11-08 22:43 maday 阅读(396) 评论(0) 推荐(0)
摘要:增 insert into 表名(列名,列名) values(数据); 增加一行数据 insert into tb1(name,age) values('alex', 18); insert into 表名(列名,列名) values(数据),(数据)(数据); 增加多行数据 insert into 阅读全文
posted @ 2020-11-07 19:46 maday 阅读(267) 评论(0) 推荐(0)
摘要:数据库级别 SHOW DATABASES; 显示所有的数据库 CREATE DATABASE 数据库名称; 新建数据库 CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 设置数据库的编码方式为utf8(推荐使用) 阅读全文
posted @ 2020-11-05 23:21 maday 阅读(649) 评论(0) 推荐(0)
摘要:使用root创建的新用户,默认是没有任何权限的。要对该用户进行授权。 show grants for username;查看用户拥有的权限 权限管理: 权限分为全级级别授权,数据库级别授权,数据表级别授权 用户授权: grant 权限 on 数据库.表 to '用户'@'IP地址' all priv 阅读全文
posted @ 2020-11-05 22:44 maday 阅读(340) 评论(0) 推荐(0)
摘要:在mysql数据库自带的数据库中,有个数据库的名字为mysql,其下方的user表中,保存着与数据库用户名和密码相关的数据。 用户管理命令 创建用户: create user '用户名'@'IP地址' identified by '密码'; 在本机创建用户时,ip地址写为localhost,意为该用 阅读全文
posted @ 2020-11-05 22:25 maday 阅读(283) 评论(0) 推荐(0)
摘要:什么是数据库? 数据的仓库,是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库 数据库在主机上就相当于是一个文件夹 数据库表就相当于是一个文件 数据行就相当于是文件中的一行数据 客户端安装: 下载mysql免安装版本,将服务端运行起来。这时要新建一个data文件夹,指定数据库数据的存 阅读全文
posted @ 2020-11-03 23:27 maday 阅读(92) 评论(0) 推荐(0)