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 

表连接

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事务

1、mysql中只有使用innodb数据库引擎的数据库或表才支持事务。
2、mysql中的myisam数据库引擎不支持事务。
3、事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,
要么全部不执行。
4、事务用来管理insert、update、delete

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

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

事务的隔离级别:

1、读已提交
2、读未提交
3、可重复读
4、串行化

MySQL事务处理实现:

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

MYSQL索引

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

索引

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

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

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

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




















你可能感兴趣的:(mysql)