数据库
数据库的作用
存储大量数据,方便检索和访问
保持数据信息的一致、完整
共享和安全
通过组合分析,产生新的有用信息
数据库的分类
按照数据(多个数据是否存在联系)关系进行划分
①关系型数据库
用于存储存在一定关联的数据库,存储形式类似于表,存储的数据拥有统一的类型与名称
②非关系型数据库
存储数据以一定形式进行存储,数据与数据之间没有关联关系,类似于map
MongDB
Redis
数据存储的方式
数据库就是“数据”的“仓库”
数据库中包含表、关系以及操作对象
数据存放在表中
所有数据存储在相应的表中,所有表存储在相应的库中
在实际开发过程中,我们会将当前应用所有使用的数据存储在一个库中(每个库负责一个应用)
在库中对所有数据进行分类使用不同的表进行数据的存储,在进行使用时选择库表之后可以快速的进行数据的获取
数据库使用的概念
不同的关系型数据库其实本质上的区别,就是存储数据的方式(使用自己的存储方式为数据进行存储指定文件),并且使用自己提供的管理软件进行数据库数据的管理
数据库管理员-》操作数据库管理软件-》使用数据库管理系统-》进行数据操作
Mysql
Mysql安装
1、使用cmd验证mysql是否已经安装
2、打开安装程序
3、勾选协议点击next
4、选择自定义安装指定安装路径
5、选择安装数据库与管理软件
6、选择进行配置安装
7、选择安装数据库用途
8、选择是否生成默认库
9、选择数据存储位置
10、选择数据库同时连接数上限
11、记录mysql使用端口号并将端口加入防火墙校验
验证是否安装成功并进行连接
mysql -h连接主机ip -u账号 -p密码
Mysql 的删除
(1)使用安装文件删除
1、关闭mysql服务
cmd命令输入service.msc打开服务管理,关闭mysql服务
2、正常情况下可以使用安装文件进行删除
如果没有提前关闭服务那么需要手动停止服务使用sc delete 服务名进行手动删除
3、删除mysql环境变量中path设置的环境变量
(2)正常删除
1、关闭mysql服务
cmd命令输入service.msc打开服务管理,停止mysql服务
2、打开控制面板找到mysql卸载
如果卸载前忘记关闭服务,那么卸载后关闭服务之后手动卸载
3、删除mysql文件
4、如果想彻底删除mysql,打开注册表搜索mysql删除所有与mysql相关的注册表信息(建议百度指定删除)
sql简单指令
mysql -h服务器地址 -u账号 -p密码 数据库连接指令
show databases; 展示当前所有数据库
use 数据库名; 连接使用指定数据库
show tables; 展示当前连接数据库中所有的表
SQL
Structured Query Language:结构化查询语言
是各大数据库厂商为了进行数据库数据的管理而达成的统一
不区分大小写,所有语句以;结束
sql语句分类
DDL(数据定义语言)
用来建立数据库、数据库对象和定义表的列
DML(数据操作语言)
插入、删除和修改数据库中的数据
DQL(数据查询语言)
用来查询数据库中的数据
DCL(数据控制语言)
用来控制存取许可、存取权限等
DDL
数据库定义语言,用于建库建表以及进行库表操作
基本语法
创建数据库
create database 数据库名;
以默认编码创建指定数据库
查看所有数据库
show databases;
查看指定数据库建库语句
show create database 数据库名;
删除数据库
drop database 数据库名;
存储数据类型
在实际开发过程中对于数值类型使用int 、double进行存储,字符串使用varchar进行存储,日期根据实际需求进行存储一般使用datatime与timestamp
建表语句
create table 表名(
列名 类数据类型(长度) 约束1 约束2,
列名 类数据类型(长度) 约束1 约束2
)
查看表详情
desc 表名
修改表名
rename table 表名 to 新表名
为表新增列
alter table 表名 add(列名 数据类型(长度) 约束,列名 数据类型(长度) 约束 )
修改已有字段数据类型等属性
alter table 表名 modify 修改字段名 修改后的数据类型(修改后的长度) 修改后的约束, 修改字段名 修改后的数据类型(修改后的长度) 修改后的约束
修改已有字段名称
alter table 表名 change 修改字段名 修改后的名称 修改后的数据类型(修改后的长度) 修改后的约束
删除已有字段
alter table 表名 drop 删除字段名
删除表
drop table 表名
**主键约束primary key **
primary key 设置字段非空不允许重复
删除主键约束
alter table 表名 drop primary key;
添加主键约束
alter table 表名 add primary key(添加约束列);
修改主键约束
alter table 表名 modify id int primary key;
最少性
尽量选择单个键作为主键
稳定性
尽量选择数值更新少的列作为主键
唯一约束unique
数据添加不允许重复
添加唯一约束
alter table 表名 add unique (添加约束列);
修改唯一约束
alter table 表名 modify 修改约束列 varchar(25) unique;
删除约束
alter table 表名 drop index 修改约束列;
非空约束 not null
not null 指定字段不允许进行null存储
增加非空约束
alter table 表名modify 约束字段 varchar(2) not null;
取消非空约束
alter table 表名 modify 约束字段varchar(2) null;
取消非空约束,增加默认值
alter table 表名 modify 约束字段varchar(2) ;
默认值约束default
当添加数据数没有添加数据使用默认值进行添加
alter table 表名 modify 约束字段varchar(2) default 默认值;
自增约束auto_increment
设置自增ID
CREATE TABLE empautoinc(
ID INT PRIMARY KEY AUTO_INCREMENT
) AUTO_INCREMENT = 100 ; --(设置自增ID从100开始)
修改mysql表的字段为自增长
alter table newcar change id id int(11) not null AUTO_INCREMENT;
获取自动增长
select @@IDENTITY;
删除自增
Alter table tb change id id int(10);//删除自增长
外键约束 foreign key
将副表字段与主表关联,可以设置当主表字段进行修改时的操作,用于限制副表数据的添加只能依赖于主表已有数据,主表进行数据删除时需要保证副表没有使用主表的数据,一般由于限制,在开发中一般使用伪外键关联(不设置外键关联,单进行数据添加时使用主表数据)
– 主表
create table temp(
id int primary key,
name varchar(20)
);
– 副表
create table temp2(
id int,
name varchar(20),
classes_id int,
foreign key(id) references temp(id)
);
删除外键约束
alter table student drop foreign key student_id;
增加外键约束
alter table student add foreign key( classes_number) references classes(number);