日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

查询子串_SQL视图、子查询和常见函数的应用

發布時間:2023/12/4 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 查询子串_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视图、子查询和常见函数的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。