随笔分类 -  SQL-MySQL

摘要:如何配置MYSQL的MASTER---SLAVE复制备份?一、配置一个mysql服务器做master: 在配置文件my.ini中添加如下内容:log-bin=matster-binlog-bin-index=matster-bin.indexserver-id=1master必须有一个活动的二进制日... 阅读全文
posted @ 2014-07-02 21:46 findumars 阅读(325) 评论(0) 推荐(0) 编辑
摘要:貌似很有用,但没有真正用过:SQL的主键和外键的作用:外键取值规则:空值或参照的主键值。(1)插入非空值时,如果主键表中没有这个值,则不能插入。(2)更新时,不能改为主键表中没有的值。(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。(4)更新主键记录时,同样有级联更新和... 阅读全文
posted @ 2014-05-29 20:01 findumars 阅读(2901) 评论(0) 推荐(0) 编辑
摘要:搞了半天,原来是 AVAST搞的鬼,把原来注册表的键值改成它自己了。其实应该是C:\Windows\System32\vbscript.dllThe answer in the following page helpped me.http://forums.enterprisedb.com/posts/list/3040.pagerun-> regedit and take backup of registry using exportHKEY_LOCAL_MACHINE->SOFTWARE->Classes->CLSID->B54F3741-5B07-11cf- 阅读全文
posted @ 2014-02-10 20:51 findumars 阅读(3728) 评论(2) 推荐(0) 编辑
摘要:IS NULL 或IS NOT NULL操作(判断字段是否为空)判断字段是否为空一般是不会应用索引的,因为索引是不索引空值的。推荐方案:用其它相同功能的操作运算代替,如:a is not null 改为 a>0 或a>’’等。不允许字段为空,而用一个缺省值代替空值,如申请中状态字段不允许为空,缺省为申请。LIKE操作符LIKE操作符可以应用通配符查询,里面的通配符组合可能达到几乎是任意的查询,但是如果用得不好则会产生性能上的问题,如LIKE ‘%5400%’ 这种查询不会引用索引,而LIKE ‘X5400%’则会引用范围索引。一个实际例子:用YW_YHJBQK表中营业编号后面的户标 阅读全文
posted @ 2014-01-24 10:19 findumars 阅读(312) 评论(0) 推荐(0) 编辑
摘要:google搜了一下,很多帖子,而且出发点不同,各有各的道理,但是有一个帖子讲的特别好:http://zhidao.baidu.com/question/134174568.html忍不住在百度上回复了一下,怒赞,没想到别人早就回复过了:围观大神级回答。确实名副其实!================in和exists=============================in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:例如:表A(小表),表B(大表 阅读全文
posted @ 2013-12-25 21:14 findumars 阅读(928) 评论(0) 推荐(0) 编辑
摘要:CREATE TABLE `test` ( `col1` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `col2` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL) ENGINE = MYISAM ;错误(不可以插入null值):INSERT INTO `test` VALUES (null,1);正确(插入''没问题):INSERT INTO `test` VALUES ('',1);INSER 阅读全文
posted @ 2013-09-19 02:39 findumars 阅读(2092) 评论(0) 推荐(0) 编辑
摘要:MySQL各个版本区别MySQL 的官网下载地址:http://www.mysql.com/downloads/在这个下载界面会有几个版本的选择。1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。2. MySQL Enterprise Edition 企业版本,需付费,可以试用30天。3. MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。4. MySQL Cluster CGE 高级集群版,需付费。5. MySQL Workbench(GUI TOOL)一款专为MySQL设计的ER/数据库建模工具 阅读全文
posted @ 2013-08-05 01:12 findumars 阅读(364) 评论(0) 推荐(0) 编辑
摘要:数据库方面:1存储过程和函数的区别存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。1. 事务是什么?事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。一致性:事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有 阅读全文
posted @ 2013-07-13 03:45 findumars 阅读(386) 评论(0) 推荐(0) 编辑
摘要:完全解析MySQL数据库中Show命令用法(网上资料整理) show命令的众多用法如下: a. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称。 b. show databases; -- 显示mysql中所有数据库的名称。 c. show columns from table_name from database_name; 或show columns from database_name.table_name; -- 显示表中列名称。 d. show grants for user_name; -- 显示... 阅读全文
posted @ 2013-06-15 23:08 findumars 阅读(389) 评论(0) 推荐(0) 编辑
摘要:数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下: 1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。 2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。 假设有两张表: create table tab1(id int, size int);insert into tab1 values(1,10),(2,20),(3,30);****** 阅读全文
posted @ 2013-06-14 01:44 findumars 阅读(399) 评论(0) 推荐(0) 编辑
摘要:理论上,这两句话是等价的:SELECT * FROM inscription_pan LEFT JOIN facture_panON (ins_id=fc_inscription)AND (ins_ecole=fc_ecole)WHERE (ins_date>='2013-06-01')AND (ins_date='2013-06-01')AND (ins_date<='2013-06-11')and (ins_operateur_id=74) 但是前者执行需要0.25秒,后者需要20.547秒。得出却是相同的结果。80倍都不止。原因 阅读全文
posted @ 2013-06-11 19:53 findumars 阅读(504) 评论(0) 推荐(0) 编辑
摘要:学籍管理里关于新生老生的一个问题:比如我有两张表:1. 学生个人信息表actif,记录的是学生的年龄、性别什么的。2. 学籍管理表inscription,学生第一次注册那他就是新生,这个表里有个字段ins_type专门用来记录这个情况,记录为0。同一个学生第二次来注册,那么他就是老生了,记录为1。道理挺简单的,如果是新的插入,只要在插入前,探测一下这个学生是否注册过就知道他是新生老生了。但问题是,inscription里已经有大堆的记录,如何使用sql语句一次性找出和修改之前的学籍注册情况?只要能够实现这个目的,使用辅助表,或者增加字段,或者使用几句SQL分开写什么的都可以。准确答案:crea 阅读全文
posted @ 2013-05-30 19:02 findumars 阅读(824) 评论(0) 推荐(0) 编辑
摘要:我觉得它的好处:1)数据同步性(增加删除就不用说了,还有主表的用户名字段被修改的时候,第二个表的用户名字段是冗余数据可以被一并修改。总金额与各种支付的总额一致)2)省事,可以少编程(因为很多地方都是操作同一个表,拥有相同的需求)。编程还容易出错。3)类似于算法的分摊。把功夫下在平时,等到数据要集中使用的时候,就非常方便和准确了。视图,存储过程,触发器三者,感觉最有用的是触发器。视图有简化逻辑的好处,存储过程有利于写复杂逻辑,但触发器最有利于自动平衡和计算数据,最有用。三者都是建立在数据库端的,因此维护非常方便,不需要改变外部应用程序——good!其实有意思的是需求,怎么样充分利用触发器的功能? 阅读全文
posted @ 2013-05-22 07:19 findumars 阅读(1383) 评论(0) 推荐(0) 编辑
摘要:下订单自动减少库存,更改订单的时候纠正库存,恶意订单时纠正数量来源:http://www.php100.com/html/webkaifa/database/Mysql/2013/0318/12231.html解释的很好,但是代码都不可用,因此实际做了一遍。现有如下两张表1)商品表(库存表) 编号(id)名称(name)价格(price)库存(stock) 1 F16战斗机 10000 100 2 法拉利 800 70 3 航空母舰 5000 20 4 三栖交通工具 1000 50DROP TABLE IF EXISTS sho... 阅读全文
posted @ 2013-05-22 07:13 findumars 阅读(6404) 评论(0) 推荐(0) 编辑
摘要:以下两个例子来自:http://www.cnblogs.com/nicholas_f/archive/2009/09/22/1572050.html实测有效,但是原帖的分隔符不正确,因此稍作修改。其中old表示tab2(被动触发),new表示tab1(主动触发,外部应用程序在此表里执行insert语句)例子1:创建两个表,目的是在一个表里添加一条记录,另一个表也添加一条记录:DROP TABLE IF EXISTS tab1;CREATE TABLE tab1( tab1_id varchar(11));DROP TABLE IF EXISTS tab2;CREATE TABLE tab... 阅读全文
posted @ 2013-05-22 06:01 findumars 阅读(24547) 评论(0) 推荐(0) 编辑
摘要:老是忘记,所以备忘一下:mysql_insert_idmysql_num_rows($result) 返回结果集中行的数目。此命令仅对 SELECT 语句有效。mysql_affected_rows() 取得被 INSERT,UPDATE 或者 DELETE 查询所影响到的行的数目在Mac OS X 启动和停止MySQL服务的命令启动MySQL服务sudo /Library/StartupItems/MySQLCOM/MySQLCOM start停止MySQL服务sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop重启MySQL服务sudo /L. 阅读全文
posted @ 2013-05-21 20:05 findumars 阅读(269) 评论(0) 推荐(0) 编辑
摘要:删除重复记录的方法,转自:http://dadloveu.blog.51cto.com/715500/196309找出每个学生的第一个订单select * from duplicate where id in(select min(id) from duplicate group by name);生成新表:create table duplica select * from duplicate where id in(select min(id) from duplicate group by name);表改名:alter table duplica rename to duplicate 阅读全文
posted @ 2013-05-21 07:49 findumars 阅读(295) 评论(0) 推荐(0) 编辑
摘要:Mysql储存过程是一组为了完成特定功能的SQL语句集,经过编译之后存储在数据库中,当需要使用该组SQL语句时用户只需要通过指定储存过程的名字并给定参数就可以调用执行它了,简而言之就是一组已经写好的命令,需要使用的时候拿出来用就可以了。想要快速的了解Mysql储存过程吗,就一同看一下下文的“Mysql储存过程-原理、语法、函数详细说明”吧!一、Mysql储存过程简介: 储存过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对. 阅读全文
posted @ 2013-05-20 23:33 findumars 阅读(24412) 评论(0) 推荐(1) 编辑
摘要:mysql 视图的作用转自:http://blog.csdn.net/wangsifu2009/article/details/6719847 视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表。数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以基本表中的数据发生变化,从视图中查询出的数据也就随之改变了。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。既然视图的定义是基于基本表的,哪为什么还要定义视图呢?这是因为合理地使用视图能够带来许多好处:1、视图能简化用户操作 视图机制使用户可以将注意力集中在所关心地 阅读全文
posted @ 2013-05-20 21:08 findumars 阅读(367) 评论(0) 推荐(0) 编辑