MySQL
MySQL是最流行的关系型数据库管理系统
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。
关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
创建数据库 create database 数据库名;
删除数据库 drop database 数据库名;
选择数据库 use 数据库名;
更新数据 update 表名 set 列名=值 [where…];
MySQL事务
MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!
事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)
原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。
隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。
持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。
MySQL索引
索引可以大大提高MySQL的检索速度。
单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。
缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。
#创建索引
create index 索引名 on 表名(列名)
#修改表结构(添加索引)
alter table 表名 add index 索引名(列名)
#删除索引
drop index 索引名 on 表名;
MySQL函数
字符串函数
char_length(str) 返回字符串str的长度
concat(str1,str2,…) 合并str1,str2…
left(str,n) 返回字符串str的前n个字符
right(str,n) 返回字符串str的后n个字符
lower(str) 将字符串变小写
upper(str) 将字符串变大写
reverse(str) 将字符串顺序反转
日期函数
adddate(d,n) 起始日期d加上n天的日期
curdate() 返回当前日期
datediff(d1,d2) d1到d2的时间间隔天数
date_format(d,f) 改日期格式
MySQL 运算符
div 除法 (10 div 4 结果为2)
mod 取余 (10 mod 4 结果为2)
is not null 不为空
位运算符
位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。