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.字段;
内连接 左连接 右连接
MYSQL_第1张图片 MYSQL_第2张图片 MYSQL_第3张图片

数据库类型

数值类型

类型 大小 用途
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)