Navicat与Mysql详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Navicat与mysql详解
第一部分对Navicat的操作
1.连接
创建新连接
首先启动Navicat for MySQL,点击左上角的【连接】(如图):
点击之后便会出现如图所示的界面(如图):
连接名可以任意取,主机名或IP地址则填写你需要连接数据库的IP地址,如是本地,则填localhost,但推荐填写,这表示回送地址,指本地机,一般是用来测试的。端口默认为3306,用户名默认是root,而密码则是安装时自己填写的密码。
填写完后,可点击该界面左下角的测试连接,如显示连接成功则可操纵数据库,如失败,请仔细检查,或度娘。
2.数据库
创建新数据库
双击你创建的连接,你会发现有几个MySQL预先创建好的数据库,这个你可暂且不管。自己新建几个数据库。
右击你新建的连接,点击新建数据库。
数据库名自取,字符集一般选uft8,排序规则可自选。
3.表
创建新表
双击你创建的数据库,如图,我创建的数据库名叫test,双击之后会变出现一些选项。
右击表,新建表。
如图所示,每一行数据有六列,从左到右分别是:数据的名称(最好是英文),该数据的类型(可度娘MySQL的数据类型,可对应java的基本数据类型),该数据允许的长度,允许保留的小数点位数,允不允许可以为空值,最后一个是设置主键。
一个表最好有一个主键,同一个表里每一行数据的主键值各不相同,这样才能将同一表的数据区分开来,操纵数据也方便得多。
如图填写完之后,点击左上角的保存,此时会弹出一个窗口让你填写表名,表名写入之后返回Navicat主窗口,就会发现自己新建的数据库里多了一个表。
依次,我们新建四个表,并且使四个表之间相互联系。
图点击进入之后,表内有字段,这些字段便是之前创建表时填写的,如图图设计表
之前设计的四个表分别是,transaction(交易表)、transactionProductAssign(交易与产品对应表)、product(产品表)、productItem(产品明细表)。
Transaction是交易表,里面的每一行数据储存着一条交易信息,transactionProductAssign 是交易与产品对应表,里面储存的是每一条交易对应的产品号。交易表和交易与产品对应表是一对多的关系,即,一条交易对应多个产品。如图、图所示:
图图交易表里有一条交易信息,交易ID(即transactionID)为2074,而交易与产品对应表里有两条数据,虽然它们的transactionProductAssignID不同,productItemID也不同,但他们的transactionID相同。也就是说,这两条交易与产品对应信息属于transactionID为2074的这笔交易。
交易对应多个产品,一条交易与产品对应信息则对应一个具体产品(即交易与产品对应表、产品明细表是一对一的关系)。
而product(即产品表)则是,一条产品数据代表着产品,而这个产品又有很多种类、版本,所以,一个产品信息对应多个产品明细信息。
说通俗点,就是,一个人去买东西,买了一次东西就是一笔交易(存在transaction表里面)。
而这笔交易买了很多的产品(对应关系存在transactionProductAssign表里面)。这些产品可能有:肾6,肾5S,心相印面巾纸,知音面巾纸(具体产品存在productItem表里面)。其中,肾6、肾5S都属于苹果系列,心相印面巾纸、知音面巾纸都属于纸巾系列,所以苹果和纸巾便是一种产品的统称(存在productI表里面)。
那为什么要这样设计呢为什么不把这些设计在一张表里面,这样省时省事。
但是,如果你仔细研究,你就会发现,这里面暗藏玄机。
首先就看这一点来说,如果所有的交易信息、产品信息全在一个表的一行数据里,第一不美观,第二让人很难看得下去。最重要的一点是,为了消除冗余。
其次就直观这点来说,交易与产品对应,产品与产品版本对应,这样能让人一目了然,使整个数据库都连接了起来,便于以后的扩展与修改设计。
这只是一个很小的例子,其实数据库设计有着很大的学问在里面。
慢慢研究,你会发现,设计数据库其实是一项很伟大的工程!
4.视图
什么是视图
视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表。数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以基本表中的数据发生变化,从视图中查询出的数据也就随之改变了。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变化。
视图的好处
视图能简化用户操作视图机制使用户可以将注意力集中在所关心地数据上。如果这些数据不是直接来自基本表,则可以通过定义视图,使数据库看起来结构简单、清晰,并且可以简化用户的的数据查询操作。例如,那些定义了若干张表连接的视图,就将表与表之间的连接操作对用户隐藏起来了。换句话说,用户所作的只是对一个虚表的简单查询,而这个虚表是怎样得来的,用户无需了解。
视图使用户能以多种角度看待同一数据。视图机制能使不同的用户以不同的方式看待同一数据,当许多不同种类的用户共享同一个数据库时,这种灵活性是非常必要的。
视图对重构数据库提供了一定程度的逻辑独立性数据的物理独立性是指用户的应用程序不依赖于数据库的物理结构。数据的逻辑独立性是指当数据库重构造时,如增加新的关系或对原有的关系增加新的字段,用户的应用程序不会受影响。层次数据库和网状数据库一般能较好地支持数据的物理独立性,而对于逻辑独立性则不能完全的支持。在关许数据库中,数据库的重构造往往是不可避免的。重构数据库最常见的是将一个基本表“垂直”地分成多个基本表。例如:将学生关系Student(Sno,Sname,Ssex,Sage,Sdept)分为SX(Sno,Sname,Sage)和SY(Sno,Ssex,Sdept)两个系。这时原表Student为SX表和SY 表自然连接的结果。如果建立个视图StudentCREATE VIEW Student(Sno,Sname,Ssex,Sage,Sdept)AS SELECT ,,,, FROM SX,SY WHERE =;
这样尽管数据库的逻辑结构改变了(变为SX和SY两个表了),但应用程序不必修改,因为新建立的视图定义为用户原来的关系,使用户的外模式保持不变,用户的应用程序通过视图仍然能够查找数据。
当然,视图只能在一定程度上提供数据的逻辑独立,比如由于视图的更新是有条件的,因此应用程序中修改数据的语句可能仍会因为基本表构造的改变而改变。
……
另外,值得注意的是,因为视图也是一种表,是虚拟表,不能与已有的表(视图)出现重名。并且将视图看成与表一样的东西,更加容易理解使用规则。
对于视图的创建
视图的创建与表差不多。右击视图,新建视图。