MySQL基础知识与数据库管理系统

  • 数据库定义
    数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
    每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。

  • 关系型数据库
    我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
    所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
    RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:
    1.数据以表格的形式出现
    2.每行为各种记录名称
    3.每列为记录名称所对应的数据域
    4.许多的行和列组成一张表单
    5.若干的表单组成database

  • 二维表
    二维表就是关系表,简单说就是由行和列组成的表。
    二维表的性质:
    (1)二维表中元组个数是有限的——元组个数有限性;
    (2)二维表中元组均不相同——元组的唯一性;
    (3)二维表中元组的次序可以任意交换——元组的次序无关性;
    (4)二维表中元组的分量是不可分割的基本数据项——元组分量的原子性;
    (5)二维表中属性名各不相同——属性名唯一性;
    (6)二维表中属性与次序无关,可任意交换——属性的次序无关性;
    (7)二维表属性的分量具有与该属性相同的值域——分量值域的统一性。


  • 可以理解成索引index,一般用于表示某一个对象


  • 可以理解为对象的各个属性关系,比如第一行第一列一般可以理解为第一个对象的第一个性质。

  • 主键
    1 什么是主键 外键
    学生表(学号,姓名,性别,班级)   学号是一个主键
    课程表(课程号,课程名,学分)    课程号是一个主键
    成绩表(学号,课程号,成绩)     学号和课程号的属性组构成一个主键
    成绩表中的学号不是成绩表的主键,不过是学生表的主键,成绩表的外键,同理课程号也是成绩表的外键
    定义:如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键
    以一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表
    2 外键的作用
    外键用于保持数据一致性,完整性
    主要目的是控制存储在外键表中的数据
    3 主键的设计原则
    1)主键应当是对用户没有意义的
    2)主键应该是单列的,以提高连接和筛选操作的效率
    复合键的使用通常出于两点考虑:
    a)主键应当具有意义-----这为认为的破坏数据库提供了方便
    b)在描述多对多关系的连接表中可以使用两个外部键作为主键------该表可能成为其他从表的主表,并成为从表的主键的一部分,使得之后的从表包含更多的列
    3)永远不要更新主键
    4)主键不应该包含动态变化的数据(时间戳等)
    5)主键应当由计算机自动生成
    4 数据库主键选取策略
    建立数据库的时候,需要为每张表指定一个主键(一个表只能有一个主键,但是可以有多个候选索引)
    常见的主键选取方式有:
    1)自动增长型字段
    自动增长型主键会省略很多繁琐的工作,但在数据缓冲模式下,不能预先填写主键与外键的值
    Order(OrderID,OrderDate)   //主键OrderID是自动增长型字段
    OrderDetail(OrderID,LineNum,ProductID,Price)
    如果要在Order表中插入一条记录,在OrderDetail表中插入若干条记录,为了能在OrderDetail表中插入正确的OrderID字段,必须先更新Order表以获得系统系统分配的OrderID,但是为了确保数据一致性,Order表和OrderDetail表必须在事务保护下同时进行更新,这显然是矛盾的
    除此之外,当需要在多个数据库之间进行数据复制时,自动增长型字段可能造成主键冲突
    2)手动增长型字段
    3)使用UniqueIdentifier SQL Server提供一个UniqueIdentifier数据类型(16字节),并提供一个生成函数NEWID(),生成一个唯一的UniqueIdentifier
    4)使用COMB类型
    保留UniqueIdentifier的前10字节,后6字节表示生成时间

  • 外键
    外键(FK)是用于建立或加强两个表数据之间的链接的一列或多列。通过将表中主键值的一列或多列添加到另一个表中,可创建两个表之间的连接,这个列就成为第二个表的外键
    FK约束的目的是控制存储在外表中的数据,同时可以控制对主键表中数据的修改
    例如:publishers表中记录出版商的信息,titles表中记录书的信息,如果在publishers的表中删除一个出版商,而这个出版商的ID在titles表中记录书的信息时被使用了,则这两个表之间关联的完整性将被破坏,即titles表中该出版商的书籍因为与publisher表中的数据没有链接而变的孤立。
    FK约束可以防止这种情况的发生,如果主键表中数据的更改使得与外键表中数据的链接失效,则这种更改是不能实现的;如果试图删除主键表中的行或试图修改主键值,而该主键值与另一个表的FK约束值相关,则该操作不可实现。若要成功的更改或删除FK约束的行,可以现在外键表中删除外键数据或更改外键数据,然后将外键连接到不同的主键数据上去
    外键主要是用来控制数据库中的数据完整性的,当对一个表的数据进行操作时,和他有关联的一个表或多个表的数据能够同时发生改变
    例子:
    A(a,b) :a为主键,b为外键(来自于B.b)
    B(b,c,d) :b为主键
    A中的b字段要么为空,要么为B表中存在的b值

  • 数据库
    简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。
    可以用CREATE来创建数据库,用SHOW来查看数据库,用DROP来删除数据库

CREATE DATABASE [NAME];
SHOW DATABASES;
DROP DATABASE [NAME];
  • 数据表
    数据库最重要的组成部分之一,用来储存数据信息。没有数据表,关键字、主键、索引等也就无从谈起。在Navicat中左侧db即为各个数据库,点开数据库显示该库中的数据表,点开数据表可以查看表中信息。创建数据表,修改表的定义等数据表是数据库中一个非常重要的对象,是其他对象的基础。
CREATE TABLE table_name (column_name column_type);
DROP TABLE table_name ;
  • 视图
    视图是从一个或几个基本表(或视图)中导出的虚拟的表。在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。
    视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。 视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。
    视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中。通过视图看到的数据存放在基表中。
    视图看上去非常像数据库的物理表,对它的操作同任何其它的表一样。当通过视图修改数据时,实际上是在改变基表中的数据;相反地,基表数据的改变也会自动反映在由基表产生的视图中。由于逻辑上的原因,有些视图可以修改对应的基表,而有些则不能(仅仅能查询)。
  • 存储过程
INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值