数据库

一、认识数据库—What is DB?

        数据库(Database)简称DB,是按照数据结构来组织、存储和管理数据的仓库,其本身可看作电子化的文件柜。用户可以对文件中的数据进行增加、删除、修改、查找等操作。随着数据库技术的不断发展,数据库产品越来越多,常见的有Oracle、SQL Server、MySQL等。

Oracle:Oracle公司推出的数据库管理系统,在数据库领域一直处于领先地位,同时也是目前世界上流行的关系型数据库管理系统之一。它的优势在于移植性好、使用方便、功能性强,适用于各类大、中、小、微机环境。对于要求高效率、吞吐量大的项目而言是一个不错的选择。

SQL Server:Microsoft公司推出的关系型数据库管理系统,广泛应用于电子商务、银行、保险、电力等行业。因其易操作、界面良好等特点深受广大用户喜爱,但由于其只能在Windows平台上运行,并对操作系统的稳定性要求较高,因此很难处理日益增长的用户数量。

MySQL:开放源码的关系型数据库管理系统,采用GPL协议(General Public License,通用公共许可证)发布,这表示用户可以根据自己的需求进行修改。MySQL还具有跨平台性,不仅可以在Linux系统上使用,还可以在Windows、Mac OS等系统上使用。相对其他数据库而言,MySQL具有方便、快捷、免费等特点。

1.DB存储结构。

       数据库是存储和管理数据的仓库,如果要管理一个仓库,就要在规划仓库的内部结构,将物品井然有序地放入仓库中。同样,如果想要合理、高效地存储数据,就要理解数据库的存储结构。在一个数据库服务器中,可以管理多个数据库。一个数据库中又可以有多个数据表,数据是保存在数据表中的。数据库_第1张图片

        数据表的横向被称为“行”,纵向被称为“列”,行列交叉处的数据被称为“值”。数据表中的的每一行内容被称为“记录”,每一列的列名称被称为“字段”。

数据库_第2张图片

2.Why do we study MySQL DB?

       是开放源码的关系型数据库管理系统。 由瑞典MySQL AB公司开发,先后被Sun和Oracle公司收购。 是最受欢迎的关系型数据库之一,尤其是在Web开发领域,MySQL依然占据着举足轻重的地位。

低成本: MySQL是开源免费的,开发人员可根据需求自由进行修改,降低了开发成本。

跨平台: 不仅可在Windows平台上使用,还可在Linux、Mac OS等多达14种平台上使用。

高性能: 多线程以及SQL算法的设计,使其可以充分利用CPU资源和提高查询速度。

上手快: MySQL 使用标准的 SQL数据语言形式,方便用户操作。

API接口: 提供多种编程语言的API,方便操作数据库。例如Java、C、C++、PHP等。

3.数据库管理。

数据库的管理主要包括查看数据库、创建数据库、选择数据库和删除数据库。

功能 示例 描述
查看数据库 SHOW DATABASES; 显示MySQL数据库服务器中已有的数据库
创建数据库 CREATE DATABASE `itheima`; 创建一个名称为itheima的数据库
选择数据库 USE `itheima`; 选择数据库itheima进行操作
删除数据库 DROP DATABASE `itheima`; 删除数据库itheima

4.创建数据库。

       创建数据库就是在数据库系统中划分一块存储数据的空间。 基本语法格式如下:CREATE DATABASE 数据库名称;

       创建一个名称为 itcast 的数据库,SQL语句如下:CREATE DATABASE `itcast`;需要注意的是,为了避免用户自定义的名称与系统命令冲突,最好使用反引号(` `)包裹数据库名称、字段名称和数据表名称。数据库_第3张图片

       如果创建的数据库已存在,则程序会报错。因此,为了防止此情况的发生,在创建数据库时可以使用“IF NOT EXISTS”,具体如下:CREATE DATABASE IF NOT EXISTS `itcast`;

       上述SQL语句表示,若MySQL数据库服务器中不存在名称为itcast的数据库时,创建该数据库,否则不执行创建数据库itcast的操作。

5.查看数据库

在完成创建数据库后,若要查看该数据库的信息,可以使用如下命令:SHOW CREATE DATABASE 数据库名称;

示例:使用此命令查看前面创建的数据库 itcast,SQL语句如下:SHOW CREATE DATABASE `itcast`;

查看 MySQL 数据库服务器中已经存在的数据库:SHOW DATABASES;

6.选择数据库

数据库服务器中可能存在多个数据库,选择数据库的命令如下:USE 数据库名称;

示例:选择数据库 itcast 进行操作,SQL语句如下:USE `itcast`;

7. 删除数据库。

删除MySQL数据库服务器中的某个数据库:DROP DATABASE 数据库名称;

数据库的删除操作不仅会删除里面的数据,还会回收原来分配的存储空间。

示例:删除数据库 itcast,SQL语句如下:DROP DATABASE `itcast`; 

8.数据类型。

数据表在创建时,需为每个字段选择数据类型,而数据类型的选择则决定着数据的存储格式,有效范围和相应的限制。

如:一个需要10个字符宽度的字段,若将其宽度设为2个,则数据在存储时会发生错误;若将其宽度设为100,则会剩余90个字符的宽度。 因此,选择合适的数据类型对数据库的优化也很重要。

MySQL 提供了多种数据类型,主要分为 3 类:数值类型、字符串类型、日期与时间类型。

MySQL提供了很多数值类型,大体可以分为整数类型和浮点类型。 整数类型根据取值范围分为 INT、SMALLINT等, 浮点类型又分为 FLOAT、DECIMAL等。

数值类型:整数类型

数据类型

字节数

取值范围

说明

TINYINT

1

有符号:-128~127

无符号:0~255

最小的整数

SMALLINT

2

有符号:-32 768~32 767

无符号:0~65 535

小型整数

MEDIUMINT

3

有符号:-8 388 608~8 388 607

无符号:0~16 777 215

中型整数

INT

4

有符号:-2 147 483 648~2 147 483 647

无符号:0~4 294 967 295

常规整数

BIGINT

8

有符号:-9 223 372 036 854 775 808~9 223 372 036854 775 807

无符号:0~18 446 744 073 709 551 615

较大的整数

 

数值类型:浮点类型

数据类型

字节数

取值范围

说明

float

4

有符号:-3.402 823 466E+38~-1.175 494 351E-38

无符号:0/1.175 494 351E-38~3.402 823 466E+38

单精度

double

8

有符号:

-1.797 693 134 862 315 7E+308~2.225 073 858 507 201 4E-308

无符号:

0/2.225 073 858 507 201 4E-308 ~1.797 693 134 862 315 7E+308

双精度

decimal(M,D)

M+2

有符号:

-1.797 693 134 862 315 7E+308~2.225 073 858 507 201 4E-308

无符号:

0/2.225 073 858 507 201 4E-308 ~1.797 693 134 862 315 7E+308

定点数

 

浮点类型:DECIMAL类型的有效取值范围是有 M 和 D 决定。其中,M 表示数据长度,D 表示小数点后的长度。例如,数据类型设为 DECIMAL(4,1),将 3.1415926插入到数据库后,显示的结果为 3.1。

字符串类型:项目开发时,需要存储的数据多数是字符串格式的,因此 MySQL 提供了许多用于存储字符串的数据类型。

数据类型

取值范围

说明

CHAR

0~2^8-1(字符)

用于表示固定长度的字符串

VARCHAR

0~2^8-1(字符)

用于表示可变长度的字符串

ENUM

0~2^16-1(字节数)

表示枚举类型,只能存储一个枚举字符串值

BLOB

0~2^16-1(字节数)

用于表示二进制大数据(常规的)

TEXT

0~2^16-1(字节数)

用于表示大文本数据(常规的)

 

数据类型

取值范围

说明

TINYBLOB

0~2^8-1(字节数)

用于表示二进制大数据(较小的)

TINYTEXT

0~2^8-1(字节数)

用于表示大文本数据(较小的)

MEDIUMBLOB

0~2^24-1(字节数)

用于表示二进制大数据(中等的)

MEDIUMTEXT

0~2^24-1(字节数)

用于表示大文本数据(中等的)

LONGBLOB

0~2^32-1(字节数)

用于表示二进制大数据(较大的)

LONGTEXT

0~2^32-1(字节数)

用于表示大文本数据(较大的)

 

BLOB和TEXT都是用于存储大量数据的,但二者的区别在于,对于存储的数据进行排序和比较时,BLOB是区分大小写的,而TEXT是不区分大小写的。

日期和时间类型:为方便在数据库中存储日期和时间,MySQL 提供了几种相关的数据类型,这些数据类型可以根据实际开发灵活选择。

数据类型

功能说明

DATA

用于存储日期,存储格式为YYYY-MM-DD 例如:2008-12-24

TIME

用于存储时间,存储格式为HH:MM:SS 例如:14:25:10

DATETIME

用于存储日期和时间,存储格式为YYYY-MM-DD HH:MM:SS

TIMESTAMP

用于存储时间戳,存储格式为YYYYMMDDHHMMSS

YEAR(M)

用于存储年份,M用于指定年份的长度,其值为2或4中的一种

 

9.存储引擎。

在数据库中,数据表设计的是否合理直接影响着数据库的功效,而在设计数据表时存储引擎的选择,则决定着数据表具有哪些功能。接下来将对 MySQL 常用存储引擎及其作用进行介绍。

InnoDB:InnoDB 存储引擎自 MySQL 5.5 版本起被指定为默认的存储引擎,用于完成事务、回滚、崩溃修复和多版本并发控制的事务安全处理。同时也是 MySQL中第一个提供外键约束的表引擎,尤其对事务处理的能力,是 MySQL 其他存储引擎所无法与之比拟的。 InnoDB 的优势在于提供了良好的事务管理、崩溃修复能力和并发控制。

MyISAM :MyISAM 存储引擎是基于 ISAM 存储引擎发展起来的,它不仅解决了 ISAM的很多不足,还增加了很多有用的扩展。 其中,对于使用 MyISAM 存储引擎的数据表,会被存储成3个文件,文件名与表名相同,文件扩展名分别为 frm、myd 和 myi。

MyISAM存储引擎的相关文件:

扩展名

功能说明

Frm

用于存储表的结构

Myd

用于存储数据,是MYData的缩写

Myi

用于存储索引,是MYIndex的缩写

 

相比 InnoDB ,MyISAM 的优点是处理速度快;缺点是不支持事务处理等。

MEMORY:MEMORY存储引擎,是MySQL中的一类特殊的存储引擎。在MEMORY存储引擎的表中,所有数据都保存在内存中,因此数据的处理速度快,但不能持久保存(程序出错或关机时会丢失数据),而且不能存储太大的数据。对于需要很快的读写速度,但数据量小、不需要持久保存的数据来说,MEMORY存储引擎是一个理想的选择。

ARCHIVE:ARCHIVE 存储引擎适合保存数量庞大、长期维护但很少被访问的数据。对于使用 ARCHIVE 存储引擎的数据表,数据存储时会利用 zlib 压缩库进行压缩,在记录被请求时会实时进行解压。需要注意的是,ARCHIVE 存储引擎仅仅支持查询和插入操作,且由于不支持数据索引,查询效率比较低。

查看数据引擎:若要查看 MySQL 当前支持哪些存储引擎,可以使用以下 SQL 命令:SHOW ENGINES;

Engines 参数表示储存引擎的的名称;Suppot 参数表示 MySQL 是否支持该类引擎; Comment 参数是对该引擎的评论与描述。InnoDB  是 MySQL 的默认储存引擎。

你可能感兴趣的:(MySQL,数据库,教程,基础,简易)