数据库分为关系型数据库与非关系型数据库。
常见的关系型数据库有:mysql,oracle
非关系型数据库:redis,mongodb
稳定且结构化的数据用关系型数据库,增长是可预见的。一般不开源
大型且增长快的数据且结构简单的,如评论文章可以用nosql数据库。一般开源。高并发,集群,分布式。一般为键值对的形式存在。
ddl语句:
添加字段
alter table 表名 add 字段 数据类型 约束条件;
修改字段
alter table 表名 modify 字段 数据类型 约束条件
删除
alter table 表名 drop column 列名
重命名
alter table 表名 rename 新名称
删除表
drop table students;
dml语句
添加
insert into 表名(字段名,字段名) values(值,值);这里的字段和值必须对应。or
insert into 表名 values(值,值)。这里默认是填写所有字段值
删除
delete from 表名 where 字段=值;
修改
update 表名 set 字段=值 where 条件
查询
select *from表名;查询所有
select 字段名 from 表名 where 条件;按条件查询字段
以上就是基本的增删改查。
以下是一些查找过滤方式
比较方式:
就是数学中的大于等于小于以及!=不等于
包含和不包含指不需要连续值的情况使用:
in or not in
如果是一段值的:
between 从那个值开始 and 以那个值结束
not between 从那个值开始 and 以那个值结束
关于分组以及分组过滤:
group by分组字段having过滤字段
没有过滤字段时,只可能出现一条数据。
同时还有一些相关的约束:
主键约束:primary key 唯一,不能为空
外键约束:foreign key 另外一张表的主键
唯一约束:unique 唯一,可以为空
检查约束:check 对该列的数据进行限制
默认约束:default 该数据的默认值
多表关键查询:
内连接:只要相互都有的
select * from 表一 join 表二 on 相互关联的字段。
select * from 表一,表二;这样会得到一个笛卡尔积也就是两张表做一个两两组合的表。
select *from表一,表二 where 关联条件只会剩下关联的字段
子查询:子查询的意思就是需要再查一次来过滤数据。
select*from表一 where 某个字段 这里就可以使用一些判断或者包含之类的关系 (select*from表where条件)
外连接:一般是除了相互都有的部分,自己主表有但是附表没有的部分也需要显示的