查询子串_SQL视图、子查询和常见函数的应用
一、視圖
含義:虛擬表,和普通表一樣使用,通過表動態生成的數據。
| 視圖 | CREATE VIEW | 沒有(只保存了SQL邏輯) | 增刪改查,一般不能增刪改 |
| 表 | CREATE TABLE | 占用(保存了數據) | 增刪改查 |
1.創建視圖
CREATE VIEW 視圖名 AS 查詢語句;2.視圖的修改
方式一:
CREATE OR REPLACE VIEW 視圖名 AS 查詢語句;方式二:
ALTER VIEW 視圖名 AS 查詢語句;3.刪除視圖
DROP VIEW 視圖名,視圖名,......;二、子查詢
含義:出現在其他語句中的 SELECT語句,稱為子查詢或內查詢。外部的查詢語句,稱為主查詢或外查詢。
按子查詢出現的位置:
SELECT后面:僅支持標量子查詢 FROM后面: 支持表子查詢 ★ WHERE或 HAVING后面: 標量子查詢(單行) ★ 列子查詢(多行) ★ 行子查詢(用的較少) EXISTS后面(相關子查詢):表子查詢 表子查詢按結果集的行列數不同:
- 標量子查詢(結果集只有一行一列)
- 列子查詢(結果集只有一列多行)
- 行子查詢(結果集有一行多列)
- 表子查詢(結果集一般為多行多列)
1.WHERE 或 HAVING后面:
- 標量子查詢(單行子查詢)
- 列子查詢(多行子查詢)
- 行子查詢(多列多行)
特點:
①子查詢放在小括號內
②子查詢一般放在條件右側
③標量子查詢,一般搭配著單行操作符使用:> < >= <= = <>
列子查詢,一般搭配著多行操作符使用:in、any/some、all
④子查詢優先執行與主查詢執行,主查詢的條件用到了子查詢的結果
2.SELECT后面:
僅僅支持標量子查詢
3.FROM后面:
將子查詢結果充當一張表,要求必須起別名
三、常見函數
1.字符函數:
LENGTH(): 獲取參數值的字節個數
CONCAT(): 拼接字符串
UPPER() 大寫, LOWER() 小寫
SUBSTR() :截取字符
INSTR(): 返回子串第一次出現的索引,如果找不到返回0
TRIME() :去前后字符,默認去左右空格
LPAD(): 用指定的字符實現左填充指定長度
RPAD() :用指定的字符實現右填充指定長度
REPLACE() :替換
2.數學函數:
ROUND(): 四舍五入
CEIL() :向上取整,返回>=該參數的最小整數
FLOOR(): 向下取整,返回<=該參數的最大整數
TRUNCATE(): 截斷
MOD() :取余
3.日期函數:
NOW() :返回當前系統日期+時間
CURDATE() :返回當前日期,不含時間
CURTIME(): 返回當前時間,不含日期
STR_TO_DATE(): 將日期格式的字符轉換成指定格式的日期
DATE_FORMAT() :將日期轉換成字符
四、練習
這里用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()函數來顯示出百分比效果
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 )總結
以上是生活随笔為你收集整理的查询子串_SQL视图、子查询和常见函数的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腐蚀rust服务器命令_RUST++ M
- 下一篇: postgresql 分词_使用Post