- 前言
一、SQL简述1.SQL的概述Structure Query Language(结构化查询语言)简称SQL,它被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后被国际化标准组织(ISO)采纳为关系数据库语言的国际标准 。数据库管理系统可以通过SQL管理数据库;定义和操作数据,维护数据的完整性和安全性 。
2.SQL的优点
2、绝大多数重要的数据库管理系统均支持SQL
3、高度过程化;用SQL操作数据库时大部分的工作由DBMS自动完成
3.SQL的分类
2、DML(Data Manipulation Language) 数据操作语言,用来操作数据库中表里的数据;常用语句:INSERT、 UPDATE、 DELETE
3、DCL(Data Control Language) 数据控制语言,用来操作访问权限和安全级别; 常用语句:GRANT、DENY
4、DQL(Data Query Language) 数据查询语言,用来查询数据 常用语句:SELECT
二、数据库的三大范式
2、第二范式(2NF)是在第一范式(
3、第三范式(3NF)是在第二范式的基础上建立起来的,即满足第三范式必须要先满足第二范式 。第三范式(3NF)要求:表中的非主键列必须和主键直接相关而不能间接相关;也就是说:非主键列之间不能相关依赖 。
三、数据库的数据类型使用MySQL数据库存储数据时,不同的数据类型决定了 MySQL存储数据方式的不同 。为此,MySQL数据库提供了多种数据类型,其中包括整数类型、浮点数类型、定点 数类型、日期和时间类型、字符串类型、二进制…等等数据类型 。
1.整数类型根据数值取值范围的不同MySQL 中的整数类型可分为5种,分别是TINYINT、SMALUNT、MEDIUMINT、INT和 BIGINT 。下图列举了 MySQL不同整数类型所对应的字节大小和取值范围而最常用的为INT类型的,
字节数
无符号数的取值范围
有符号数的取值范围
TINYINT
1
0~255
-128~127
SMALLINT
2
0~65535
-32768~32768
MEDIUMINT
3
0~16777215
-8388608~8388608
INT
4
0~4294967295
-2147483648~ 2147483648
BIGINT
8
0~18446744073709551615
-9223372036854775808~9223372036854775808
2.浮点数类型和定点数类型在MySQL数据库中使用浮点数和定点数来存储小数 。浮点数的类型有两种:单精度浮点数类型(FLOAT)和双精度浮点数类型(DOUBLE) 。而定点数类型只有一种即DECIMAL类型 。下图列举了 MySQL中浮点数和定点数类型所对应的字节大小及其取值范围:
字节数
有符号的取值范围
无符号的取值范围
FLOAT
4
-3.402823466E+38~-1.175494351E-38
0和
1.175494351E-38~3.402823466E+38
DOUBLE
8
-1.7976931348623157E+308~2.2250738585072014E-308
0和
2.2250738585072014E-308~1.7976931348623157E+308
DECIMAL(M,D)
M+2
-1.7976931348623157E+308~2.2250738585072014E-308
0和
2.2250738585072014E-308~1.7976931348623157E+308
从上图中可以看出:DECIMAL类型的取值范围与DOUBLE类型相同 。但是,请注意:DECIMAL类型的有效取值范围是由M和D决定的 。其中,M表示的是数据的长 度,D表示的是小数点后的长度 。比如,将数据类型为DECIMAL(6,2)的数据6.5243 插人数据库后显示的结果为6.52
3.字符串类型在MySQL中常用CHAR 和 VARCHAR 表示字符串 。两者不同的是:VARCHAR存储可变长度的字符串 。
当数据为CHAR(M)类型时,不管插入值的长度是实际是多少它所占用的存储空间都是M个字节;而VARCHAR(M)所对应的数据所占用的字节数为实际长度加1
CHAR(3)
存储需求
VARCHAR(3)
存储需求
‘’
‘’
3个字节
‘’
1个字节
‘a’
‘a’
3个字节
‘a’
2个字节
‘ab’
‘ab’
3个字节
‘ab’
3个字节
‘abc’
‘ab’
3个字节
‘abc’
4个字节
‘abcd’
‘ab’
3个字节
‘abc’
4字节
4.字符串类型文本类型用于表示大文本数据,例如,文章内容、评论、详情等,它的类型分为如下4种:
推荐阅读
- Docker如何构建mysql主从?
- 一文讲透 Python 协程
- 一文带你搞定TCP滑动窗口
- 分享MySQL记录锁、间隙锁、临键锁小案例演示,你学废了吗
- 这举动掌握好频率才有最大的好处
- 盘点信息安全常见的Web漏洞
- 百万级数据下的mysql深度解析
- 交换机组网与PON组网哪个好?一文了解清楚
- Mysql数据库tinyint,int,bigint,char,varchar究竟用哪个?
- Win下部署多个MySQL数据库实例