MySQL(3)
百萬級別以上的資料刪除:
效率非常高
truncate table 表名;
外部資料匯入MySQL:
開發給一個sql指令碼,匯入到資料庫裡的方法:(sql腳本里有建立命令)
cmd →
進入這個檔案的地址(sql指令碼的地址)→
連線mysql的命令<sql指令碼
建立三個表,想要通過code連線起來,所以每個表中都新增code欄位:
在表中插入資料,每個表的code都輸入一樣的資料,後面就可以通過相同的code把三個表連線起來:
通過code三表連線,查詢code=1001的人的名字、年齡、公司、學校:
擴:inner join 內關聯(有交集的部分)
查詢規定的多少行資料:
limit
select * from 表名 limit 數字;
select 欄位1,欄位2 from 表名 limit 數字;
查詢表的資料行數:
select count(*) from 表名;
select count(1) from 表名;
條件過濾
並且:
and
select * from 表名 where 條件1 and 條件2;
(同時滿足條件1和條件2 的所有資料資訊)
or
select * from 表名 where 條件1 or 條件2;
(滿足條件1或條件2 的所有資料資訊)
包含:
select * from 表名 where 欄位 in(條件1,條件2);
只要符合其中一個,就顯示出來
範圍檢查
between ...and...
select * from 表名 where 欄位 between “條件1” and “條件2” ;
(條件1和條件2 之間的所有資料,包含開始和結束,一般用在一個範圍)
否定
如:not in(不包含)
not between...and... (不在...範圍內)
select * from 表名 where 欄位 like “ % ” ;
匹配一個或多個任意字元,%的位置可以在前、後、中間。
下劃線
幾個下劃線,表示有幾個字元,可以和%結合使用。
以什麼開頭:
“^ "
(不能和%結合使用,注意前面是rlike)
以什麼結束:
” $“
(注意前面是rlike)
使用別名:
原欄位 as 新起名
根據欄位進行排序:
select * from 表名 order by 欄位 升序/降序;
(desc 降序 asc 升序, 不加順序時 預設是升序)
聚合函式
聚合函式作用:把多個數據做整合輸出一個數據。
查詢總共資料:
count(1)
(group by 欄位:
以欄位做為聚合,就是把這個欄位的所有值 中相同的值的行合併成一行。
格式:select xxxxx from xxx group by xxx;)
例:
以性別做為聚合分組,查詢這些不同性別的總人數資訊:(男一共多少人,女一共多少人)
以薪資做為聚合分組,查詢這些不同薪資的總人數資訊:
查詢最大/最小/平均/總數
最大 max( ),最小 min( ), 平均 avg( ), 總數sum( )
例:
以dateyear為聚合分組,查詢這些不同dateyear平均薪資,用平均薪資avg來降序排序。(欄位後面as起別名)
去重
distinct
查詢出表的某個欄位中不重複的資料
過濾
having
內連線:
inner join,⼜叫內連線的部分,主要是獲取兩個表中欄位匹配關係的表。查詢關聯欄位共同擁有的資料。
select 表1/2資料... from 表1 inner join 表2 on 連線條件 where 表示式;
(在不同表中查詢欄位時,要標清欄位所在的表,如上圖,在前面直接使用別名,在後面給表起別名)