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

歡迎訪問 生活随笔!

生活随笔

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

数据库

Mysql数据库(七)——mysql高阶语句(上)

發布時間:2024/2/28 数据库 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql数据库(七)——mysql高阶语句(上) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Mysql數據庫(七)——mysql高階語句(上)

  • 一、按關鍵字排序
    • 1、單字段排序
    • 2、多字段排序
  • 二、或/且的運用
  • 三、查詢不重復記錄
  • 四、對結果進行分組
  • 五、限制結果條目
  • 六、設置別名
    • 使用場景
  • 七、連接語句
  • 八、通配符
  • 九、子查詢
    • 1、定義
    • 2、子查詢—別名
    • 3、子查詢—exists
  • 十、視圖
  • 十一、NULL值
    • 1、定義
    • 2、NULL和空值的區別

一、按關鍵字排序

  • 使用select語句可以將需要的數據從 mysql 數據庫中查詢出來,如果對查詢的結果進行排序操作,可以使用 order by 語句完成排序,并且最終將排序后的結果返回給客戶。
select 字段 from 表名 order by 字段 ASC|DESC
  • ASC|DESC
    • ASC 是按照升序進行排名的,是默認的排序方式,即ASC可以省略
    • DESC 是按照降序的方式進行排序的
  • order by 也可以通過 where 子句對查詢結果進行進一步的過濾
  • 可進行多字段的排序

1、單字段排序

2、多字段排序

二、或/且的運用

select * from ljm where id>2 and id<5;select * from ljm where id>2 or id<5;嵌套/多條件 select * from ljm where id>2 or (id>3 and id <5);

三、查詢不重復記錄

select distinct 字段 from 表名;
  • distinct 必須放在最開頭
  • distinct 只能使用需要去重的字段進行操作
  • distinct 去重多個字段時,含義是:幾個字段同時重復時才能被過濾


四、對結果進行分組

  • 通過 SQL 哈訊出來的結果,還可以對其進行分組,使用 group by 語句來實現
  • group by 通常都是結合聚合函數一起使用的,常用的聚合函數包括:計數(count)、求和(sum)、求平均數(avg)、最大值(max)、最小值(min),group by 分組的時候可以按一個或者多個字段對結果進行分組處理
select 字段,聚合函數 from 表名 (where 字段名(匹配) 數值) group by 字段名;

五、限制結果條目

  • 在使用 mysql select 語句進行查詢操作時,結果集返回的是所有匹配的記錄。有時候僅需返回第一行或者前幾行。這時候就需要用到 limit 子句。
select 字段 from 表名 limit [offset,] number
  • limit 的第一個參數是位置偏移量(可選參數),是設置 mysql 從哪一行開始
  • 如果不設定第一個參數,將會從表中的第一條記錄開始顯示。
  • 第一條偏移量是0,第二條為1
  • offset 為索引下標
  • number 為索引下標后的幾位

六、設置別名

  • 在 mysql 查詢時,當表的名字比較長或者表內某些字段比較長時,為了方便書寫或者多次使用相同的表,可以給字段列或表設置別名
  • 方便操作,增強可讀性
列的別名 select 字段 as 字段別名 表名表的別名 select 字段 from 表名 as 別名 as 可以省略

使用場景

  • 對復雜的表進行查詢的時候,別名可以縮短查詢語句
  • 多表相連查詢的時候(通俗易懂、減短 SQL 語句)

七、連接語句

AS可作為連接語句用 例如: create table lucien as select * from ljm; 這里的AS起到的作用: 1、創建一個新表lucien,定義表結構,插入表數據(與working表相同) 2、但是“約束"沒有被“復制”過來,但是如果原表設置了主鍵,那么附表的: default字段會默認設置一個0

八、通配符

  • 通配符主要用于替換字符串中的部分字符,通過部分字符的匹配將相關結果查詢出來
  • 通常通配符都是和 like(模糊查詢)一起使用的,并協同 where子句共同來完成查詢任務
  • 常用的通配符有兩個
    • %:百分號表示任意個數的任意字符
    • _:下劃線表示單個字符

九、子查詢

1、定義

  • 子查詢也被稱作內查詢或者嵌套查詢,是指在一個查詢語句里面還嵌套著另一個查詢語句
  • 子查詢語句是先于主查詢語句被執行的,七結果作為外層的條件返回給主查詢進行下一步的查詢過濾
  • 子語句可以與主語句所查詢的表相同,也可以不同
示例: select id,name from ljm where hobby in (select hobby from ljm where hobby>3);in 是將主查詢和子查詢關聯起來的語法

  • 子查詢不僅可以在 select 中使用,在 insert、update、delete 中同樣可以使用
  • 支持多層嵌套
  • in語句是用來判斷某個值是否在給定的集合內(結果集),in往往和 select 搭配使用
  • 可以使用 not in 來進行對結果集取反

2、子查詢—別名

例: select name,hobby from ljm 以上命令可以查詢一張表的name和hobby信息將結果作為“表”進行查詢的時候,我們也需要用到別名 比如我們輸入:select hobby from (select name,hobby from ljm); 會報錯,因為 select name,hobby from ljm 得到的是一個結果集,而不是表,mysql 是不能識別的 所以我們需要對結果集設置一個別名,這樣mysql就能將結果集視為一張表。

3、子查詢—exists

select count(*) as num from working where exists(select id from working where id>3);as num 將 count 統計的結果作為 num 返回 exists 布爾值判斷,where之后的語句成立,布爾值則為0,則進行前面的操作,否則返回值為0 當使用 sum求和結合exists ,如果查詢結果不成立,返回值為null



十、視圖

  • 數據庫中的虛擬表,這張虛擬表是真實數據的一個動態映射
  • 這張虛擬表能動態的保存結果集
  • 因為視圖和真實表之間是動態同步的關系,所以我們修改虛擬表的同時,真實數據也會收到影響
  • 但是視圖除了名字什么都沒有,是一個投影,所以不占空間
  • 我們只需要對其做權限的設置,就可保證其安全性
  • 我們可以為視圖定義展示的條件,為不同的人群展示不同的網內容

十一、NULL值

1、定義

  • 通常使用 NULL 來表示缺失的值,也就是在表中改字段時沒有值的。
  • 如果在創建表時,限制某些字段不為空,則可以使用 NOT NULL 關鍵字,不使用則默認可以為空。
  • 在向表內插入記錄或者更新記錄時,如果該字段沒有 NOT NULL 并且沒有值,這時候新記錄的該字段將被保存為NULL。
  • 需要注意的是,NULL值與數字0或者空白(spaces)的字段是不同的,值為NUL的字段是沒有值的。
  • 在SQL語句中,使用 IS NULL 可以判斷表內的某個字段是不是NULL值,相反的用 IS NOT NULL 可以判斷不是NULL值。

2、NULL和空值的區別

  • 空值長度為0,不占空間
  • NULL值的長度為null,占用空間
  • is null 無法判斷空值
  • 空值使用“=”或者“<>”來處理
  • count()計算時,NULL會被忽略,空值會加入計算

總結

以上是生活随笔為你收集整理的Mysql数据库(七)——mysql高阶语句(上)的全部內容,希望文章能夠幫你解決所遇到的問題。

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