数据:数:数字信息 据:属性 对一系列对象的具体属性的描述的集合
数据库:数据库就是用来组织(各个数据之间是有关联,是按照规则组织起来的),存储和管理(对数据的增删改查)数据的仓库。
数据库是企业的重要信息资产,在使用数据库时,要注意(查和增 无所谓 但是删和改要谨慎
数据库管理系统(DBMS):实现对数据的有效组织,管理和存取的系统软件
数据库是一个系统,是一个人机系统,硬件,os数据库,DBMS和数据库的用户共同组成
用户是通过DBMS(各种数据库软件)来对数据库进行操作。
mysql:关系型数据库
redis:非关系型数据库 es
关系型数据库:存储数据的结构是一个二维表格
表:行 列
行:记录,用来描述一个对象信息
列:字段,用来描述对象的一个属性
关系型数据库:mysql(中小类型的数据并发请求 免费) oracle(大数据量还是用他) sql-server mariaDB postgresql
关系型数据库当中,表里面的数据是关联的,表和表之间的数据也是关联起来。
非关系型数据库:保存不是一张表格,key--------value 键值对来保存数据。
redis:缓存性的数据库
es:索引型数据库
文档型:MongoDB
既然有关联,查询速度相对来说,关系型数据查询速度更慢一些,非关系型数据库可以支持高并发读写。对海量数据依旧保持着高效率的存储和访问。
5.5之前:MYISAM 不支持事物和外键的存储引擎,适用于读的多,写的少。
5.6之后默认的存储引擎:Innodb 可以支持事务,外键,行级锁定的存储引擎
支持高并发性能的应用
事务:在数据库当中,一个或者多个操作组成的数据操作的序列
这些操作要么全部成功,失败一个就全部不执行。确保数据的一致性和完整性。
原子性。最小的单位,数据库最小工作单元,要么全部执行成功,要么全部不执行,只要有一个操作时间,整个执行的序列都会被回滚,完成的操作也会被撤销
一致性:事务执行前后,数据库的完整性约束不能被破坏。只有在满足所有的约束条件情况下,事务才能被提交
隔离性:事务的执行是相互隔离,一个事务的执行不能受到其他执行事务的干扰,并发事务之间相互隔离,防止数据不一致的情况发生
持久性:事务一旦提交,他所做的所有修改会被永久保存在数据库中。即使系统崩溃,提交的数据也不会丢失。
确保数据库始终处于一致性的状态,确保数据的完整和一致
在数据库系统中,sql不区分大小写,但是建议大写。语句不区分,但是表名是严格区别大小写
sql语句可以单行也可以多行书写。但是默认都是以;结尾
关键词不能跨行或者简写
子语句通常位于多行,便于编辑,提供可读性
必须已字母开头,后面包含数据,特殊字符:#_$
不要使用mysql的保留字:table select
数据库名 表名 用户名严格区分大小写。
int:4个字节,用来存储整数,
char:固定长度的字符串,用来存储定长的字符串
varchar:可变长度的字符类型,存储可变长度的字符串(无限制的可以随便写,也要根据类型的长度)
float (m,d):单精度浮点存储浮点数 ,表示总位数,d表示小数
double(m,b)双精度浮点数,存储浮点数,表示总位数 ,d表示小数
test 用于存储大本文数据,文档,或者长字符串
image 二进制存储图像,图片,多媒体
decimal (5,2)用于存储固定精度的小数,其实5,表示总位数,2表示小位数
date:存储日期yyy-mm-dd
datetime 存储日志 YYY-MM-DD HH:MM:SS
timestamp 和datetime 格式一致,可以自动的更新为当前时间钻
DDL:数据定义语言,用于创建数据的对象,创建库,表 索引 (对库)
CREATE 创建
DROP 删除
ALTER 修改
DML:数据操作语言,对表中的数据进行管理(对表进行操作)
update 更新
insert 添加
delete 删除
DQL:查询数据记录
select 查看
DCL:数据控制语言,设置或者更改数据库用户或者用户的权限
GRANT 赋权
REVOKE 取消赋权
TCL:事务控制语句,管理数据库当中的事务。
commit 确认提交事务
ROLLBACK,事务提交之后没有办法回滚
savepoint 保存点,可以回滚
show global variables like 'port'; 查看数据库的端口
show databases; 查看数据库
use mysql;使用mysql数据库
show tables; 查看mysql有哪些表
describe user\G;纵向查看表结构 简写:desc user\G;
create database guoqi;创建数据库
create table guoqi666(id int(4) not null,name varchar(12) not null,sroce decimal(5,2),passwd char(48),primary key(id)); 创建表
select * from guoqi666 查看表的内容
truncate table guoqi666; 清空表的内容
insert into guoqi666 (id,name,sroce,passwd) values(1,'郭旗',90,'123');增加表的内容
insert into guoqi666 values(2,'韩文升','95','456');增加表的内容
insert into guoqi666 values(3,'王浩','91',password('hyde')); 加密处理密码
update guoqi666 set passwd=password('456') where id = 2;加密处理密码
delete from guoqi666 where id = 10;删除表的内容
select * from guoqi666 where id=5;查询表为id-5的内容
select * from guoqi666 limit 3,5;查询4-6行的表的内容
select * from guoqi666 limit 2;查询头两行
select distinct sroce from guoqi666; distinct 去重复
select distinct id,name,sroce from guoqi666;去重复
alter table guoqi666 rename guoqi999;修改表名
alter table guoqi666 add birth date; 表中增加一列
update guoqi666 set birth=date('2020-1-1') where id =6;添加内容
alter table guoqi666 change birth birthday datetime;修改birth为birthday
alter table guoqi666 drop birthday; 删除birthday
alter table guoqi666 modify column passwd varchar(52);修改字段类型