0
点赞
收藏
分享

微信扫一扫

存储网络架构——DAS、NAS、SAN、分布式组网架构

海滨公园 2023-05-03 阅读 74

目录

数据库基础知识

数据,数据库,数据库管理系统,数据库系统

数据库的发展阶段

 数据库系统的结构

数据模型

一、概念模型

逻辑结构 

关系模型

关系代数

数据库的分类

配置初始化文件

常用的dos代码

注意:

SQL分类

表设计

一对一

一对多

多对多

常用数据类型

数值类型

字符串类型

日期类型

数据库的操作

显示当前数据库

语法:

创建数据库

语法:

说明:

示例:

使用数据库

语法:

删除数据库

语法:

说明:

示例:

表的操作

使用数据库

查看表结构

创建表

删除表

表的增删改查(CRUD)

CRUD

新增数据

语法:

示例:

单行数据 +全列插入

多行数据+指定列插入

查询数据

全列查询

指定列查询

查询字段为表达式

设置别名

去重查询

排序查询

where条件查询

分页查询

聚合函数查询

GROUP BY子句

HAVING 子句

联合查询

修改数据

语法

示例

删除数据

语法

示例

数据库约束

索引

事务

数据库基础知识

数据,数据库,数据库管理系统,数据库系统

数据库的发展阶段

 数据库系统的结构

 三级结构

数据库系统的二级映像
1.外模式/模式映像:保证逻辑独立性
2.模式/内模式映像:保证物理独立性
 

数据模型

一、概念模型

1.相关术语

2.实体型之间的联系

3.E-R 图

矩形表示实体;椭圆表示属性;菱形表示联系;无向边;联系类型
例:①班级和班主任;②学生和班主任;③学生和课程

逻辑结构 

1.结构
树型结构

 2.特点
(1)一个模型有且只有一个节点没有双亲节点,这个节点称为根节点
(2)根节点以外的其他节点有且只有一个双亲节点
(3)父子节点之间的联系是一对多联系(1∶ n)

网型结构

 2.特点
(1)允许一个以上的节点没有双亲节点
(2)允许一个节点有多个双亲节点
(3)节点之间存在多种联系(m:n)

关系模型

(一)基本概念
1.关系:二维表
2.属性:列、字段;元数
3.域:值域
4.元组:行、记录
5.分量:属性值
如,(01001,赵乾,女,讲师,计算机, 6000)中“01001”为一个分量
6.关系模式:二维表结构
如, T(TNo, TN, Sex, Prof, Dept, Sal)

 (二)关系的性质
1.每一列是同质的
2.不同列有不同的名字
3.列的顺序可以任意交换
4.行的顺序可任意交换
5.不允许出现完全一样的行
6.不允许出现合并单元格

三)关系模型的完整性约束
有 3 类:实体完整性、参照完整性、用户定义完整性
(一)关系的码

 (二)实体完整性
原则:①有主码(不空)②不同元组的主码不重复

(三)参照完整性
原则: R2 表的外键 X 的取值,参照 R1 表的主键值


(四)用户自定义完整性
原则:事先定义值域
 

关系代数

一) 传统的集合运算
1.并

2 .差

3.交

 4.广义笛卡尔积

 

 二) 专门的代数运算


1.选择 【根据条件得到行】

 选择条件:性别  女

结果:

2.投影 【 根据条件得到列】

投影条件:姓名,系别

投影结果:
3.连接
连接运算是二目运算, 它从两个关系的广义笛卡儿积中选取满足连接条件的
元组, 组成新的关系。
( 1) 等值连接
规则: ①结果(字段-两个关系的字段和) (记录-等值属性值相等, 拼左右)
( 2) 自然连接
规则: ①两表有相同的属性②结果( 字段-相同属性列只保留一列) ( 记录-
相同属性做等值连接)

4.除

 具体算法可以看这篇http://t.csdn.cn/D4vj3

数据库的分类

数据库分为关系型数据库和非关系型数据库

关系型数据库非关系型数据库
使用SQL不强制要求,一般不基于SQL实现
事务支持支持不支持
复杂操作支持不支持
海量读写操作效率低效率高
基本结构基于表和列,结构固定灵活性比较高
使用场景业务方面的OLTP系统用于数据的缓存、或基于统计分析的OLAP系统

配置初始化文件

常用的dos代码

注意:

  • 注释的写法 在前面加 --
  • sql语句不区分大小写,写大写和小写都行

SQL分类

DDL数据定义语言,用来维护存储数据的结构
代表指令: create, drop, alter
DML数据操纵语言,用来对数据进行操作
代表指令: insert,delete,update
DML中又单独分了一个DQL,数据查询语言,代表指令: select
DCL数据控制语言,主要负责权限管理和事务
代表指令: grant,revoke,commit
 

表设计

一对一

一对多

多对多

常用数据类型

数值类型

分为整型和浮点型

数据类型 大小 说明 对应java类型
BIT[ (M) ]M指定位数,默认为1二进制数,M范围从164
存储数值范围从
02^M-1
常用Boolean对应BIT,此时默认是1位,即只能存01
TINYINT 1字节 Byte
SMALLINT 2字节 Short
INT 4字节 Integer
BIGINT 8字节 Long
FLOAT(M, D) 4字节 单精度,M指定长度,D指定小数位数。会发生精度丢失 Float
DOUBLE(M,D)8字节 Double
DECIMAL(M,D)M/D最大值+2双精度,M指定长度,D表示小数点位数。精确数值 BigDecimal
NUMERIC(M,D)M/D最大值+2 DECIMAL一样 BigDecimal

字符串类型

数据类型大小说明对应java类型
VARCHAR (SIZE)0-65,535字节可变长度字符串String
TEXT0-65,535字节长文本数据String
MEDIUMTEXT0-16 777 215字节中等长度文本数据String
BLOB0-65,535字节二进制形式的长文本数据byte[]

说明:varchar 可变长度是指  假设 设置了1000个字符的大小,实际占用了100个,那么就只开辟100个空间。不可变长度就是设置了1000,空间占用就是1000,没用上的就空着但是还是占用了。

日期类型

数据类型
说明对应java类型
DATETIME8 字 节范围从1000到9999年,不会进行时区的
检索及转换。
java.util.Date、
java.sql.Timestamp
TIMESTAMP4 字 节范围从1970到2038年,自动检索当前时
区并进行转换。
java.util.Date、
java.sql.Timestamp

补充:时间戳默认1970年1月1日,(时间纪元)有兴趣的自行百度。

数据库的操作

显示当前数据库

语法:

创建数据库

语法:

说明:

示例:

使用数据库

语法:

删除数据库

语法:

说明:

数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除
 

示例:

表的操作

使用数据库

操作表之前需要先使用该数据库

查看表结构

示例+说明 

创建表

语法

示例

删除表

语法

示例

表的增删改查(CRUD)

CRUD

CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写

新增数据

语法:

示例:

单行数据 +全列插入

多行数据+指定列插入

查询数据

语法

全列查询

--通常情况下 使用 * 进行全列查询

指定列查询

--指定列的顺序不需要按定义表的顺序来

查询字段为表达式

设置别名

为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称

示例:

去重查询

使用DISTINCT关键字对某列数据进行去重
示例:

排序查询

  • ASC 为升序(从小到大)
  •  DESC 为降序(从大到小)
  • 默认为 ASC
  • null数据在排序中,视为最小的值
  • 排序条件可以是表达式或者子查询

示例:

总结

where条件查询

比较运算符

>, >=, <, <=大于,大于等于,小于,小于等于
=等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
!=, <>不等于
BETWEEN a0 AND
a1
范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN (option, ...)如果是 option 中的任意一个,返回 TRUE(1)
IS NULL是 NULL
IS NOT NULL不是 NULL
LIKE模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字

逻辑运算符

运算符说明
AND多个条件必须都为 TRUE(1),结果才是 TRUE(1)
OR任意一个条件为 TRUE(1), 结果为 TRUE(1)
NOT条件为 TRUE(1),结果为 FALSE(0)

分页查询

用limit关键字

语法:

示例:

示例:

聚合函数查询

聚合函数

常见的统计总数、计算平局值等操作,可以使用聚合函数来实现,常见的聚合函数有

函数说明
COUNT([DISTINCT] expr)返回查询到的数据的 数量
SUM([DISTINCT] expr)返回查询到的数据的 总和,不是数字没有意义
AVG([DISTINCT] expr)返回查询到的数据的 平均值,不是数字没有意义
MAX([DISTINCT] expr)返回查询到的数据的 最大值,不是数字没有意义
MIN([DISTINCT] expr)返回查询到的数据的 最小值,不是数字没有意义

GROUP BY子句

SELECT 中使用 GROUP BY 子句可以对指定列进行分组查询。需要满足:

使用 GROUP BY 进行分组查询时,SELECT 指定的字段必须是“分组依据字段”,其他字段若想出现在SELECT 中则必须包含在聚合函数中

示例:

HAVING 子句

GROUP BY 子句进行分组以后,需要对分组结果再进行条件过滤时,不能使用 WHERE 语句,而需要用

示例:

联合查询

实际开发中往往数据来自不同的表,所以需要多表联合查询。多表查询是对多张表的数据取笛卡尔积

内连接

语法

示例

外连接

外连接分为左外连接和右外连接。如果联合查询,左侧的表完全显示我们就说是左外连接;右侧的表完全显示我们就说是右外连接

语法

示例

自连接

自连接是指在同一张表连接自身进行查询。
示例:

子查询

子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询
单行子查询:返回一行记录的子查询

示例

多行子查询:返回多行记录的子查询

示例

合并查询

在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all。使用

示例

修改数据

语法

示例

删除数据

语法

示例

数据库约束

  • NOT NULL - 指示某列不能为空
  • UNIQUE - 保证某列的每行必须有唯一,不重复的。
  • DEFAULT - 规定没有给列赋值时的默认值。
  • PRIMARY KEY - 主键约束,与 NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 外键约束,保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。对于MySQL数据库,对CHECK子句进行分析,但是忽略CHECK子句。

索引

索引,相当于目录,它是一种特殊的文件包含着对数据表里所有记录的引用指针。可以帮助我们快速定位,检索数据。

注意:创建索引会占用额外的磁盘空间,插入火绒修改操作效率不高,通常建议使用在需要大量进行查询的场合。

 使用方法:

创建主键约束(PRIMARY KEY)、唯一约束(UNIQUE)、外键约束(FOREIGN KEY)时,会自动创建对应列的索引。

查看索引

示例:

创建索引

对于非主键、非唯一约束、非外键的字段,可以创建普通索引

示例

删除索引

示例

事务

试想一下,当你妈妈给你打生活费的时候,她给你转账但是数据库挂掉了,那边显示转账成功了,金额减少了2000,但是你的账户并没有增加2000。这个时候是不是就很难受,那么这个问题该怎么解决呢?

那就让这里两个操作要么同时成功,要么同时失败。这就是事务的逻辑。

事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。

使用

说明:rollback即是全部失败,commit即是全部成功。

示例:

【以上就是本文分享的全部内容,下一篇JDBC编程,敬请期待~~】

举报

相关推荐

0 条评论