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. 字段;
内连贯 | 左连贯 | 右连贯 |
---|---|---|
数据库类型
数值类型
类型 | 大小 | 用处 |
---|---|---|
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 表名;