目录:
一、数据库的概念
二、数据库管理
三、数据库使用
1、创建数据库
2、数据类型
3、条件约束
一、数据库概念
什么是数据?
QQ、微信的聊天记录(信息)、图片、视频、音乐、文件、游戏装备、网店商品等都可以称为数据。
操作系统定义的数据:文件就是数据。
数据库定义的数据:信息记录,游戏账号信息,图片,声音,视频,文件。可以集中存储,分类,管理的信息。
什么是数据库?
数据库本身是一个文件,该文件以仓库的方式存储信息记录。
数据库管理系统:
用于创建、修改数据库、对数据信息进行查询、管理、统计等工作,数据库管理系统是一个软件,用于管理数据库。
数据库系统:
通过 C语言、java等 调用数据库中的信息。
数据库发展史:
第一代网状和层次型数据库
第二代关系型数据库 MySQL就是关系型数据库
第三代非关系型数据库
关系型数据的规则
1.数据完整性规则:
实体完整性:设置表中的字段为主键,不能为空,不能重复。
域完整性:字段完整性或列完整性,指定字段中的类型相同。
引用完整性:当两张表相互建立关系时,引用的字段中数据必须相同。
自定义完整性:用户定义指定字段中的数据范围。
2.数据库范式:
建立数据库的规范格式
第一范式:将字段分割成不可分割的子项。
第二范式:在满足第一范式后,每张表只记录一件事。用表把功能划分开。
第三范式:在满足第一第二范式后,当多张表建立引用关系时,尽量减少重复字段。
常用的非关系型数据库:
Hbase:列式存储
redis:键值存储
mongodDB:分布式文件存储
neo4j:图形数据库,将数据以节点方式表示,建立节点之间的关系
二、数据库管理。
MySQL中的系统数据库:
master:存储数据库管理系统的结构,用户,密码,权限,其他数据库的结构与信息。
model:存储数据库中的模板
msdb:代理服务数据库,用于记录其他软件的功能,在数据库中调用,报警,任务调度。
tempdb:临时数据库,平时tempdb中是空的
数据库文件类型:
主数据文件 .mdf : 包含数据库结构与信息
日志文件 .ldf : 包含所有事务日志,记录对库中数据的增加,修改,删除操作。
次要数据文件,辅助文件 .ndf :当主文件的数据写满时,多出的数据会写入的辅助文件中。辅助文件中没有数据库结构。
三、数据库的使用。
1、创建数据库:
方法一:创建数据库命令行创建M5库。(--是单行注释 , /* 是范围注释 */ )
方法二: 图形化创建。
右击数据库——创建新数据库。
名字和其他设置自定。
2、数据类型:
① 精准数字:
整数型:bigint 8字节存储。
int 4字节存储。
smallint 2字节存储。
tinyint 1字节存储,0-255之间的正整数。
位数型:bit 只存储 0和1 或null(是一个标记)
小数型:decimal 格式:decimal(8,2) 8代表总长度 2代表小数点后面位数
mumeric
货币型:money 8字节存储。
smallmoney 4字节存储。
② 近似数字:
float :浮点数值 8字节存储
real :4字节存储
③ 字符串:
char: 固定长度的非Unicode字符,最大8000字符,当数据不满足定义长度时,添加空格进行占位。读写速度快,占用空间大。
varchar: 不固定长度的非Unicode字符,最大8000字符,不添加占位空格。
text: 存储大型的字符数据,20亿字符
④ unicode字符串:
nchar: 固定长度,最大4000字符
nvarchar: 不固定长度,最大4000字符
ntext: 最大10亿字符
⑤ 二进制字符串:
binary: 以固定长度的二进制格式存储图片。
varbinary: 以不固定长度的二进制格式存储图片。
image: 存储大图片
⑥ 日期时间型:
date : 日期,格式年-月-日,
time : 时间,小时:分钟:秒
datetime : 日期时间 年-月-日 小时:分钟:秒
③ 条件约束:格式:表列、数据类型、条件约束。
主键约束: primary key
每张表中只能建立一个主键约束,主键字段中的记录在表中具有唯一性,数据库查询到记录后不再使用遍历查询的方式继续查询数据。定义主键约束的字段,会将所有记录写入内存中,建立主键索引。记录不能为空。
创表时添加: create table 表名 ( 字段名 数据类型 primary key,- - -
在已有的表上添加:alter table 表名 alter column 字段名 数据类型 not null --先非空约束
alter table 表名 add constraint 约束名 primary key (字段名) --在主键约束
联合主键: primary key
联合主键是逻辑上将两个字段和成一个,同时具备:唯一、非空、两个特性。
创建时:constraint 约束名称 primary key (字段名1,字段名2)
已有时:alter table 表名 add primary key (字段名1,字段名2);
或者:alter table add constraint 约束名称 primary key (字段名1,字段名2);
删除主键:alter table 表名 drop primary key;
非空约束:not null
创建时: create table 表名 (字段名 数据类型 not null,- - -
已有时: alter table 表名 alter column 字段名 数据类型 not null;
删除非空:方法一:alter table 表名 modify 字段名 数据类型 null;
方法二:alter table 表名 drop constraint 约束名
唯一性约束:unique
创建时: create table 表名 (字段名 数据类型 unique,- - -
已有时: alter table 表名 add constraint 约束名 unique (字段名);
删除唯一约束:方法一:drop index 约束名 on 表名
方法二:alter table 表名 drop index 约束名
检查约束:check (sex='男'or sex='女') 或 check (gl>=0and gl<=30) che 约束名
创建时:create table 表名(字段名 数据类型 check (sex='男'or sex='女') - - - #男或女
已有时:alter table 表名 add constraint 约束名 check (gl>=0and gl<=30); # 0 到 30 之间
删除检查约束:alter table 表名 drop constraint 约束名
默认约束:default ' '
创建时:create table 表名(字段名 数据类型 default '男' not null,- - - #在加一个非空也可以
已有时:alter table 表名 add constraint def default '1' for 字段名 #默认为 1
删除默认约束:alter table 表名 drop constraint 约束名
外键约束:(一张表中可以有一个主键、多个外键!主外键:名称 数据类型 必须一致)
创建时格式:constraint 约束名 foreign key(列名) references 主外键表名(列名)
constraint 约束名 foreign key(列名) references 主外键表名(列名))
已有时: alter table 外键表名
添加格式: add constraint 起名 foreign key(列名) references jiguan 主外键表名(列名)
删除外键约束:
方法一:alter table 外键表名 drop constraint 外键约束名
方法二:alter table 主外键表名 drop constraint 约束名
添加数据:
方法一:
insert into biao10 (id,name ,sex,age) #表名和列名
select 1,'王1','男',20
union select 2,'王2','女',30
union select 3,'王3','女',25
方法二:
insert into biao10 (id,name,sex,age) #表名和列名
values (1,'张1','女',21)
insert into biao10 (id,name,sex,age)
values (2,'张2','女',19)
insert into biao10 (id,name,sex,age)
values (3,'张3','女',21)
创建表,后边加本列的数据类型。
查看表。
* 是代表所有biao10 的数据。(数据还没添加所以没有)
使用别名查看更容易看懂。
可以看到这张表的所有信息。
向表指定列添加数据。
修改某列的名称,越早修改越好因为到后面建立关联后会造成影响。