初识MySQL

Posted Guarding and trust

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识MySQL相关的知识,希望对你有一定的参考价值。

不为失败找理由,只为成功找方法。所有的不甘,因为还心存梦想,所以在你放弃之前,好好拼一把,只怕心老,不怕路长。

文章目录


一、简介

    学习一门技术,要知其然,知其所以然。本章的主角:mysql是属于数据库的一种,那么什么是数据库呢。数据库最简单粗暴的说法就是:能够持久化存储数据的仓库。由此可知MySQL也就是具备这种功能的,而数据库是分很多种的(稍后再介绍),那么到这里肯定会有疑惑,要是有很多种,为什么要选择MySQL呢?本作者在这里总结几点:

  1. 体积小、速度快、成本低。
  2. 使用C和C++开发的,所以性能更好,同时使用了多种编译器进行充分测试,保证了源码的可移植性。
  3. 为各种编程语言提供API,如C、C++、Python、Java、PHP等。
  4. 支持多线程,充分利用CPU资源。
  5. 提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
  6. 支持多种存储引擎,如:InnoDB、MyISAM等。
  7. 使用标准的SQL数据语言形式。
  8. 在线DDL更改功能、复制全局事务标识、复制五崩溃从机、复制多线程。

    由此可见MySQL的强大,也正因为各种优点,所以MySQL是目前互联网中经常使用的数据库之一。

二、数据库分类

    数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。而现今最常见的数据库模型主要有两种,即关系型数据库和非关系型数据库。到这肯定有疑惑了,刚刚还说通常数据库分三种,为啥现在多出了一个非关系型数据库呢?这里简单的介绍一下,因为MySQL是关系型数据库,不是非关系型数据库。
    非关系型数据库英文术语叫NoSQL,随着互联网web2.0网站的兴起,传统的关系型数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心了,暴露了很多难以克服的问题,这是非关系型数据库就应运而生了,NoSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能,它是作为对传统关系型数据库的有效补充。

    1. 关系型数据库:MySQL、Oracle、SQL Server、DB2、SQLite、PostgerSQL等。
    1. 非关系型数据库:Redis、MongoDB、HBase等。

三、MySQL数据类型

    每种编程语言都有属于自己的数据类型,而数据库其实也不例外的,MySQL数据库也是有属于自己的数据类型。MySQL支持的数据类型主要有数值类型、日期和时间类型和字符串类型。下面将对这些数据类型进行详细的说明。

1、数值类型。MySQL支持所有标准SQL数值数据类型。

类型大小范围(有符号)范围(无符号)描述
TINYINT1B(-128,127)(0,255)小整数值
SMALLINT2B(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT3B(-8 388 608,8 388 607)(0,16 777 215)大整数值
INT或INTEGER4B(-2 147 483 648,2 147 483 647)(0,4 294 967 295)整数值
BIGINT8B(-9 223 372 036 854 775 808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大正数值
FLOAT4B(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度浮点数值
DOUBLE8B(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7E+308)双精度浮点数值
DECIMAL对DECIMAL(M, D),如果M>D,为M+2,否则D+2依赖与M和D的值小数值

【提示】:在开发中一般用的比较频繁的类型有 int、bigint、double、decimal

2、日期和时间类型

类型大小范围(有符号)范围(无符号)描述
DATA3B1000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3B‘-838 : 59 : 59’/‘-838 : 59 : 59’HH : MM : SS时间值或持续时间
YEAR1B1901/2155YYYY年份值
DATETIME8B1000-01-01 00 :00 :00/
9999-12-31 23 :59 :59
YYYY-MM-DD HH : MM : SS混合日期和时间值
TIMESTAMP4B1970-01-01 00 :00 :00/2038 结束时间是第2147483647秒,即北京时间2031-1-19 11 :14 :07,格林尼治时间2038年1月19日 凌晨03 :14 :07YYYYMMDD HHMMSS混合日期和时间值,时间戳

3、字符串类型

类型大小描述
CHAR0~255定长字符串
VARCHAR0~65 535B变长字符串
TINYBLOB0~255不超过255个字符的二进制字符串
TINYTEXT0~255短文本字符串
BLOB0~65 535B二进制形式的长文本数据
TEXT0~65 535B长文本数据
MEDIUMBLOB0~16 777 215B二进制形式的中等长度文本数据
MEDIUMTEXT0~16 777 215B中等长度文本数据
LONGBLOB0~4 294 967 295B二进制形式的极大文本数据
LONGTEXT0~4 294 967 295B极大文本数据

【提示】:在开发中一般用的比较频繁的类型有 varchar、text、longblob

四、SQL语言详解

    SQL 是 Structured Query Language 的缩写,中文译为“结构化查询语言”。SQL 是一种计算机语言,用来存储、检索和修改关系型数据库中存储的数据。SQL 是关系型数据库的标准语言,所有的关系型数据库管理系统(RDBMS),比如 MySQL、Oracle、SQL Server、MS Access、Sybase、Informix、Postgres 等,都将 SQL 作为其标准处理语言。之所以广受欢迎,是因为它具有以下用途:

  • 允许用户访问关系型数据库系统中的数据;
    • 允许用户描述数据;
    • 允许用户定义数据库中的数据,并处理该数据;
    • 允许将 SQL 模块、库或者预处理器嵌入到其它编程语言中;
    • 允许用户创建和删除数据库、表、数据项(记录);
    • 允许用户在数据库中创建视图、存储过程、函数;
    • 允许用户设置对表、存储过程和视图的权限

    与关系型数据库有关的 SQL 命令包括 CREATE、SELECT、INSERT、UPDATE、DELETE、DROP 等,根据其特性,可以将它们分为以下几个类别。
1.DDL(Data Definition Language):数据定义语言
对数据的结构和形式进行定义,一般用于数据库和表的创建、删除、修改等。

命令说明
CREATE用于在数据库中创建一个新表、一个视图或者其它对象。
ALTER用于修改现有的数据库,比如表、记录。
DROP用于删除整个表、视图或者数据库中的其它对象。

2.DML(Data Manipulation Language):数据处理语言
对数据库中的数据进行处理,一般用于数据项(记录)的插入、删除和修改。

命令说明
INSERT插入一条或多条记录。
UPDATE修改记录。
DELETE删除记录。

3.DQL(Data Query Language):数据查询语言
用于对模式对象中的数据执行查询。

命令说明
SELECT用于从一个或者多个表中检索某些记录。

4.DCL ( Data Control Language):数据控制语言
控制数据的访问权限,只有被授权的用户才能进行操作。

命令说明
GRANT向用户分配权限。
REVOKE收回用户权限。

五、总结

本章介绍了什么是数据库,数据库的分类以及需要学习的MySQL数据类型和SQL语言,想要学好MySQL,或者学好关系型数据库,SQL语言是重点。最后如果本章内容对你有所帮助,请给作者点了赞。

作者功底有限,文章内容如有出错,请进行相关技术交流。

以上是关于初识MySQL的主要内容,如果未能解决你的问题,请参考以下文章

第一章.初识mysql

初识-------------MySql-----------------------------

初识mysql

初识mysql

初识数据库(MySql)

初识MySQL