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會刪除全部數據。
select * from 表名 where name LIKE 'java%';(查詢以Java開頭的信息) select * from 表名 where name LIKE '%java';(查詢以Java結尾的信息) select * from 表名 where name LIKE '%java%';(查詢包含Java的信息) 索引:%開頭的模糊查詢會令索引失效。 %:表明多個字符。 _:表明單個字符。
select 字段 from 表名1 union(distinct | all) select 字段 from 表名2; DISTINCT:刪除結果集中重複的數據。默認狀況下 UNION 操做符已經刪除了重複數據。 ALL:返回全部結果集,包含重複數據。
select * from 表名 order by 字段 ASC;(根據升序字段排序) select * from 表名 order by 字段 desc;(根據字段倒序排序) 默認狀況下升序排序,因此ASC能夠省略。
select 字段1,字段2 from 表名 group by 字段1; select 字段1,字段2 from 表名 group by 字段1 WITH ROLLUP; WITH ROLLUP:以null進行彙總。
select distinct * from 表名;
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.字段;
內鏈接 | 左鏈接 | 右鏈接 |
---|---|---|
![]() |
![]() |
![]() |
類型 | 大小 | 用途 |
---|---|---|
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中只有使用innodb數據庫引擎的數據庫或表才支持事務。 二、mysql中的myisam數據庫引擎不支持事務。 三、事務處理能夠用來維護數據庫的完整性,保證成批的SQL語句要麼所有執行, 要麼所有不執行。 四、事務用來管理insert、update、delete
事務是必須知足4個條件(ACID):java
一、原子性:要麼所有完成,要麼所有不完成。 二、一致性:在事務開始以前和事務結束之後,數據庫的完整性沒有被破壞。 三、隔離性:事務之間相互不影響。 四、持久性:事務處理結束以後,對數據進行一個永久的保存。
事務的隔離級別:mysql
一、讀已提交 二、讀未提交 三、可重複讀 四、串行化
MySQL事務處理實現:sql
BEGIN 開始一個事務 ROLLBACK 事務回滾 COMMIT 事務確認
一、mysql索引是排序好的數據結構(B+樹結構)。
二、創建索引會佔用磁盤空間的索引文件。
三、對常常修改的數據,不適合建立索引,會破環B+樹結構。數據庫
建立普通索引:沒有任何限制 create index 索引名 on 表名(字段); 建立惟一索引:索引列的值必須惟一,容許有空值。 create unique index 索引名 on 表名(字段); 刪除索引 drop index 索引名 on 表名; 顯示索引信息 show index from 表名;