Mysql 数据库
Mysql数据库
数据:数字信息:属性,对一系列对象的具体属性的描述的集合。
数据库:数据库就是用来组织(各个数据之间是有关联的,按照规定组织起来的),存储和管理(对数据的增,删,改,查)数据的仓库
数据库是企业的重要信息资产,在使用数据库时,要注意(查和增,无所谓,删和改,要谨慎!)
数据库管理系统(DBMS)实现对数据的有效组织,管理和存取的系统软件
Mysql
数据库的组成
数据库是一个系统,是一个人机系统,由硬件,os操作系统,数据库系统,DBMS和数据库的用户共同组成
用户是通过DBMS(各种数据库软件)来对数据库进行操作
数据库的分类
Mysql:关系型数据库
Redis:非关系型数据库
Es:索引型非关系型数据库
关系型数据库:存储数据的结构是一个二维表格
表:由行和列组成
行:记录,用来描述一个对象信息
列:字段,用来描述对象的具体信息
关系型数据库:mysql(中小型的数据并发请求,用的比较多因为免费)oracle(大数据量使用它) sql-server mariaDB postgresql
关系型数据库当中,表里面的数据是关联的,表和表之间的数据也是关联起来
面试题
多表关联,最多可以关联几张表
最多三张表,再多就会降低查询速度
非关系型数据库,保存不是一张表格,key---->value 键值对来保存数据,一个键对应一个值
Redis 缓存性的数据库
Es:索引型数据库。
文档型:MongDB
既然有关联,查询速度相对来说,关系型数据库查询速度慢一点,非关系型数据库可以支持,高并发读写,对海量数据依旧保持高效率的存储和访问。
Mysql数据库的存储引擎
5.5版本之间,MYISAM不支持事务和外键的存储引擎,适用于读的多,写的好
5.6版本之后默认的存储引擎:innodb,可以支持事务,外键,行级锁定的存储引擎。
支持高并发性能的应用
事务:在数据库当中,一个或者多个操作组成的数据库操作的序列
这些操作要么全部成功,失败一个就全部不执行,为什么提出这个概念?是为了确保数据一致性和完整性。
事务在数据库中的特性特点:四个性质
原子性
它是数据库最小的工作单位,要么全部执行成功,要么全部不执行,只要有一个操作时间,整个执行的序列都会被回滚,也就是一个也不生效,哪怕是完成的操作也会被撤销。
一致性
事务执行前后,数据库的完整性约束不能被破坏,只有在满足所以得约束条件情况下,事务才能被提交
隔离性
事务的执行是相互隔离,一个事物的执行不能受到其他执行事务的干扰,并发事务之间互相隔离,防止数据不一致的情况发生
持久性
事务一旦提交,他所做的所有修改会被永久的保存在数据库中,即使系统崩溃,提交的数据也不会丢失,确保数据库的始终处于一致性的状态,确保数据的完整和一致
Mysql的名词
- 数据库:database
- 表:table 行:row 列:column
- 索引:index
- 视图:view
- 存储过程:procedure
- 触发器:trigger
- 用户:user
- 权限:[privilege]
在mysql中的语句规范
在数据库系统中,sql不区分大小写,但是祂建议大写,语句不区分,表名是严格区分大小写的。
Sql语句可以单行,也可以多行书写,但是默认都以分号结尾。推荐多行写,
select * from test1; :打印全部行列
Select name from test1; :打印test1的name那一列
关键词不能跨行或者简写的
子语句通常位于多路,便于编辑,提高可读性
数据库的命名规则
必须以字母开头,后面可以包含数据,特殊字符:# ,_ ,$ .
不要使用mysql的保留字:table select
数据库名 表名 用户名 严格区分大小写
数据库的字符类型
Id int name varchar
- 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
重点:
Char占4个字节 varchar占1个字节
Char :无论你是否定义了值,都会占用固定长度的字节大小,写了8个就占8个字节
Varchar :在保存时,varchar 14 实际长度5 就占用5个加一个隐藏符空格,实际占用6个,所以这个省磁盘空间,但varchar读写速度比char慢
都是字符串类型,一定要用单引号
Sql语句的分类
DDL:数据定义语言,用于创建数据的对象,创建库,表,索引
CREATE:创建 , DROP:删除 , ALTER修改, 都属于DDL语言
Show global variables like ‘port’;
Show databases;
Use mysql;
Show tables;
Describe user\G; \G:纵向查看
create tables c32 (id int (4) not null,name varchar(12) not null,sroce decimal(5,2),passwd char(48),primary key(id));
Null和空格的区别
Null什么都没有 ,对象没有任何的描述信息
空格:也是字符。
DML:数据操作语言,对表中的数据进行管理,
Select
Update:更新
Insert:添加
Delete:删除 ,对表进行删除
DQL:查询数据记录
Select
DCL;数据控制语言,设置或者更改数据库用户或者用户的权限
GRANT
REVOKE
TCL:事务控制语句,管理数据库当中的事务
Commit:确认提交事务
一旦提交后反悔可以 : ROLLBACK,:事务提交之后无法回滚,
Savepoint :检查点(保存点),可以回滚。
总结