欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

每天一点数据库之

程序员文章站 2023-12-29 08:53:52
...

每天一点数据库之-----Day 2创建与管理数据库表 本节引言: 本节介绍的是数据库中表的创建与管理,另外,因为不同DBMS所 支持的数据类型有所差别,这里就不慢慢阐述了,有需要的自行百度~ 1.创建一个最简单的表 假如:我们定义一个名叫 T_Person的表,表中有三个字

每天一点数据库之-----Day 2 创建与管理数据库表


本节引言:

本节介绍的是数据库中表的创建与管理,另外,因为不同DBMS所

支持的数据类型有所差别,这里就不慢慢阐述了,有需要的自行百度~



1.创建一个最简单的表

假如:我们定义一个名叫

T_Person的表,表中有三个字段,FId(人员id),FName(人员姓名)

FAge(人员年龄),数据类型依次是:整数,长度不确定的字符串类型,整数

SQL语句如下:

CREATE TABLE T_Person( FId INTEGER ,FName VARCHAR(20),FAgeINTEGER);


虽然可以这样写,但是却不建议这样写,因为当字段太多的时候,这样写会过于杂乱,

而且很容易写错,另外,报错的时候是根据行号来进行提示错误信息的,所以建议你还是

按下面这种写法写吧:

CREATE TABLE T_Person

(

FId INTEGER ,

FName VARCHAR (20),

FAge INTEGER

)

ps:另外,切记最外层用的是"()"圆括号而非"{}"尖括号!!!


2.定义非空约束

有些时候,某些字段的值不能够为空值,我们可以在定义类型后增加NOT NULL

如:上面建表那里,我们设FId为非空,先把T_Person表删掉哦!

执行下述SQL代码:

CREATE TABLE T_Person

(

FId INTEGER NOT NULL,

FName VARCHAR ( 20),

FAge INTEGER

)

会发现表结构中的FId变成了不允许NULL值:

每天一点数据库之

当然,可以为多个字段设置NOT NULL



3.定义默认初始值

很多时候,在往数据库中录入数据的时候,某些字段通常都有默认初始值,比如,员工表的在职情况

大多数是在职的,设置了默认值,录入的时候就可以少写一个字段~这里演示设置年龄初始值为18

比如我们添加一个简单的记录:1 Tom ,故意不写FAge的值,运行下述代码后:

CREATE TABLE T_Person

(

FId INTEGER NOT NULL,

FName VARCHAR ( 20),

FAge INTEGER DEFAULT '18'

)


查询结果:

每天一点数据库之



4.定义主键

主键,前面已经讲过,唯一识别一行记录的字段,特点是:唯一和非空!!!

另外建议为每个表都定义一个主键,因为表关联的时候,关联的媒介就是

关联表的主键!我们再建表的时候,把FId设置为主键,SQL语句如下:

CREATE TABLE T_Person

(

FId INTEGER NOT NULL,

FName VARCHAR (20),

FAge INTEGER DEFAULT '18'

PRIMARY KEY (FId)

)

如果是在MSSQL中,还可以看到一个小钥匙:

每天一点数据库之

当然我们也可以自行验证主键的唯一与非空,只需要在加数据的时候弄个重复的Fid或者NULL值

就会看到结果了!

另外,还有一个叫做联合主键的玩意:就是由两个或以上个字段的组合来代替主键,

比如PRIMARY KEY (Cid,Sid)不过建议还是少用这东西,因为效率低,而且会让数据库

结构设计变得糟糕,还有外键关联的问题,结果就会增加开发难度咯!所以除非特殊场合,

否则都应该使用唯一主键!



5.表关联之外键

Day 1我们就介绍过表关联了,这里就来编码实现吧

先建立公司信息表T_FIRM:

CREATE TABLE T_FIRM

(

FId INTEGER ,

FName VARCHAR (20),

FAddress VARCHAR (40)

PRIMARY KEY (FId)

)


接下来就到员工信息表了,这里就用到外键了!

CREATE TABLE T_STAFF

(

PId INTEGER ,

PName VARCHAR (20),

CId INTEGER ,

PRIMARY KEY (PId),

FOREIGN KEY (CId) REFERENCES T_FIRM (Fid )

)

好了,接下来这两个表就建立了外键关联了,如果是在MSSQL中打开数据库关系图可以看到:

每天一点数据库之



6.修改数据库表

可能我们在一开始创建表的时候,考虑不周或者其他的原因,现在需要对表中的字段

进行删除或者增加,这个时候就要用到ALTER这个东东了

当前的表结构:

每天一点数据库之

实例:

①往之前创建的T_Person表中添加一个FSex的字段

ALTER TABLE T_PERSON ADD FSEX VARCHAR(10)


SQL运行前后的结果:

每天一点数据库之

②吃饱饭没事做,我们再把添加进去的FSEX字段去掉

ALTER TABLE T_Person DROP Column FSEX

看看运行结果,果然被删掉了!

每天一点数据库之



7.删除数据库表:

直接使用DROP TABLE即可

比如这里删除T_Person表使用以下SQL语句:

DROP TABLE T_Person

另外在MSSQL中使用下述语句报下面的错:

无法对 表 'T_Person' 执行 删除,因为它不存在,或者您没有所需的权限。

笔者是使用sa账户登录的,不应该存在权限的问题,另外T_Person表也是存在的,

原来新建查询的时候没有选择到表所在的数据库那里!!!切记!删除前后比较如下:

每天一点数据库之每天一点数据库之


ps:另外删除的表具有关联表时,要把关联表删除后才能删除,不然会报错,

比如人员表与公司表,要先删除人员表,再删除公司表,不然会报错哦!




最后说几句:

关于数据库中创建表,删除表,修改表就讲到这里~




上一篇:

下一篇: