数据库概述
数据库:按一定结构组织存储的、集成的、可共享的数据的集合,数据库有两种类型:关系型数据库与非关系型数据库。
关系型数据库:存储格式能直观地反映实体间的关系,和创建的表格比较相似,表与表之间是有复杂的关联关系。
比如:Oracle 、Mysql 、DB2 、Microsoft SQL Server、 Microsoft Access等
非关系型数据库:指的是分布式、非关系型的、不保证遵循ACID原则的数据存储系统。
比如: MongoDb 、 redis 、 HBase、 Cloudant等
sql的分类
DDL:数据定义语言
* create,alter,drop...
DML:数据操纵语言
* update,insert,delete
DCL:数据控制语言
* grant,if..
DQL:数据查询语言
* select
mysql的数据类型
数值型
名称 | 含义(有符号) | 用途 |
---|---|---|
TINYINT | 1个字节 范围(-128~127) | 小整数值 |
SMALLINT | 2个字节 范围(-32768~32767) | 打整数值 |
MEDIUMINT | 3个字节 范围(-8388608~8388607) | 大整数值 |
INT | 4个字节 范围(-2147483648~2147483647) | 大整数值 |
BIGINT | 8个字节 范围(±9.22*10的18次方) | 极大整数值 |
FLOAT | 8位精度(4字节) | 单精度浮点数值 |
DOUBLE | 16位精度(8字节) | 双精度浮点型 |
字符串类型
名称 | 用途 |
---|---|
CHAR | 定长字符串 |
VARCHAR | 变长字符串 |
TINYBLOB | 不超过255个字符的二进制字符串 |
TINYTEXT | 短文本字符串 |
BLOB | 二进制形式的长文本数据 |
TEXT | 长文本数据 |
MEDIUMBLOB | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 中等长度文本数据 |
LONGBLOB | 二进制形式的极大文本数据 |
LONGTEXT | 极大文本数据 |
日期时间型
名称 | 格式示例 | 用途 |
---|---|---|
DATE | 2022-3-21 | 日期值 |
TIME | 14:34:56 | 时间值或持续时间 |
DATETIME | 2022-3-21 14:34:56 | 混合日期和时间值 |
TIMESTAMP | 自动存储记录修改时间 | 混合日期和时间值,时间戳 |
mysql的列属性
null属性和not null属性:mysql数据库默认字段都是为null的,实际开发过程中尽可能保证所有的数据都不应该为null,空数据没有意义
主键索引primary key: 一张表中只能有一个字段可以使用对应的主键,用来唯一的约束该字段里面的数据,不能重复和不能为null
唯一索引unique key: 解决表中多个字段需要唯一性约束的问题
自增长auto_increment::每次插入记录的时候,自动的为某个字段的值加1(基于上一个记录).,通常跟主键搭配(自增长规则:任何一个字段要做自增长前提必须是一个索引;自增长字段必须是整型数字)
外键约束: foreign key 被约束的表叫做副表,外键设置在副表上面,外键引用主键字段所在的表叫做主表. (作用:约束两张表的数据)