datebase:用来组织,存储,管理数据的仓库。
数据库的管理系统:DBMS(用来实现对数据的有效组织、关系和存取的系统软件)
关系型数据库:mysql、oracle
非关系型数据库:redis
常见关系型数据库:mysql、oracle、sql-server(windows)、postgresql(大象数据库)、influsdb
关系型数据库的核心:是一张表格,数据存储在表格中
表有行和列:
列:列又叫字段,描述对象的属性
行:描述对象的信息
数据是保存在表里面的,关系型数据库的表与表之间可以是有关联的,数据之间也是有关联的。
一个关系型数据库可以有多个库,库里面保存的是表,表里面有数据。每个库是独立的。
数据库当中,多张表存储在库中,通过表与表之间的字段进行关联。
关系型数据库:并非量很低,一旦访问大量集中,数据库会很快崩溃。
有库,库里面保存的键值对,key————>value的形式进行保存
如:settest1=1;键是test1,值是1
非关系型数据库:redis——>用户第一次访问数据——>redis上生产一个缓存的键值对——>访问缓存键值对
非关系型数据库,可以高并发读写,对海量依旧可以保持高效的存储和访问,网且也实现高可用的架构。
eselastticsearch:索引型非关系数据库
redis:缓存型非关系数据库
prometheus:时序性的非关系数据
monggoDB:文档型非关系数据库
mysql数据库的数据类型,也是所有关系数据库的数据类型
int(n):这一列数据类型是整数,n表示数据的长度限制
char():保存字符串类型的数据,保存固定长度的字符
varchar():保存字符串类型的数据,保存可变长度的字符
text:存储大文本数据
date:存储日期,YYYY-MM-DD
float(n,m):浮点数,带小数点的值,n总位数,M小数点后几位,单精度浮点数
double(n,m):双精度浮点数
image:存储图像或者多媒体的文件
mysql:innoDB,支持事务,支持行级锁定,支持外键的存储引擎。
事务由四个特性组成:
1、原子性:事务是整个数据库工作的最小单位,不可分割的,要么全部执行成功,要不全部失败,所有的已成功的都会被失败。
2、一致性:事务执行前后,数据的完整性约束是不能被破坏的,满足所有条件约束的情况下,事务才能被提交。
3、隔离性:每个事务执行的过程是隔离的,互相不能被干扰,并非事务之间是独立的。如果隔离性不好会发生以下结果:
如果隔离性不好会发生以下结果:
mysql支持事务四种隔离级别:
4、数据的持久性:事务一旦被提交,将永久性的保存到数据库中,保证数据不会丢失。
事务:包含插入数据、更新数据、删除数据。
管理数据库的语法:sql语句
数据库常见名词:
sql语句的规范:
1、sql语句不区分大小写,但是建议用大写;sql可以是单行也可以多行,默认是以';’结尾。
如果是多行一个sql语句,关键词必须要在一行。
2、库名、表名,列名和行的值,是严格区分大小写的
3、命名规则:
表、库都必须以字母为开头,不要使用sql的保留字段,tableselectshowdatabase
表名和库名尽量不要使用特殊字符
sql语句的分类
1、DDL:数据库定义语言,创建数据库,表示、索引等的语句。
2、DML:数据库操作语言,对表里面的数据进行管理
3、DQL:查询语句,查询数据表中的符合条件的数据
4、DCL:数据库控制语句,对数据库用户权限进行控制
5、TCL:事务控制语句
查看库和使用库
查看表以及查看表的结构
避免创建重复的表
delete和truncate区别
如使用delete之前,自增长到了5,删除之后,再建立新的数据便是从6开始。
truncate:速度更快
1、修改表名
2、增加列
3、修改列的类型
4、修改列的名称和类型
5、删除列
1、主键约束:primarykey,用于标识表中的每一行,主键的字段的值必须是唯一的,且不能为空,且一个表只能有一个主键。
2、外键约束:foreignkey,用来建立表于表之间的关系。一张表的外键要和另一张表的主键的值匹配,保证数据的引用完整性。
3、非空约束:notnull,插入或者更新的操作这个字段必须要有值。
4、唯一性约束:uniquekey,类似于主键的唯一性,但是一个表可以有多个唯一性约束。
5、默认值约束:default
6、自增约束:auto_increment,一般和主键一起使用,唯一性和数据类型都有要求。
这时候从表的crad_id已经和主表的crad_id关联上了,从表crad_id的值只能与主表的crad_id一致。