首页 > 数据库 >SQL学习二

SQL学习二

时间:2023-02-01 19:01:11浏览次数:33  
标签:唯一性 player DDL 约束 学习 数据表 SQL 主键

1.了解 DDL 的基础语法,它如何定义数据库和数据表;

DDL 的英文全称是 Data Definition Language,中文是数据定义语言。它定义了数据库的结构和数据表的结构。在 DDL 中,我们常用的功能是增删改,分别对应的命令是 CREATE、DROP 和 ALTER。需要注意的是,在执行 DDL 的时候,不需要 COMMIT,就可以完成执行任务。

对数据库进行定义

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

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

对数据表进行定义创建表结构的语法是这样的:

CREATE TABLE [table_name](字段名 数据类型,......)

2.使用 DDL 定义数据表时,都有哪些约束性;

当我们创建数据表的时候,还会对字段进行约束,约束的目的在于保证 RDBMS 里面数据的准确性和一致性。下面,我们来看下常见的约束有哪些。

首先是主键约束。

主键起的作用是唯一标识一条记录,不能重复,不能为空,即 UNIQUE+NOT NULL。一个数据表的主键只能有一个。主键可以是一个字段,也可以由多个字段复合组成。在上面的例子中,我们就把 player_id 设置为了主键。

其次还有外键约束。

外键确保了表与表之间引用的完整性。一个表中的外键对应另一张表的主键。外键可以是重复的,也可以为空。比如 player_id 在 player 表中是主键,如果你想设置一个球员比分表即 player_score,就可以在 player_score 中设置 player_id 为外键,关联到 player 表中。除了对键进行约束外,还有字段约束。

唯一性约束。

唯一性约束表明了字段在表中的数值是唯一的,即使我们已经有了主键,还可以对其他字段进行唯一性约束。比如我们在 player 表中给 player_name 设置唯一性约束,就表明任何两个球员的姓名不能相同。需要注意的是,唯一性约束和普通索引(NORMAL INDEX)之间是有区别的。唯一性约束相当于创建了一个约束和普通索引,目的是保证字段的正确性,而普通索引只是提升数据检索的速度,并不对字段的唯一性进行约束。

NOT NULL 约束。

对字段定义了 NOT NULL,即表明该字段不应为空,必须有取值。DEFAULT,表明了字段的默认值。如果在插入数据的时候,这个字段没有取值,就设置为默认值。比如我们将身高 height 字段的取值默认设置为 0.00,即DEFAULT 0.00。

CHECK 约束,

用来检查特定字段取值范围的有效性,CHECK 约束的结果不能为 FALSE,比如我们可以对身高 height 的数值进行 CHECK 约束,必须≥0,且<3,即CHECK(height>=0 AND height<3)。

3.使用 DDL 设计数据库时,都有哪些重要原则。

这里我整理了一个“三少一多”原则:

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

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

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

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

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

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

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

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

标签:唯一性,player,DDL,约束,学习,数据表,SQL,主键
From: https://www.cnblogs.com/anniedaniel/p/17083883.html

相关文章

  • 漏洞免费实战部分-安卓应用漏洞学习case6
    安卓应用漏洞学习case6前期回顾漏洞免费实战部分-安卓应用层getLastPathSegment函数问题漏洞实战部分2-安卓应用ZipEntry对象问题实战漏洞实战部分3-ContentProvider......
  • SQL学习一
    1.主流的DBMS都有哪些,它们各自都有哪些特点;既然SQL是通用的标准语言,为什么能存在这么多DBMS;从这些DBMS的发展史中,你有哪些感悟。DBMS的英文全称是DataBaseManag......
  • go学习笔记-
    http.HandleFunc("/",func(whttp.ResponseWriter,r*http.Request){http.ServeFile(w,r,"index.html")})HandleFunc注册一个处理器函数handler和对应的模式p......
  • 虚树 学习笔记
    虚树学习笔记如果有这么一个问题:在一棵超大的,有\(n\)个节点树上,并且树上有\(m\)个关键点,\(m\)远小于\(n\),如果问题只与关键点有关,我们不能很方便地在这棵超大的树......
  • python连接mysql并使用
    由于mysql体积小,速度快,成本低,源码开放,所以一些中小型系统开发都采用mysql我们连接mysql采用的工具包是pymysql1.安装pymysqlpipinstallpymysql2.pymysql工作图......
  • SQL优化
    1,查询语句不要使用select*2,尽量减少子查询,使用关联查询(leftjoin,rightjoin,innerjoin)替换3,减少使用in,notin,用exsists,notexists代替4,or的查询尽量使用union,unio......
  • MySQL基础-SQL-DCL
    1.介绍DCL英文全称是DataControlLanguage(数据控制语言),用来管理数据库用户、控制数据库的访问权限。2. DCL管理用户--1.查询用户USEmysql;SELECT*......
  • Mysql学习笔记
    Mysql是关系型数据库管理系统,管理的数据库是一堆关联表的集合。这里的表可以看作是一个二维表格,里面的每一行表示一条记录,是一组相关的数据。每一列存储的是一个属性对应的......
  • SQL Server 分页查询
    由于数据比较多,需要对数据进行分页展示,数据库用的是SQLServer,具体的分页方式:select*from(selecid,ROW_NUMBER()OVER(OrderbyinsertTimedesc)ASRowId fromt......
  • 建筑行业VR安全体验,亲身感受事故危害,学习安全技能
    建筑安全VR体验教育是一种利用虚拟现实技术来提高工地安全意识的新型安全教育方式,它不仅可以让工人们在没有实际危险的情况下学习安全技能,而且还能让他们体验到真实的安全......