1、数据与数据库
什么是数据?
QQ号?游戏装备?存档?
用户信息,聊天记录(信息),图片,声音,视频,文件。
操作系统定义的数据:文件就是数据。
数据库定义的数据:信息记录,游戏账号信息,图片,声音,视频,文件。可以集中存储,分类,管理的信息。
什么是数据库?
数据库本身是一个文件,该文件以仓库的方式存储信息记录。
数据库管理系统?
用于创建,修改数据库,对数据信息进行查询,管理,统计等工作。
数据库管理系统是一个软件,用于管理数据库。
数据库系统?
通过软件(C语言,java等)调用数据库中的信息。
2、主流的数据库管理系统
sql server 微软,图形化操作,强大的模板功能和错误提示。
mysql 甲骨文公司收购oracle,开源数据库,小型数据数据库
oracle 甲骨文,面向行业开发。大型数据库
DB2 IBM公司,只能运行在IBM的小型机上,AIX系统。
3、数据库发展史
第一代:网状和层次
第二代:关系型
第三代:行业变化很大,面向不同领域的数据库
非关系型数据库,高速存储
4、关系型数据的规则
1.数据完整性规则:
实体完整性:设置表中的字段为主键,不能为空,不能重复
域完整性:字段完整性或列完整性,指定字段中的类型相同。
引用完整性:当两张表相互建立关系时,引用的字段中数据必须相同
自定义完整性:用户定义指定字段中的数据范围
2.数据库范式
建立数据库的规范格式
第一范式:将字段分割成不可分割的子项
第二范式:在满足第一范式后,每张表只记录一件事。用表把功能划分开。
第三范式:在满足第一第二范式后,当多张表建立引用关系时,尽量减少重复字段
5、非关系型数据库
解决大规模的数据集合,大数据的存储于应用。
1.column-oriented :面向检索的列式存储
存储时,按照字段的信息进行排列,提供快速查询功能。
2.key-value :键值式存储,面向高性能的并发式读写。
3.document——oriented:面向海量数据访问的文档存储
常用的非关系型数据库:
Hbase:列式存储
redis:键值存储
mongodDB:分布式文件存储
neo4j:图形数据库,将数据以节点方式表示,建立节点之间的关系
数据库管理
1、系统数据库
master:存储数据库管理系统的结构,用户,密码,权限,其他数据库的结构与信息。
model:存储数据库中的模板
msdb:代理服务数据库,用于记录其他软件的功能,在数据库中调用,报警,任务调度。
tempdb:临时数据库,平时tempdb中是空的
2、数据库文件类型
主数据文件 .mdf : 包含数据库结构与信息
日志文件 .ldf : 包含所有事务日志,记录对库中数据的增加,修改,删除操作。
次要数据文件,辅助文件 .ndf :当主文件的数据写满时,多出的数据会写入的辅助文件中。辅助文件中没有数据库结构。
3、创建数据库
create database 数据库名
on primary //主文件
(
name='主文件逻辑名',
filename='路径\物理文件名.mdf',
size=20Mb, //起始空间容量
maxsize=200Mb, //最大空间容量
filegrowth=5Mb //空间增长率
)
log on //开启日志文件
(
name='日志文件逻辑名',
filename='路径\物理文件名.ldf',
size=10Mb,
maxsize=100Mb,
filegrowth=5Mb
)
4、查看数据库信息
sp_helpdb 库名
exec sp_databases //查看所有数据库名和已用空间
exec sp_helpdb 数据库名 //查看指定数据库的信息
5、扩展数据库
给数据库增加起始空间容量,或增加最大容量,添加辅助文件等操作。
数据库操作的命令体系
create 创建
alter 修改
drop 删除
insert 添加
update 更新
delete 删除
select 查询
给数据库增加起始空间:
alter database 库名
modify file
(
name='逻辑名',
size='起始空间容量', //指定的数值不能与原有数值相同,或比原有数值小。
maxsize='最大空间容量'
)
6、收缩数据库文件:
use 数据库名 //连接数据库
DBCC SHRINKFILE (N'逻辑名' , 剩余空间)
7、扩展数据库--添加辅助文件
alter database 数据库名
add file
(
name='逻辑名',
filename='路径\物理文件名.ndf'
)
添加辅助日志文件:
alter database 数据库名
add log file
(
name='逻辑名',
filename='路径\物理文件名.ldf'
)
8、删除辅助文件
只能删除未连接的,没有数据的辅助文件。
alter database 数据库名
remove file 逻辑名
数据类型与创建表
1、分离和附加数据库
分离数据库:注销数据库管理系统只正在连接管理的数据库,用户可以复制或移动数据库物理文件。
EXEC sp_detach_db @dbname = N'库名'
附加数据库:在管理器中注册数据库,使管理器可以连接管理数据库。
create database 库名
on
(filename='路径\物理文件名.mdf'),
(filename='路径\物理文件名.ldf')
for attach
2、删除数据库
drop database 库名
3、数据类型
1.精准数字:
整数型:bigint 8字节存储
int 4字节存储
smallint 2字节存储
tinyint 1字节存储,0-255之间的正整数
位数型:bit 只存储0 1 或null(是一个标记)
小数型:decimal 格式:decimal(8,2) 8代表总长度 2代表小数点后面位数
numeric
货币型:money 8字节存储
smallmoney 4字节存储
2.近似数字:
float :浮点数值 8字节存储
real :4字节存储
3.字符串:
char: 固定长度的非Unicode字符,最大8000字符,当数据不满足定义长度时,添加空格进行占位。读写速度快,占用空间大。
varchar: 不固定长度的非Unicode字符,最大8000字符,不添加占位空格。
text: 存储大型的字符数据,20亿字符
4.unicode字符串:
nchar: 固定长度,最大4000字符
nvarchar: 不固定长度,最大4000字符
ntext: 最大10亿字符
5.二进制字符串:
binary: 以固定长度的二进制格式存储图片。
varbinary: 以不固定长度的二进制格式存储图片。
image: 存储大图片
6.日期时间型:
date : 日期,格式年-月-日,
time : 时间,小时:分钟:秒
datetime : 日期时间 年-月-日 小时:分钟:秒
4、创建表
格式:
create table 表名
(
字段名1 数据类型 约束,
字段名2 数据类型 约束,
......
)