文章目录
简介
- 数据(Data)
① 描述事物的符号记录,包括数字、文字、图形、图像、声音、档案
记录
② 以“记录
”形式按统一的格式处理 - 表
① 将不同的记录组织在一起
② 用来存储具体数据 - 数据库
① 表的集合,是存储数据的仓库
② 以一定的组织方式存储放入相互有关的数据集合
一、数据库的基本概念
1.1 数据库管理系统(DBMS)
-
数据库管理系统DBMS(
Database Management System
)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库。位于用户与操作系统的一层数据管理软件,通过操作数据库,可以高效的组织、存储、获取、维护数据。 -
是实现对数据库资源有效组织、管理和存取的系统软件,
1.2 数据库系统组成
是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成。
1.3 数据库发展史
- ① 第一代数据库
自20世纪60年代起,第一代数据库系统问世
是层次模式与网状模型的数据库系统
为统一管理和共享数据提供了有力的支撑 - ② 第二代数据库
20世纪70年代初,第二代数据库——关系库数据库开始出现
20世纪80年代处,IBM公司的关系数据库系统DB2问世,开始逐渐取代层次与网状模型的数据库,成为行业主流
到目前为止,关系型数据库让占领数据库应用的主要地位 - ③ 第三数据库
自20世纪80年代开始,适应不同领域的新型数据库系统不断涌现
面向对象的数据库系统,实用性强、适应面广
20世纪90年代后期,形成了多种数据库系统共同支撑应用的局面
一些新的元素被添加进主流数据库系统中 Oracle支持的“关系-对象”数据库模型
1.4 数据库的主流分类
sql mysql 关系型
nosql redis 非关系型
1.5 当今主流数据库介绍
- SQL Server (微软公司产品)
- 面向
Windows
操作系统 - 简单、易用
Oracle (甲骨文公司磁盘)
面向所有主流平台
安全、完善操作复杂
- DB2 (IBM公司产品)
- 面向所有主流平台
- 大型、安全、完善
- MYSQL(甲骨文公司收购)
- 免费、开源、体积小
关系数据库
关系数据库系统是基于关系模型的数据系统
关系模型的数据结构使用简单易懂的二维数据表
关系模型可用简单的“实体——关系” (E-R)图来表示
E-R图中包含实体(数据对象)、关系、属性三个要素
示例:
① 实体: 又称实例,对应现实世界中可区别与其他的“事件”或“事物”。
② 属性:实体所具有的某一特性,一个实体可以由多个属性
③ 联系:实体集之间的对应关系称为联系,也称关系
二 关系数据库的分类及应用
2.1 关系型数据库和非关系数据库
- ① 关系型数据库
Oracle,MYSQL SQLServer、SYbase informix、access DB2、FoxPRO
- ② 非关系型数据库
Redis maogodb (芒果)
memcached postgresql(PG)
Redis——>内存/缓存型数据库
2.2MYSQL数据库介绍
一款深受欢迎的开原关系型数据库
Oracle
旗下的产品, 遵守GPL协议,可以免费使用与修改 特点:性能卓越、服务稳定 开源、五版权限制、成本低 多线程、多线程 基于 C/S(客户端/服务器)架构 安全可靠
三 MYSQL商业版和社区版的区别
- ① 商业版本组织管理和测试环节控制更严格,稳定性方面,回避社区版更稳定
- ② MySQL是成熟产品,商业版和社区办性能方面相差不大
- ③ 商业版不遵守GPL协议,社区办村周GPL协议可以免费使用
- ④ 使用商业版可以购买相关服务,享受7*24小时技术支持以及定时不定等服务,但是用户必须为此支付费用
- ⑤ 社区版本的维护费用只能靠社区提供,无法像商业版获得保障以及补丁解决服务,但是社区办完全免费,所以质量和时效性无法与商业版相比
四 mysql管理
4.1 数据库的登录
mysql -u root -p 回车
Enter password: 输入你的密码
或
mysql -uroot -p +密码 (不建议使用,会把密码泄露,会通过history命令查看的到)
4.2 查看数据库信息
show databases;
4.3 进入数据库
use + 库名
如:use mysql;
4.4 查看当前库下的所有表信息
show tables;
4.5显示数据表的结构(字段)
describe 数据库名.表名
describe user; //进入数据库后可直接跟表名
desc sch.xinxi;
Field:字段名称
Type:数据类型
Null :是否允许为空
Key :主键(唯一性,非空)
Default :默认值
Extra:扩展属性,
例如:标志符列(标识了种子,增量/步长)
种子即启始位置:如:id 1 2 3(种子为1,步长为1)
int:整型 用于定义整数类型的数据
float:单精度浮点4字节32位 准确表示到小数点后六位
double:双精度浮点8字节64位
char:固定长度的字符类型用于 定义字符类型数据。 如:电话号码的限制11位,可以写成char(11),如果数据少于11位会补0
varchar:可变长度的字符类型 设置上限 如varchar(10)设置上限是10
text:文本
image:图片
decimal (5,2):5个有效长度数字,小数点后面有2位 指定长度数组 如:12345.21(小数点最后一位4舍5入)
注意:Char如果存入数据的实际长度比指定长度要小,会补空格至指定长度,如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错
注:截取和截断的区别
截取:会做四舍五入
如2.876 截取2位是2.88,截断2位是2.87
4.6 SQL语言
- SQL语言的作用:
① Structured Query Language的缩写,即结构化查询语言关系型数据库的标准语言
② 用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能(增、删、该、查
) - SQL语言分类
DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限
4.7 创建库
create database sch;
- 先进入库
创建表
1.先进入库 use sch
2.创建表
create table xinxi (id int not null,name varchar(20) not null,score decimal(5,2) not null,age int(5),address varch
ar(50) default 'xinxi',primary key(id));
注:not null 不允许为空值
default 默认值
primary key 主键一般选择没有重复并且不为空的字段
- 显示数据表的结构
- 删除指定的数据表
drop table +表名;
drop table 库.表名; #如果不用use进入库中,则需加上库名
drop table xinxi;
drop table sch.xinxi;
drop database sch;
- 删除指定的数据库
drop datebases 数据库名;
4.8 DML:管理表中的数据记录
insert:插入新数据
update:更新原有数据
delete:删除不需要的数据
- 插入数据
格式:
INSERT INTO 表名(字段1,字段2[,...]) VALUES (字段1的值,字段2的值,...);
insert into xinxi (id,name,score,age,address) values(1,'lisi',89.167,23,'上海');
- 使用default插入
insert into xinxi (id,name,score,age,address) values(2,'zhangsan',89.167,23,default);
注意:主键中的数值不能重复,不然执行不了
4.9 查看表中的信息
select * from xinxi;
4.10 删除指定的数据表
drop table +表名;
drop table 库.表名; #如果不用use进入库中,则需加上库名
drop table xinxi;
drop table sch.xinxi;
drop database sch;
4.11 删除指定的数据库
drop datebases +数据库名;