MySQL数据表管理(上)

一、创建数据表

1.数据表的设计及ER图

(1)数据库设计的基本步骤:

     ① 需求分析阶段:分析客户的业务和数据处理需求

     ② 概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整

     ③ 详细设计阶段:将E-R图转换成多张表,进行逻辑设计,并应用数据库设计的三大范式进行审核

     ④ 代码编写阶段:选择具体数据库进行物理实现,并编写代码实现前端应用

(2)模拟QQ游戏大厅项目:

     ① 需求分析:系统需要记录哪些信息?

     ② 数据表:游戏表、玩家表、分数表

     ③ 每个表的字段:

          游戏表(编号、名称、类型、难度)

          玩家表(QQ号、昵称、性别、生日、手机号)

          分数表(游戏编号、玩家QQ、得分)

(3)E-R(Entity-Relationship)实体关系图:

符号含义
实体,一般是名词

属性,一般是名词

关系,一般是动词

 QQ游戏大厅项目E-R图:

2.使用范式检查数据表设计合理性

(1)什么是范式?

    设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。(范式就是一种规范,我们用这种规范去衡量我们数据库设计的到底好不好,衡量的是数据库是否有冗余这个指标)

(2)Dr E.F.Codd最初定义了规范化的几个级别,范式用以定义具有最小冗余的表结构。

(3)第一范式(1st NF)

     如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1st NF)。(第一范式是确保每列的原子性)

玩家QQ地区
12301中国北京
12302美国纽约
12303英国伦敦
12304日本东京

                                             ↓

玩家QQ国家城市
12301中国北京
12302美国纽约
12303英国伦敦
12304日本东京

(2)第二范式(2st NF)

      如果一个关系满足1NF,并且除了主键以外的其他列,都完全依赖于该主键,则满足第二范式(2NF),(第二范式要求每个表只描述一件事情)

(3)第三范式(3rd NF)

      如果一个关系满足2NF,并且除了主键以外的其它列都不传递依赖于主键列,则满足第三范式(3NF)。(第三范式要求表中不存在冗余字段)

3.使用命令窗口创建数据表

使用CREATE TABLE 表名;来创建数据表。

如:create table table_name
(
    col_name1 col_type [not null],
    col_name2 col_type [not null]
 );

4.为列添加主键约束

(1)约束的概念和作用:约束保证了数据的完整性,相当于数据的检察官,用于检查数据是否正确,其作用就是保证数据的正确性。

(2)主键约束作用:保证实体的完整性。即在某一列上如果我们添加了主键约束,那么这个列就不能出现重复的值,并且这个列上也不能出现空值。

例:为玩家表的玩家QQ这一列添加主键约束

create table user
(
    user_qq varchar(20) not null primary key,
    user_name varchar(50) not null,
    user_sex char(2) not null default '男',
    user_birthday date not null,
    user_phone char(11) not null
);

5.为列添加检查约束(对于MySQL数据库来说检查约束不起作用

(1)检查约束作用:保证域完整性。(即保证某一列上的数据必须符合某种格式或者符合某个范围)

例:为游戏表添加检查约束

create table game
(
    game_uid int not null primary key auto_increment,
    game_name varchar(50) not null,
    game_type varchar(20) not null
);

6.为列添加外键约束

(1)外键约束的作用:保证引用完整性。

例:为分数表添加外键约束:

create table score
(
    score_uid int not null primary key,
    score int,   
    user_qq varchar(20) not null references user(user_qq),
    game_uid int not null references game(game_uid)
);

7.为列添加默认约束

(1)概念:就是为某一列填写一个默认值,当我们这个列上没有值的时候,默认为其填上一种类型的值。作用:保证域完整性

         如:为玩家表的user_sex这一列添加默认约束。见主键约束。

8.为列添加自增列约束

(1)作用:保证实体完整性。(因为这个列上的值,自动增加,既然是自动增加就不会有重复的值,默认从1开始自增)

          如:为游戏表添加自增列,见游戏表。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值