MySQL打卡 Day1

学习任务一:软件安装及服务器设置

MySQL之前已经安装,之前用的一直是MySQL Workbench8.0
尝试了学习小组强推的Navicat,用的是从官网下载的14天试用版。
由于之前使用MySQL不多,也没写过CSDN,很多东西都是现学现卖,难免有疏漏之处。

Navicat安装和连接

安装非常简单,和普通软件安装无差异
连接到MySQL的方法也很简单,左上角连接-MySQL,然后输入MySQL中设置过的账户密码即可连接上。连接上后我们可以看到左侧有database list.
初步预览了一下Navicat的操作界面,感觉确实比之前自学时在cmd中操作要方便很多,一个是可视化,另一个是对库、表的许多操作用鼠标就能完成,不必要输入繁琐的CREAT \ DROP 等命令。

学习任务二:MySQL基础知识

数据库定义

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。

关系型数据库

我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。

所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:

1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成database

二维表

二维表就是关系表,简单说就是由组成的表。
二维表的性质:

(1)二维表中元组个数是有限的——元组个数有限性;

(2)二维表中元组均不相同——元组的唯一性;

(3)二维表中元组的次序可以任意交换——元组的次序无关性;

(4)二维表中元组的分量是不可分割的基本数据项——元组分量的原子性;

(5)二维表中属性名各不相同——属性名唯一性;

(6)二维表中属性与次序无关,可任意交换——属性的次序无关性;

(7)二维表属性的分量具有与该属性相同的值域——分量值域的统一性。

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

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

主键

以下摘自博客link

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值

学习任务三:MySQL数据库管理系统

数据库

简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。
可以用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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值