(三)mysql_浅谈MySQL(三)

//文章浅显,大神勿怪,欢迎讨论

//未完待续之前我们说到数据库像一个异世界的图书馆,我们是其中的管理员(对,就是那位man),管理着图书馆里的所有资源,如书架(Databases),里面装着书(Database),书里面是一张张布满数据的纸(Table)。

在日常生活中,我们用MySQL就是来存放与操作数据的,问题有两个,一是数据从何而来(数据的定义与类型请看前两话),二是数据存放在哪。

关于第二个问题,数据存放的地方已经在前面说的很清楚了,就存放在Databases中的Database中的Table中。

那第一个问题呢,数据从何而来,数据的来源有两个,一个是自己从零开始建,先建一个数据库,然后在数据库中建一张表,表中就可以存入自己想要的各种各样的数据了。另一个则是从外部导入数据。然后直接拿来用。

首先讲第一个,如何从零开始建。

在存放数据之前,我们得知道那张表是什么格式的,它有什么样的规则。正如上帝它并不直接创造世界,它只创造世界的法则,之后的一切,便自然而然的出现了。不同的规则只能存放不同的数据,正如鱼只能在水中,绵羊只能在地面。

所以我们首先要定义一张表,它是什么,它有什么限定。在表的定义中,叫做字段的属性,我们可以创建多个字段,每个字段有不同的属性。适用于不同的规则。so,先直接开始从一段语句开始吧,言从法随。

create table test

(

id int(11) primary key,

name varchar(30) not null,

code int unique,

salary float default 5000.00

);

读懂语言等于学会语言的一半了,那么我们先来读一下,创建一张表,它的名字叫做test,它里面有字段id,name,code,和salary,就跟Excel中的那些第一行,是来说明各列的属性的,其中id列,它的属性要求有,int(11),只能是数字整型,只显现11位数,primary key主键,主键是一种约束,它能使该列数据唯一,且不能为空。同时也可以与另一张表建立联系。(建立什么联系看下文)

name列它要求列必须是varchar(30)字符型,not null意味着该字段不能为空值。

code列,它要求是整型,同时unique,代表着该字段的数据不能重复。

salary列,它要求是float型,default为默认值,默认值为5000.00

(ps:上面的SQL语句只接受英语字符)

在日常中,我们不可能只用一张表就可以解决所有问题,通常都是多张表一起用的,比如说员工表与部门表,如果我们要同时用到两张表,那么我们就要将两张表一同建立联系,才能使用。如员工工号,是两张表都共有的,但员工表中,员工工号是来识别员工区别的主要手段,而部门表识别区别的往往是部门编号,而不是员工编号。那么我们可以说,在员工表中,员工工号是主键,而在部门表中则是外键。

所谓,外键,其实就是在一张表中的字段充当主键,在另一张表中没有的字段。

那么如何建立外键呢?

creat table test_1

(

department_id int(12) primary key auto_increment

member_id int(11)

constraint fk_test foreign key(member_id) reference test(id)

);

这里,我们建立了一张表,它的名字叫做test1,里面有部门字段department_id,它是主键,同时能自动增加1,如1,2,3,4·······这样的好处在于我们不用亲自去输。

同时,设置成员id字段,它的类型是Int,

最后我们设置约束条件constraint,这个约束名叫做fktest(为foreign key的缩写,自己随便命名没关系,只要方便自己记忆,这个叫做fktest的约束,它的具体形式是foreign key(member_id)reference test(id)。读起来就是将member_id设置为一个外键,它参照test表中的id字段。

从这个例子我们也可以得知,建立约束条件,不仅仅可以字段直接在后面加,而且可以在最后的最后加。如下面例子。

creat table test_2

(

department_id int(12) primary key

member_id int(11)

constraint auto_test auto_increment(department_id)

);

好了,如何建立表结构这期已经说完,然而还有几个问题,如果这个表结构建的不够满意,但它已经建立好了,怎么办。另外如果我们想在这张表增加一些新的东西的话,怎么办?这是下期的内容了,Byeby。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值