1、什么是数据库?
1.1 数据(Data)
通常情况下将自然界中的文字、数字、各类符号、声音及图像统称为数据。
1.2 数据库(DataBase,简称为DB)
1.2.1 本质:容器
1.2.2 同属:数组、集合
1.2.3 区别
a、数据库是长期存储在计算机内的(持久化存储)
b、数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性。并可为各种用户共享
1.2.4 特点
a、数据的共享性高,冗余度低,易扩展
b、数据结构化
数据之间具有联系,与文件有很大区别
c、具有较高的数据独立性
d、采用特定的数据类型
数据库中的数据不仅包括数字,还包括文本,图像,音频,视频等
e、具有较高的安全性
1.2.5 发展历程
a、人工阶段
数据主要是存储在纸带、磁带等介质上,或者直接通过手工记录
b、文件阶段
数据都以文件的形式存储在计算机的磁盘,然后通过文件系统来管理这些文件
c、数据库阶段
使用专门的数据库来管理数据
2、数据库系统的组成
2.1 组成
a、数据库(DB):存储数据
b、数据库管理系统(DBMS):为数据库系统提供管理功能
c、数据库管理员(DBA):数据库管理员,通过数据库管理系统对数据库进行维护和管理
d、应用程序(application):针对特定业务开发的一个软件
e、用户:通过应用程序对数据库进行使用
以上统称为数据库系统(DBS)。数据库系统对数据进行存储、管理和应用的软件系统
2.2 常见数据库系统
a、甲骨文----Oracle
b、IBM --- DB2
c、微软 -- Access和SQL Server
d、开源的-- MySql
2.3、数据库管理系统
a、Database Management System 简称DBMS
b、本质:软件
c、相近:学生管理系统、仓库管理系统
d、区别
用于建立、使用和维护数据库
e、定义
数据库管理系统是操作和管理数据库的软件。数据库管理系统根据数据模型对数据进行存储和管理
2.4 按数据模型分类
a、层次型
层次模型是以树形结构表示实体与实体间联系的数据模型
简单,但结构不灵活,不能表达复杂关系
b、网状型
网状模型是指以网状结构表示实体与实体间联系的数据模型
能表达复杂关系,但结构复杂,使用不易不利于数据库的维护和重建
c、关系型
关系模型是指以二维表(关系表)形式表示实体与实体间联系的数据模型
表达方式简洁、直观,插入、删除、修改数据操作方便是目前普遍使用的数据模型
说明:数据模型(Data Model)是数据组织结构的组成
3、关系型数据库
3.1 关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名。
3.2 元组:二维表中的一行称为一个元组(一条记录)
3.3 属性:二维表中的一列称为属性(一个字段)
4、关系型数据库的优点
a、易于理解
b、易于维护
c、使用方便
5、数据库技术的构成
5.1 构成
a、数据库系统(DBS)
b、Sql语言 --- 操作数据库的语言
c、JDBC --- Java和数据库之间的桥梁
5.2 MySql
5.2.1 概述
MySql DB公司开发的一个开源的、免费的关系型数据库管理系统
5.2.2 特点
a、开源、免费
b、规模小,功能有效。体积小、速度快、成本低
c、适用于各类网站的使用
5.2.3 安装及卸载
a、安装及卸载
略
b、测试数据库
在服务中检查MySql服务是否已经启动
MySql Command Line(客户端程序) ==》(默认账号:root下·)密码
c、停止数据库服务
win+r ==》运行==》services.msc==》MySql==》鼠标右键==》停止
我的电脑 ==》鼠标右键 ==》管理==》服务==》MySql==》鼠标右键==》停止
5.3 Sql语言
5.3.1 概述
a、SQL语言:SQL(Structured Query Language的缩写)语言的全称是结构化查询语言
5.3.2、包含
a、数据定义语言(DDL):Data Definition Language
b、数据操作语言(DML):Data Manipulation Language
b、数据控制语言(DCL):Data Control Language
b、数据查询语言(DQL):Data Query Language
5.4 JDBC
5.4.1 概述
JDBC就是一组用于操作各类数据库JavaAPI。
6、Sql语句
6.1、概述
1)、本质:语言
2)、同属:Java、Html、C++
3)、差别
a、用于管理关系型数据库
b、用于操作关系型数据库
4)、定义:SQL是用于关系数据库管理和数据操作的标准计算机语言
6.2、Sql语句的分类
1)、DDL(数据定义语言)
a、作用:定义和管理数据库对象,如:创建数据库、表等
b、语句:create、drop、alter
2)、DML(数据库操作语言)
a、作用:操作数据库对象
b、语句:insert、delete及update
3)、DQL(数据查询语言)
a、作用:用于查询数据库中的数据
b、语句:select
4)、DCL(数据控制语言)
a、作用:用于管理数据库,如权限的分配和管理
b、grant
6.3、执行命令
6.3.1、命令执行方式
1)、方式一:Sql Command Line Client
2)、方式二:命令行中使用"mysql"进行执行
注意:需要配置环境变量(将MySql的安装bin目录添加到path环境变量的末尾)
语句:mysql -h localhsot -u root -p
说明:-h -- host(主机地址)
-u -- UserName(用户名)
-p -- Password(密码)
6.3.2、创建数据库
1)、语法
create database [if not exists] 数据库名称
2)、说明
if not exists语句:可以不提供,如果不提供,创建数据库时,数据库存在将报错
数据库中每条语句以“;”结束,编译器遇到“;”将立即对语句进行执行
3)、示例
-- 创建一个名为“a”的数据库
-- 如果名为a的数据库已经存在,语句会报错
create database a;
-- 创建一个名为“a”的数据库
-- 如果名为a的数据库已经存在,语句不会报错
create database if not exists a;
6.3.3、查看已经存在的数据
1)、语法
show databases;
2)、 示例
略
6.3.4、更改当前数据库
1)、语法
use 数据库名;
6.3.5、删除指定的数据库
1)、语法
drop database 数据库名称;
2)、示例
drop database a;
3)、注意事项
数据库一旦被删除则无法恢复(且无提示)。
7、数据库常用对象
7.1、常见数据库对象(重要)
表(表=行(记录) + 列(字段))、视图、存储过程、索引、触发器
数据库对象是数据库里已定义的、用于存储或引用数据的对象
7.2、数据表
7.2.1、概述
数据表是由行、和列组成的一个二维表格。数据表是存储数据的基本单位
1)、临近属:集合--数据的集合
2)、同属:HashSet、TreeSet
3)、区别
a、用来存储和操作数据的逻辑结构
b、由纵向的列和横向的行组成
4)、定义:数据表是用来表示和储存数据对象之间关系的二维数组的集合
7.2.2、表的组成
1)、表名:数据表的名字(同一个数据库中表名唯一)
2)、记录:对应于数据表中一行完整的信息
3)、字段:字段对应于数据表中的一列,记录中不可分割、且具有独立含义的最小数据单位
7.2.3、MySql中的数据类型
7.2.3.1、概述
MySql数据库中每一列都具有的特定的类型。
7.2.3.2、数据类型
1)、数值类型
a、整数类型
》tinyint:非常小
》smallint:比较小
》mediumint:比较大
》int:标准的整数
》bigint:大的整数
注意:宽度和取值无关,但会影响最大的显示个数
规则:位数小于宽度时,前边用0进行填充
b、浮点数类型
》float([m,n]):m表示总宽度,n表示小数位数
》double
》decimal
2)、字符类型
》char:固定长度的字符类型(分配了10个空间,如果只存储1个长度的内容,依然占用10个空间)
》varchar:可变长度的字符类型(分配了10个空间,如果只存储1个长度的内容,会对多与空间进行回收)
》text:可以存储长文本(最大长度:65535字节)
说明:char型具有更高的效率;varchar的存储效率相对较低
char适合存储长度确定的数据,如手机号码、身份证号码
varchar适合存储长度不固定的内容,如:评论、自我介绍等
3)、日期和时间类型
》Date:存储日期数据(yyyy-MM-dd)
》Time:存储事件数据(hh:mm:ss)
》DateTime:存储日期和时间格式的数据(yyyy-MM-dd hh:mm:ss)
》year:只存储年份信息
》Timestamp:YYYYMMDDhhmmss格式表示的时间戳
4)、特殊数据类型
》Null:表时什么都没有,或未知的值
注意:任何类型的数据和Null进行运算时结果均为null
7.2.3.3、注意事项
1)、每个字段都要指定数据类型
2)、数据类型决定MySql存储他们的方式和可选择的运算符