wordpress部署seo怎么學(xué)在哪里學(xué)
文章目錄
- 內(nèi)置函數(shù)
- 時間函數(shù)
- 字符串函數(shù)
- 數(shù)學(xué)函數(shù)
- 其他函數(shù)
- 復(fù)合查詢
- 多表笛卡爾積
- 自連接
- 在where中使用子查詢
- 多列子查詢
- 在from中使用子查詢
- 內(nèi)連接
- 外連接
- 左外連接
- 右外連接
內(nèi)置函數(shù)
時間函數(shù)
函數(shù) | 描述 |
---|---|
current_date() | 當(dāng)前日期 |
current_time() | 當(dāng)前時間 |
current_timestamp() | 當(dāng)前時間戳 |
date(datetime) | 返回datetime參數(shù)的日期部分 |
date_add(date, interval val) | 在date中加上參數(shù)的日期或時間 |
date_sub(date, interval val) | 在date中加上參數(shù)的日期或時間 |
datediff(date1, date2) | 返回兩個日期之間的時間差,單位為天 |
now() | 當(dāng)前日期和時間 |
字符串函數(shù)
函數(shù) | 描述 |
---|---|
charset(str) | 返回字符串的字符集 |
concat(str2 [, …]) | 連接字符串 |
instr(string, ch) | 返回ch在string中出現(xiàn)的位置,沒有返回0 |
ucase(str) | 轉(zhuǎn)換為大寫 |
lcase(str) | 轉(zhuǎn)換為小寫 |
left(str, length) | 從str中的左邊起取length個字符 |
length(str) | str的長度 |
replace(string, str, replace_str) | 在string中用replace_str替換str |
strcmp(str1, str2) | 逐字符比較兩字符串的大小 |
substring(str, pos [, length]) | 從str的pos開始取length個字符 |
ltrim(str) rtrim(str) trim(str) | 去除前空格或者后空格 |
select concat(name, '的語文是',chinese,'分,數(shù)學(xué)是',math,'分') as '分數(shù)' from
student;
數(shù)學(xué)函數(shù)
函數(shù) | 描述 |
---|---|
abs(num) | 絕對值函數(shù) |
bin(num) | 十進制轉(zhuǎn)換二進制 |
hex(num) | 轉(zhuǎn)換為十六進制 |
conv(num, from_base, to_base) | 進制轉(zhuǎn)換 |
ceiling(num) | 向上去整 |
floor(num) | 向下去整 |
format(num, decimal_places) | 格式化,保留小數(shù)位數(shù) |
rand() | 返回隨機浮點數(shù),范圍[0.0, 1.0) |
mod(num, denominator) | 取模,求余 |
向上去整:往上找比數(shù)值大的最小整數(shù)
向下去整:往下找比數(shù)值小的最大整數(shù)
0向去整:找比數(shù)值更靠近0的并且里數(shù)值最近的整數(shù)
其他函數(shù)
函數(shù) | 描述 |
---|---|
user() | 查詢當(dāng)前用戶 |
md5(str) | 對一個字符串進行md5摘要,摘要后得到一個32為字符串 |
database() | 顯示當(dāng)前正在使用的數(shù)據(jù)庫 |
password() | 對用戶加密 |
ifnull(val1, val2) | 如果val1為null,返回val2, 否則返回val1 |
復(fù)合查詢
為了更好演示效果,演示的數(shù)據(jù)庫中有三張表, emp(員工信息)、dept(部門信息)、salgrad(薪資信息)
多表笛卡爾積
如果想要查詢的結(jié)果需要多張表結(jié)合才能搜索出,則可以直接多表結(jié)合去查詢。
需要注意,如果查詢的列中有大于一張表擁有同名的列信息則需要指明表
可以看到如圖的寫法就會出現(xiàn)很多重復(fù)的員工信息,這是因為直接結(jié)合的話會把所有表的數(shù)據(jù)都結(jié)合進去,這樣并不符合實際場景。
因此可以加上篩選條件,因為兩張表是具有外鍵關(guān)聯(lián)的,所以可以使用外鍵的列作為結(jié)合的條件
自連接
并不需要有多張真實存在的物理屬性的表才可以結(jié)合,因為單張表操作得出的結(jié)果也可以看作是一張表,在MySQL中一切皆為表結(jié)構(gòu),所以單張表得出的虛擬表也可以和其本身去結(jié)合
不過需要注意如果使用自連接需要對表進行不同的別名,這樣系統(tǒng)才能分辨出區(qū)別
例如:找出名為SMITH的員工的上級領(lǐng)導(dǎo)的編號和姓名(mgr是員工領(lǐng)導(dǎo)的編號–empno)
在where中使用子查詢
子查詢是指嵌入在其他sql語句中的select語句,也叫嵌套查詢
例如:顯示SMITH同一部門的員工
例如:查詢和10號部門的工作崗位相同的雇員的名字,崗位,工資,部門號
其中關(guān)鍵字in的作用是,查詢集合是否包含了該條件
例如:顯示工資比部門30的所有員工的工資高的員工的姓名、工資和部門號
其中關(guān)鍵字all表示:集合中的所有數(shù)據(jù)
例如:顯示工資比部門30的任意員工的工資高的員工的姓名、工資和部門號
其中關(guān)鍵字any表示:集合中的任意一個數(shù)據(jù)
多列子查詢
這是只使用一列作為子查詢的條件,也可以同時使用多列作為查詢條件
多列子查詢是指查詢返回多個列數(shù)據(jù)的子查詢語句
例如:查詢和SMITH的部門和崗位完全相同的所有雇員
在from中使用子查詢
子查詢語句出現(xiàn)在from子句中。這里要用到數(shù)據(jù)查詢的技巧,把一個子查詢當(dāng)做一個臨時表使用
例如:**查找每個部門工資最高的人的姓名、工資、部門、最高工資 **
內(nèi)連接
內(nèi)連接實際上就是利用where子句對兩種表形成的笛卡兒積進行篩選
select 字段 from 表1 inner join 表2 on 連接條件 and 其他條件;
外連接
左外連接
左側(cè)的表完全顯示就是左外連接,如果右側(cè)的表不對應(yīng)左側(cè)的表則為NULL
右外連接
右側(cè)的表完全顯示就是右外連接,如果左側(cè)的表不對應(yīng)右側(cè)的表則為NULL