查詢mysql語句的方法:查詢一張表中的記錄時,程式碼為【select * from 表名where name='long' and age ='18'】,from後面加表名,where後面是條件,select後面是篩選出的欄位。
本教學操作環境:windows7系統、mysql8.0.22版,此方法適用於所有品牌電腦。
相關免費學習推薦:mysql影片教學
#查詢mysql語句的方法:
##在mysql查詢一張表中的記錄的時候書寫順序是: select * from 表名where name='long' and age ='18';
某些欄位 * 是所有欄位
select * from 表名\G;
select * from emp where id >= 3 and id <= 6; select * from emp where id between 3 and 6; between 等价于id >= 3 and id <= 6
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);
模糊匹配 % 匹配多個任意字符 _ 匹配一個任意字符
select name,salary from emp where name like '%o%';
select name, salary from emp where length(name) =4; select name ,salary from emp where name like "____"
select * from emp where id<3 or id >6; select * from emp where id not between 3 and 6;
select * from emp where salary not in (20000,17000,18000);
針對null判斷的時候只能用is 不能用=
select name ,post from emp where post_comment is null;
1、group by 分組
select * from emp group by post; # 按照部门分组
分組後應該做到最小單位是組,而不應該是展示組內的單一資料資訊
向上面那樣他會直接給你印出來而沒有給你報錯說明你的嚴格模沒有設定
show variables '%mode%'; # 找到严格模式所在的地方set session # 临时有效 set global # 永久有效set global sql_mode= 'strict_trans_tables' # 设置字符类型的自动截取set global sql_mode="strict_trans_tables,pad_char_to_full_length" #char 取出时 取消自动去空格set global sql_mode='strict_trans_tables,only_full_group_by' # 设置分组后 最小单位是组
此时你如果还使用 select name from emp group by post; 就会报错 #ERROR 1055 (42000): 'day37.emp.name' isn'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 '最小' 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('hahha',name) from emp group by post;
還可以拼接
group_concat()能够拿到分组后每一个数据指定字段(可以是多个)对应的值
group_concat(分组之后用)
concat(不分组时用)
查询每个员工的年薪
select name,salary*12 from emp;
相关免费学习推荐:php编程(视频)
以上是如何查詢mysql語句的詳細內容。更多資訊請關注PHP中文網其他相關文章!