关系型数据库的SQL
想起了一个数据库,相关球员在一场对另外一个人(例如,以确定谁是我的朋友,每一个球员,谁是敌人,每个球员) 。 首先让我们从创建一个表来储存数据,为每一个球员。 公告添加一个主键,它可以让你依赖于一个事实,即所有排有一个独特的领域,可以用来作为参考。 说明还指出,每列的数据,在主键必须是唯一的另外一个人。 这里是声明要营造我们的资料库(称为gamedata )和我们playerdata就座。 MySQL的> "创建数据库gamedata ;的MySQL >使用gamedata ;的MySQL > "创建表playerdata ( -> "用户烧焦( 2 55)独特的不告无效- >"密码焦( 2 5 5), - > "时代的诠释, -> " da t e created戳,-> "主键(用户) ) ; 公告这里我们如何设置用户名专栏,以独特的,也不能为null 。 简单来说,这意味着它必须包含价值,而这一价值绝不能同任何其他用户在任何其他记录在表中。 说明还指出,我们已经确定了主键的表成为用户领域,我们将主要寻找在这个领域,你会看到在一刹那间。 除了这方面的资料,我们还需要以某种方式来储存的朋友和敌人。 这是工作,并透过一个链接表 。 一个链接表,是真的只是一个正常的数据库表,但其主要目的是为了与数据,在一些这样或那样的方式,以节省空间和优化方式,数据库存取资料。 那么让我们创建两个连接表,其中一个为与朋友和一个与敌人向对方汇报。 以下是声明说,必须一以贯之。
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 = '珍妮' ; 这是一篇文章补充说,由乔治系
|
|||||||||
|