標籤:
一.最基本的DDL語句
1.建立資料庫
命令:created database 資料庫名;
2.使用資料庫
命令:use 資料庫名;
3.刪除資料庫
命令:drop database 資料庫名
二.簡單的DML操作
1.增
命令:insert into 表名 (列名) values (資料); //列名可以是多個,列與列之間用逗號分隔,資料類型和順序與列名一致;
2.改
命令:update 表名 set 列 = 新值 where 條件;//如果不使用where過濾,會修改一整列;
3.刪
命令:delete from 表名 where 條件 ;//不使用where刪除全部,可用日誌恢複;
命令:truncate table 表名;//無法恢複
4.寫在where 之後的條件陳述式
a.運算子:
等於: =
不等於: !=/<>
大於/小於:>/</>=/<=
邏輯 :與--and;或--or;
模糊比對:使用關鍵字--like ;%表示0個或多個字元;_表示一個字元
例: ‘%貝%‘表示含有貝字的所有內容;‘_貝_‘表示三個字元貝在中間;注:漢字在資料庫需要3個字元表示;
in(1,2,3)--表示列中有這三個數組的滿足條件;
not inin(1,2,3)--表示列中有這三個數組的不滿足條件;
三.簡單的DQL語句
1.基本文法:select 要查詢列 from 表名 where 過濾條件 ouder by 排序;
其中 :select和from兩個關鍵字是基本文法;where和 ouder by是可選文法;
2.表名/列 後跟as 再跟別名; //可以給表或列取別名便於在複雜情況下區分;
3.between 資料 and 資料;表示兩個資料之間的資料;
4.distince 列名 //去除重複
5.limit 分頁;
6.如果需要排序:ouder by 跟上asc 表示升序(預設是升序);跟上desc表示降序;
7.彙總函式
a.count--統計行的數量
命令:select count(技數規範) from 表名;
計數規範:*表示所有的行;
all 列名表示所有的非空行;
distince 列名 所有的非空不重複行;
b.sum--擷取單列所有資料的總和;
用法同上,技術規範沒有*;
c.avg--擷取單列所有資料的平均值;
用法同上,技術規範沒有*;
d.max/min--擷取單行的最大值/最小值;
8.資料分組
文法:select 列A,彙總函式 from 表 where 過濾條件 group by 列A;
先過濾,然後按照列A對整張表進行分組;分組以後select 所查詢的內容只能是列A與彙總函式,否則出現的資料會失去意義(之後查詢到每組第一個資料);
having 專門對分組後的資料進行過濾;
執行順序(先後為):from
where
group by
select
having
order by
9.子查詢 --在一個查詢中巢狀查詢
a.在select後嵌套
例:select 列,(子查詢) from 表名;
特點,子查詢的結果只能是單行單列
b.from後嵌套--以子查詢的結果為表
例:select * from (子查詢);
c.where後嵌套--用一個子查詢結果作為條件;
⑴.使用運算子
子查詢結果為單行單列的情況下;
⑵.in/not in
子查詢結果為多行單列的情況;
⑶.all
滿足子查詢所有結果,為真
⑷.any
滿足子查詢其中一個結果,為真;
⑸.exists
只有子查詢結果裡由外部需要的就為真;
10.聯結--將多張表聯結成一張大表;拿第一張表所有記錄與第二張表所有記錄相連--表一的列數*表二的列數;
例:select 列1,列2 from 表1 join 表2 on 聯結關係;
a.內聯結
使用運算子匹配兩表的所有行,得到有效行
from 表1 inner join 表2;from 表1 join 表2;from 表1,表2 where 條件;效果一樣
b.外串連
left join --左外聯,只過濾右邊的表,左邊全顯;
right join --右外聯,只過濾左邊的表,右邊全顯;
c.自串連--同一張表放在 join兩邊;
對MySQL的幾個入門操作