mysql之DQL查询AS CONCAT LIKE的使用
select 列名1,列名2,... from 表名 [where 条件]
过滤掉重复的列值
select distinct 列名1 from 表名
-- 重复的列值只列出一次(去掉列值重复)
mysql> select distinct(password) from user;
连接concat
select concat(列名1,列名2) from 表名 concat_ws带分隔符
列起别名 as
select 列名1 as 别名,列名2 from 表名
模糊查询
select 列名 ... from 表名 where 列名 like '%字符串%';
mysql> select user_name from user where user_name like '%ng%';
+-----------+
| user_name |
+-----------+
| liming |
| zhangsan |
+-----------+
Mysql之DQL排序以及聚合函数
order by 字段 asc;
order by 字段 desc;
mysql> select user_name,id from user order by> +-----------+----+
| user_name |> +-----------+----+
| liming | 1 |
| zhangsan | 2 |
| 李华 | 3 |
+-----------+----+
3 rows in set (0.01 sec)
mysql> select user_name,id from user order by> +-----------+----+
| user_name |> +-----------+----+
| 李华 | 3 |
| zhangsan | 2 |
| liming | 1 |
+-----------+----+
3 rows in set (0.00 sec)
表中有多少条记录,某列的总和,平均值,最大值,最小值
mysql> select count(*) from user;
mysql> select sum(age) from user;
mysql> select avg(age) from user;
mysql> select max(age) from user;
mysql> select min(age) from user;
分组查询
user表的数据
+----+-----------+-----+----------+----------------+-------------+-------+------+
|> +----+-----------+-----+----------+----------------+-------------+-------+------+
| 1 | liming | 0 | 123435 | liming@163.com | 13666666666 | 12.21 | 28 |
| 2 | zhangsan | 1 | 229999 | zs@163.com | 13554442907 | 86.21 | 22 |
| 3 | 李华 | 0 | 123435 | lihua@163.com | 1366666666 | 99.12 | 18 |
| 4 | lisi | 1 | 2×××2 | lisi@163.com | 17376756841 | 32.18 | 35 |
| 5 | wangwu | 1 | 888888 | wangwu@163.com | 18511111122 | 38.69 | 26 |
+----+-----------+-----+----------+----------------+-------------+-------+------+
统计sex=1时的人数,sex=0时的人数
mysql> select sex,count(*) from user group by sex;
+-----+----------+
| sex | count(*) |
+-----+----------+
| 0 | 2 |
| 1 | 3 |
+-----+----------+
按照sex进行分组,哪组人数大于2
mysql> select sex from user group by sex having count(*)>2;
+-----+
| sex |
+-----+
| 1 |
+-----+
连接查询
内连接查询
-- where 可换成 on
mysql> select s.id,s.name,m.mark from student as s inner join mark as m where m.stu_id=s.id;
+----+---------+------+
|>
+----+---------+------+
| 2 | xiaoliu | 66 |
| 4 | xiaoli | 77 |
| 5 | xiaopan | 88 |
+----+---------+------+
3 rows in set (0.00 sec)
mysql> select m.id,s.name,m.mark from student as s, mark as m where m.stu_id=s.id;
+----+---------+------+
|>
+----+---------+------+
| 1 | xiaoliu | 66 |
| 2 | xiaoli | 77 |
| 3 | xiaopan | 88 |
+----+---------+------+
3 rows in set (0.00 sec)
外连接查询(左连接查询,右连接查询)
左连接查询
mysql> select s.name,m.mark from student as s left join mark as m on m.stu_id=s.id;
+-----------+------+
| name | mark |
+-----------+------+
| xiaoliu | 66 |
| xiaoli | 77 |
| xiaopan | 88 |
| zhaozhang | NULL |
| xiaowang | NULL |
+-----------+------+
右连接查询
mysql> select s.name,m.mark from student as s right join mark as m on m.stu_id=s.id;
+---------+------+
| name | mark |
+---------+------+
| xiaoliu | 66 |
| xiaoli | 77 |
| xiaopan | 88 |
+---------+------+
联合查询
三种方式实现:查询id=2或id=5的记录
mysql> select * from student where>
mysql> select * from student where>
mysql> select * from student where>
子查询
mysql> select>
+----+
|>
+----+
| 2 |
| 4 |
| 5 |
+----+
limit查询
mysql> select * from student limit 2;
+----+-----------+-----+
|>
+----+-----------+-----+
| 1 | zhaozhang | 26 |
| 2 | xiaoliu | 27 |
+----+-----------+-----+
mysql> select * from student limit 3,2;
+----+---------+-----+
|>
+----+---------+-----+
| 4 | xiaoli | 29 |
| 5 | xiaopan | 30 |
+----+---------+-----+
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com