数据库介绍
数据库的特点有两类:
1.可以长期存储数据
2.可以对数据进行有组织的管理
具体体现:可以通过操作指定的语言完成数据的增删改查
数据库的分类介绍:
分类的标准:按照数据存储格式的不同来分类的
关系型数据库:以二维表的形式进行数据的存储
解释(二维表):类似Excel,有行和列
常见关系型数据库:Oracle,MySql,Sql Server,SQLite
Oracle:主要用于大型项目(类似于银行项目等)
MySQL:主要用于中小型项目(目前项目最常用的数据库)
非关系型数据库:
redis:键值对
MangoDB:文档
Hbase:(大数据存储)一个结构化数据的分布式存储系统
数据的类型与约束
数据类型:
字符串--varchar 整型--int 仅正整数--unsigned
小数--decimal 时间日期--datatime
数据约束:
默认值:当不填写时使用默认值,填写时使用填写内容
非空:此字段不能填写空值
注:NULL(数据为空)
主键:提高数据的查询速度
特点:
唯一性:主键值必定是唯一的,不可能重复
非空性:主键不能为空
不变性:主键使用了不可以更改
单一性:一张数据表只能够设置一个主键
唯一性:此字段的值不允许重复
特点:一个表中可以设置多个字段值,且具有唯一性
外键:维护两个表之间的依赖关系
使用SQL语句对数据库进行操作
创建表格语句级模板:
create table 表名(
id int unsigned primary key auto_increment,
字段名称1 数据类型1,
字段名称2 数据类型2,
字段名称3 数据类型3
);
删除表格语句级模板
drop table if exists 表名;
数据的增删改查级语句格式
增加数据:
方法一(全字段添加): insert into 表名 values(…)
方法二(选择字段添加):insert into 表名 (字段1, 字段2, …) value(值1, 值2, …)
查询语句:
select * from 表名;
select 字段1,字段2... from 表名;
修改语句:
update 表名 set 字段名1=值1,字段名2=值2,... where 条件;
删除数据:
delete from 表名 where 条件;
注:三种删除数据的区别
delete:删除部分记录,但是自增长不会重置
truncate:保留表结构,自增长重置
drop:整张表格全部数据都删除
去重语句格式:
关键字:distinct
语法格式:select distinct 去重字段 from 表名;
条件查询
比较运算符
比较预算符:> < = <= >= !=
语法格式:表名 where 查询的字段名称 比较运算符 预期数据
逻辑运算符
and--需要同时满足条件
格式:条件一 and 条件二
or--多个条件仅需要满足其中一个
格式:条件一 or 条件二
not--取反(等同于!=)
格式:not 条件
模糊查询
关键字:like
注:仅针对字符串进行模糊匹配
语法格式:where 字段 like 匹配条件
匹配多个字符:%
匹配一个字符:_
范围查询
非连续范围:in
语法格式:where 字段名称 in (......)
连续范围:between and
语法格式:where 字段名 between 范围起点 and 范围末点
空判断
方式一:where 字段 is null
方法二:where 字段 is not null
排序
作用:针对某一个字段的值进行排序,默认按照从小到大排列
关键字:order by asc(desc)
语法格式:select * from 表名 order by 字段一 asc(desc);
聚合行数
关键字:求总数--count(*) 求最大值--max(字段) 求最小值--min(字段)
求和--sun(字段) 求平均数--avg(字段)
分组
目的: 是对每一组的数据进行统计(使用聚合函数)
分组查询
关键字:group by
语法格式:select (分组字段名) from 表名 group by 字段名
分组筛选
关键字:having
语法格式:select (分组字段名) from 表名 group by 字段名 having 筛选字段