MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

这篇具有很好参考价值的文章主要介绍了MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MySQL设计范式、基础概念、数据库定义语言DDL

MySQL是一种数据库管理系统 (DBMS),是基于客户机-服务器的数据库;

分为两个不同的部分,

服务器软件(MySQL DBMS)是负责所有数据访问和处理的一个文件,这个软件运行在称为数据库服务器的计算机上,与数据文件打交道;

客户机则是与用户打交道的软件,对于用户提出的申请提交给服务器软件,经过处理后,再返回客户机;客户机可以是MySQL提供的工具,也可以是脚本语言、web应用开发语言、程序设计语言

数据模型

属性的特点

  • 属性不可再分
  • 一个实体的属性可以有很多个
  • 用于唯一区分不同实体的属性,称为key
  • 属性取值可以有一定的约束

实体或是属性之间可以具有一定的联系

MySQL是一种关系型数据库,可以通过画ER图,来构建关系

数据库的创建

主键

主键必须非NULL,且不能重复;

可以一起使用多个列作为主键,所有列值的组合必须是唯一的,但是单列值可以不唯一

主键的好习惯

  • 不更新主键列中的值
  • 不重用主键列的值
  • 不在主键列中使用可能会更改的值

MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

创建出来的结果
MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

现在我们填入表

浅蓝色部分表示未提交的
MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

查询

# SELECT * FROM study WHERE account = 20221011

MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

SELECT * FROM study INNER JOIN teach ON study.account = teach.sid WHERE teach.tid = (SELECT tid FROM study WHERE name = 'ALice')

MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

设置父表

MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

通过图表观察关系

MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

数据库设计规范

第一范式(1NF)

第一范式是指数据库的每一列都是不可分割的基本数据项,而下面这样的就存在可分割的情况:

学生(姓名,电话号码)
电话号码实际上包括了家用座机电话和移动电话,因此它可以被拆分为:

学生(姓名,座机号码,手机号码)
满足第一范式是关系型数据库最基本的要求

第二范式(2NF)

第二范式要求表中必须存在主键,且其他的属性必须完全依赖于主键

第三范式(3NF)

在满足第二范式的情况下,所有的属性都不传递依赖于主键,满足第三范式

学生借书情况(借阅编号,学生学号,书籍编号,书籍名称,书籍作者)
实际上书籍编号依赖于借阅编号,而书籍名称和书籍作者依赖于书籍编号,因此存在传递依赖的情况,我们可以将书籍信息进行单独拆分为另一张表:

学生借书情况(借阅编号,学生学号,书籍编号)
书籍(书籍编号,书籍名称,书籍作者)
这样就消除了传递依赖,从而满足第三范式。

BCNF

BCNF作为第三范式的补充,假设仓库管理关系表为StorehouseManage(仓库ID, 存储物品ID, 管理员ID, 数量),且有一个管理员只在一个仓库工作;一个仓库可以存储多种物品。这个数据库表中存在如下决定关系:

(仓库ID, 存储物品ID) →(管理员ID, 数量)

(管理员ID, 存储物品ID) → (仓库ID, 数量)

所以,(仓库ID, 存储物品ID)和(管理员ID, 存储物品ID)都是StorehouseManage的候选关键字,表中的唯一非关键字段为数量,它是符合第三范式的。但是,由于存在如下决定关系:

(仓库ID) → (管理员ID)

(管理员ID) → (仓库ID)

SQL语句

结构化查询语言(Structured Query Language)简称SQL,这是一种特殊的语言,它专门用于数据库的操作。每一种数据库都支持SQL,但是他们之间会存在一些细微的差异,因此不同的数据库都存在自己的“方言”

SQL语句由子句(clause)构成,一个子句通常有一个关键字和所提供的数据构成;有些子句是必须的,有些则是可选的

SQL语句不区分大小写(关键字推荐使用大写),它支持多行,并且需要使用;进行结尾

MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

SQL也支持注释,通过使用--或是#来编写注释内容,也可以使用/*来进行多行注释

CRUD 增删改查

  • 数据查询语言(Data Query Language, DQL)基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块。
  • 数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除,是开发以数据为中心的应用程序必定会使用到的指令。
  • 数据库定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。
  • DCL(Data Control Language)是数据库控制语言。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL

SQL数据类型

字符串存储

  1. char() 可以存储任意长度的字符串,固定长度,不满则用空格填充
  2. varchar() 长度不固定,但是不能超过n

存储数字

  1. small、int用于存储小的整数,范围在 (-32768,32767)
  2. int用于存储一般的整数,范围在 (-2147483648,2147483647)
  3. bigint 用于存储大型整数,范围在 (-9,223,372,036,854,775,808,9,223,372,036,854,775,807)
  4. float 用于存储单精度小数
  5. double 用于存储双精度的小数

存储时间

  1. date存储日期
  2. time存储时间
  3. year存储年份
  4. datetime用于混合存储日期+时间

列级约束条件

主键Primary key、外键foreign key 、唯一 unique、检查 check (MySQL不支持)、默认default 、非空/空值 not null/ null

表级约束条件

主键、外键、唯一、检查

例:设置外键

[CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…] REFERENCES <主表名> 主键列1 [,主键列2,…]

注:实在不会的话,建议在应用内操作,他会给你自动生成代码,自己再打一遍就好了

mysql> CREATE TABLE teach(
    -> tid int NOT NULL,
    -> CONSTRAINT f_tid FOREIGN KEY (tid) REFERENCES teacher(tid));

数据库定义语言 Data Definition Language

数据库操作

创建数据库+设定编码格式

CREATE DATABASE IF NOT EXISTS 数据库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 

MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

此时刷新数据库,会发现构造成功

MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

删除数据库

DROP DATABASE 数据库名

创建

create table 表名(列名 数据类型[列级约束条件],
             列名 数据类型[列级约束条件],
             ...
             [,表级约束条件])

MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

此时,就已经创建成功了

MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

修改表

ALTER TABLE 表名[ADD 新列名 数据类型[列级约束条件]]
							 [DROP COLUMN 列名[restrict|cascade]]
							 [ALTER COLUMN 列名 新数据类型]

mysql> ALTER TABLE teacher add
    -> sex enum ('male', 'female') NOT NULL DEFAULT 'male';

删除表

DROP TABLE  表名;

其中restrictcascade 上面的效果一致文章来源地址https://www.toymoban.com/news/detail-436564.html

到了这里,关于MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计

    目录 1.数据库的基本概念 1.1数据库的体系结构 1.1.1常见数据库 1.1.2分布式数据库的特点 1.1.3分布式数据库的透明性 1.1.4例题 1.2三级模式结构 1.2.1三级模式概念图 1.2.2例题 1.3数据仓库 1.3.1数据仓库的特点 1.3.2数据仓库的过程 1.3.3例题 2.数据库的设计过程 2.1设计过程概念图 2

    2024年02月07日
    浏览(69)
  • 【数据库】MySQL概念性基础知识期末复习

    第一章 3 二维表结构……数据模型—— 关系数据模型 5 描述全部数据整体逻辑结构—— 模式 6 逻辑数据独立性—— 模式变,外模式和应用程序不变 7 物理数据独立性—— 内模式变,外模式和应用程序不变 9 R-(R-S)—— R∩S 10 从两个关系笛卡尔积中选取他们属性间满足一定条

    2024年02月02日
    浏览(120)
  • 【Mysql】数据库三大范式

    :数据库三范式是指关系型数据库设计中的三种规范化设计原则,旨在减少数据冗余、提高数据一致性和可维护性。 为什么要这样实现呢? :举个栗子,大家可能都用过淘宝,京东,在填写收件地址的时候,是不是都要逐一填写 :省、市、区、详细地址。以上其实就是数据

    2024年02月08日
    浏览(50)
  • 【数据库基础】数据库介绍和三大范式

           数据库 (DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。        数据库管理系统 (DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库

    2024年02月07日
    浏览(66)
  • MySQL数据库之锁、范式

    锁是计算机协调多个进程或线程并发访问某一资源的机制。分为 全局锁、表级锁、行级锁。 1、定义 全局锁就是对整个数据库实例加锁,加锁后后续的DML的写语句, DDL语句,已经更新操作的事务提交语句都将被阻塞,整个实例就处于只读状态,即可以执行DQL语句,数据备份

    2024年02月11日
    浏览(51)
  • 数据库设计(三大范式,设计工具)

    1 数据库设计PowerDesigner三大范式 2 命名风格、主键选择、外键、存储过程 3 数据库事务和数据库锁 4 触发器、游标、视图、自定义函数、 5 字段类型、字段可空、统计字段、逻辑删除 1. 数据库设计的重要性 要谈数据库性能—直接和数据库设计挂钩; 如果不合理-----后续的开

    2024年02月15日
    浏览(47)
  • 数据库设计-范式

    范式就是数据库的构建规则,目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),

    2024年02月03日
    浏览(40)
  • 系统架构设计师笔记第16期:数据库基本概念

    数据库技术在过去几十年中经历了显著的发展和演变。 层次数据库和网状数据库:20世纪60年代和70年代初,层次数据库和网状数据库是主流的数据库模型。层次数据库使用树状结构组织数据,而网状数据库使用复杂的网络结构。这些数据库模型适用于特定的数据组织和查询需

    2024年02月09日
    浏览(54)
  • 数据库期末复习(SQL,范式,数据库设计例题)

    创表 视图 例题:建立一个视图V1,显示老师与学生的授课关系,包括年份,学期,课程名称,老师ID,老师姓名,学生ID,学生姓名 向表中添加或删除约束 添加信息 例题:给“Aufr”同学选上2010年秋季学期的所有课程 删除信息 例题:删除“Comp. Sci.”学院“Ploski”同学,所有

    2024年02月02日
    浏览(65)
  • 数据库的设计规范:第一范式、第二范式、第三范式、巴斯范式

    目前关系型数据库有六种常见范式,按照范式级别,从低到高分别是: 第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式) 。 数据库的 范式设计越高阶,冗余度就越低 ,同时高阶的范式 一定符合

    2024年02月05日
    浏览(94)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包