查询子串_SQL视图、子查询和常见函数的应用
一、視圖
含義:虛擬表,和普通表一樣使用,通過(guò)表動(dòng)態(tài)生成的數(shù)據(jù)。
| 視圖 | CREATE VIEW | 沒(méi)有(只保存了SQL邏輯) | 增刪改查,一般不能增刪改 |
| 表 | CREATE TABLE | 占用(保存了數(shù)據(jù)) | 增刪改查 |
1.創(chuàng)建視圖
CREATE VIEW 視圖名 AS 查詢(xún)語(yǔ)句;2.視圖的修改
方式一:
CREATE OR REPLACE VIEW 視圖名 AS 查詢(xún)語(yǔ)句;方式二:
ALTER VIEW 視圖名 AS 查詢(xún)語(yǔ)句;3.刪除視圖
DROP VIEW 視圖名,視圖名,......;二、子查詢(xún)
含義:出現(xiàn)在其他語(yǔ)句中的 SELECT語(yǔ)句,稱(chēng)為子查詢(xún)或內(nèi)查詢(xún)。外部的查詢(xún)語(yǔ)句,稱(chēng)為主查詢(xún)或外查詢(xún)。
按子查詢(xún)出現(xiàn)的位置:
SELECT后面:僅支持標(biāo)量子查詢(xún) FROM后面: 支持表子查詢(xún) ★ WHERE或 HAVING后面: 標(biāo)量子查詢(xún)(單行) ★ 列子查詢(xún)(多行) ★ 行子查詢(xún)(用的較少) EXISTS后面(相關(guān)子查詢(xún)):表子查詢(xún) 表子查詢(xún)按結(jié)果集的行列數(shù)不同:
- 標(biāo)量子查詢(xún)(結(jié)果集只有一行一列)
- 列子查詢(xún)(結(jié)果集只有一列多行)
- 行子查詢(xún)(結(jié)果集有一行多列)
- 表子查詢(xún)(結(jié)果集一般為多行多列)
1.WHERE 或 HAVING后面:
- 標(biāo)量子查詢(xún)(單行子查詢(xún))
- 列子查詢(xún)(多行子查詢(xún))
- 行子查詢(xún)(多列多行)
特點(diǎn):
①子查詢(xún)放在小括號(hào)內(nèi)
②子查詢(xún)一般放在條件右側(cè)
③標(biāo)量子查詢(xún),一般搭配著單行操作符使用:> < >= <= = <>
列子查詢(xún),一般搭配著多行操作符使用:in、any/some、all
④子查詢(xún)優(yōu)先執(zhí)行與主查詢(xún)執(zhí)行,主查詢(xún)的條件用到了子查詢(xún)的結(jié)果
2.SELECT后面:
僅僅支持標(biāo)量子查詢(xún)
3.FROM后面:
將子查詢(xún)結(jié)果充當(dāng)一張表,要求必須起別名
三、常見(jiàn)函數(shù)
1.字符函數(shù):
LENGTH(): 獲取參數(shù)值的字節(jié)個(gè)數(shù)
CONCAT(): 拼接字符串
UPPER() 大寫(xiě), LOWER() 小寫(xiě)
SUBSTR() :截取字符
INSTR(): 返回子串第一次出現(xiàn)的索引,如果找不到返回0
TRIME() :去前后字符,默認(rèn)去左右空格
LPAD(): 用指定的字符實(shí)現(xiàn)左填充指定長(zhǎng)度
RPAD() :用指定的字符實(shí)現(xiàn)右填充指定長(zhǎng)度
REPLACE() :替換
2.數(shù)學(xué)函數(shù):
ROUND(): 四舍五入
CEIL() :向上取整,返回>=該參數(shù)的最小整數(shù)
FLOOR(): 向下取整,返回<=該參數(shù)的最大整數(shù)
TRUNCATE(): 截?cái)?/p>
MOD() :取余
3.日期函數(shù):
NOW() :返回當(dāng)前系統(tǒng)日期+時(shí)間
CURDATE() :返回當(dāng)前日期,不含時(shí)間
CURTIME(): 返回當(dāng)前時(shí)間,不含日期
STR_TO_DATE(): 將日期格式的字符轉(zhuǎn)換成指定格式的日期
DATE_FORMAT() :將日期轉(zhuǎn)換成字符
四、練習(xí)
這里用between...and查找出的范圍包括邊界值,所以要+1和-1去掉邊界值
select name,population from world where population between( select population from world where name='Canada' )+1 and( select population from world where name='Poland' )-1注意使用concat()和round()函數(shù)來(lái)顯示出百分比效果
select name,concat(round(population/( select population from world where name='Germany' )*100,0),'%') from world where continent='Europe'字符串ASCII碼排序
select continent,name from world x where name<=all( select name from world y where x.continent = y.continent )select name,continent from world x where population>=all( select population*3 from world y where x.continent=y.continent and x.name<>y.name )總結(jié)
以上是生活随笔為你收集整理的查询子串_SQL视图、子查询和常见函数的应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 腐蚀rust服务器命令_RUST++ M
- 下一篇: 嵌套饼图_旭日图的效率,高到饼图都羡慕