|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在执行崩溃恢复时,理解在一个数据库中的每一个表tbl_name对应的在数据库目录中的3个文件是很重要的:DISTINCT和扫除复制
假设你象列出一切买过古玩的ID和名字,很分明,你大概会将一切的主顾都列出来而没有思索有些主顾是买过量讲古玩的,以是这时候你会发明有些数据是反复的。这就意味着你必要关照SQL来扫除复制的行,而不论这个主顾买过量少个古玩只必要列出一次便可。为了完成这个目标,你可使用DISTINCT关头字。
起首我们必要为AntiqueOwners表来一个equijoin以失掉主顾的LastName和First的具体数据。可是,你要思索到Antiques表中的SellerID列是AntiqueOwners表的一个外码,以是主顾只能在AntiqueOwners表列出ID和名字的行才被列出。我们还想在列的数据中扫除SellerID复制的产生,以是我们要在产生反复的列上利用DISTINCT。
为了避免复制的产生,我们还想将LastName以字母按次分列,然后在按字母按次分列FirstName最初分列OwnerID,因而我们还必需利用ORDERBY子句,详细语句以下:
SELECTDISTINCTSELLERID,OWNERLASTNAME,OWNERFIRSTNAME
FROMANTIQUES,ANTIQUEOWNERS
WHERESELLERID=OWNERID
ORDERBYOWNERLASTNAME,OWNERFIRSTNAME,OWNERID
在这个例子中,由于每一个人都买都一个件古玩,以是我们将Lasname以字母按次列出一切的古玩具有者。
有了rowbase的binlog后,我们来分析一下怎么实现闪回。平时的DML无非三种操作,增删改,先说三种操作的日志格式。 |
|