MySQL入门篇 -- 理论知识归纳总结

一 MySQL数据库简介

什么是数据库

数据库是按照数据结构来组织、储存和管理数据的仓库

在日常生活中,我们常常需要把某些相关的数据放入这样的仓库,并根据管理的需要来进行相应的处理。例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号,姓名,年龄,性别,工资等等)存放在表里,这张表就可以看成是一个数据库

关系型数据库

关系型数据库,是建立在关系模型上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据,日常生活中的各种事物之间的联系均用关系模型来表示。

关系模型是由埃德加·科德于1970年首先提出的,并配合“科德十二定律”。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。 

关于MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

MySQL的优点

开源免费 不需要支付额外费用

对PHP有很好的支持,与Apache或Nginx 组成一个稳定免费的网站系统,也就是LAMP、LNMP环境

支持多种存储引擎,支持大型的数据库。可以处理拥有上千万条记录的大型数据库。可以处理每天数亿次访问

为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等

。。。。。。

二 SQL简介

什么是SQL

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

SQL语言分为几个部分

数据查询语言(DQL:Data Query Language):

其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。

数据操作语言(DML:Data Manipulation Language):

其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。

事务处理语言(TPL):

它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。

数据控制语言(DCL):

它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

数据定义语言(DDL):

其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。

指针控制语言(CCL):

它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

三 MySQL支持的数据类型

整数类型

整型值可以用十进制,十六进制或十八进制符号指定,前面可以加上可选符号(- 或者 +)。


MySQL以一个可选的显示宽度指示器的形式对SQL标准进行了扩展,这样当从数据库检索一个值时,就可以把这个值加长到指定的长度。例如:指定一个字段的类型为int(6),就可以保证说包含的数字少于6个的值在从数据库中被检索出来时能够自动用空格进行填充。需要注意的是:使用一个宽度指示器并不会影响字段的大小和它可以储存的值的范围

浮点数类型

由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。或者简单理解为数字加小数点加数字构成


对于小数点后面的位置超过允许范围的值,MySQL会自动将它四舍五入为最接近它的值

定点数类型

浮点数型在数据库中存放的是近似值,而定点数类型在数据库中存放的是精确值。decimal( m, d ),参数m是数字的总位数,m<65,参数d是小数的总位数,d<30,d<m。

字符串类型

char 与 varchar 的区别

1 char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char存储的字符串末尾不能有空格,而varchar可以。 
2 char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。 
3 char类型的字符串检索速度要比varchar类型的快。

varchar 与 text 的区别

1 varchar可指定n,text不能指定,varchar存入的实际字符数+1个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字节。 
2 varchar可指定默认值,而text不能指定默认值,默认始终为NULL。
3 varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,创建索引的情况下,text索引几乎不起作用。

二进制数据类型


bob 与 text 的区别

1 bob 和 text 的存储方式不同,text以文本方式存储,英文存储区分大小写,而blob是以二进制方式存储,不分大小写。 
2 bob储存的数据只能整体读出。 
3 text可以指定字符集 而blob不用指定字符集。

日期时间类型


若定义表里的一个字段为timestamp,那么这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放最后被修改的时间。

字段修饰与类型修饰等关键字

NULL

该字段可包含NULL值

NOT NULL

该字段不可包含NULL值

DEFAULT

设置字段的默认值,如果没有向这个字段插入内容,则使用默认值。

PRIMARY KEY

约束唯一标识数据库表中的每一条记录。主键必须包含唯一的值,主键列不能包含NULL值。每个表都应该有一个主键,并且只能有一个

AUTO_INCREMENT

设置该字段的值自动递增,适合整数类型。若插入数据时指定了该字段的值,不与之前的值出现重复则下次递增从该值开始递增,若出现重复,则会报错。

ZEROFILL

使用前导0填充数值以达到指定的显示位数,使用该修饰符可以阻止数据库储存负值,需要与int(n)这种格式的字段配合使用。

UNSIGNED

规定字段只保存正值。因为不需要保存数字的正、负符号,可以在储存时节约一个'位'的空间。从而增大这个字段可以储存的值的范围。

ENUM

只允许在规定的集合中取一个值,有点类似与单选项。在处理相互排斥的数据时容易让人理解,比如性别。集合最大可以有65535个值

SET

SET与ENUM相似单不相同。SET可以从预定义的集合中取得任意数量的值。一个SET类型最多可以包含64项元素。

UNIQUE

约束唯一标识数据库表中的每条记录,一个表中可以有多个UNIQUE约束。

CHARACTER SET NAME

指定一个字符集。

发布评论
还没有评论,快来抢沙发吧!
󰀿
󰀿