关系型数据库的SQL

想起了一个数据库,相关球员在一场对另外一个人(例如,以确定谁是我的朋友,每一个球员,谁是敌人,每个球员) 。

  

首先让我们从创建一个表来储存数据,为每一个球员。 公告添加一个主键,它可以让你依赖于一个事实,即所有排有一个独特的领域,可以用来作为参考。 说明还指出,每列的数据,在主键必须是唯一的另外一个人。 这里是声明要营造我们的资料库(称为gamedata )和我们playerdata就座。

  MySQL的> "创建数据库gamedata ;的MySQL >使用gamedata ;的MySQL > "创建表playerdata ( -> "用户烧焦( 2 55)独特的不告无效- >"密码焦( 2 5 5), - > "时代的诠释, -> " da t e created戳,-> "主键(用户) ) ; 

公告这里我们如何设置用户名专栏,以独特的,也不能为null 。 简单来说,这意味着它必须包含价值,而这一价值绝不能同任何其他用户在任何其他记录在表中。 说明还指出,我们已经确定了主键的表成为用户领域,我们将主要寻找在这个领域,你会看到在一刹那间。

除了这方面的资料,我们还需要以某种方式来储存的朋友和敌人。 这是工作,并透过一个链接表 。 一个链接表,是真的只是一个正常的数据库表,但其主要目的是为了与数据,在一些这样或那样的方式,以节省空间和优化方式,数据库存取资料。

那么让我们创建两个连接表,其中一个为与朋友和一个与敌人向对方汇报。 以下是声明说,必须一以贯之。

如果连接表的使用,但优化的方法是商店诠释价值观,并有身份证场auto_increment在playerdata表作为首要关键。 这不是为可读当您执行一个专责的,但它比较快,从你的应用程序。 当更新一个球员的名字时,它并不打破完整的数据库。 此外,连书桌都常常结构只能用来当有氮量的关系从一排向其他行。 如果有永远只有一个关系(一个朋友或敌人) ,直接连系应使用。

  MySQL的> "创建表relatefriends ( -> "选手焦( 2 55) , - >"的朋友,焦炭(2 5 5)) ; 

还:

  MySQL的> "创建表relateenemies ( -> "选手焦( 2 55) , - >"敌人烧焦(2 5 5)) ; 

如果我们现在查看各表在数据库中符合下列命令:

  MySQL的> "显示表; 

… …我们可以看到,我们的数据库现在包含了三个不同的表-我们playerdata表和两个连接表。

我们现在增加一个样本的数据传送到播放器的数据表,所以我们可以尝试连接表和理解的逻辑,如何有效地使用这些措施。 这里是声明要求加入我们的样本数据,以该playerdata表:

  MySQL中>插入到playerdata价值观-> " ( '安德鲁' , '键盘' , 2 0,无效) , - >" ( '亨利', ' l e tmein', 3 4 ,无效), - > "( '桑德拉',' d r a 33',1 9 ,空值) , -> " ( '约翰' , ' j 12d' , 2 3,无效) , - >" ( '珍妮', ' j e n123', 3 4 ,无效); 

如果我们选择的所有信息,从playerdata表,现在用以下命令:

  MySQL的> "选择*从playerdata 

现在我们有一些样本数据,让我们尝试创造一些关系球员在数据库中。 首先添加到relatefriends链表的事实,亨利是朋友,桑德拉。 这里是声明要求加入到连接表:

  MySQL中>插入到relatefriends价值观-> " ( '亨利' , '桑德拉' ) ; 

我们现在再增加一些样本数据转化为双方relatefriends和relateenemies联系表,看看我们如何可以操纵数据。 这两个报表需要补充,在样本数据如下:

为防止被朋友和敌人,在同一时间内,一个关系表,可用于。 刚刚添加一个栏的"敌人"旗,如果设置了,这意味着他们的敌人,否则他们是朋友。

  MySQL中>插入到relatefriends价值观-> " ( '安德鲁' , '亨利' ) , - >" ( '安德鲁', '约翰') , - > "( '安德鲁','珍妮' ), - > " ('桑德拉' ,'詹妮' ) ; 

并且:

  MySQL中>插入到relateenemies价值观-> " ( '安德鲁' , '桑德拉' ) , - >" ( '亨利', '珍妮') , - > "( '亨利' ,'约翰' ); 

现在我们有了,我们所有的样本数据,让我们来看看,如果我们能找到谁,郑家富,是与朋友们用了如下声明:

  MySQL的> "选择朋友从relatefriends那里的球员= '安德鲁' ; 

当我们执行这个声明中,控制台会显示一个列出了所有球员安德鲁是朋友。

再次,我们可以做的完全一样,同relateenemies链表。 举例来说,我们可以找出所有的亨利的敌人,并作以下声明:

  MySQL的> "选择敌人从relateenemies那里的球员= '亨利' 

这一数据,那么,如果想了解更多信息,亨利的敌人,即有用户的詹妮中,我们会用以下声明:

  MySQL的> "选择*从playerdata这里USERNAME = '珍妮' ; 
这是一篇文章补充说,由乔治系
免责声明:我们的网站是不负责所载的资料,由本条规定。 这篇文章根本没有反映看法,意见,想法或信仰的文章目录中的工作人员。

翻译通知:文章"关联SQL数据库" ,被翻译使用的自动翻译服务。 我们真诚地道歉,对任何翻译错误发生。 谢谢你的谅解。

Online: 819 users browsing the articles directory