MySQL知識點總結 一、 MySQL常用命令 啟動MySQL服務:service mysqld start 或 systemctl start mysqld.service 停止MySQL服務:service mysqld stop 或 systemctl stopt mysqld.service ...
MySQL知識點總結
一、 MySQL常用命令
- 啟動MySQL服務:service mysqld start 或 systemctl start mysqld.service
- 停止MySQL服務:service mysqld stop 或 systemctl stopt mysqld.service
- 重啟MySQL服務:service mysqld restart 或 systemctl restart mysqld.service
- 查看MySQL服務狀態:service mysqld status 或 systemctl status mysqld.service
- 連接MySQL:mysql –uroot –p
- 退出mysql服務:exit
- 查看用戶資料庫許可權:show grants;
- 查看資料庫:show databases;
- 重命名資料庫:rename database 原資料庫名 to 新資料庫名
- 刪除資料庫:drop database 資料庫名;
- 使用資料庫:use 資料庫名;
- 查看資料庫包含的表:show tables;
- 重命名錶:alter table 原表名 rename to 新表名; 還可使用:rename table 資料庫.原表名 to 資料庫.新表名; (可用於表在資料庫的遷移)
- 創建表:create table if not exists 表名(表頭1 數據類型(數據長度) primary key,表頭2,數據類型(數據長度))engine=innodb default charset=utf8;
- 複製表:create table 新表名 as ( select * from 表 [where 條件] );
- 只複製表結構:create table 新表名 as ( select * from 表 where null);
- 查看表結構:desc 表名;
- 新增欄位:alter table 表名 add 表頭 數據類型(數據長度);
- 刪除欄位:alter table 表名 drop 表頭 ;
- 修改欄位:alter table 表名 modify 原表頭 新表頭 數據類型(數據長度);
- 添加外鍵:alter table 表名 add constraint 索引名(一般以fk_開頭) foreign key(外鍵名) references 關聯外鍵的表名(關聯的主鍵欄位);
- 插入數據:insert into 表名 ( 列名1,列名2,...,列名n ) values ( 值a1,值a2,...,值an ), ( 值b1,值b2,...,值bn ),…;
- 刪除數據:delete from 表名 [where 子句];
- 快速刪除數據:truncat 表1;刪除表1後創建一個新的表,結構名稱與表1相同;
- 修改數據:update 表名 set 列名1=新值1, 列名2=新值2 [where子句];
- 查詢數據:select 列名1,列名2 from 表名 [where子句];
- 引入sql腳本:source 文件路徑/文件.sql
二、 MySQL where子句
使用where子句查詢可分為精確查詢和模糊查詢
比較符有:=、>、<、=、>=、<=、!=、<>
邏輯符號有:and、or 、not
範圍運算符:between … and ..、in、not in
模糊運算:like ‘%_’:%匹配任意字元,_匹配單個字元;
空運算:null、is null、not … is null
子查詢:select 欄位 from 表 where 欄位 in ( select…from…);
三、 group by
select 欄位 from 表 group by 欄位 having 條件;
having作用與where相似,不能與where一起用,可單獨用where:select 欄位 from 表 where 條件group by 欄位 。
四、 order by
select 欄位 from 表 order by 欄位1 排序,欄位2 排序,….
MySQL中預設為升序排序:asc;降序排序顯示為desc。
五、 limit
select 欄位 from 表 limit n1 :查詢表前n1條數據;
select 欄位 from 表 limit n1,n2:查詢表行號為n1行為開始行的n2條數據。
六、 查詢常用函數
查詢語句中常用函數有求和sum()、最大值max()、最小值min()、平均值avg()、統計行數count()、連接查詢結果concat() as 、去除重覆項distinct
count( )
count(1)和count(*)包含null值,統計行數等於原表記錄行數;
count(非空欄位) 不計算null值,統計行數等於原表記錄行數;
count(null值欄位)不計算null值,統計行數小於等於原表記錄行數;
count(null)結果恆為0。
concat(‘常量’,欄位) as ‘別名’
concat()函數可以將查詢結果連接在一起作為一列輸出。
七、 多表查詢
當需要使用多表進行查詢時,需要先考慮查詢的數據來源(表),再分析表與表之間的聯繫;
多表查詢除了外連接和內連接,還可以自連接進行查詢。
內連接:… inner join…on…
select 欄位 from 表join表2 on 聯繫欄位 join表3 on 聯繫欄位
外連接:left join, right join
左外連接:表1 left join 表2 on 聯繫欄位;保留左邊的表的全部數據,不管右邊是否有對應數據匹配;
右外連接:表1 right join 表2 on 聯繫欄位; 保留右邊的表的全部數據,不管左邊是否有對應數據匹配;
八、 union
union把多個sql語句的執行結果,合併到1個結果中;sql語句的查詢欄位必須相似,否則會報錯。
union操作符: 預設會去除多個結果中的重覆信息;
union all 操作符: 返回多個結果中所有信息(不會去除重覆信息)。