山那边是海 发表于 2015-1-16 22:20:13

MSSQL编程:MYSQL基础数据库术语

MySQL最初的开发者的意图是用mSQL和他们自己的快速低级例程(ISAM)去连接表格。经过一些测试后,开发者得出结论:mSQL并没有他们需要的那么快和灵活。您大概会注重到,已读了本书这么多页,可是还没有看到几句行话和术语。固然我们大抵提了一下如何使用样例数据库,但现实上,关于甚么是“数据库”,我们一点器材都还没有先容。不外,我们如今盘算计划该数据库,然后入手下手完成它,如许就不克不及再避而不谈数据库术语了。先容数据库术语就是本节的目标。本节先容的一些术语全书都要用到,因而必需对其熟习。所幸的是,干系数据库中的很多观点是相称复杂的。现实上,干系数据库的吸引力次要来历于其基础观点的复杂性。
1.3.1基础术语
在数据库天下中,MySQL回类为干系数据库办理体系(RDBMS)。所谓干系数据库办理体系的寄义以下:
■数据库(RDBMS中的“DB”)是存储信息的堆栈,以一种复杂的、划定规矩的体例举行构造:
■数据库中的数据集构造为表。
■每一个表由行和列构成。
■表中每举动一个纪录。
■纪录可包括几段信息;表中每列对应这些信息中的一段。
■办理体系(“MS”)是同意经由过程拔出、检索、修正或删除纪录来利用数据的软件。
■“干系”(“R”)一词暗示一种特别品种的DBMS,它经由过程寻觅互相之间的配合元素使寄存在一个表中的信息联系关系到寄存在另外一个表中的信息。干系数据库的才能在于它可以从这些表中便利地掏出数据,并将联系关系各表中的信息相分离得出成绩的谜底,这些谜底只根据单个表的信息是不成能失掉的。这里有一个例子,示出了干系数据库如何将数据构造成表并将一个表中的信息与另外一个表中的信息相干联。假定您办理一个含有题目告白服务的Web站点。您与公司有协定,这些公司但愿有人在访问您的站点上的网页时显现他们的告白。每当一个访问者点击您的页面一次,您就向该访问者的扫瞄器供应了嵌在页面中的告白的一次服务,而且给公司预算一点费
用。为了暗示这些信息,要保留三个表(请参阅-1)。一个是company表,它含有公司名、编号、地点和德律风号码等列。另外一个是ad表,它列出告白编号、具有该告白的公司的编号和每次点击时的计费数。第三个hit表按告白编号纪录告白点击次数和告白供应服务的日期。
使用单个表的信息能够回覆某些成绩。为了断定签协定的公司数量,只需对company表中的行数计数便可。相似地,为了断定某个给准时间段中的点击次数,只需检察hit表便可。其他成绩要更加庞大一些,并且必需思索多个表以断定谜底。比方,为了断定Pickles.公司的每一个告白在7月14日点击了几次,应当按以下步骤利用这些表:
1)查询company表中的公司名(Pickles,Inc)以找到公司编号(14)。
2)使用公司编号查找ad表中婚配的纪录以便可以断定相干的告白编号。有两个如许的告白,48和101。
3)对ad表中婚配的每一个纪录,使用该纪录中的告白编号查找hit表中在所需日期局限内的婚配纪录,然后对婚配的纪录举行计数。告白编号为48的婚配纪录有三个,告白编号为101的婚配纪录有两个。听起来很庞大!而这恰是干系数据库体系所善于的。这类庞大性在某种水平能够说是一种幻觉,由于上述每步只不外是一个复杂的婚配操纵,它经由过程将一个表的行中的值与另外一个表的行中的值相婚配,把一个表与另外一个表相干联。这个复杂的操纵能够各类体例利用往返答林林总总的成绩。每一个公司有几个分歧的告白?哪一个公司的告白最受接待?每一个告白带来的支出是几?以后记账期中每一个公司的总用度是几?如今我们已先容了干系数据库的实际,足以了解本书其他部分了,我们不用探求第三范式、实体干系图和一切这一类的器材。假如您的确必要懂得这些器材,那就太使人可怕了,并且这也不是中央。倡议您从浏览C.J.Date和E.F.Codd的某些书本动手。

1.3.2查询言语术语
MySQL利用一种称为SQL(StructuredQueryLanguage)的言语。SQL是现今的尺度数据库言语,一切次要的数据库体系都利用它。SQL具有多种分歧的语句,一切语句都是以一种不单调并有效的体例计划来与数据库举行交互的。正如其他言语一样,SQL在初度打仗时大概会使人感应有些乖僻。比方,为了创立一个表,必要告知MySQL表布局应当是甚么样的。我们大概会依据图表来想像一个表,但MySQL不会,因而,在创立表时必要告知MySQL一些器材,以下所示:

假如您不熟习SQL语句,大概会对如许的语句留下深入的印象,但您不用以程序员的身份来进修如何无效地利用SQL。假如慢慢熟习了SQL言语以后,就会以一种分歧的目光来对待CREATETABLE语句,会以为它是一个有助于形貌本人信息的同伴,而不是一种奇异的胡说八道。
1.3.3MySQL的系统布局术语
在您利用MySQL时,实践正利用以下两个程序,由于MySQL接纳的是客户机/服务器系统布局:
■数据库服务器是一个位于寄存您的数据的呆板上的程序。它监服从收集上传过去的客户机的哀求并依据这些哀求会见数据库的内容,以便向客户机供应它们所请求的信息。
■客户机是毗连到数据库服务器的程序,这些程序告知服务器必要甚么信息的查询。MySQL分发包包含服务器和几个客户机程序。可依据要到达的目标来利用客户机。最经常使用的客户机程序为mysql,这是一个交互式的客户机程序,它能公布查询并看到了局。其他
的客户机程序有:mysqldump和mysqlimport,分离转储表的内容到某个文件或将文件的内容导进某个表;mysqladmin用来检察服务器的形态并完成办理义务,如告知服务器封闭等。假如具有尺度的客户机不合适的使用,那末MySQL还供应了一个客户机编程库,能够编写本人的程序。客户机编程库可间接从C程序中挪用,假如但愿利用C言语之外的其他言语,另有几种其他的接口可用。
MySQL的客户机/服务器系统布局具有以下优点:
■服务器供应并发把持,使两个用户不克不及同时修正不异的纪录。一切客户机的哀求都经由过程服务器处置,服务器分类分辨谁筹办做甚么,什么时候做。假如多个客户机但愿同时会见不异的表,它们不用相互判决和协商,只需发送本人的哀求给服务器并让它细心断定完成这些哀求的按次便可。
■不用在数据库地点的呆板上注册。MySQL晓得如何在因特网上事情,因而您能够在任何地位运转一个客户机程序,此客户机程序能够毗连到收集上的服务器。间隔不是成绩,可从天下上的任何中央会见服务器。假如服务器位于澳年夜利亚的某台呆板上,那末当您带着本人的便携式电脑到冰岛往游览时,仍旧能够会见本人的数据库。
这是不是意味着任何人只需毗连到因特网就能够会见您的数据?谜底是不是定的。MySQL含有一个天真的平安体系,只同意那些有权限会见数据的人会见。能够包管那些人只可以做同意他们做的事。也许记账办公室的Sally可以读取和更新(修正)纪录,而服务台的Phil只能检察纪录。能够设置利用职员的权限。假如但愿运转一个自含体系(自力体系),只需设置会见权限使客户机只能从服务器运转的主机长进行毗连便可。
使为了数据安全,我们搭建了主从。但实时主从备份只能防止硬件问题,比如主库的硬盘损坏。但对于误操作,则无能为力。比如在主库误删一张表,或者一个update语句没有指定where条件,导致全表被更新。

变相怪杰 发表于 2015-1-19 09:03:47

having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。

透明 发表于 2015-1-25 15:21:13

始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。

冷月葬花魂 发表于 2015-2-2 22:37:02

我们学到了什么?思考问题的时候从表的角度来思考问

老尸 发表于 2015-2-8 18:39:34

我们学到了什么?思考问题的时候从表的角度来思考问

爱飞 发表于 2015-2-25 22:32:13

where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。

不帅 发表于 2015-3-8 09:11:33

你可以简单地认为适合的就是好,不适合就是不好。

只想知道 发表于 2015-3-15 22:06:21

对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。

因胸联盟 发表于 2015-3-22 06:07:14

你可以简单地认为适合的就是好,不适合就是不好。
页: [1]
查看完整版本: MSSQL编程:MYSQL基础数据库术语