Mysql进阶-day3】的更多相关文章

多实例介绍: mysql多实例就是一台服务器开启多个不同的服务端口(3306,3307),运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供各自的服务端口. 这些mysql多实例共用一套mysql安装程序,使用不同的my.cnf配置文件.启动程序.数据文件.在提供服务时,多实例MySQL在逻辑上看来十个字独立的,多个实例之间是根据配置文件的设定值,来取得服务器的相关硬件资源 MySQL多实例常见配置方案 1.多配置文件方案 #通过多个配置文件及多个启动程序来实…
mysql进阶(二十九)常用函数 一.数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP(x) 返回值e(自然对数的底)的x次方 FLOOR(x) 返回小于x的最大整数值 GREATEST(x1,x2,-,xn)返回集合中最大的值 LEAST(x1,x2,-,xn) 返回集合中最小的值1 LN(x) 返回x的自然对数 LOG(x,y)返回x的以y为底的对数 MOD(x,y) 返回x/y…
mysql进阶(二十八)MySQL GRANT REVOKE用法   MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器: 授权->确定用户是否拥有足够的权限执行查询请求等.   如果认证不成功的话,那么授权肯定是无法进行的.   revoke 跟 grant 的语法差不多,只需要把关键字 "to" 换成 "from".   表 GRANT和REVOKE管理的权限   如果你想允许用户myuser从ip为192.168.1.6…
mysql进阶(二十七)数据库索引原理 前言   本文主要是阐述MySQL索引机制,主要是说明存储引擎Innodb.   第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础.   第二部分结合MySQL数据库中InnoDB数据存储引擎中索引的架构实现讨论聚集索引.非聚集索引及覆盖索引等话题.   第三部分讨论MySQL中高性能使用索引的策略. 一.数据结构及算法理论   Innodb存储引擎实现索引的数据结构是B+树,下面介绍几种数据结构,一步步阐述为什么要使用B+树. 1.…
mysql进阶(二十六)MySQL 索引类型(初学者必看)   索引是快速搜索的关键.MySQL 索引的建立对于 MySQL 的高效运行是很重要的.下面介绍几种常见的 MySQL 索引类型.   在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable 表: CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL ); 我们随机向里面插入了 10000 条记录,其中有一条:5555, a…
mysql进阶(十六)常见问题汇总 MySQL视图学习: http://www.itokit.com/2011/0908/67848.html 执行删除操作时,出现如下错误提示: 出现以上问题的原因是:在数据库中涉及到主外键的操作,删除时应对其进行级联删除的设置.如下图所示: 在做删除视图中数据操作时,出现如下错误提示: 解决方法:删除视图中的数据其实应删除基表中的数据.这样视图中的数据才能够被删除. 注:其实这样做,只是在直接完成SQL命令或手动添加对象信息时,这些字段值的默认值才会起作用.应…
[转]MySQL— 进阶 目录 一.视图 二.触发器 三.函数 四.存储过程 五.事务 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. SELECT * FROM ( SELECT nid, NAME FROM tb1 WHERE nid ) AS A WHERE A. NAME > 'alex'; -- A表为临时表 临时表搜索 1. 创建视图 --格式:CREATE VIEW…
目录 mysql进阶(视图)---py全栈 一.什么是视图? 二.视图的特性 三.视图的优点 四.使用场合 五.视图基本操作 六.案例 mysql进阶(视图)---py全栈 一.什么是视图? 视图是从一个或几个基本表中导出的表,它与基本表不同,是一个虚表.也就是说是一个动态表,所有的数据依然保存在基本表中,基本表发生变化,视图的结果也相应发生变化. 二.视图的特性 视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变): 可以跟基本表…
一 .  MySQL进阶练习 /*==========================创建班级表=============================*/ CREATE TABLE class ( cid ) NOT NULL AUTO_INCREMENT, class_name ) NOT NULL, PRIMARY KEY (cid) ) ENGINE DEFAULT CHARSET=utf8; INSERT INTO class(cid,class_name) VALUES (,"三级…
/*MySQL进阶19 函数 存储过程和函数:都类似于java中的方法; 存储过程和函数通用好处: 1.提高代码的重用性 2.简化操作 好处: 减少操作次数,减少了编译次数,减少了和服务器的连接次数,提高了效率 --------------- #区别 存储过程 (可以有0个或者多个返回值),适合做批量插入或者批量更新 函数: 有且仅有一个返回值 ; 适合做处理数据后的返回一个结果 */ /* #一: 创建语法 create function 函数名(参数列表) returns 返回类型 begi…
/* MySQL进阶13 常见六大约束: 1.not null 非空 2.default :默认值,用于保证该字段的默认值 ; 比如年龄:1900-10-10 3.primary key : 主键,用于保证该字段的值具有唯一性,并且非空 4.unique : 唯一约束,保证该字段的值可以为空,具有唯一性 5.check : 检查约束[mysql不支持,不报错,没有实际效果] 6.foreign key : 外键约束; 用于限制两个表的关系, 用于保证该字段的值必须来自于主表的关联列的值; 在从表…
MySQL进阶--分组排序和分组查询 group by(having) /order by /* 介绍分组函数 功能:用做统计使用,又称为聚合函数或组函数 1.分类: sum, avg 求和 /平均数, 只处理数值型,都绝对忽略NULL值(avg处理时统计的个数没有null项) max ,min ,可以求字符串最大最小 ,可以匹配日期,都绝对忽略NULL值 count ,不计算NULL ,不把null算进数里 #2. 参数支持类型 SELECT MIN(last_name) ,MAX(last_…
随笔分类 - mysql 进阶篇系列 mysql 开发进阶篇系列 55 权限与安全(安全事项 ) 摘要: 一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问题进行了解. 1. 严格控制操作系统账号和权限 在数据库服务器上要严格控制操作系统的账号和权限,在安装mysql时就要重视安全问题. (1) 锁定mysql用户. (2) 其它任何用户都采取独立的阅读全文 posted @ 2018-10-23 17:46 花阴偷移 阅读(266) | 评…
本文源码:GitHub·点这里 || GitEE·点这里 一.索引简介 1.基本概念 首先要明确索引是什么:索引是一种数据结构,数据结构是计算机存储.组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的集合,例如:链表,堆栈,队列,二叉树等等. 其次要清楚索引的作用:索引可以使存储引擎快速找到数据记录,这是最基本的作用,索引是对查询速度最关键的影响,良好的索引设计可以使查询的效率有质的飞越. 索引的使用:如果查询语句使用所有,MySQL会在索引的数据结构上查询,如果查询到,就返回包含该…
本文源码:GitHub·点这里 || GitEE·点这里 一.高性能索引 1.查询性能问题 在MySQL使用的过程中,所谓的性能问题,在大部分的场景下都是指查询的性能,导致查询缓慢的根本原因是数据量的不断变大,解决查询性能的最常见手段是:针对查询的业务场景,设计合理的索引结构. 2.索引使用原则 索引的使用并不是越多越好,而是针对业务下的查询场景,不断的改进和优化,例如电商系统中用户订单的场景,假设存在如下表结构: CREATE TABLE `ds_user` ( `id` int(11) NO…
MySQL进阶 知识点梳理 一.约束 1. 外键约束 为什么要有外键约束 例如:一个user表,一个orderlist 如果现在想要直接删除id为1的张三,但是orderlist里还有用户id为1的订单数据,这样合理么? 给uid添加外键约束之后,uid就是外键列 如果与另外的一张表的主键有关联关系,那么这一列就是外键列 建表语句 -- 创建db2数据库CREATE DATABASE db2;-- 使用db2数据库USE db2;​-- 创建user用户表CREATE TABLE USER( i…
1.MySQL锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源 (如 CPU.RAM.I/O 等)的抢占以外,数据也是一种供许多用户共享的资源.如何保证数 据并发访问的一致性.有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素. 2.MySQL锁特性 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制,归纳表格如下: 存储引擎          锁类型 MyISAM MEMORY…
将已经存在表设置自动增长属性alter table student change id id int not null auto_increment primary key;(注:这个地方一定是原来就是自动增长的或者原来就一条记录,并且id值为1) mysql查询其中分数最高的人名,我摸索出来一个方法,如下:mysql> select name from student a where a.english>=(select max(english) from student b);参照:htt…
数据库进阶   一.视图                                                                            数据库视图是虚拟表或逻辑表,它被定义为具有连接的SQL SELECT查询语句.其本质是为常用的查询语句起个别名.用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用.不是真正存在.视图存在数据库中. 数据库视图是动态的,因为它与物理模式无关.数据库系统将数据库视图存储为具有连接的SQL SELECT语句.当表的…
#进阶6: 连接查询 (多表连接) : 等值连接/非等值连接 /左右全连接/内连接 /* 含义: 当查询的字段来自于多个表时, 就会用到连接查询 一: sql 92标准 :等值连接 ,(#内连接) 1.可以为表区别名,区分多个重名的字段 2.为表使用别名后,只能使用别名去"select"! 二:非等值连接 1.where 列名 BETWEEN ... AND ... 三:自连接 :自己连接自己 四:左 / 右 外连接 1.应用场景: 用于查询一个表有内容,另一个表没有内容 如果从表中有…
# 进阶4 SQL常见函数 分类: 1/单行函数: 字符函数: concat(),length(),ifnull(__,default) ,instr(), trim(),upper(),lower(),lpad(),rpad(),replace() 数学函数: round,ceil,floor,truncate,mod; 日期函数: now,curdate,curtime, year,month,monthname,day,hour, minute,second,str_to_date, da…
往往看别人的代码会有这样的感慨: 看不懂 理还乱 是离愁 别是一番滋味在心头 为什么要使用存储过程? 在mysql开发中使用存储过程的理由: 当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的 mysql 执行语句是要先编译,然后再执行的.这样如果查询并发大的时候.会浪费很多资源和时间.造成mysql进程占用资源过多,症状就是慢.但存储过程可以把一些特别的语句封装成一个方法 ,再编译好成一个可以执行的方法,对外只要接收参数就可以了.这样就不用再编译.执行就快了…
一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. SELECT * FROM ( SELECT nid, NAME FROM tb1 WHERE nid ) AS A WHERE A. NAME > 'alex'; 临时表搜索 1.创建视图 --格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS SELET nid, name FROM A…
小知识: \G 放到sql语句后,可以使每个字段打印到单独的行,如: mysql> select * from user_msg limit 2 \G; 一.增加删除表字段的ALTER命令: ALTER TABLE tbl DROP name; #删除name字段 ALTER TABLE tbl ADD name INT FIRST; #首部添加name字段 ALTER TABLE tbl DROP name; ALTER TABLE tbl ADD name INT AFTER age; #a…
一.触发器 对某个表进行[增/删/改]操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行[增/删/改]前后的行为. 创建视图 # 插入前CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROWBEGIN    ...END # 插入后CREATE TRIGGER tri_after_insert_tb1 AFTER INSERT ON tb1 FOR EACH ROWBEGIN…
自连接 测试数据准备 CREATE TABLE `t2` ( `id` int(11) NOT NULL, `gid` char(1) DEFAULT NULL, `col1` int(11) DEFAULT NULL, `col2` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; insert into t2 values (1,'A',31,6), (2,'B',25,83),…
在我们用php处理数据的时候总会遇到些比较麻烦的事情,比如:两个二维数组,一个装的是文章分类表内容,一个装的是文章列表,有关联字段,完全等值,要求在列表文章的时候同时能在标题的前面显示栏目名称,此时循环文章列表,在循环中再次循环栏目列表,对比关联字段,相同的就是这篇文章所在的栏目了,取其名称显示,这是php的做法,如果文章比较多,或者栏目较多,比如100篇文章有100个栏目,循环的数量将是一万次,这个时候呢其实可以用mysql自己进行计算的,这种做法是双表联查,基本语法如下: Select表1.…
数据库的索引非常重要,基本面试数据库的问题都在索引上,所以这里小编整理出来,一方面为了自己复习,一方面也方便大家. 一,索引前传 在了解数据库索引之前,首先有必要了解一下数据库索引的数据结构基础,那么什么样的数据结构可以作为索引呢? B-tree是最常用的用于索引的数据结构.因为它们是时间复杂度低, 查找.删除.插入操作都可以可以在对数时间内完成.另外一个重要原因存储在B-Tree中的数据是有序的.数据库管理系统(RDBMS)通常决定索引应该用哪些数据结构.但是,在某些情况下,你在创建索引时可以…
解决数据库NO CONNECTION问题 前言 数据库版本类型:Mysql5.5 在应用程序连接数据库时,提示数据库连接失败.打开数据库查看,显示如下. 究其原因,是因为mysql服务出现了问题,重启mysql服务,数据库成功连接. 参考文献 1.http://jingyan.baidu.com/album/0a52e3f4158211bf62ed72e6.html?picindex=1 美文美图…
MySQL错误之Incorrect string value: '\xE7\x81\xAB\xE7\x8B\x90...' for column 'tout' at row 1中文字符输入错误 在实验过程中需要将输出参数写入数据库,在写的过程中执行到lab_dynamic_order.upd_upd()语句时出现了错误,自己起初还不明白到底是哪里出现了错误.尝试性求助度娘,网上有人说是因为输入中文字符的缘故.故自己将待写入的包含中文字的字符串复制到mysql中,保存时出现了Incorrect s…