1.創建數據庫 :create database 名稱 [character 字符集 collate 校隊規則;
2.查看校隊規則 :show collation;
3.查看數據庫/表 :show databases/tables;
4.顯示創建的數據庫/表 :show create database/table 數據庫名/表名[\G];
5.查看當前使用的數據庫 :select database();
6.創建表 :create table 表名(
字段名 數據類型 [該字段約束條件],
字段名 數據類型 [該字段約束條件],
......
)charcater set 字符集 collate 校隊規則;
7.刪除數據集/表 :drop database/table 名;
8.查看數據表 :describe 表名 ;
或者 desc 表名;
9.修改表名 :alter table 表名 rename 新表名;
或者 rename table 表名 to 新表名;
10.主鍵(=非空+唯一) :primary key
唯一約束 :unique
非空約束 :not unll
默認約束 :default 默認值
檢查約束 :check 條件
自動增長 :auto_increment
11.添加數據 :insert into 表名(字段名,字段名,字段名...不寫默認全部字段) values
(數據,數據,數據),
(數據,數據,數據),
...
(數據,數據,數據);
或者 :insert into 表名
set 字段名=值,字段名=值,...;
12.更新數據 :update 表名
set 字段名=值,字段名=值...where 過濾條件;
13.刪除數據 :delete from 表名 where 過濾條件;
或者 truncate 表名;
14.復制表 :create table 新表名 like 舊表名; (拷貝結構)
create table 新表名 as (select * from 舊表名); (拷貝數據)
create table 新表名 like 舊表名;
insert into 新表名 as (select * from 舊表名); (結構數據都拷貝)
15.查詢 :select * from 表名;
select 字段名,字段名,...from 表名;
過濾:where 過濾條件
in(集合) between...and(范圍) is null(空值) distinct(排除重復值) like'%/_' (模糊查詢) and(並且) or(或者)
16.聚合函數 :count()返回某列的行數 sum()返回某列的和 avg()返回某列的平均值 max()返回某列的最大值 min()返回某列的最小值 IFNULL(參數,如果為空則改為的值)
17.排序 :order by 字段名 asc/desc;
asc為升序 desc為降序 默認為asc
18.分組 :group by 字段名 having 過濾條件;
19.限制查詢結果 :limit a,b;
a代表開始的標號(第一條為0) b代表顯示的條數
20.子查詢 :select 字段名,(子查詢) from 表名;
select * from (子查詢);
select * from 表名 where (子查詢);
子查詢關鍵字:exists(子查詢) 只要里面的子查詢返回了行,exists的值為真,外部查詢就執行
字段名 (比較運算符如>) all (子查詢) 大於子查詢里的每一個值
字段名 (比較運算符如>) any (子查詢) 大於子查詢里的任何值,也就是最小值
in(子查詢) 存在
21.集合操作 :select * from a
union
select * from b;
將兩張表縱向連接起來,但是兩張表的字段數必須相同
22.外鍵約束 :alter table 表名
add constraint 外鍵名 foreign key (外鍵字段名) references 外鍵表名 (主鍵字段名);
刪除外鍵 :alter table 表名
drop foreign key 外鍵名
23.聯表查詢 :內連接 :select * from 表1 [inner] join 表2 [on/where 表1.關系字段=表2.關系字段]; (on是內聯前過濾 ,where是產生笛卡爾乘積之后再過濾)
cross join(交叉連接,在MySQL中等價於inner join)
外連接(必須寫關聯條件) :左外 select * from 表1 left [outer] join 表2;
右外 select * from 表1 right [outer] join 表2;
全外 select * from 表1 full [outer] join 表2 (MySQL不支持,可以用union)
自連接 :select * from 表 別名1 join 表 別名2;
24.創建視圖 :create view 視圖名
as
select語句
查看視圖 : ①desc 視圖名
②show table statas like '視圖名'
③show create view 視圖名
修改視圖 :create or replace view 視圖名
as
select語句
或者 alter view 視圖名
as
select語句
25 case when 表名=數據1 then '數據別名' when 表名=數據2 then '數據別名2'... else '別名3’ end 表別名
例如:select id,name,(case when ismale=1 then '男' when ismale=2 then '不明' else '女' end) 性別 from employee;