MySQL数据库简介_第一篇(非常详细)
一、了解MYSQL1. 数据库基础在深入学习MySQL及其SQL语言的实现之前,应该对数据库及数据库技术的某些基本概念有所了解。1.1 什么是数据库数据库是一个以某种有组织的方式存储的数据集合。理解数据库的一种最简单的办法是将其想象为一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是什么以及如何组织的。数据库(database): 保存有组织的数据的容器(通常是一个文件或一组文件)。误用导致
·
一、了解MySQL
1. 数据库基础
- 在深入学习MySQL及其SQL语言的实现之前,应该对数据库及数据库技术的某些基本概念有所了解。
1.1 什么是数据库
- 数据库是一个以某种有组织的方式存储的数据集合。
- 理解数据库的一种最简单的办法是将其想象为一个文件柜。此文件柜是一个存放数据的物理位置,不管数据是什么以及如何组织的。
- 数据库(database): 保存有组织的数据的容器(通常是一个文件或一组文件)。
- 误用导致混淆 : 人们通常用数据库这个术语来代表他们使用的数据库软件。这是不正确的,它是引起混淆的根源。确切地说,数据库软件应称为DBMS(数据库管理系统)。数据库是通过DBMS创建和操纵的容器,你并不直接访问数据库。你使用的是DBMS,它替你访问和操纵数据库。
1.2 表和模式
1.2.1 表
- 表(table):某种特定类型数据的结构化清单。
- 在你将资料放入自己的文件柜时,并不是随便将它们扔进某个抽屉就完事了,而是在文件柜中创建文件,然后将相关的资料放入特定的文件中。
- 在数据库领域中,这种文件称为表。表是一种结构化的文件,可用来存储某种特定类型的数据。 表可以保存顾客清单、产品目录,或者其他信息清单。
- 关键的一点在于,存储在表中的数据是同一种类型的数据或一个清单。 决不应该将顾客的清单与订单的清单存储在同一个数据库表中。这样做将使以后的检索和访问很困难。应该创建两个表,每个清单一个表。
- 数据库中的每个表都有一个名字,用来标识自己。此名字是唯一的,这表示数据库中没有其他表具有相同的名字。
1.2.2 模式
- 模式(schema):关于数据库和表的布局及特性的信息。
- 表具有一些特性,这些特性定义了数据在表中如何存储,如可以存储什么样的数据,数据如何分解,各部分信息如何命名,等等。描述表的这些特性信息就是所谓的模式,模式可以用来描述数据库中特定的表以及整个数据库(和其中表的关系)
- 注意: 有时,模式用作数据库的同义词。遗憾的是,模式的含义通常在上下文中并不是很清晰。在这里,模式指的是上面给出的定义。
1.3 列和数据类型
- 表由列组成。列中存储着表中某部分的信息。
1.3.1 列
- 列(column):表中的一个字段/属性。所有表都是由一个或多个列组成的。
- 理解列的最好办法是将表想象为一个网格。网格中每一列存储着一条特定的信息。例如,在顾客表中,一个列存储着顾客编号,另一个列存储着顾客名,而地址、城市、州以及邮政编码全都存储在各自的列中。
- 分解数据:正确地将数据分解为多个列极为重要。 例如,城市、州、邮政编码应该总是独立的列。通过把它分解开,才有可能利用特定的列对数据进行排序和过滤。
1.3.2 数据类型
- 数据类型(datatype):所容许的数据的类型。每个表的列都有相应的数据类型,它限制(或容许)该列中存储的数据。
- 数据类型定义列可以存储的数据种类。 例如,如果列中存储的为数字(或许是订单中的物品数),则相应的数据类型应该为数值类型。
- 数据类型限制可存储在列中的数据种类(例如,防止在数值字段中录入字符值)。 数据类型还帮助正确地排序数据,并在优化磁盘使用方面起重要的作用。
1.4 行/记录
- 行(row):表中的一个记录。
- 表中的数据是按行存储的,所保存的每个记录都存储在自己的行内。 如果将表想象为网格,则网格中垂直的列为表列,水平行为表行。
- 是记录还是行? 你可能听到用户在提到行(row)时称其为数据库记录(record)。在很大程度上,这两个术语是可以互相替代的,但从技术上说,行才是正确的术语。
1.5 主键
- 主键(primary key):一列(或一组列),其值能够唯一区分表中每一行。
- 表中每一行都应该有可以唯一标识自己的一列(或一组列)。 例如,一个顾客表可以使用顾客编号列,而订单表可以使用订单ID,雇员表可以使用雇员ID或雇员社会保险号。
- 没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只涉及相关的行。大多数数据库设计人员都应保证他们创建的每个表具有一个主键,以便于以后的数据操纵和管理。
- 主键值规则(强制实施):
- 每个表只能拥有一个主键;
- 任意两行都不具有相同的主键值;
- 每个行都必须具有一个主键值(主键列的数据不允许NULL值)。
- 表中的任何列都可以作为主键,通常定义在表的一列上,但也可以一起使用多个列作为联合主键。在使用多列组合作为一个联合主键时,上述规则必须应用到构成主键的所有列,所有列值的组合必须是唯一的(但单个列的值可以不唯一)
- 使用主键的好习惯:
- 不更新主键列中的值;
- 不重用主键列的值;
- 不在主键列中使用可能会更改的值。(例如,如果使用一个名字作为主键以标识某个供应商,当该供应商合并和更改其名字时,必须更改这个主键。)
- 还有一种非常重要的键,称为外键,我们不在此处介绍了。
二、什么是SQL
- SQL(发音为字母S-Q-L或sequel)是结构化查询语言(Structured Query Language)的缩写。SQL是一种专门用来与数据库通信的语言。
- SQL有如下的优点:
- SQL不是某个特定数据库供应商专有的语言。几乎所有重要的DBMS都支持SQL,所以,学习此语言使你几乎能与所有数据库打交道。
- SQL简单易学。它的语句全都是由描述性很强的英语单词组成,而且这些单词的数目不多。
- SQL尽管看上去很简单,但它实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。
三、什么是MySQL
- 我们在前面说到,数据的所有存储、检索、管理和处理实际上是由数据库软件——DBMS(数据库管理系统)完成的。MySQL是一种DBMS,即它是一种数据库软件。
1. 客户机—服务器软件
- 服务器软件是与数据文件打交道的软件。 关于数据、数据添加、删除和数据更新的所有请求都由服务器软件完成。这些请求或更改来自运行客户机软件的计算机。
- 客户机软件是与用户打交道的软件。 例如,如果你请求一个按字母顺序列出的产品表,则客户机软件通过网络提交该请求给服务器软件。服务器软件处这个请求,根据需要过滤、丢弃和排序数据;然后把结果送回到你的客户机软件。
- 为了使用MySQL,你需要访问运行MySQL服务器软件的计算机和发布命令到MySQL的客户机软件的计算机。
- 服务器软件为MySQL DBMS。你可以在本地安装的副本上运行,也可以连接到运行在你具有访问权的远程服务器上的一个副本。
- 客户机可以是MySQL提供的工具、脚本语言(如Perl)、Web应用开发语言(如ASP、ColdFusion、JSP和PHP)、程序设计语言(如C、C++、Java)等。
2. MySQL工具
- 如前所述,MySQL是一个客户机—服务器DBMS,因此,为了使用MySQL,需要有一个客户机,即你需要用来与MySQL打交道(给MySQL提供要执行的命令)的一个应用。
- 有许多客户机应用可供选择,但在学习MySQL(确切地说,在编写和测试MySQL脚本时),最好是使用专门用途的实用程序。
- 这里只简单介绍一个mysql命令行实用程序
- 每个MySQL安装都有一个名为mysql的简单命令行实用程序。这个实用程序没有下拉菜单、流行的用户界面、鼠标支持或任何类似的
东西。在操作系统命令提示符下输入mysql将出现一个如下的简单提示:
- MySQL选项和参数
- 如果仅输入mysql,可能会出现一个错误消息。因为可能需要安全证书,或者是因为MySQL没有运行在本地或默认端口上。mysql接受你可以(和可能需要)使用的一组命令行参数。例如,为了指定用户登录名ben,应该使用mysql -u ben。
- 这里只是简单介绍,有关MySQL工具在网页上有很多,大家可以自行百度安装。强烈建议使用图形实用程序。
四、总结
- 本文只是简单介绍了数据库的一些基本概念,并未深入解释每一个命令和用法。
- 至于操纵MySQL的具体命令和用法,博主将在后续专栏博客中分享。
- 如果本文有不足之处,欢迎各位大佬批评指正。若本文对您有帮助的话,就给小白博主点个赞吧!欢迎在评论区一起交流学习哦!我们下次再见!!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)