数据:数字信息 据:就是属性 对一系列对象的具体属性的描述的集合
数据库:数据库就是用来组织(各个数据之间是有关联。是按照规则组织起来的),存储和管理(对数据的增删改查)的仓库
数据库是企业的重要信息资产,在使用数据库时,要注意(查和增,无所谓,但是删和改,要谨慎!)
数据库管理系统(DBMS):实现对数据的有效组织,管理和存取的系统软件
mysql工作流程
mysql
数据库是一个系统,是一个人机系统,硬件,os数据库,DBMS和数据库的用户共同组成
用户是通过DBMS(各种数据库软件)来对数据库进行操作
数据库的分类
mysql :关系型数据库
redis: 非关系型数据库 es
关系型数据库
存储数据的结构是一个二维表格
表:行 列
行:纪录,用来描述一个对象信息
列:字段,用来描述对象的一个属性
关系型数据库
mysql(中小类型的数据并发请求)oracle(大数据量还是用它)sql-server mariaDB postgresql
关系型数据当中,表里面的数据是关联的,表和表之间的数据也是关联起来
非关系型数据库:保存不是一张表格,key--->value键值对来保存数据,xiaobu = 12
redis 缓存性的数据库
es 索引型数据库
文档型 MongDB
既然有关联,查询速度相对来说,关系型数据查询速度更慢一些,非关系型数据库可以支持高并发读写,对海量数据依旧保持着高效率的存储的访问
mysql数据库的存储引擎
5.5之间:MYISAM,不支持事物和外键的存储引擎,适用于读的多,写的好
5.6之后默认的存储引擎:lnnodb,可以支持事务,外键,行级锁定的存储引擎
支持高并发性能的应用
事务:在数据库当中,一个或者多个操作组成的数据操作的序列
这些操作要么全部成功,失败一个就全部不执行,确保数据一致性和完整性
事务的特点:原子性,数据库最小工作单元,要么全部执行全部,要么全部不执行,只要有一个操作时间,整个执行的序列,,都会被回滚,完成的操作也会被撤销
一致性:事务执行执行前后,数据库的完整性约束不能被破坏,只有在满足所有的约束条件情况下,事务才能被提交
隔离性:事务的执行是相互隔离,一个事物的执行不能受到其他执行事务的干扰,并发事务之间互相隔离,防止数据不一致的情况发生
持久性:事务一旦提交,他所做的所有修改会被永久的保存在数据中,即使系统崩溃,提交的数据也不丢失,确保数据库始终处于一致性
mysql的名词
1、数据库:database
2、表:table 行:row 列:column
3、索引:index
4、视图:view
5、存储过程:procedure
6、触发器:trigger
7、用户:user
8、权限:privilege
mysql的语句的规范
在数据库中,sql不区分大小写,但是建议大写,语句不区分,但是表名是严格区分大小写
sql语句可以单行也可以多行书写,但是默认都以;结尾的
关键词不能跨行或者简写
子语句通常位于度路航,便于编辑,提高可读性
数据库的命名规则
必须以字母开头,后面可以包含数据,特殊字符:#_ $
不要使用mysql的保留字:table select
数据库名 表名 用户名严格区分大小写
数据库的字符类型
int 4个字节,只能存储整数
char 固定长度的字符串,用来存储定长的字符串
varchar 可变长度的字符类型,存储可变长度的字符串(无限制的可以随便写,也要根据类型的长度)
float(m,d) 单精度浮点 存储浮点数,m表示总位数,d表示小数位
double(m,d) 双精度浮点数,存储浮点数,M也是总位置,d表小数位
text:用于存储大文本数据,文档,或者长字符串
image 二进制存储图像,图片,多媒体
decimal(5,2) 用于存储固定精度的小数,其中5,表示总位数,2表示小数位
date 存储日期:yyyy-mm-dd
datetime 存储日志 yyyy-mm-dd hh-mm-ss
timestamp和datetime格式一致,可以自动的更新为当前的时间戳
重点
char varchar
区别
'' char 4个字节 ' ' varchar 一个字节
'ab' char 4个字节 'ab' varchar 3个字节
'abcd' char 4个字节 'abcd' varchar 5个字节
char无论你是否定义了值,都会占用固定长度的字节大小
varchar在保存时,varchar 14 实际长度是5就占用,加一个隐藏符,6个
varchar比char节省磁盘空间
但是varchar读写速度比char慢
都是字符串类型:一定要用单引号(把字符串引起来)
SQL语句的分类
DDL
数据定义语言,用于创建数据对象,创建库 表 索引
CREATE 创建
DROP 删除 ALTER 修改
show global variables like 'port'; 查看数据库使用的端口
show databases; 查看库
create database 库名; 创建库
use 库名;使用库
创建表
create table 表名 (id int(4)not null,name varchar(12)not null,passwd char(48),sroce decimal(5,2),primary key(id));
删除表 drop table 表名;
删除库 drop database 库名;
truncate table 表名;清空表内容
null和空格的区别
null什么都没有,对象没有任何的描述信息
空格:也是字符
DML
数据操作语言,对表中的数据进行管理
select 查询
update 更新
insert 添加
delete 删除 对表进行操作
添加
方法一
insert into 表名 (id,name,sroce,passwd) values (1,'名字','90','123');
方法二
insert into 表名 values (1,'名字','90','123');
添加并给密码加密
insert into xiaokai values (3,'小刘',password('123'),'98');
给表里面的密码加密
删除表里的容
delete from xiaokai where id = 4;
DQL
查询数据纪录
查询
select * from 表名 where id = 序号;
select * from 表名 limit 序号1,序号2; 从序号1到序号2
select * from 表名 limit 序号1; 从开头到序号1
select distinct sroce from表名 ;去重查询
select distinct name from 表名 ;
修改表名
alter table 原名 rename 将要修改的名字;
添加一列生日信息
alter table 表名 add birth date;
修改空白列的内容
update 表名 set birth=date('yyyy-mm-rr') where id = 序号;
修改列名
alter table 表名 change birth birthday datetime;
删除列
alter table 表名 drop 列名;
改变列的字符类型
alter table 表名 modify column passwd varchar(52);
DCL
数据控制语言,设置或者更改数据库用户或者用户的权限
GRANT 赋予权限
REVOKE 取消权限
TCL 事务控制语句,管理数据库当中的事务
commit 确认提交事务
ROLLBACK 事务提交之后无法回滚
savepoint 保存点,可以回滚