mysql怎么建立表关系 mysql如何建立表的关系

mysql怎么建立表MySQL 提供了多种创建索引mysql怎么建立表关系的方法mysql怎么建立表关系:
1) 使用 CREATE INDEX 语句
可以使用专门用于创建索引的 CREATE INDEX 语句在一个已有的表上创建索引,但该语句不能创建主键 。
语法格式mysql怎么建立表关系:
CREATE 索引名 ON 表名 (列名 [长度] [ ASC | DESC])
语法说明如下:
索引名:指定索引名 。一个表可以创建多个索引,但每个索引在该表中的名称是唯一的 。
表名:指定要创建索引的表名 。
列名:指定要创建索引的列名 。通常可以考虑将查询语句中在 JOIN 子句和 WHERE 子句里经常出现的列作为索引列 。
长度:可选项 。指定使用列前的 length 个字符来创建索引 。使用列的一部分创建索引有利于减小索引文件的大小 , 节省索引列所占的空间 。在某些情况下,只能对列的前缀进行索引 。索引列的长度有一个最大上限 255 个字节(MyISAM 和 InnoDB 表的最大上限为 1000 个字节),如果索引列的长度超过了这个上限 , 就只能用列的前缀进行索引 。另外,BLOB 或 TEXT 类型的列也必须使用前缀索引 。
ASC|DESC:可选项 。ASC指定索引按照升序来排列,DESC指定索引按照降序来排列,默认为ASC 。
2) 使用 CREATE TABLE 语句
索引也可以在创建表(CREATE TABLE)的同时创建 。在 CREATE TABLE 语句中添加以下语句 。语法格式:
CONSTRAINT PRIMARY KEY [索引类型] (列名,…)
在 CREATE TABLE 语句中添加此语句,表示在创建新表的同时创建该表的主键 。
语法格式:
KEY | INDEX [索引名] [索引类型] (列名,…)
在 CREATE TABLE 语句中添加此语句,表示在创建新表的同时创建该表的索引 。
语法格式:
UNIQUE [ INDEX | KEY] [索引名] [索引类型] (列名,…)
在 CREATE TABLE 语句中添加此语句,表示在创建新表的同时创建该表的唯一性索引 。
语法格式:
FOREIGN KEY 索引名 列名
在 CREATE TABLE 语句中添加此语句 , 表示在创建新表的同时创建该表的外键 。
在使用 CREATE TABLE 语句定义列选项的时候,可以通过直接在某个列定义后面添加 PRIMARY KEY 的方式创建主键 。而当主键是由多个列组成的多列索引时,则不能使用这种方法,只能用在语句的最后加上一个 PRIMARY KRY(列名,…) 子句的方式来实现 。
如何建立mysql表之间的关系MySQL创建关联表可以理解为是两个表之间有个外键关系,但这两个表必须满足三个条件
1.两个表必须是InnoDB数据引擎
2.使用在外键关系的域必须为索引型(Index)
3.使用在外键关系的域必须与数据类型相似
下面分别建两个表来说明一下:
Create TABLE IF NOT EXISTS `books` (
`book_id` smallint(6) NOT NULL auto_increment COMMENT ‘书籍编号',
`book_name` char(20) NOT NULL COMMENT ’书名‘,
怎样在mysql中设计好友关系库表1.建立用户信息表
create table userinfo(id int(4) not null primary key, name varchar(20) not null unique key)engine=innodb default charset=utf8;
2.建立好友关系表
create table friend(uid int(4) not null, foreign key(uid) references
userinfo(id),fid int(4) not null, foreign key(fid) references
userinfo(id),unique key(uid,fid))engine=innodb default charset=utf8;
3.追加测试数据(满足uidfid条件)
insert userinfo values(1111---9999,'namea---namei’);
【mysql怎么建立表关系 mysql如何建立表的关系】 insert friend values(1111,4444---6666);
insert friend values(5555,6666---9999);
4.查询好友(5555的好友)
select * from friend where uid=5555 or fid=5555;
------- ------
| uid| fid|
------- ------
| 1111 | 5555 |
| 5555 | 6666 |
| 5555 | 7777 |
| 5555 | 8888 |
| 5555 | 9999 |
------- --------
5.问题:
5.1.userinfo中的id和name不为null , 且不可重复:table设计可以做到
5.2.friend中的uid和fid均不为null,且都来自于userinfo的id:table设计可以实现
5.3.(uid,fid)组合不可重复:table设计可以完成
5.4.好友关系的表达时,(1111,5555)和(5555,1111)有冗余,也会出现(1111,1111)这样的数据:这个在table设计实现比较麻烦,需要在程序层面实现 , 也即增加限制条件uidfid即可
6.结果:
table设计达不到要求,或者较难达到要求时,可以在程序层面予以弥补 。
关于mysql怎么建立表关系和mysql如何建立表的关系的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读