MYSQL

MYSQL

查看数据库

show databases;

选择数据库

use 数据库名;

查看数据库表格

show tables;

建立数据库

create database 数据库名;

删除数据库

drop database 数据库名;

删除数据库表

drop table 表名;

插入数据

insert into 表名(字段)values(数据);

查询数据

select * from 表名;
select * from 表名 where 字段='条件';

更新数据

update 表名 set 字段='修改的数据' where 字段='选择的字段';

删除数据

delete from 表名 where 字段='选择的字段';
注意事项:
若是没有where,MySQL会删除全部数据。

LIKE(模糊查询)

select * from 表名 where name LIKE 'java%';(查询以Java开头的信息)
select * from 表名 where name LIKE '%java';(查询以Java结尾的信息)
select * from 表名 where name LIKE '%java%';(查询包含Java的信息)
索引:%开头的模糊查询会令索引失效。
%:表明多个字符。
_:表明单个字符。

UNION(select链接)

select 字段 from 表名1 union(distinct | all) select 字段 from 表名2;
DISTINCT:删除结果集中重复的数据。默认状况下 UNION 操做符已经删除了重复数据。
ALL:返回全部结果集,包含重复数据。

ORDER BY(排序)

select * from 表名 order by 字段 ASC;(根据升序字段排序)
select * from 表名 order by 字段 desc;(根据字段倒序排序)
默认状况下升序排序,因此ASC能够省略。

GROUP BY(分组)

select 字段1,字段2 from 表名 group by 字段1;
select 字段1,字段2 from 表名 group by 字段1 WITH ROLLUP;
WITH ROLLUP:以null进行汇总。

DISTINCT(去重复)

select distinct * from 表名;

LIMIT(分页)

select * from table1 limit 当前页,数据条数

表链接

INNER JOIN(内链接或等值链接):获取两个表中字段匹配关系的记录。
LEFT JOIN(左链接):获取左表全部记录,即便右表没有对应匹配的记录。
RIGHT JOIN(右链接):获取右表全部记录,即便左表没有对应匹配的记录。

select * from 表名1 a INNER JOIN 表名2 b on a.字段1=b.字段2;
select * from 表名1 a LEFT JOIN 表名2 b on a.字段1=b.字段2;
select * from 表名1 a RIGHT JOIN 表名2 b on a.字段1=b.字段2;

INNER JOIN(内链接):取两表中的交集
LEFT  JOIN(左链接):取左表和两表的交集
RIGHT JOIN(右链接):取右表和两表的交集

多表查询:
select * from 表1 a inner join 表2 b on a.字段=b.字段 
left join 表3 c on b.字段=c.字段;
内链接 左链接 右链接
image.png image.png image.png

数据库类型

数值类型

类型 大小 用途
TINYINT 1byte 小整型值
SMALLINT 2byte 大整型值
MEDIUMINT 3byte 大整型值
INT或INTEGER 4byte 大整型值
BIGINT 8byte 极大整型值
FLOAT 4byte 单精度浮点数值
DOUBLE 8byte 双精度浮点数值
DECIMAL 对DECIMAL(M,D) ,若是M>D,为M+2不然为D+2 小数值

日期类型

类型 大小(byte) 格式 用途
DATE 3 YYYY-MM-DD 日期值
TIME 3 HH:MM:SS 时分秒
YEAR 1 YYYY 年份值
DATETIME 8 YYYY-MM-DD HH:MM:SS 日期时间
TIMESTAMP 4 YYYYMMDD HHMMSS 日期时间

字符串类型

类型 大小 用途
CHAR 0-255 bytes 定长字符串
VARCHAR 0-65535 bytes 变长字符串

MYSQL事务

一、mysql中只有使用innodb数据库引擎的数据库或表才支持事务。
二、mysql中的myisam数据库引擎不支持事务。
三、事务处理能够用来维护数据库的完整性,保证成批的SQL语句要么所有执行,
要么所有不执行。
四、事务用来管理insert、update、delete

事务是必须知足4个条件(ACID):java

一、原子性:要么所有完成,要么所有不完成。
二、一致性:在事务开始以前和事务结束之后,数据库的完整性没有被破坏。
三、隔离性:事务之间相互不影响。
四、持久性:事务处理结束以后,对数据进行一个永久的保存。

事务的隔离级别:mysql

一、读已提交
二、读未提交
三、可重复读
四、串行化

MySQL事务处理实现:sql

BEGIN       开始一个事务
ROLLBACK    事务回滚
COMMIT      事务确认

MYSQL索引

一、mysql索引是排序好的数据结构(B+树结构)。
二、创建索引会占用磁盘空间的索引文件。
三、对常常修改的数据,不适合建立索引,会破环B+树结构。数据库

索引

建立普通索引:没有任何限制
create index 索引名 on 表名(字段);

建立惟一索引:索引列的值必须惟一,容许有空值。
create unique index 索引名 on 表名(字段);

删除索引
drop index 索引名 on 表名;

显示索引信息
show index from 表名;

MYSQL分库分表

垂直(纵向)切分

水平(横向)切分

相关文章
相关标签/搜索