大聊MySQL查詢 2

2021-08-30 11:07:41 字數 2759 閱讀 2184

在《大聊mysql查詢(1)》中已經介紹了,簡單查詢、條件查詢、分組查詢、分組函式。

現在,再介紹查詢的接下來的幾個內容,首先我還是把查詢順序圖放在這裡:

按照薪水由小到大排序(系統預設由小到大)                select * from emp order by sal;

注: select * from emp order by sal asc; (這是系統預設的公升序排列方式,所以可以省略asc)

select * from emp order by sal desc; (降序排列方式)

取得job為manager的員工,按照薪水由小到大排序         select * from emp where job='manager' order by sal;

注:如果包含where語句order by必須放到where後面,如果沒有where語句order by放到表的後面。其實也就是說,先按照一定的條件進行篩選,然後將結果按照公升序或降序顯示出來。

按照job和薪水公升序     select * from emp order by job,sal;

注:其實也就是說,先按照job的公升序排列,在此基礎上,如果有多條記錄的job相同,則再把同一種的job按照sal的公升序排列。

簡單說一下這一部分的內容,(這部分內容,主要是摘錄 power node 那個老師講的)

lower

轉換小寫

upper

轉換大寫

substr

取子串(substr(被擷取的字串

,起始下標

,擷取的長度

))length

取長度trim

去空格str_to_date

將字串轉換成日期

date_format

格式化日期

format

設定千分位

round

四捨五入

rand()

生成隨機數

ifnull

可以將null轉換成乙個具體值

選幾個來說一下

a)  substr         查詢姓名以m開頭所有的員工              select * from emp where substr(ename, 1, 1)=upper('m');

b)  trim             取得工作崗位為manager的所有員工      select * from emp where job=trim(upper('manager  '));

注:trim會去首尾空格,不會去除中間的空格

c) str_to_date    查詢1981-02-20入職的員工(第二種方法,將字串轉換成date型別)

select * from emp where hiredate=str_to_date('1981-02-20','%y-%m-%d');

select * from emp where hiredate=str_to_date('02-20-1981','%m-%d-%y');

d) date_format    查詢1981-02-20以後入職的員工,將入職日期格式化成yyyy-mm-dd hh:mm:ss

select empno, ename, date_format(hiredate, '%y-%m-%d %h:%i:%s') as hiredate from emp;

e) format      查詢員工薪水加入千分位和保留兩位小數        select empno, ename, format(sal, 2) from emp;

f) case … when … then …..else …end          如果job為managerg薪水**10%,如果job為salesman工資**50%select        empno, ename, job, sal, case job when 'manager' then sal*1.1 when 'salesman'then sal*1.5 end as newsal from emp;

g)  ifnull      select ifnull(comm,0) from emp;        如果

comm

為null

就替換為

0這個地方我也不說什麼,沒有什麼好說的,多寫幾個關於子查詢的**

子查詢就是巢狀的select語句,可以理解為子查詢是一張表

取得前5條資料    select * from emp  limit 5;

從第二條開始取兩條資料   select * from emp  limit 1,2;

limit 起始位置 ,長度

算是完了吧,其實沒有太多好寫的,多練練可能比較好!!!!!!!!!!!!!

大聊Python quene佇列

class queue.queue maxsize 0 先入先出 class queue.lifoqueue maxsize 0 後進先出 class queue.priorityqueue maxsize 0 儲存資料時可設定優先順序的佇列 優先順序佇列的建構函式。maxsize是乙個整數,用於設...

聊一聊軟體測試的三大測試方向

軟體測試一般分為手工測試 自動化測試和效能測試。作為一名軟體測試員,最基礎的應該是手工測試,而隨著軟體測試行業的發展,手工測試耗費的精力和時間大,自動化測試成了眾多企業的選擇。然而,難度最大可能就是效能測試,掌握的也比較多,對測試員自身素質也比較高。下面分別來看看以下這些測試 手工測試 大多數測試員...

聊一聊MySQL裡的鎖和MVCC

在乙個高併發的資料庫系統裡,可能會遇到多個事務同一時刻修改某條資料的情況,這樣就產生了資源衝突,解決衝突就需要用到鎖。一 鎖一說到鎖,就可能會聯想到樂觀鎖 悲觀鎖 共享鎖 讀鎖 排他鎖 互斥鎖 寫鎖 行級鎖 表級鎖 等一堆名詞,那它們之間到底有什麼區別和聯絡呢?其實很簡單,樂觀鎖和悲觀鎖是一種加鎖的...