存储数据的仓库,本质是将数据按照指定的结构存在计算机的硬盘上,只要硬盘不损坏,理论上是永久的;英文名为Datebase,缩写DB,
2、数据模型(1)网状模型
(2)层次模型
(3)关系模型
将数据以二维表格的形式存储
即:一行数据称为一条记录
列,称为字段,或者属性
一列的数据的每一行都是一个数据项
3、关系型数据库使用关系模型存储数据的数据库叫关系型数据库
如:MySQL,Oracle,db2,SQL server
4、DBMS数据库管理系统Database Management System
DBMS是一个软件,用于创建数据库和管理数据库
二、数据库安装常用的版本:5.x,8.x,两个系列版本有差异,
下载的有安装版与解压缩版,安装版会帮忙配置系统环境变量,
解压缩版需要自己配置环境变量,
当安装时与教程有差异时,检查下列原因:
如电脑中少了什么组件(安装时安装程序会提醒的,这些组件是安装的环境),
或者上一次安装过后没有卸载干净,如注册表与mysql相关的其他目录与隐藏文件;
建议使用卸载软件彻底卸载等等
三、数据库操作 1、登录验证是否安装成功在cmd下输入mysql -u root(输入用户名) -p
root (输入登录mysql数据库的密码,在安装时设置的,root时默认的用户名加密码)
2、查看管理的所有数据库show databases
3、创建新数据库create database 数据库名;
4、删除数据库drop database 数据库名
5、选择数据库use 数据库名
四、表操作 1、表存储使用表存储数据,一张表对应一个java类,一个字段对应这个类中的属性
一个字段为一列,每一行相当于这个java对象的所有信息
在java中对象的属性用来存储数据,将这个属性的值存储在表中对应表格中
2、数据类型每一列都有对应的数据类型,同java类属性值类型
2.1数字类型:int,double,decimal
2.2字符串类型:char,varchar,text,blob(同java中String类型)
char与varchar区别:
char是固定长度的字符串,定义长度后,填入字符串长度小于
定义长度,mysql会自动使用空格补齐,varchar是长度可变的字符串,
当填入长度小于定义长度时,会改变该字符串的长度
2.3时间日期类型date: 年月日
time:时分秒
datetime:年月日时分秒
日期时间的本质:就是一个带有特殊格式的字符串。YYYY-MM-DD HH:MM:SS。
2.4缺省null,在mysql中代表未知值,即每一个null都不相等
3、表创建creat table 表名(
列名 该列数据类型 列级约束,
。。。
表级约束
);
4、查询表show tables; 可查看该数据库所有表
5、查看表结构desc 表名;
6、删除表drop table 表名;
五、数据操作CRUDCRUD即增加(Create)、检索(Retrieve)、更新(Update)和删除(Delete)
1、增加1.1增加一行所有列:
insert into 表名 values(一行所有列数据) 可以填null;
1.2增加一行的选择列:
insert into 表名(需增加列) values(增加列数据)
没有插入数据的列,系统会自动插入缺省值null
1.3插入多条数据
insert into 表名 values(数据),(…),…(…);
2、删除delete from 表名 where 条件
没有条件,清空表,删除所有行
有条件,删除满足条件的行
3、修改update 表名 set 字段名=新值 。。。where 条件
没有条件,修改所有行
有条件,修改满足条件的行
4、查询select 需要的列名 from 表名 where
5、条件where 使用
5.1 使用比较运算符
= != > >= < <=
比如查询成绩60以上的学生信息
select * from 学生表 where 成绩>60;
5.2 多条件
使用 and 与or连接
and需要满足多个条件
or满足其中一个
比如查询性别为男且成绩为60以上的学生信息
select * from 学生表 where 成绩>60 and 性别=‘男’;
5.3 连续范围条件
列名 between 。。and 。。
列名 not between 。。and 。。
比如查询成绩60到80之间的学生信息
select * from 学生表 where 成绩 between 60 and 80;
同 select * from 学生表 where 成绩>60 and 成绩<80 ;
5.4 不连续的范围
列名 in(情况1,情况2…)
列名 not in(情况1,情况2…)
如性别选择 sex in(‘男’,‘女’)
5.5 模糊筛选
like
not like
%:表示匹配0到多个字符 比如 张% 可以匹配张三,或张三三
或张。。。
_表示:匹配一个字符
如 name like 张%
6.null判断
null值不能使用=来比较
null与任何值都不相等,包括null
使用:
列名 is null
列名 is not null
6、truncate删除truncate table 表名
清空表数据。
与delete,drop区别
truncate 清空表,同时会删除索引
delete 可以清空表,也可以删除部分记录,不会删除索引。
drop删除表
六、图形化客户端命令行操作复杂
使用Navicat等图形化客户端工具对数据库进行操作
七、查询-语法select 【distinct】 *|列名
from 表名。。
where 条件
group by 分组字段
having 条件
order by 排序字段,排序方向
limit 起始位置,长度
distinct作用:将结果集中重复的行合并为一条。
1、order by 子句对查询结果进行排序。
排序有两种方向:默认升序,asc;降序,desc。
语法:order by 字段名 方向
select name from student order by name desc
2、limit用于分页查询
select * from users limit start pageSize
start=(pageNum-1)*pageSize
start 是每一页开始行,pageSize表示这一页有多少行
3、group by分组查询
select * from commodity_table
GROUP BY cl_id
将cl_id相同的分为一组
比如按性别分组,查询到的结果就男女两组
显示男,女
实际上分组的目的是为了统计组中的信息
配合聚合函数使用
如count函数统计一共表有多少行
若分组,那就是统计表一共有多少行
select cl_id,count(*) from commodity_table
GROUP BY cl_id
筛选满足条件的组
如
select cl_id,count( * ) from commodity_table
GROUP BY cl_id
having count( * )>2
having与where的区别
where是满足查询表的数据,选择的是表中的行
having是分组之后,选择满足条件的行,一般为统计的信息
4、聚合函数用于统计的函数
max(列名),一列中的最大值
min,最小值
sum,一列数字值之和
avg,平均值
count,统计函数
5、查询执行顺序from
where
group by
select 【distinct】
having
order by
limit



