使用DDL创建数据库

知识思维导图

DDL的基础语法

在 DDL 中,我们常用的功能是增删改,分别对应的命令是 CREATE、DROP 和 ALTER。需要注意的是,数据库一旦创建,名称将不可以更改。

1.对数据库进行定义

CREATE DATABASE nba; // 创建一个名为 nba 的数据库

DROP DATABASE nba; // 删除一个名为 nba 的数据库

2.对数据表进行定义,需要注意的是,创建数据表时,至少要定义好一个字段。语句最后以分号‘;’作为结束符,最后一个字段的定义结束后没有逗号。

(1)创建数据表

CREATE TABLE player(

    name varchar(255)

);//创建一个名叫player的数据表

字段常用数据类型:

        char(n)  固定长度字符串,用户指定长度n;

        varchar(n)  可变长度的字符串,用户指定最大长度n;

        int 整数类型

        float(n) 浮点数,精度至少为n位

        nummeric(p,d) 定点数,精度由用户指定。这个数有p位数字(加上一个符号位),其中d位数字在小数点的右边。

字段的七大约束:

       a.PRIMARY KEY约束: NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。需要注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。总结起来就是,一张表只有一个非空唯一的键,定义它为主键。

CREATE TABLE Persons(

        P_Id int NOT NULL,

        LastName varchar(255) NOT NULL,

        FirstName varchar(255),

        Address varchar(255),

        City varchar(255),

        PRIMARY KEY (P_Id)

);

       b.FOREIGN KEY约束:保证一个表中的数据匹配另一个表中的值的参照完整性。

CREATE TABLE Orders(

        O_Id int NOT NULL,

        OrderNo int NOT NULL,

        P_Id int,

        PRIMARY KEY (O_Id),

        FOREIGN KEY (P_Id) REFERENCES Persons(P_ID)

);

       c.UNIQUE约束:保证某列的每行必须有唯一的值。

CREATE TABLE Persons(

        P_Id int NOT NULL,

        LastName varchar(255) NOT NULL,

        FirstName varchar(255),

         Address varchar(255),

        City varchar(255),

        UNIQUE (P_Id,Address)

) ;

       d.NOT NULL 约束:指示某列不能存储 NULL 值。

CREATE TABLE Persons (

                ID int NOT NULL,

                LastName varchar(255) NOT NULL,

                FirstName varchar(255) NOT NULL,

                Age int

);

       e.DEFAULT约束:规定没有给列赋值时的默认值。

CREATE TABLE Persons(    

        P_Id int NOT NULL,    

        LastName varchar(255) NOT NULL,    

        FirstName varchar(255),    

        Address varchar(255),    

        City varchar(255) DEFAULT 'Sandnes'

) ;

       f.CHECK 约束:保证列中的值符合指定的条件。

CREATE TABLE Persons(

        P_Id int NOT NULL,

        LastName varchar(255) NOT NULL,

        FirstName varchar(255),

        Address varchar(255),

        City varchar(255),

        CHECK (P_Id>0)

) ;

(2)修改数据表

          a.添加字段,比如我在数据表中添加一个 age 字段,类型为int(11);

ALTER TABLE player ADD (age int(11));

          b.修改字段名,将 age 字段改成player_age;

ALTER TABLE player RENAME COLUMN age to player_age;

         c. 修改字段的数据类型,将player_age的数据类型设置为float(3,1)

ALTER TABLE player MODIFY (player_age float(3,1));

           d.删除字段, 删除刚才添加的player_age字段

ALTER TABLE player DROP COLUMN player_age;

3.设计数据表的原则

        “三少一多”原则:简单可复用,简单指的是用更少的表、更少的字段、更少的联合主键字段来完成数据表的设计。可复用则是通过主键、外键的使用来增强数据表之间的复用率。因为一个主键可以理解是一张表的代表。键设计得越多,证明它们之间的利用率越高。

1.数据表的个数越少越好

RDBMS 的核心在于对实体和联系的定义,也就是 E-R 图(Entity Relationship Diagram),数据表越少,证明实体和联系设计得越简洁,既方便理解又方便操作。

2.数据表中的字段个数越少越好

字段个数越多,数据冗余的可能性越大。设置字段个数少的前提是各个字段相互独立,而不是某个字段的取值可以由其他字段计算出来。当然字段个数少是相对的,我们通常会在数据冗余和检索效率中进行平衡。

3.数据表中联合主键的字段个数越少越好

设置主键是为了确定唯一性,当一个字段无法确定唯一性的时候,就需要采用联合主键的方式(也就是用多个字段来定义一个主键)。联合主键中的字段越多,占用的索引空间越大,不仅会加大理解难度,还会增加运行时间和索引空间,因此联合主键的字段个数越少越好。

4.使用主键和外键越多越好

数据库的设计实际上就是定义各种表,以及各种字段之间的关系。这些关系越多,证明这些实体之间的冗余度越低,利用度越高。这样做的好处在于不仅保证了数据表之间的独立性,还能提升相互之间的关联使用率。


                                                                                            -----整理自《极客时间》,《菜鸟教程》,《数据库系统概念》,侵权删

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • CREATE TABLE IF NOT EXISTS ecs_order_info (order_id mediu...
    cookie口阅读 16,094评论 0 16
  • 数据库:存放数据的仓库; 硬盘 运行内存 mysql 现在被oracle收购了 oracle oracle公司 s...
    凤之鸠阅读 1,110评论 0 0
  • 面试题5:union all 和 union的区别 Union:对两个结果集进行并集操作,不包括重复行,同时进行默...
    行者和他的钢笔阅读 1,038评论 0 1
  • 名榜教育导读:如果你也想要报考雅思,加入雅思备考大军,知道这些对你有好处。否则,如果备考的很好,但是无法报考那就心...
    名榜君说游学阅读 196评论 0 0
  • 尼莫的小窝下月初要迎来了第一个入住的房客,很开心也很兴奋,把家里好好准备下,准备迎接客人了! 当别人已经不能从你脸...
    叶子卷阅读 234评论 0 2

友情链接更多精彩内容