0%

mysql简介

  • 了解MySQL

第1章 了解SQL

1.1 数据库基础

1.1.1 什么是数据库

  • 数据库是一个以某种有组织的方式存储的数据集合。
  • 数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件)。
  • 注意:数据库和数据库管理系统(DBMS)的关系:数据库是通过DBMS创建和操纵的容器。数据库可以是保存在硬设备上的文件,但也可以不是。在很大程度上说,数据库究竟是文件还是别的什么东西并不重要,因为你并不直接访问数据库;你使用的是DBMS,它替你访问数据库。

1.1.2 表

  • 表是一种结构化的文件,可用来存储某种特定类型的数据。表可以保存顾客清单、产品目录,或者其他信息清单。

  • 表(table):某种特定类型数据的结构化清单。

  • 注意:存储在表中的数据是一种类型的数据或一个清单。决不应该将顾客的清单与订单的清单存储在同一个数据库表中。这样做将使以后的检索和访问很困难。应该创建两个表,每个清单一个表。

  • 表具有一些特性,这些特性定义了数据在表中如何存储,如可以存储什么样的数据,数据如何分解,各部分信息如何命名,等等。描述表的这组信息就是所谓的模式,模式可以用来描述数据库中特定的表以及整个数据库(和其中表的关系)。

  • 模式(schema):关于数据库和表的布局及特性的信息。

1.1.3 列和数据类型

  • 表由列组成。列中存储着表中某部分的信息。

  • 列(column):表中的一个字段。所有表都是由一个或多个列组成的。

  • 数据库中每个列都有相应的数据类型。数据类型定义列可以存储的数据种类。例如,如果列中存储的为数字(或许是订单中的物品数),则相应的数据类型应该为数值类型。如果列中存储的是日期、文本、注释、金额等,则应该用恰当的数据类型规定出来。

  • 数据类型(datatype):所容许的数据的类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据。

1.1.4 行

  • 表中的数据是按行存储的,所保存的每个记录存储在自己的行内。如果将表想象为网格,网格中垂直的列为表列,水平行为表行
  • 行(row):表中的一个记录。

1.1.5 主键

  • 表中每一行都应该有可以唯一标识自己的一列(或一组列)。一个顾客表可以使用顾客编号列,而订单表可以使用订单ID,雇员表可以使用雇员ID或雇员社会保险号。

  • 主键(primary key):一列(或一组列),其值能够唯一区分表中每个行。

  • 唯一标识表中每行的这个列(或这组列)称为主键。主键用来表示一个特定的行。没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只涉及相关的行。

  • 表中的任何列都可以作为主键,只要它满足以下条件:

    • 任意两行都不具有相同的主键值
    • 每个行都必须具有一个主键值(主键列不允许NULL值)。
  • 主键通常定义在表的一列上,但这并不是必需的,也可以一起使用多个列作为主键。在使用多列作为主键时,上述条件必须应用到构成主键的所有列,所有列值的组合必须是唯一的(但单个列的值可以不唯一)

1.2 什么是SQL

  • SQL:Structured Query Language,结构化查询语言。SQL是一种专门用来与数据库通信的语言。

第2章 MySQL简介

2.1 什么是MySQL

  • 数据的所有存储、检索、管理和处理实际上是由数据库软件——DBMS(数据库管理系统)完成的。MySQL是一种DBMS,即它是一种数据库软件。

2.1.1 客户机—服务器软件

  • DBMS可分为两类:一类为基于共享文件系统的DBMS,另一类为基于客户机—服务器的DBMS。

    • 前者(包括诸如Microsoft Access和FileMaker)用于桌面用途,通常不用于高端或更关键的应用。
    • MySQL、Oracle以及Microsoft SQL Server等数据库是基于客户机—服务器的数据库。客户机—服务器应用分为两个不同的部分。服务器部分是负责所有数据访问和处理的一个软件。这个软件运行在称为数据库服务器的计算机上。与数据文件打交道的只有服务器软件。关于数据、数据添加、删除和数据更新的所有请求都由服务器软件完成。这些请求或更改来自运行客户机软件的计算机。客户机是与用户打交道的软件。例如,如果你请求一个按字母顺序列出的产品表,则客户机软件通过网络提交该请求给服务器软件。服务器软件处理这个请求,根据需要过滤、丢弃和排序数据;然后把结果送回到你的客户机软件。
  • 客户机和服务器软件可能安装在两台计算机或一台计算机上。不管它们在不在相同的计算机上,为进行所有数据库交互,客户机软件都要与服务器软件进行通信。

2.2 MySQL 工具

  • 如前所述,MySQL是一个客户机—服务器DBMS,因此,为了使用MySQL,需要有一个客户机,即你需要用来与MySQL打交道(给MySQL提供要执行的命令)的一个应用。

2.2.1 mysql命令行实用程序

  • 每个MySQL安装都有一个名为mysql的简单命令行实用程序。这个实用程序没有下拉菜单、流行的用户界面、鼠标支持或任何类似的东西。

![mysql命令行程序](../../../../../Running Noob/计算机/Typora笔记/笔记-git仓库/Mysql_notebook/img/mysql命令行程序.jpg)

2.2.2 MySQL Administrator

2.2.3 MySQL Query Browser

第3章 使用MySQL

3.1 连接

  • 为了连接到MySQL,需要以下信息:

    • 主机名(计算机名)—— 如果连接到本地MySQL服务器,为localhost(默认);
    • 端口(如果使用默认端口3306之外的端口);
    • 一个合法的用户名,如root;
    • 用户口令(如果需要)。

    命令如下:mysql -h 主机名 -P 端口 -u 用户名 -p密码

    • 注意:
      • -p密码 不要有空格。
      • 如果 -p 后面没有写密码,回车会要求输入密码。
      • 如果没有写 -h 主机,默认就是本机。
      • 如果没有写 -P 端口,默认就是 3306

3.2 选择数据库

  • 在你最初连接到MySQL时,没有任何数据库打开供你使用。在你能执行任意数据库操作前,需要选择一个数据库。为此,可使用USE关键字。例如,为了使用crashcourse数据库,应该输入以下内容:USE crashcourse;

  • 记住,必须先使用USE打开数据库,才能读取其中的数据。

3.3 了解数据库和表

  • 数据库、表、列、用户、权限等的信息被存储在数据库和表中(MySQL使用MySQL来存储这些信息)。不过,内部的表一般不直接访问。可用MySQL的SHOW命令来显示这些信息(MySQL从内部表中提取这些信息)。

    • SHOW DATABASES;返回可用数据库的一个列表。

    • SHOW TABLES;返回当前选择的数据库内可用表的列表。

    • SHOW COLUMNS FROM customers;SHOW COLUMNS 要求给出一个表名(这个例子中的 FROM customers),它对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息(如字段cust_id的auto_increment)。

      另:DESCRIBE语句:MySQL支持用DESCRIBE作为SHOW COLUMNS FROM的一种快捷方式。换句话说,DESCRIBE customers;是SHOW COLUMNS FROM customers;的一种快捷方式。

  • 自动增量:某些表列需要唯一值。例如,订单编号、雇员ID或(如上面例子中所示的)顾客ID。在每个行添加到表中时,MySQL可以自动地为每个行分配下一个可用编号,不用在添加一行时手动分配唯一值(这样做必须记住最后一次使用的值)。这个功能就是所谓的自动增量。如果需要它,则必须在用CREATE语句创建表时把它作为表定义的组成部分。我们将在第21章中介绍CREATE语句。

---------------The End---------------