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分庫分表

垂直(縱向)切分

水平(橫向)切分

相關文章
相關標籤/搜索