数据库
概念
数据库由一批数据构成有序的集合,这些数据被存放在结构化的数据表里。数据表之间相互关联,反映了客观事物间的本质联系。数据库系统提供对数据的安全控制和完整性控制。
数据库的发展阶段----
数据库的发展大致划分为如下几个阶段:
人工管理阶段、文件系统阶段、数据库系统阶段、高级数据库阶段。
数据库的种类----
其种类大概有3种:层次式数据库、网络式数据库和关系式数据库。
数据库的特点----
数据库的特点是:
实现数据共享,减少数据冗余;
采用特定的数据类型;
具有较高的数据独立性;
具有统一的数据控制功能。
数据库快速入门----
每个数据库都是一系列二维数组的集合-----表组成,就像我们经常用的办公软件 excel,
**行被称为记录,列被称为字段,**所以每个表就长这样子----
理解了这个就非常容易理解数据库了;
数据库的操作比excel要稍微复杂一下,(这里是指通过cmd来操作数据库而不借助相关软件),建议初学者通过cmd来操作数据库,熟练了之后再借助软件提高效率;
数据库基础
数据库系统的组成----
**数据库------用于存储数据的(物理设备)
数据库管理系统------数据库软件
数据库管理系统(DataBase Management
System,DBMS)是用户创建、管理和维护数据库时所使用的软件,位于用户与操作系统之间,对数据库进行统一管理
数据库应用程序—辅助数据库的软件**
数据库应用程序负责与DBMS进行通信,访问和管理DBMS中存储的数据,允许用户插入、修改、删除DB中的数据。
底层结构逻辑如下图
表的字段的数据类型—
数据类型决定了数据在计算机中的存储格式,代表不同的信息类型。常用的数据类型有整数数据类型、浮点数数据类型、精确小数类型、二进制数据类型、日期/时间数据类型、字符串数据类型。
每一个字段是某种指定数据类型,比上图中的“编号”字段为整数数据,“性别”字段为字符型数据。
这一点跟excel表中的数据很像;
表的主键----
主键又称作关键key,用于表示表中的唯一标识的记录(即主键位置不能重复,而且不能为空,)
主键存在的意义,想象一下,加入在一个班级里面,碰巧有两个男生都叫张三的男生,而且今天又穿了一样的衣服,怎么区分他俩呢?------可以通过外貌,身份证号码等信息来确认,
所以为了区分不同的数据,主键应运而生,被声明为主键的字段内容不能为NULL(空)也不能重复;
SQL语言----操作数据库的语言
对数据库进行数据操作的语言(增删查改)的结构化语言-----像其他语言一样都有一定的格式标准,但是由于数据库种类和软件众多,sql语言并没有完全统一,但是基本的语言标准还是有的,各家数据库软件之间有些差别;
sql语言主要分为以下部分:
1)数据定义语言(DDL):DROP(删除表)、CREATE(创建表)、ALTER(选择表)等语句。
(2)数据操作语言(DML):INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
(3)数据查询语言(DQL):SELECT(选择/查询数据)语句(where(查询/选择的条件))。
(4)数据控制语言(DCL):GRANT(授权)、REVOKE(回收权限)、COMMIT(确认操作)、ROLLBACK(回滚)等语句。
由于数据库的主要功能是存储数据,各大语言要处理海量数据就需要从数据库里找数据,于是就有了数据库与各大语言之间的访问问题,如何与各大语言兼容???
数据库访问接口
ODBC----开放数据库连接接口
可以协助访问Oracle数据库\mysql数据库以及微软的acess数据库
JDBC-----java数据库连接接口
由一组java语言编写的类和接口组成.可以在java中直接访问数据库(要有不同的数据库接口我在使用的有mysql,postgresql驱动)
当然还有其他的数据库访问接口----如ADO.NET(微软.NET框架开发),PDO(针对PHP访问数据库开发的)这里不一一介绍;
数据库系统概念深入------数据库部署
且看下图-----
在部署数据库的时候一般是有主从服务器,以防止主服务器哪天坏了从服务器能够转正成为主服务器(介于此,主从数据库数据要及时同步)
上面只是开胃菜,下面来到数据库----MySQL的世界
MySQL数据库
为什么那么多企业偏爱MySQL数据库???
尤其是中小型企业,MySQL有如下优势-----
1,速度快,支持多线程处理;
2,容易使用,跨平台的特性使它可以移植;
3,接口丰富----C,C++,JAVA,php,python等都有较好的支持;
4,mysql支持标准的sql语言, 支持存储过程;
5,mysql底层支持数据加密处理,能够一定程度上保证数据安全 5,最重要的是mysql是开源的,有免费的社区版供企业使用;
MySQL的安装与配置
MySQL的官网下载链接----
根据自己的操作系统下在对应版本即可-----
详细教程网上有很多,这里给出一篇仅供参考
核心点-----端口号要记住,数据库密码要记住,其他的没啥太多要求;一路next即可
验证数据库是否安装成功-----
第一步----打开-----服务-----看MySQL80是否已经运行了,
第二部---- 配置MySQL为全局运行----
跟配置java运行环境的原理一样,只不过只需要配置一个—
MySQL的登录
登录的命令:mysql -hlocalhost -uroot –p
mysql代表bin目录下的文件mysql.exe。
-h代表host主机名。 后面跟要访问的数据库服务器的地址;如果是登录本机,可以省略,也可以写localhost
-u代表user 用户名。后面跟登录数据的用户名,第一次安装后以root用户来登录,是MySQL的管理员用户
-p代表 password 密码。一般不直接输入,而是回车后以保密方式输入。
登录之后的数据库----
win10登陆以后是由5个基本数据库组成,不同的系统可能不一样,
主要的三个数据库--------
information_schema
mysql
performance_schema
MySQL数据库的基本数据类型
跟学习java一样,也要学习数据类型-----类比学习就好
数值类型
整型数据
tinyint-----很小很小的 占1字节
1字节即 8bits即能表示的最大的无符号数为2^8-1=255
无符号数0-255,有符号数为-127到127
smallint----很小的 占2字节
2字节即 8bits即能表示的最大的无符号数为2^16-1=65535
无符号数0-65535,有符号数为-32767到32767
mediumint—中等的 占3字节 同理
int—正常的 占4字节 同理
bigint—较大的 占8字节 同理
现实生活中很多地方都会用到小数
浮点型数据
float(单精度) 占4字节
double(双精度) 占8字节
decimal(定点小数类型)—格式decimal(m,n),dec 占m+2字节
m表示-----精度(总共有多少位),n表示标度,表示小数的位数; decimal在内部是以文本形式存储的
日期和时间类型
datetime时间(年月日时分秒) 占8字节
date 时间(年月日) 占3字节
timestamp ----时间戳 占4字节
time-----记录时间信息 格式HH:MM:SS 占3字节
year----只记录年信息 格式 YYYY 占1字节
每种日期和时间类型表示的范围不一样,
着重说一下year的表示
1,以四位节字符串表示,范围位1901-2155
2,以4位数字表示
3,以两位字符串表示------范围位’00’到’69’表示2000-2069,'70’到’99’表示1970-1999
4,以2位数字表示-----1-69 表示2001-2069,70-99表示1970-1999,其中0被转换为0000而非2000
文本字符串类型
非二进制字符串
Char 定长字符串
varchar 可变字符串
tinytext极小的文本
text文本
mediumtext中等文本
longtext长文本
enum枚举
set一个设置类的文本
文本字符串也有长度限制,
二进制字符串
这种类型主要存储的是图片,视频等特别大的非文本类型数据
bit位字段类型
binary定长二进制文本
varbinary变长二进制文本
tinyblob非常小的
blob小的
mediumblob中等大小的
longblob非常大的
关于数据类型的一些细节,之后会以代码实操的形式给出详细解释;
未完待续