精华内容
下载资源
问答
  • 知识点:数据库表的相关概念、创建数据库表的方法、设计数据库表、向数据库表中插入数据、建立不同数据库表之间的关系、删除数据库表。 1、数据表相关的一些概念 1.1 数据库里的数据是如何保存的? 数据库...

    知识点:数据库表的相关概念、创建数据库表的方法、设计数据库表、向数据库表中插入数据、建立不同数据库表之间的关系、删除数据库表。

     

    1、数据表相关的一些概念

     

    1.1 数据库里的数据是如何保存的?

            数据库到底是怎么存储数据的?比如要把学生信息存储到数据库里,能把学生塞进数据库吗?肯定是把学生的数据信息抽象出来,把一些重要信息以文字或数字的形式保存到数据库中去。

           具体是怎么保存的,有点类似于excel,是用一张二维表的形式来进行数据保存的。这里有两个名词需要注意,行(称之为记录),列(称之为字段)。表中一条记录表示现实中的一个实体(学生)。所以以后的重点就是围绕这个表来进行设计,设计他的列。这个就是存储数据的概念。

     

     

    • 记录:数据库中存储的数据表格,每一“行”(Row)实际上对应一个实体(如每一行都对应一个名人),在数据库中,通常叫作一条“记录”(Record)。
    • 字段:表格中的每一个“列”,如编号、姓名、性别、职业、代表角色/作品等,在数据库中,通常称之为“字段”。

     

    1.2  数据冗余

     

    数据冗余:在一个数据集合重复的数据称为数据冗余

            在数据库系统中,数据冗余是指数据之间的重复(比如上面学生信息表中,3条记录中都出现了“演影视剧表演”),也可以说是同一数据存储在不同数据文件中的现象(比如还有一个表,学生成绩表(该表的字段有姓名、专业、成绩),那么可以看到专业这个字段出现在两个表中,并且等同于它在其本来所属表的意义表示,那么这个字段就是一个冗余字段)。

     

    减少数据冗余最常见的方法是分类存储

           比如,对上面的学生信息表进行调整,先制作一个专业编码表,然后再制作一个学生信息统计表。

     

           通过这样的方法,可以减少数据冗余,但是会增加查找数据的复杂性。比如,要查找专业为“主持人”的学生信息,原来只需要查找一个表就可以了。而现在则需要先在“专业编码表”里查询,专业为“主持人”的编码是多少,然后再到学生信息表里查到对应的人。这样一来,就增加了查找的复杂性,降低了效率。因此,在数据库中,通常允许有必要的冗余

     

    1.3 数据完整性

           数据完整性是指数据库中数据的准确性,如果多个表互相关联,那么只要修改其中一个表,与之相关的所有表都要做出相应的修改。否则数据将不再准确,也就失去完整性。(比如上面的职业编码表,将计算机专业对应的编码改为5,那么对应的学生信息表里的信息也要对应发生变化,否则就会出问题。)

            数据准确性是通过数据库表的设计和约束来实现的。例如在“学生信息表”中,如果不对表中存储的年龄信息加以限制(约束),那么学生的年龄可能会出现负数(录入错误等原因),这样的数据就不具备完整性。

             为了实现数据完整性,SQLServer提供了四种类型的约束:实体完整性约束、域完整性约束、引用完整性约束、自定义完整性约束。

    (1)实体完整性约束

    实体的概念:数据库表中的每一行数据都是一个实体。

    什么是实体完整性?实体完整性是指数据库表中行的完整性,即要求每一行数据都是唯一的不重复的。

    如何保证实体完整性?(后面详细讲解)

    • 设置主键约束:每个数据库表有且仅有一个主键,每一个主键值必须唯一,而且不允许为“空”(NULL)或重复。
    • 设置唯一键约束:唯一键在一张表中可以有多个,并且唯一键允许字段数据为NULL。
    • 设置标识列属性:标识列又称标识符列,习惯上又叫自增列。(保证了不会重复且不会为空)

     

    (2)域完整性约束

    域的概念:域就是字段,数据库表中的每一列都是一个域/字段。

    什么是域完整性?域完整性指的是必须保证字段的值是合理的。即数据库表中的列必须满足某种特定的数据类型或约束。其中约束又包括取值范围、精度等规定。

    如何保证域完整性?可以使用CHECK约束、UNIQUE约束、default默认值、identity自增、not null/null保证列的值域的完整性。

     

    (3)引用完整性

    引用的概念:一个表中的某个字段引用另一个表中的字段,被引用的表称为主表,引用表称为从表或外键表。

    什么是引用完整性?引用完整性也叫参照完整性,引用完整性指被主表中的主关键字和从表中的外部主关键字之间的关系。引用完整性是保证从表中外键列不会出现主表中对应主键列没有的项。

     

           举例:上面两张表“专业编码表”和“学生信息表”,观察他们有什么关系?“学生信息表中”的专业字段所对应的编号,引用自“专业编码表”中的专业编码字段。这时候这两张表之间就有了引用和被引用的关系。

    • 被引用的表“专业编码表”   ——主表。(用来约束其他表
    • 引用数据的表“学生信息表”——从表(或外键表)。(被主表约束
    • 建立主外键联系的字段之间的类型和意义必须一致(主表中的专业编码字段和从表中的专业字段,类型和意义必须一致)。
    • 主表中建立关系的字段必须是主键或者唯一键。
    • 删除主表数据:从表如果没有引用所要删除的主表数据,则可以删除。否则会报错。(先删除从表相关记录,再删除主表数据)

     

    (4)自定义完整性

    自定义的概念:用户自己定义规则。

    什么是自定义完整性?自定义完整性,也称域完整性规则,是对数据表中字段属性的约束。包括字段的值域、字段的类型和字段的有效规则(如小数位数)等约束,是由确定关系结构时所定义的字段的属性决定的。如,百分制成绩的取值范围在0~100之间等。再比如输入性别信息时,只允许输入“男”或“女”。

     

    1.4 主键(Primary Key)

            如果在表中存储了很多行数据,就会引发这样的问题:如何判断表中没有重复的数据行?这时就需要有一个列,这一列的值能够唯一标识表中的每一行(即一条记录),用来强制实现表的实体完整性,这样的列称之为表的“主键”。

     

            数据库主键:指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。主键主要是用于和其他表的外键关联,以及本表记录的修改与删除。

    比如:
    学生表(学号,姓名,性别,班级)
    其中每个学生的学号是唯一的,学号就是一个主键

    专业表(专业编码,专业)
    其中课程编号是唯一的,课程编号就是一个主键

    注意:

    • 一个表只能有一个主键,并且主键列不允许出现空值(NULL),尽管有的表中允许没有主键,但是通常情况下,建议为表设置一列为主键。
    • 如果两列或多列组合起来唯一地标识表中的每一行,则该主键也叫作“复合主键”。
    • 在同一张表中,如果有多个列可以用来当做主键,在选择哪个列做为主键时,需要考虑两个原则:最少性和稳定性

     

     

    1.5 外键(Foreign Key)

            外键是实施引用完整性的约束,外键涉及到两个以上的表。如果一张表中的某一列是引用另一张表中的主键,那么这列就成为外键。比如学生信息表里的列“专业”,不是学生信息表的主键,但是它和专业编码表里的列“专业编码”对应,并且“专业编码”列是专业编码表的主键。因此,学生信息表里的列“专业”,是该表的外键。一个表可以有多个外键。

     

    1.6 列的数据类型

           在创建数据库表时,必须为表中的每列指派一种数据类型。

    • 文本数据类型选择:

    Unicode编码:(统一码、万国码、单一码)是一种在计算机上使用的字符集。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

    Char、Varchar、Text储存的字符是基于ASCII编码格式,是国际化通用与标准。对于其他编码格式的字符可能会造成存储问题。Unicode字符集(万国码)就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。

    Nchar、 Nvarchar、Ntext存储的正是Unicode编码格式的字符。所以一般来说,如果含有中文字符,用Nchar、Nvarchar、Ntext, 如果只含英文字符,就用Char、Varchar、Text。

    Char性能好;Varchar节省空间。选择方法:10个字节以上的用Varchar。N类型的占用空间大,性能低,如果不准备存中文或中亚文字则尽量避免使用。

    • 整数类型选择:首先int,空间占用合适,运算速度快。如果非常在意空间的话,考虑tinyint,   超大应用场合,考虑bigint。

     

    2、创建数据库表

            数据表(或称表)是数据库最重要的组成部分之一。数据库只是一个框架,数据表才是其实质内容。如“教学管理系统”中,教学管理”数据库包 含分别围绕特定主题的6个数据表:“教师”表、“课程”表、“成绩”表、“学生”表、“班级”表和 “授课”表,用来管理教学过程中学生、教师、课程等信息。这些各自独立的数据表通过建立关系被联接起来,成为可以交叉查阅、一目了然的数据库。

    创建数据库表的前提:已经在SSMS中建立了数据库,这里已经提前创建好数据库SchoolDB.

    2.1 在SSMS中建立数据库表

    第一步:在对象资源管理器中,点击数据库SchoolDB前面的“+”号,展开数据库,展开表,单击数据右键,点击【表】

    第二步:系统会创建一个空白表,在右侧区域定义表的列名和数据类型、是否允许Null值以及其他属性

    第三步:对表进行设计,这里先设计一个学生信息表。(列名不允许中文,数据类型根据该列的值选中适合的数据类型。)

    第四步:设置表的主键,这里设置MajorNumber为主键。设置方法:选中第一列,单击数据右键,在弹出的下拉菜单中单击【设置主键】即可。

    主键设置成功以后,会在改列的左侧出现一个钥匙符号,代表该列是主键。

     

    2.2 保存数据库表

    第五步:保存数据库表。方法:单击工具栏上的保存按钮,或者快捷键Ctrl+S,进行保存。初次保存时会弹出保存对话框,按照提示给表起个名称,然后单击确定即可。这里给表起名Student。

    刷新对象资源管理器,可以看到新创建的表。

     

    2.3 完善表的设计结构

    1、是否允许为空值

           数据库表的列是否允许为空,也是一种约束。如果该列允许为空,那么在输入数据行的时候,这一列的值可以不输入。比如注册账号的时候,一些非必填项,用户可以不填写。

     

    2、建立主键

           确定了列的名称、数据类型和是否允许为空后,表的基本框架就完成了。建立主键的方法在上面第四步已经详细说明,这里不再重复。

    思考几个问题:设置为主键的列,可以允许为空吗?一个表的主键可以由多列组成吗?列设置好以后,怎么调整顺序?

     

    3、默认值

            为了存储数据的方便,在设计表的时候,可以对一些列设置默认值。比如同一个学校的学生,地址如果不填写,默认值可以是学校地址,比如教师的级别如果不输入,默认值可以是“讲师”。

           表的默认值能够未某一列定义一个值,当用户没有在某一列中输入数据时,则将定义的值赋值给这一列。

           举例,在表中新添加一列,Address,设置数据类型,允许为空,并在表的下方设置默认值。

     

    4、标识列

           在很多情况下,存储的信息中很难找到不重复的信息作为表的主键。比如一个学生信息表,如果用姓名作为主键,那么在存储数据的时候,就不允许同一个班级、甚至同一个学校存在重名的学生。这样显然比较麻烦。SQL Sererver提供了一个“标识列”,来解决这样的en问题。

           标识列本身没有具体的意义,不反映诸如地址、性别这样的信息,只是用来区别不同的学生。设置标识列的方法:举例新增加一列Id,int类型,在表的下方列属性里点击“标识规范”,在(是标识)选项中点选“是”。

    注意:

    • 如果一列的数据属于数字类型(如整数),那么可以把该列定义为标识列。
    • 定义成标识列之后,还需要分别指定“标识种子”和“标识增量”,默认值都是 1。
    • 定义了标识列之后,在以后每次输入数据的时候,该列随数据行的增加而自动增加数值,并且不会重复,第一次的数字就是“标识种子”值,以后每次按照“标识增量”增加数值。
    • 标识列通常也被定义为主键,通常所说的“自动编号”就是指标识列的数字自动增加。
    • 标识列中的数据是自动生成的,不能在该列上输入数据。

    思考:标识列可以是字符串吗? 标识列可以允许空吗? 

    测试:如果标识列的标识种子是2,标识增量是3,先添加三行数据,然后删除,接着再向表中添加数据时,标识列的值会是多少?

     

     

    2.4 向表中插入数据

            数据库表设计好以后,就需要往表中添加数据了。

    方法:选择要添加数据的表,单击鼠标右键,在弹出的下拉菜单中选择【编辑前200行】

    在SSMS右侧出现添加数据,按照自己的设计添加数据就可以了。

    这里先添加两条数据,注意观察默认值和标识列、非空属性的应用。

    数据添加完成以后,要保持,在空白地方单击鼠标右键,点击【执行SQL】即可。

     

    2.5 建立表之间的关系

    准备工作:

    1、在SchoolDB数据库中新创建一个Major表。专业编号和专业名称,其中专业编号是主键。

    2、在Major表中添加专业信息(添加4条记录)

    两个表之间的关系:Student表中的Major列,引用Major表中的MajorNumber列。因此,Student表是从表,Major表是主表。

    建立两个表之间的关系:

    第一步:选中Student表中的Major列,单击数据右键,单击【关系】

    第二步:弹出一个【外键关系】对话框,点击【添加】

    第三步:点击【添加】以后,默认添加一个【关系】

    第四步:在右侧【表和列规范】后面的输入框里单击一下数据左键,出现一个按钮,单击该按钮。

    第五步:弹出一个【表和列】窗口,这个窗口是用来对关系进行设置的。这里要分清楚两个表,谁是主表、谁是从表。点击选择设置主键表是Major里的MajorNumber列,外键吧是Student里的Major列。然后单击【确定】

    单击确定后【表和列】窗口会关闭,直接在【外键关系】窗口单击【关闭】即可。

    第六步:由于刚才的Student表已经有了改动,单击保存,在弹出的【保存】窗口中,单击【是】。

    此时两个表之间已经建立了关系。

    思考:向Student表中插入数据,测试如果Major列输入数字5,是否可以?实际演练一下看看结果。

     

     

    2.6 建立数据库关系图

            要查看表之间的关系,可以在 SQL Server Management Studio 中展开该数据库(SchoolDB),右击“数据库关系图”,在弹出的快捷菜单中选择“新建数据库关系图”选项,然后根据提示信息新建数据库关系图,在向导中选择要显示关系的表。

    第一步:选择【数据库关系图】,单击鼠标右键,选择【新建数据库关系图】。

    第二步:弹出提示框,选择【是】。

    第三步:在弹出的【添加表】窗口中,将有关系的表全部选中,然后点击【添加】

    第四步:系统创建数据库表关系图。(注意观察不同符号)

    第五步:保存数据库关系图,单击工具栏保存按钮,弹出【选择名称】窗口,起个名字,然后单击【确定】即可。

    此时可以看到关系图文件已经保存

     

     

    2.7 建立检查约束

             检査约束也叫作 CHECK 约束,用于定义列中可接受的数据值或者格式,在设计表的时候,在快捷菜单中选择“CHECK 约束”选项,然后在弹出的“CHECK 约束”对话框中单击“添加”按钮,将添加一个新的约束。

    举例:设置Student表中Age列的值为18~30

    设置方法:

    第一步:重新设计Student表。在SchoolDB数据库中找到Student表,单击鼠标右键,选择【设计】

    第二步:选中Age列,单击鼠标右键,选择【CHECK约束】

    第三步:弹出【检查约束】窗口,在窗口上点击【添加】按钮

    第四步:系统新添加一个约束,点击右侧表达式后面的输入框,然后点击最右侧的按钮

    第五步:在弹出的【CHECK约束表达式】窗口中,添加对应的表达式,然后点击【确定】

    第六步:点击【检查约束】窗口上的【关闭】按钮

    第七步:保存Student表,单击工具栏保存按钮即可。

    第八步:验证CHECK约束。方法:选中Student数据表表单击右键选择【编辑前200行】,添加一行数据,如第三行,在填写Age列的值是填写16,全部填写完成要进入下一行填写时,提示错误,错误提示与CHECK约束起冲突。

     

     

    2.8 删除数据库表

            对于不再使用的数据库表,可以删除以释放磁盘空间,右击该表,在弹出的快捷菜单中选择“删除”选项可以把该表直接删除。对于建立主外键关系的表,若要删除主表,则首先要删除相关的从表以保证数据的引用完整性。

    举例:直接删除Major表时,提示删除失败,因为有外键约束。

     

     

     

     

    =================这里是结束分割线======================

    展开全文
  • MySQL 查看数据库表结构 修改表结构 修改字段 修改约束条件 修改表名 删除数据库表 查看数据库表结构 可以使用 describe 语句来查看数据表结构,代码如下: describe users; 在控制台中输入上述语句后的执行...

    MySQL 查看数据库表结构 修改表结构 修改字段 修改约束条件 修改表名 删除数据库表

    查看数据库表结构

    • 可以使用 describe 语句来查看数据表结构,代码如下:

      describe users;
      
    • 在控制台中输入上述语句后的执行结果如下所示:

      在这里插入图片描述

    修改表结构

    • 在实际应用中,当发现某个表的结构不满足要求时,可以使用 alter table 语句来修改表的结构,包括修改表的名称、添加新的字段、删除原有的字段、修改字段类型、索引及约束,还可以修改存储引擎及字符集等。修改表的语法格式如下:

      alter table 表名 action[,action]...;
      
    • 其中,每个动作(action)是对表所做的修改,MySQL 支持一条 alter table 语句带多个动作,中间用逗号隔开。下面详细介绍一下几种常用的修改

    • 1、修改字段

      • (1)添加新字段

        • 向表里添加新字段可以通过在 action 语句中使用 add 关键字来实现,语法格式如下:

          alter table 表名 add 新字段名 数据类型 [约束条件][first|after 字段名];
          
        • 向表中添加新字段时通常需要指定新字段在表中的位置,如果没有指定 first 或者 after 关键字,则在表的末尾添加新字段,否则在指定位置添加新字段

        • 例如,为用户表 users 添加一个 address 字段,数据类型为 varchar(50),非空约束,可以使用如下的 SQL 语句:

          alter table users add address varchar(50) not null;
          
        • 若要在 users 表中的 sex 字段后增加一个 phone 字段,数据类型为 varchar(20),非空约束,则对应的 SQL 语句如下:

          alter table users add phone varchar(20) not null after sex;
          
        • 添加字段后的 users 表的结构如下图所示

          在这里插入图片描述

      • (2)修改字段

        • 如果只需要修改字段的数据类型,则使用 change 或者 modify 子句,其语法如下:

          alter table 表名 change 原字段名 新字段名 数据类型;
          alter table 表名 modify 字段名 数据类型;
          
        • 例如,要修改 users 表中的 phone 字段,将数据类型由 varchar(20) 改为 int,并设置默认值为 0,下面两种方法是等价的:

          alter table users change phone phone int unsigned default 0;
          alter tablr users modify phone int unsigned default 0;
          
        • 如果需要修改字段的字段名(以及数据类型)这时就只能使用 change 子句了。例如,将 users 表中的 phone 字段修改为 telephone 字段,且数据类型修改为 varchar(20),则可以使用如下 SQL 语句:

          alter table users change phone telephone varchar(20);
          
      • (3)删除字段

        • 删除表字段的语法格式如下:

          alter table 表名 drop 字段名;
          
        • 例如,将 users 表中的 address 字段删除,则可以使用如下 SQL 语句:

          alter table users drop address;
          
    • 2、修改约束条件

      • (1)添加约束条件

        • 向表的某个字段添加约束条件的语法格式如下:

          alter table 表名 add constraint 约束名 约束类型(字段名);
          
        • 例如,向用户表 users 的 telephone 添加唯一性约束,且约束名为 phone_unique,可以使用如下 SQL 语句:

          alter table users add constraint phone_unique unique(telephone);
          
        • 添加了上述约束条件后,users 表的结构如下所示:

          在这里插入图片描述

        • 如果要向订单表 orders 的 uid 字段添加外键约束,且约束名为 fk_orders_users,可以使用如下 SQL 语句:

          alter table users add constraint fk_orders_users foreign key(uid) references users(uid);
          
      • (2)删除约束条件

        • 若要删除表的主键约束,其语法格式如下:

          alter table 表名 drop primary key;
          
        • 例如,要删除订单表 orders 的主键约束,可以使用如下 SQL 语句:

          alter table orders drop primary key;
          
        • 若要删除表的外键约束,其语法格式如下:

          alter table 表名 drop foreign key 外键约束名;
          
        • 例如,要删除订单表 orders 的外键约束,可以使用如下 SQL 语句:

          alter table drop foreign key fk_orders_users;
          
        • 若要删除字段的唯一性约束,则只需要删除该字段的唯一性索引即可,其语法格式如下:

          alter table 表名 drop index 唯一索引名;
          
        • 例如,要删除用户表 users 的 telephone 字段的唯一性索引,可以使用如下 SQL 语句:

          alter table users drop index phone_unique;
          
    • 3、修改表名

      • 修改表名的语法格式如下:

        alter table 原表名 rename to 新表名;
        
      • 还可以使用 rename table 语句,其语法格式如下:

        rename table 原表名 to 新表名;
        
      • 例如,将 users 表的表名修改为 tbl_users,可以使用以下代码:

        alter table users rename to tbl_users;
        rename table users to tbl_users;
        
    • 4、修改表的其他设置

      • 修改表的其他设置,常用的操作如修改存储引擎、默认字符集等。例如,修改 users 表的存储引擎和默认字符集:

        alter table users engine=MyISAM;
        alter table users default charset=utf8;
        

    删除数据库表

    • 要删除数据库表,可以使用 drop table 语句实现,例如删除 users 表:

      drop table users;
      
    • 在默认情况下,当试图删除一个不存在的表时,系统会报错。例如,以下的情况(orders 表不存在):

      drop table orders;
      
    • 系统会出现 Unknown table “orders” 的错误信息,为避免这种错误,可以使用如下语句:

      drop table if exists orders;
      
    展开全文
  • 数据库表结构

    千次阅读 2018-08-20 16:28:54
    当前研发工作中经常出现因数据库表、数据库表字段格式不规则而影响开发进度的问题,在后续开发使用原来数据库表时,也会因为数据库表的可读性不够高,表字段规则不统一,造成数据查询,数据使用效率低的问题,所以有...

    当前研发工作中经常出现因数据库表、数据库表字段格式不规则而影响开发进度的问题,在后续开发使用原来数据库表时,也会因为数据库表的可读性不够高,表字段规则不统一,造成数据查询,数据使用效率低的问题,所以有必要整理出一套合适的数据库表字段命名规范来解决优化这些问题。

    本文是一篇包含了数据库命名、数据库表命名、数据库表字段命名及SQL语言编码的规范文档,针对研发中易产生的问题和常见错误做了一个整理和修改,为日后涉及到数据库相关的研发工作做好准备。

     

     

    数据库规范化设计要求

    一、表中避免空列

    减少数据库处理记录的复杂性,

    1、空列数目少的时候,可以设置默认值。

    2、空列数目多的时候,可以设置单独一张表存储。

    二、表不应该有重复的值或列

    创建字典表

    三、唯一的标识某一条数据

    ID  

    如有必要添加 行号 进行排序显示管理

     

    四、数据库对象统一的前缀名

    t_department 

    五、尽量只存单一实体类型数据

    一个表中的字段不要太复杂 ,能分开的单独分开建表。

     

     


    数据库相关命名规范

     

    一、数据库命名规范

    采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词用下划线'_'分隔,一个项目一个数据库,多个项目慎用同一个数据库

     

    二、数据库表命名规范

    2.1数据表命名规范

    (1)采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词用下划线'_'分隔

    (2)全部小写命名,禁止出现大写

    (3)禁止使用数据库关键字,如:name,time ,datetime,password等(user ) 不然sql语句 写成 select * from [User]

    (4)表名称不应该取得太长(一般不超过三个英文单词)

    (5)表的名称一般使用名词或者动宾短语

    (6)用单数形式表示名称,例如,使用 employee,而不是 employees

    明细表的名称为:主表的名称+字符dtl(detail缩写)

    例如:采购定单的名称为:po_order,则采购定单的明细表为:po_orderdtl 

    (7)表必须填写描述信息(使用SQL语句建表时)

     

    2.2命名规范

    ①模块_+功能点  示例:alllive_log   alllive_category

    ②功能点  示例:live   message

    ③通用表  示例:all_user

     

    2.3待优化命名示例

    ①冗余:

    错误示例:yy_alllive_video_recomment    yy_alllive_open_close_log

    说明:去除项目名,简化表名长度,去”yy_”

     

    ②相同类别表命名存在差异,管理性差

    错误示例:yy_all_live_category    yy_alllive_comment_user

    说明:去除项目名,统一命名规则,均为”yy_alllive_”开头即可

     

    ③命名格式存在差异

    错误示例:yy_showfriend    yy_user_getpoints    yy_live_program_get

    说明:去除项目名,统一命名规则,动宾短语分离动宾逻辑顺序统一

     

    三、数据库字段命名规范

    3.1字段命名规范

    (1)采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词用下划线'_'分隔

    (2)全部小写命名,禁止出现大写

    (3)字段必须填写描述信息

    (4)禁止使用数据库关键字,如:name,time ,datetime password 等

    (5)字段名称一般采用名词或动宾短语

    (6)采用字段的名称必须是易于理解,一般不超过三个英文单词

    (7)在命名表的列时,不要重复表的名称

    例如,在名employe的表中避免使用名为employee_lastname的字段

    (8)不要在列的名称中包含数据类型

    (9)字段命名使用完整名称,禁止缩写

     

    3.2命名规范

    ①名词  示例:user_id    user_name    sex

    ②动宾短语  示例:is_friend   is_good

     

    3.3待优化命名示例

    ①大小写规则不统一

    错误示例:user_id    houseID

    说明:使用统一规则,修改为”user_id”,”house_id”

     

    ②加下划线规则不统一

    错误示例:username    userid    isfriend    isgood

    说明:使用下划线进行分类,提升可性,方便管理,修改为”user_name”,”user_id”,”is_friend”,”is_good”

     

    ③字段表示不明确

    错误示例:uid    pid

    说明:使用完整名称,提高可读性,修改为”user_id”,”person_id”

     

    3.4字段类型规范

    (1)所有字段在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary 、varbinary外,必须有默认值,字符型的默认值为一个空字符值串’’,数值型的默认值为数值0,逻辑型的默认值为数值0

    (2)系统中所有逻辑型中数值0表示为“假”,数值1表示为“真”,datetime、smalldatetime类型的字段没有默认值,必须为NULL

    (3)用尽量少的存储空间来存储一个字段的数据

    使用int就不要使用varchar、char,

    用varchar(16)就不要使varchar(256)

    IP地址使用int类型

    固定长度的类型最好使用char,例如:邮编(postcode)

    能使用tinyint就不要使用smallint,int

    最好给每个字段一个默认值,最好不能为null

    (4)用合适的字段类型节约空间

    字符转化为数字(能转化的最好转化,同样节约空间、提高查询性能)

    避免使用NULL字段(NULL字段很难查询优化、NULL字段的索引需要额外空间、NULL字段的复合索引无效)

    少用text类型(尽量使用varchar代替text字段)

     

    3.5数据库中每个字段的规范描述 

       (1)尽量遵守第三范式的标准(3NF) 

         表内的每一个值只能被表达一次 

         表内的每一行都应当被唯一的标示 

         表内不应该存储依赖于其他键的非键信息

    (2)如果字段事实上是与其它表的关键字相关联而未设计为外键引用,需建索引

    (3)如果字段与其它表的字段相关联,需建索引

    (4)如果字段需做模糊查询之外的条件查询,需建索引

    (5)除了主关键字允许建立簇索引外,其它字段所建索引必须为非簇索引

     

    四、SQL语言编码规范 

    4.1大小写规范 

    (1)所有关键字必须大写,如:INSERT、UPDATE、DELETE、SELECT及其子句,IF……ELSE、CASE、DECLARE等

    (2)所有函数及其参数中除用户变量以外的部分必须大写

    (3)在定义变量时用到的数据类型必须小写

     

    4.2注释 

    注释可以包含在批处理中,在触发器、存储过程中包含描述性注释将大大增加文本的可读性和可维护性,本规范建议: 

    (1)注释以英文为主,实际应用中,发现以中文注释的SQL语句版本在英文环境中不可用,为避免后续版本执行过程中发生某些异常错误,建议使用英文注释

    (2)注释尽可能详细、全面创建每一数据对象前,应具体描述该对象的功能和用途,传入参数的含义应该有所说明,如果取值范围确定,也应该一并说明,取值有特定含义的变量(如boolean类型变量),应给出每个值的含义

    (3)注释语法:单行注释、多行注释 

    单行注释:注释前有两个连字符(--)对变量、条件子句可以采用该类注释

    多行注释:符号之间的内容为注释内容,对某项完整的操作建议使用该类注释

    (4)注释简洁,同时应描述清晰

    (5)函数注释: 

    编写函数文本--如触发器、存储过程以及其他数据对象--时,必须为每个函数增加适当注释,该注释以多行注释为主,主要结构如下: 

    CREATE PROCEDURE sp_xxx 

     

     

     

     数据库表设计需要满足

    1、功能需求

    2、性能需求

    3、扩展性需求

     

     

    参考:

    数据库设计规范化的 5 个要求

    数据库表设计的几条准则

    数据库表结构设计浅谈

     

     

    数据库表及字段命名规范(一)

    展开全文
  • exp导出oracle数据库表:(以本机管理员身份),参考http://jiqinlin.iteye.com/blog/758469 导出表:exp 用户名/密码@localhost(ip地址):端口号/数据库实例名 file=本地地址\想要生成的表明.dmp owner=(用户名,密码)...
    exp导出oracle数据库表:(以本机管理员身份),参考http://jiqinlin.iteye.com/blog/758469
    导出表:exp 用户名/密码@localhost(ip地址):端口号/数据库实例名 file=本地地址\想要生成的表明.dmp owner=(用户名,密码)
    eg:exp c##tjuser/tjuser@localhost:1521/orcl file=C:\adc160624.dmp owner=(c##tjuser,tjuser)    //当前用户下的表
    数据库名、实例名查询:(管理员身份)
    1.输入cmd命令:sqlplus   //进入SQL语句状态
    2.分别输入数据库的用户名、密码
    3.select name from v$database;     //查询数据库名称
      select instance_name from v$instance;   //查询数据库实例名
      select instance_name,host_name from v$instance;  //查询数据库实例名、主机名
    备注:PLSQL Developer开发工具自带导出导入功能
    export tables :导出表结构及数据
    export user objects: 导出的是建表语句(存储结构)
    查看oracle数据库的XXX用户下的所有的表:
    select table_name from dba_tables where owner='XXX';
    oracle数据库创建用户:(创建用户后需要为用户解锁、赋权限)
    create user user_name identified by 123456;       //user_name为用户名, 123456为密码
    alter user user_name account unlock;        //为用户user_name解锁,不解锁用户无法登陆
    grant connect,resource,create to user_name;       //为user_name赋连接、创建等权限
    grant sysdba to user_name;      //直接把某一用户(此处为数据管理员)的权限赋值给user_name
    查看拥有sysdba或sysoper权限的用户:
    select * from V$PWFILE_USERS;
    删除用户,连带用户操作的数据库表一起删除:
    drop user user_name cascade;

    Imp {u_name}/{u_pwd}@{local_svrname} fromuser={from_user} touser={u_name} file={dmp_file_path} ignore=y;
    eg:imp c##tjuser/tjuser@localhost:1521/orcl fromuser=c##tjuser touser=c##tjuser file=c:\adc.dmp ignore=y;
    (备注:导入数据库之前需要创建表空间,创建用户,给用户赋权等操作)
    展开全文
  • 用MySQL创建数据库和数据库表

    千次阅读 2014-04-11 16:36:01
    在《用MySQL创建数据库和数据库表》文章中,我们如何创建一个数据库和数据库表,并知道如何向数据库表中添加记录。 那么我们如何从数据库表中检索数据呢?  1、从数据库表中检索信息  实际上,前面我们已经用到...
  • idea中操作数据库表 +号:添加表数据 添加完点DB即可保存 注意:凡是操作完数据库表都需要点DB保存
  • 两个数据库之间使用DB LINK进行访问,现在需要将一个数据库表中的数据复制到另一个数据库表中,大概有200多万条数据,直接使用insert into 语句,平时数据库没人用的时候,大概7到8分钟就可以导完,若跑批任务使用...
  • 知识点:使用create语句新建数据库、创建数据库表的方法、新建数据库表时设置主键、设置标识列的方法、添加check约束、删除数据库表和数据库的方法。 使用create语句新建数据库、数据库表(简单版) 第一步:...
  • mysql清空数据库表

    千次阅读 2018-07-07 16:49:54
    清空数据库表并且重置自动增长列的值为0:TRUNCATE TABLE TableName 仅仅清空数据库表:DELETE FROM TableName
  • 数据库表结构关系图生成

    万次阅读 2019-12-08 06:21:09
    如有你有这个数据库的工具的话,就可以直接将你建好的数据库表直接生成模型图。 打开Navicat,连接我们的数据库 打开数据库表 点击右下角的几个按钮 随便点击试一下,最后你会发现点击从左数第三个的时候,会变成...
  • ER图和关系模型到MySQL数据库表

    千次阅读 2020-03-02 21:01:12
    本篇主要介绍了MySQL数据库表从ER图到关系模型,再到数据库表的创建过程及其表结构的修改。通过本篇的学习,可以掌握以下内容: ● 应用ER图和关系模型创建数据库表数据库表结构的修改 1、mooc数据库表的ER...
  • 商城 商品模块 数据库 设计

    万次阅读 多人点赞 2017-05-12 23:30:04
    要实现一个商城,对于商品模块中的数据库表设计不懂,主要是:相同类别的产品的产品参数相同,不同类别的不同,这里就不懂要怎么设计了,所以上网找几篇博客了解什么是SPUSKUARPU PHP商城 商品模块 数据库 表设计...
  • 07-Flowable数据库表说明

    万次阅读 2018-12-11 10:55:18
    flowable数据库表说明1. flowable数据库表命名规则2. 数据库表结构 1. flowable数据库表命名规则 ACT_RE_* ’RE’表示repository(存储)。RepositoryService接口操作的表。带此前缀的表包含的是静态信息,如,...
  • 数据库表命名规范

    万次阅读 2017-12-18 08:13:38
    数据库表命名规范:(1)表名前应该加上前缀,表的前缀一个用系统或模块的英文名称缩写,前缀全部大写或首字母大写,表名中包含的单词首字母大写。(2)数据库表名应该有意义,并且易于理解,最好使用可以表达功能的英文...
  • Java动态创建数据库表

    千次阅读 2019-01-07 23:25:17
    今天做一个实训,需要获取文本框的内容,然后以内容为数据库表的名字创建数据库表。就是动态创建要创建的数据库表。当时我在想我们对数据库表进行增删改查的时候,需要把内容用’"++"‘这样在加号中间加...
  • SQL数据库表的设计

    千次阅读 2019-05-08 18:09:46
    《SQL数据库表的设计》 开发工具与关键技术:Visual Studio /SQL数据库 作者:肖春庆 撰写时间:2019年05月04日 数据库是一种存储数据的文件储物柜,用户可以以一定的方式存储并且对数据库里的数据进行新增、查询、...
  • MinerBean.java 数据库表 miner bean

    万次阅读 2019-09-20 15:59:27
    MinerBean.java 数据库表 miner bean package com.iteye.injavawetrust.miner; import java.util.Date; /** * 数据库表 miner bean * @author InJavaWeTrust * */ public class MinerBean { /** * uuid ...
  • PyCharm生成数据库表结构语句脚本以及数据库数据insert语句的方法 首先用pycharm的database工具栏连接项目的数据库。 导出数据库各个表结构脚本 右击数据库,在SQL Scirpts中选择SQL Generator 然后会生成数据库...
  • navicat数据库表结构对比

    千次阅读 2020-03-26 15:14:04
    今日涉及到数据库数据整理,牵扯到数据比对,迁移,主要是为了解决 数据库新增字段,以及修改字段类型,新建数据库表,索引新增等等 实现的过程, 在合代码的时候,发现着重记录了一下,后来发现,根本用不到记录...
  • 数据库表分区
  • quartz 数据库表含义解释

    万次阅读 2016-03-30 21:01:57
    quartz 数据库表含义解释
  • MySQL查看数据库表容量大小

    万次阅读 多人点赞 2018-04-29 17:19:10
    本文介绍MySQL查看数据库表容量大小的命令语句,提供完整查询语句及实例,方便大家学习使用。 1.查看所有数据库容量大小 select table_schema as '数据库', sum(table_rows) as '记录数', sum(truncate...
  • 用cmd开启mysql数据库并建立数据库表

    千次阅读 2017-05-05 16:37:10
    1、启动mysql数据库,首先让它指向你所装的数据库的bin目录下,如下图所示: ... 2、启动数据库后,开始创建数据库表,输入show databases;...3、最后选择一个数据库建立数据库表,这里选择test,用use test
  • Django修改数据库表结构

    千次阅读 2018-04-20 15:05:53
    Django在数据库中创建数据库表的方法是:1, 执行 python manage.py makemigrations 这一步在项目中建立migrations目录,在目录中建立了0001_initial.py文件,这个文件中包含了所有在数据库表中建立表的信息。...
  • 数据库表的操作 1.创建一张表 create table 表名( 字段名 类型(长度) [约束], 字段名 类型(长度) [约束], 字段名 类型(长度) [约束] ); 2.查看数据库表 show tables; **查看表的结构 desc 表名** 3.删除一张表 ...
  • Mysql数据库表结构导出工具介绍

    千次阅读 2019-02-27 11:15:02
    软件开发过程中,数据库设计是其中非常重要的一个环节,一般在设计阶段都会采用PowerDesigner进行数据库表的设计并生成数据库表结构文档。但是有的时候数据库表结构文档缺失了怎么办,能不能从数据库直接导出一个...
  • mysql查看数据库表数量

    万次阅读 2018-05-22 10:38:29
    1、查看数据库表数量SELECT count(TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA='dbname'; 
  • MySQL数据库表结构的设计

    千次阅读 多人点赞 2019-05-28 13:51:56
    MySQL数据库表结构的设计。四大范式。表结构的设计是数据库优化中至关重要的环节,需要认真谨慎对待,在遵守四大范式的前提下,充分考虑业务未来的可扩展性,适应未来业务变化,促进系统更加健康健壮。
  • 数据库表及字段命名规范

    千次阅读 2019-06-03 15:32:23
    1.数据库表命名规范: (1)表名前应该加上前缀,表的前缀一个用系统或模块的英文名称缩写,前缀全部大写或首字母大写,表名中包含的单词首字母大写。 (2)数据库表名应该有意义,并且易于理解,最好使用可以表达功能...
  • django无法新建数据库表问题

    千次阅读 2018-12-31 21:25:07
    场景:数据库表设计不合理,并已经存在了一些数据,如果直接使用django修改表结构,会提示已有数据,需要插入默认值等等,所以就想着直接手工删除数据库表,然后重建,但使用django的建表命令时: python manage.py ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 502,476
精华内容 200,990
关键字:

数据库表