MySQL_基础
DDL
DML
DQL
函数
索引
1.概念和应用
2.原理
3.执行计划
事务
1.概念和应用
2.事务隔离和锁
(Sql 的优化:对索引的优化)
【数据库ACID的隔离性】
Mysql数据库【适用中小型、大型网站应用】 --- 【oracle---大型]
1.关系型数据库:业务数据库,时效性高,数据的同步操作安全!
是可以通过面向对象的形式设计数据模式。
W3C标注牛SQL语法
2.非关系型数据库:NoSQL【数据仓库】
什么是数据库
1.DBMS
2.数据库
库和表的关系
库:一组数据表的集合,mysql当中可以建若干库。
按照数据容量:24W TB
单张表:1024个字段;4000W+的数据
并发: 150+
建库
在MySql当中,字段内容是区分大小写的,其他的大小写不敏感!
切换库:要使用某一张表,首先需要先选中该表所在的库。
1:当没有选中库的时候,会报一个no database chosed!
2:也可以直接加库名和表名来执行!【在不选中某个库的情况下,执行操作】
建表:创建数据表语句
字段:列
字段的数据类型:
1.数值 Mysql多个 【Oracle 只有一个 number】
tiniint \ smallint \mediumint\ int(11) \bigint \double(7,2)\float\
2.字符串
char:索引快,非空间,上线容量小
varchar:索引相对慢,省空间,上线容量大
3.时间
DateTIME: yyyy-MM-dd hh:mm:ss
TIMESTAMP:yyyy-MM-ddhh:mm:ss
Varchar/bigint:1970-1-1 0:0:0 --- 当前时间的毫秒数
4.NULL
1.null 代表没有
2. null 不可以参与数值运算,否则结果是null
3.MySQL 中: 0\null = false;1=true;
属性
1.用于设置当前字段的特征
2.
UNSIGNED :只能是正数
zerofill:用0填充
主键:auto_increment,整型主键的自增长。默认是1
Oracle:需要自己创建序列。
null和 not null:当前列是否为空。不为空,必须有值。
Default默认值:给该列指定默认值。可以和not null 配合使用。
表类型【数据引擎】
事务处理 数据行锁定 外键约束 全文索引 表空间大小
MyISAM:不支持(高并发) 不支持 不支持 支持 较小
InnoDB:支持 支持 不支持 不支持 较大:约2倍
note:约束,最好不要用!
全文索引:针对于子字符串
MyISAM:数据仓库用,数据归档,不需要频繁修改的数据,可以作为数据增量表的引擎。
InnoDB:针对于需要频繁修改,且操作量极大的数据。主要作用:保障数据安全。
数据版本号
Version:数据版本号
逻辑删除:is_delete;。
InnoDB是不可以直接做:数据迁移的!(即冷备份,不能直接copy文件)
但:MyISAM 是可以通过copy文件实现。
主键:用于标识当前数据行的字段。需要具备唯一性。可以使用不重复的整数,也可以使用不重复的字符串,如UUID。(全局唯一ID字符串)——使用格林威治时间进行重新编码,获得唯一的值。但是UUID并非真的唯一。【并发如果同一时刻取值,会出现相同值】
{如果一定要用,可以通过 + 一个随机值 来尽可能避免重复!}
一个表中至少有一个主键!
javachengx
---用户体验度。最优2-7S之间,是到服务器,业务处理+数据库+其他中间件,所有的时间是:2 - - 7秒的时间。
乐观锁--软删除
事务很重要的,但不一定需要使用!
Version:批号。
事务:并发使用。
数据迁移问题!
scott工具?
反引号:· 可加可不加;在数字键1 tab键上面,不是单引号
用于区分关键字,如果不是关键字,可以不加!
单引号:是字符串,不区分双引号和单引号。