【MySQL】SQL简介
SQL简介
SQL(Structured Query Language)结构化查询语言,用来访问和操作数据库系统。
不同的数据库,都支持标准 SQL,因此 SQL 这一种语言,就可以操作各种不同的数据库。大部分数据库都支持标准的 SQL,但是部分数据库在不常用的 SQL 上扩展了一些功能。而各个数据库支持的各自扩展的功能,通常我们把它们称之为"方言"。
1、SQL 语言分类:
DDL:数据定义语言(Data Definition Language)是用来创建、修改、删除数据库和表的操作。
DML:数据管理语言(Data Manipulate Language)是用来对表数据进行增、删、改的操作。
DQL:数据查询语言(Data Query Language)是用来对表数据进行查询(查询的重要性)的操作。
DCL:数据控制语言(Data Control Language)是用来设置或更改数据库用户或角色权限的操作。
2、数据库的常见分类
关系型数据库:MySQL、Oracle、DB2、SQL Server 非关系型数据库:
- 键值存储数据库:Redis、Memcached、MemcacheDB
- 列存储数据库:HBase、Cassandra
- 面向文档的数据库:MongDB、CouchDB
- 图形数据库:Neo4J
3、主流关系数据库
目前,主流的关系数据库主要分为以下几类:
- 商用数据库,例如:Oracle,SQL Server,DB2 等;
- 开源数据库,例如:MySQL,PostgreSQL 等;
- 桌面数据库,以微软 Access 为代表,适合桌面应用程序使用;
- 嵌入式数据库,以 Sqlite 为代表,适合手机应用和桌面程序。
4、SQL 数据类型:
对于一个关系表,除了定义每一列的名称外,还需要定义每一列的数据类型。关系数据库支持的标准数据类型包括数值、字符串、时间等:
名称 | 类型 | 说明 |
---|---|---|
INT | 整型 | 4字节整数类型,范围约+/-21亿 |
BIGINT | 长整型 | 8字节整数类型,范围约 |
REAL | 浮点型 | 4字节浮点数,范围约 |
DOUBLE | 浮点型 | 8字节浮点数,范围约 |
DECIMAL(M,N) | 高精度小数 | 由用户指定精度的小数,例如,DECIMAL(20,10)表示一共20位,其中小数10位,通常用于财务计算 |
CHAR(N) | 定长字符串 | 存储指定长度的字符串,例如,CHAR(100)总是存储100个字符的字符串 |
VARCHAR(N) | 变长字符串 | 存储可变长度的字符串,例如,VARCHAR(100)可以存储0~100个字符的字符串 |
BOOLEAN | 布尔类型 | 存储True或者False |
DATE | 日期类型 | 存储日期,例如,2018-06-22 |
TIME | 时间类型 | 存储时间,例如,12:20:59 |
DATETIME | 日期和时间类型 | 存储日期+时间,例如,2018-06-22 12:20:59 |
选择数据类型的时候,要根据业务规则选择合适的类型。通常来说,BIGINT
能满足整数存储的需求,VARCHAR(N)
能满足字符串存储的需求,这两种类型是使用最广泛的。
5、语法特点
SQL 语言关键字不区分大小写!!!但是,针对不同的数据库,对于表名和列名,有的数据库区分大小写,有的数据库不区分大小写。同一个数据库,有的在 Linux 上区分大小写,有的在 Windows 上不区分大小写。
参考来源:廖雪峰 SQL 教程