首頁 > 資料庫 > mysql教程 > 如何查詢mysql語句

如何查詢mysql語句

coldplay.xixi
發布: 2020-12-17 10:27:27
原創
3491 人瀏覽過

查詢mysql語句的方法:查詢一張表中的記錄時,程式碼為【select * from 表名where name='long' and age ='18'】,from後面加表名,where後面是條件,select後面是篩選出的欄位。

如何查詢mysql語句

本教學操作環境:windows7系統、mysql8.0.22版,此方法適用於所有品牌電腦。

相關免費學習推薦:mysql影片教學

#查詢mysql語句的方法:

##在mysql查詢一張表中的記錄的時候 

  

書寫順序是: select * from 表名where name='long' and age ='18';

#但是mysql中的執行順序是 

  •   from  後面加表名確定你是那張表

  •   wheree是條件透過條件來篩選後面是條件透過條件來篩選後面是條件來篩選後面這張表格的內容

  •   select後面是你where篩選出的資料中的

    某些欄位    * 是所有欄位

#  # 查詢語句執行的結果也是一張表,可以看成虛擬表

我們建立一張emp的員工表

當我們的當欄位特別多的時候  結果的排版可能會出現凌亂現像我們可以在查詢語句末尾加上\G來規範查詢結果

select * from 表名\G;
登入後複製

當我們遇到一個需求時怎麼來分析? 例如 

1.查詢id大於等於3小於等於6的資料

   給你展示下實際操作  1.先確定來自哪一張表  from emp   2. 篩選條件where id >= 3 and id <=6;   3.select  *

   select * from emp where id >= 3 and id <= 6;
    select * from emp where id between 3 and 6;  between 等价于id >= 3 and id <= 6
登入後複製

2.查詢薪資是20000或18000或17000的資料##
    select id,name from emp where salary = 20000 or salary = 18000 or salary = 17000;
    select id,name from emp where salary in (20000,18000,17000);
登入後複製
##3.查詢員工姓名中包含o字母的員工姓名和薪資

模糊匹配  % 匹配多個任意字符  _ 匹配一個任意字符

select name,salary from emp where name like &#39;%o%&#39;;
登入後複製
4.查詢員工姓名是由四個字元組成的員工姓名與其薪資
select name, salary from emp where length(name) =4;
select name ,salary from emp where name like "____"
登入後複製

5.查詢id小於3或大於6的資料

select * from emp where id<3 or id >6;
select * from emp where id not between 3 and 6;
登入後複製

6.查詢薪資不在20000,18000,17000範圍的資料

select * from emp  where  salary not in (20000,17000,18000);
登入後複製

7.查詢職位描述為空的員工名稱與職位名稱   

針對null判斷的時候只能用is 不能用=

select name ,post from emp where post_comment is null;
登入後複製
MySQL對大小寫不敏感  平時寫的時候大小寫都可以

1、group by 分組

select * from emp group by post;  # 按照部门分组
登入後複製

分組後應該做到最小單位是組,而不應該是展示組內的單一資料資訊 

 向上面那樣他會直接給你印出來而沒有給你報錯說明你的

嚴格模沒有設定

show variables &#39;%mode%&#39;; # 找到严格模式所在的地方set session # 临时有效 set global  # 永久有效set global sql_mode= &#39;strict_trans_tables&#39; # 设置字符类型的自动截取set global sql_mode="strict_trans_tables,pad_char_to_full_length" #char 取出时 取消自动去空格set global sql_mode=&#39;strict_trans_tables,only_full_group_by&#39; # 设置分组后   最小单位是组
登入後複製
 

此时你如果还使用 select name from emp group by post; 就会报错 #ERROR 1055 (42000): &#39;day37.emp.name&#39; isn&#39;t in GROUP BYselest 后应该接的是 你分组的字段名
登入後複製

2、聚合函數(max, min ,sum,count, avg)  聚集到一起合成為一個結果

mysql中分組之後只能拿到

分組的欄位資訊

 

無法直接取得其他欄位的資訊但是你可以透過其他方法來間接的取得(聚合函數)取得每個部門

的最高工資 

   需求是每個部門說明有分組所以先分組在使用聚合函數來取值

select post ,max(salary) from emp group by post;
登入後複製

每個部門的最低工資

select post,min(salary)  emp group by post;
 
select post,min(salary) as &#39;最小&#39; from emp group by post;
登入後複製

每個部門的平均工資

select post,avg(salary) from emp group by post;
登入後複製

每個部門的工資總和

select post,sum(salary) from emp group by post;
登入後複製

每個部門的人數

    select post,count(age) from emp group by post;
    select post,count(salary) from emp group by post;
    select post,count(id) from emp group by post;
    select post,count(post_comment) from emp group by post;
登入後複製

 在統計分組內個數的時候填寫

任一非空白欄位都可以完成計數

,建議使用能夠唯一識別資料的欄位  例如id欄位

#      聚合函數會自動將每一個分組內的單一資料做想要的計算,無需你考慮

3、group_concat

查詢分組之後的部門名稱和每個部門下

所有的學生姓氏

select post, group_concat(name) from emp group by post;
登入後複製

select post,group_concat(&#39;hahha&#39;,name) from emp group by post;
登入後複製

 還可以拼接

 

group_concat()能够拿到分组后每一个数据指定字段(可以是多个)对应的值

concat就是用来帮你拼接数据

group_concat(分组之后用)

concat(不分组时用)

查询每个员工的年薪

select name,salary*12 from emp;
登入後複製

相关免费学习推荐:php编程(视频)

以上是如何查詢mysql語句的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板