文章目录
- 数据库
-
- 数据库相关概念
- MySQL数据模型
- SQL
-
- SQL基本介绍
- SQL数据类型
数据库
数据库相关概念
数据库概念:
存储数据的仓库,数据是有组织的进行存储
英文:DataBase,简称 DB
数据库管理系统概念:
管理数据库的大型软件
英文:DataBase Management System,简称 DBMS
SQL:
英文:Structured Query Language,简称 SQL,结构化查询语言
操作关系型数据库的编程语言, 简单来说SQL是和数据库打交道的编程语言
定义操作所有关系型数据库的统一标准
常见的有如下一些数据库管理系统:
Oracle:收费的大型数据库,Oracle 公司的产品
MySQL: 开源免费的中小型数据库。后来 Sun公司收购了 MySQL,而 Sun 公司又被 Oracle 收购
SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net 等语言常使用
PostgreSQL:开源免费中小型的数据库
DB2:IBM 公司的大型收费数据库产品
SQLite:嵌入式的微型数据库。如:作为 Android 内置数据库
MariaDB:开源免费中小型的数据库
MySQL数据模型
MySQL是关系型数据库:
关系型数据库是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张能互相连接的二维表组成的数据库
优点:
- 都是使用表结构,格式一致,易于维护。
- 使用通用的 SQL 语言操作,使用方便,可用于复杂查询。
- 数据存储在磁盘中,安全。
一个数据库对应的其实就是操作系统中的一个文件夹;
而数据库中又对应许多数据表;
数据表对应的又是许多条数据。
SQL
SQL基本介绍
SQL简介:
英文:Structured Query Language,简称 SQL
结构化查询语言,一门操作关系型数据库的编程语言
定义操作所有关系型数据库的统一标准
对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”
SQL通用语法:
SQL 语句可以单行或多行书写,以分号结尾。
MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
注释
- 单行注释:
-- 注释内容
或#注释内容
(MySQL 特有)show DATABASES; -- 查询所有数据库名称 show DATABASES; # 查询所有数据库
- 多行注释:
/* 注释 */
SQL的分类:
DDL(Data Definition Language) 数据定义语言,用来定义数据库对象:数据库,表,列等
DML(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改
DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录(数据)
DCL(Data Control Language) 数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
SQL数据类型
MySQL 支持多种类型,可以分为三类:
数值类型
数据类型 | 大小 | 描述 |
---|---|---|
TINYINT | 1 byte | 小整数值 |
SMALLINT | 2 bytes | 大整数值 |
MEDIUMINT | 3 bytes | 大整数值 |
INT或INTEGER | 4 bytes | 大整数值 |
BIGINT | 8 bytes | 极大整数值 |
FLOAT | 4 bytes | 单精度浮点数值 |
DOUBLE | 8 bytes | 双精度浮点数值 |
DECIMAL | 小数值 |
日期类型
数据类型 | 大小 | 描述 |
---|---|---|
DATE | 3 | 日期值 |
TIME | 3 | 时间值或持续时间 |
YEAR | 1 | 年份值 |
DATETIME | 8 | 混合日期和时间值 |
TIMESTAMP | 4 | 混合日期和时间值,时间戳 |
字符串类型
数据类型 | 大小 | 描述 |
---|---|---|
CHAR | 0-255 bytes | 定长字符串 |
VARCHAR | 0-65535 bytes | 变长字符串 |
TINYBLOB | 0-255 bytes | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255 bytes | 短文本字符串 |
BLOB | 0-65 535 bytes | 二进制形式的长文本数据 |
TEXT | 0-65 535 bytes | 长文本数据 |
MEDIUMBLOB | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215 bytes | 中等长度文本数据 |
LONGBLOB | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 |
LONGTEXT | 0-4 294 967 295 bytes | 极大文本数据 |